From 6f47f9775a0308a3bb2f100db418887862461b19 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Apr 2024 15:34:09 +0000 Subject: [PATCH 1/5] fix(deps): update dependency api-platform/core to v3.3.0 --- api/composer.json | 2 +- api/composer.lock | 124 +++++++++++++++++++++++++++------------------- 2 files changed, 74 insertions(+), 52 deletions(-) diff --git a/api/composer.json b/api/composer.json index cec7382cd5..e41d73bc3f 100644 --- a/api/composer.json +++ b/api/composer.json @@ -5,7 +5,7 @@ "php": ">=8.1.0", "ext-ctype": "*", "ext-iconv": "*", - "api-platform/core": "3.2.20", + "api-platform/core": "3.3.0", "composer/package-versions-deprecated": "1.11.99", "cweagans/composer-patches": "1.7.3", "doctrine/doctrine-bundle": "2.12.0", diff --git a/api/composer.lock b/api/composer.lock index 81e3e67640..f91b05fcc5 100644 --- a/api/composer.lock +++ b/api/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "31d7229a4699f03d70426fc3850853e1", + "content-hash": "d73dc8a7352a87157efa880e96ea7695", "packages": [ { "name": "api-platform/core", - "version": "v3.2.20", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/api-platform/core.git", - "reference": "875cc155e556541c0591b0c182ed64dcc41b9984" + "reference": "3b8a0068beb23acbf7a9a0da19e4b9638bf883e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/core/zipball/875cc155e556541c0591b0c182ed64dcc41b9984", - "reference": "875cc155e556541c0591b0c182ed64dcc41b9984", + "url": "https://api.github.com/repos/api-platform/core/zipball/3b8a0068beb23acbf7a9a0da19e4b9638bf883e4", + "reference": "3b8a0068beb23acbf7a9a0da19e4b9638bf883e4", "shasum": "" }, "require": { @@ -26,13 +26,13 @@ "psr/cache": "^1.0 || ^2.0 || ^3.0", "psr/container": "^1.0 || ^2.0", "symfony/deprecation-contracts": "^3.1", - "symfony/http-foundation": "^6.1 || ^7.0", - "symfony/http-kernel": "^6.1 || ^7.0", - "symfony/property-access": "^6.1 || ^7.0", - "symfony/property-info": "^6.1 || ^7.0", - "symfony/serializer": "^6.1 || ^7.0", + "symfony/http-foundation": "^6.4 || ^7.0", + "symfony/http-kernel": "^6.4 || ^7.0", + "symfony/property-access": "^6.4 || ^7.0", + "symfony/property-info": "^6.4 || ^7.0", + "symfony/serializer": "^6.4 || ^7.0", "symfony/translation-contracts": "^3.3", - "symfony/web-link": "^6.1 || ^7.0", + "symfony/web-link": "^6.4 || ^7.0", "willdurand/negotiation": "^3.0" }, "conflict": { @@ -44,6 +44,7 @@ "elasticsearch/elasticsearch": ">=8.0,<8.4", "phpspec/prophecy": "<1.15", "phpunit/phpunit": "<9.5", + "symfony/framework-bundle": "6.4.6 || 7.0.6", "symfony/var-exporter": "<6.1.1" }, "require-dev": { @@ -66,47 +67,48 @@ "phpspec/prophecy-phpunit": "^2.0", "phpstan/extension-installer": "^1.1", "phpstan/phpdoc-parser": "^1.13", - "phpstan/phpstan": "^1.1", + "phpstan/phpstan": "^1.10", "phpstan/phpstan-doctrine": "^1.0", "phpstan/phpstan-phpunit": "^1.0", "phpstan/phpstan-symfony": "^1.0", - "phpunit/phpunit": "^9.5", + "phpunit/phpunit": "^9.6", "psr/log": "^1.0 || ^2.0 || ^3.0", "ramsey/uuid": "^3.9.7 || ^4.0", "ramsey/uuid-doctrine": "^1.4 || ^2.0", "sebastian/comparator": "<5.0", "soyuka/contexts": "v3.3.9", + "soyuka/pmu": "^0.0.2", "soyuka/stubs-mongodb": "^1.0", - "symfony/asset": "^6.1 || ^7.0", - "symfony/browser-kit": "^6.1 || ^7.0", - "symfony/cache": "^6.1 || ^7.0", - "symfony/config": "^6.1 || ^7.0", - "symfony/console": "^6.1 || ^7.0", - "symfony/css-selector": "^6.1 || ^7.0", - "symfony/dependency-injection": "^6.1 || ^7.0.12", - "symfony/doctrine-bridge": "^6.1 || ^7.0", - "symfony/dom-crawler": "^6.1 || ^7.0", - "symfony/error-handler": "^6.1 || ^7.0", - "symfony/event-dispatcher": "^6.1 || ^7.0", - "symfony/expression-language": "^6.1 || ^7.0", - "symfony/finder": "^6.1 || ^7.0", - "symfony/form": "^6.1 || ^7.0", - "symfony/framework-bundle": "^6.1 || ^7.0", - "symfony/http-client": "^6.1 || ^7.0", - "symfony/intl": "^6.1 || ^7.0", + "symfony/asset": "^6.4 || ^7.0", + "symfony/browser-kit": "^6.4 || ^7.0", + "symfony/cache": "^6.4 || ^7.0", + "symfony/config": "^6.4 || ^7.0", + "symfony/console": "^6.4 || ^7.0", + "symfony/css-selector": "^6.4 || ^7.0", + "symfony/dependency-injection": "^6.4 || ^7.0.12", + "symfony/doctrine-bridge": "^6.4 || ^7.0", + "symfony/dom-crawler": "^6.4 || ^7.0", + "symfony/error-handler": "^6.4 || ^7.0", + "symfony/event-dispatcher": "^6.4 || ^7.0", + "symfony/expression-language": "^6.4 || ^7.0", + "symfony/finder": "^6.4 || ^7.0", + "symfony/form": "^6.4 || ^7.0", + "symfony/framework-bundle": "^6.4 || ^7.0", + "symfony/http-client": "^6.4 || ^7.0", + "symfony/intl": "^6.4 || ^7.0", "symfony/maker-bundle": "^1.24", "symfony/mercure-bundle": "*", - "symfony/messenger": "^6.1 || ^7.0", - "symfony/phpunit-bridge": "^6.1 || ^7.0", - "symfony/routing": "^6.1 || ^7.0", - "symfony/security-bundle": "^6.1 || ^7.0", - "symfony/security-core": "^6.1 || ^7.0", - "symfony/stopwatch": "^6.1 || ^7.0", - "symfony/twig-bundle": "^6.1 || ^7.0", - "symfony/uid": "^6.1 || ^7.0", - "symfony/validator": "^6.1 || ^7.0", - "symfony/web-profiler-bundle": "^6.1 || ^7.0", - "symfony/yaml": "^6.1 || ^7.0", + "symfony/messenger": "^6.4 || ^7.0", + "symfony/phpunit-bridge": "^6.4.1 || ^7.0", + "symfony/routing": "^6.4 || ^7.0", + "symfony/security-bundle": "^6.4 || ^7.0", + "symfony/security-core": "^6.4 || ^7.0", + "symfony/stopwatch": "^6.4 || ^7.0", + "symfony/twig-bundle": "^6.4 || ^7.0", + "symfony/uid": "^6.4 || ^7.0", + "symfony/validator": "^6.4 || ^7.0", + "symfony/web-profiler-bundle": "^6.4 || ^7.0", + "symfony/yaml": "^6.4 || ^7.0", "twig/twig": "^1.42.3 || ^2.12 || ^3.0", "webonyx/graphql-php": "^14.0 || ^15.0" }, @@ -134,8 +136,28 @@ "dev-main": "3.3.x-dev" }, "symfony": { - "require": "^6.1 || ^7.0" - } + "require": "^6.4 || ^7.0" + }, + "projects": [ + "api-platform/doctrine-common", + "api-platform/doctrine-orm", + "api-platform/doctrine-odm", + "api-platform/metadata", + "api-platform/json-schema", + "api-platform/elasticsearch", + "api-platform/jsonld", + "api-platform/hydra", + "api-platform/openapi", + "api-platform/graphql", + "api-platform/http-cache", + "api-platform/documentation", + "api-platform/parameter-validator", + "api-platform/ramsey-uuid", + "api-platform/serializer", + "api-platform/state", + "api-platform/symfony", + "api-platform/validator" + ] }, "autoload": { "psr-4": { @@ -168,9 +190,9 @@ ], "support": { "issues": "https://github.com/api-platform/core/issues", - "source": "https://github.com/api-platform/core/tree/v3.2.20" + "source": "https://github.com/api-platform/core/tree/v3.3.0" }, - "time": "2024-04-03T15:33:10+00:00" + "time": "2024-04-29T13:41:11+00:00" }, { "name": "behat/transliterator", @@ -9609,16 +9631,16 @@ }, { "name": "symfony/web-link", - "version": "v7.0.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/web-link.git", - "reference": "855a347feb2ecfc1d1a379c739aff956d4cbec00" + "reference": "19312f38543e77b09f04f374368b73530bfb9482" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-link/zipball/855a347feb2ecfc1d1a379c739aff956d4cbec00", - "reference": "855a347feb2ecfc1d1a379c739aff956d4cbec00", + "url": "https://api.github.com/repos/symfony/web-link/zipball/19312f38543e77b09f04f374368b73530bfb9482", + "reference": "19312f38543e77b09f04f374368b73530bfb9482", "shasum": "" }, "require": { @@ -9672,7 +9694,7 @@ "push" ], "support": { - "source": "https://github.com/symfony/web-link/tree/v7.0.3" + "source": "https://github.com/symfony/web-link/tree/v7.0.7" }, "funding": [ { @@ -9688,7 +9710,7 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/yaml", From f21a4b35d8f297de1fcd657b0ebafec1e5405c67 Mon Sep 17 00:00:00 2001 From: Urban Suppiger Date: Tue, 30 Apr 2024 06:49:18 +0200 Subject: [PATCH 2/5] enable legacy symfony listeners --- api/config/packages/api_platform.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/api/config/packages/api_platform.yaml b/api/config/packages/api_platform.yaml index 9f9f543e06..31bce69f30 100644 --- a/api/config/packages/api_platform.yaml +++ b/api/config/packages/api_platform.yaml @@ -2,6 +2,7 @@ api_platform: title: eCamp v3 version: 1.0.0 show_webby: false + use_symfony_listeners: true mapping: paths: - '%kernel.project_dir%/src/Entity' From 1b1e7a75a1af95728e396edc3ab10167f513df41 Mon Sep 17 00:00:00 2001 From: Urban Suppiger Date: Tue, 30 Apr 2024 06:59:32 +0200 Subject: [PATCH 3/5] update snapshots --- ...est__testOpenApiSpecMatchesSnapshot__1.yml | 21212 +++++++--------- 1 file changed, 8542 insertions(+), 12670 deletions(-) diff --git a/api/tests/Api/SnapshotTests/__snapshots__/ResponseSnapshotTest__testOpenApiSpecMatchesSnapshot__1.yml b/api/tests/Api/SnapshotTests/__snapshots__/ResponseSnapshotTest__testOpenApiSpecMatchesSnapshot__1.yml index 7ff127bad6..e2c88ad6b9 100644 --- a/api/tests/Api/SnapshotTests/__snapshots__/ResponseSnapshotTest__testOpenApiSpecMatchesSnapshot__1.yml +++ b/api/tests/Api/SnapshotTests/__snapshots__/ResponseSnapshotTest__testOpenApiSpecMatchesSnapshot__1.yml @@ -402,10 +402,117 @@ components: - scheduleEntries - title type: object - Activity.jsonapi-read: + Activity.jsonapi: deprecated: false description: 'A piece of programme that will be carried out once or multiple times in a camp.' properties: + activityResponsibles: + items: + $ref: '#/components/schemas/ActivityResponsible.jsonapi' + readOnly: true + type: array + contentNodes: + description: 'All the content nodes that make up the tree of programme content.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + data: + properties: + attributes: + properties: + _id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string + location: + description: "The physical location where this activity's programme will be carried out." + example: Spielwiese + maxLength: 64 + type: string + title: + description: 'The title of this activity that is shown in the picasso.' + example: Sportolympiade + maxLength: 32 + type: string + required: + - location + - title + type: object + id: + type: string + relationships: + properties: + activityResponsibles: + properties: { data: { items: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object }, type: array } } + camp: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + category: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + contentNodes: + properties: { data: { items: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object }, type: array } } + progressLabel: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + rootContentNode: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + scheduleEntries: + properties: { data: { items: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object }, type: array } } + required: + - activityResponsibles + - category + - scheduleEntries + type: object + type: + type: string + required: + - id + - type + type: object + included: + description: 'Related resources requested via the "include" query parameter.' + externalDocs: + url: 'https://jsonapi.org/format/#fetching-includes' + items: + anyOf: + - [] + - + $ref: '#/components/schemas/ScheduleEntry.jsonapi' + - + $ref: '#/components/schemas/ScheduleEntry.jsonapi' + - + $ref: '#/components/schemas/ScheduleEntry.jsonapi' + - + $ref: '#/components/schemas/ScheduleEntry.jsonapi' + - + $ref: '#/components/schemas/ScheduleEntry.jsonapi' + - + $ref: '#/components/schemas/ScheduleEntry.jsonapi' + readOnly: true + type: array + scheduleEntries: + items: + $ref: '#/components/schemas/ScheduleEntry.jsonapi' + readOnly: true + type: array + type: object + Activity.jsonhal-read: + deprecated: false + description: 'A piece of programme that will be carried out once or multiple times in a camp.' + properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object activityResponsibles: description: 'The list of people that are responsible for planning or carrying out this activity.' items: @@ -455,7 +562,7 @@ components: - 'null' - string rootContentNode: - $ref: '#/components/schemas/ColumnLayout.jsonapi-read' + $ref: '#/components/schemas/ColumnLayout.jsonhal-read' description: |- The programme contents, organized as a tree of content nodes. The root content node cannot be exchanged, but all the contents attached to it can. @@ -485,13 +592,22 @@ components: - scheduleEntries - title type: object - Activity.jsonapi-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: + Activity.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: deprecated: false description: 'A piece of programme that will be carried out once or multiple times in a camp.' properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object activityResponsibles: items: - $ref: '#/components/schemas/ActivityResponsible.jsonapi-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' + $ref: '#/components/schemas/ActivityResponsible.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' readOnly: true type: array camp: @@ -530,12 +646,12 @@ components: progressLabel: anyOf: - - $ref: '#/components/schemas/ActivityProgressLabel.jsonapi-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' + $ref: '#/components/schemas/ActivityProgressLabel.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' - type: 'null' readOnly: true rootContentNode: - $ref: '#/components/schemas/ColumnLayout.jsonapi-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' + $ref: '#/components/schemas/ColumnLayout.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' description: |- The programme contents, organized as a tree of content nodes. The root content node cannot be exchanged, but all the contents attached to it can. @@ -543,7 +659,7 @@ components: readOnly: true scheduleEntries: items: - $ref: '#/components/schemas/ScheduleEntry.jsonapi-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' + $ref: '#/components/schemas/ScheduleEntry.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' readOnly: true type: array title: @@ -558,13 +674,22 @@ components: - scheduleEntries - title type: object - Activity.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: + Activity.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: deprecated: false description: 'A piece of programme that will be carried out once or multiple times in a camp.' properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object activityResponsibles: items: - $ref: '#/components/schemas/ActivityResponsible.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' + $ref: '#/components/schemas/ActivityResponsible.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' readOnly: true type: array camp: @@ -576,7 +701,7 @@ components: category: anyOf: - - $ref: '#/components/schemas/Category.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' + $ref: '#/components/schemas/Category.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' - type: 'null' readOnly: true @@ -603,12 +728,12 @@ components: progressLabel: anyOf: - - $ref: '#/components/schemas/ActivityProgressLabel.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' + $ref: '#/components/schemas/ActivityProgressLabel.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' - type: 'null' readOnly: true rootContentNode: - $ref: '#/components/schemas/ColumnLayout.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' + $ref: '#/components/schemas/ColumnLayout.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' description: |- The programme contents, organized as a tree of content nodes. The root content node cannot be exchanged, but all the contents attached to it can. @@ -616,7 +741,7 @@ components: readOnly: true scheduleEntries: items: - $ref: '#/components/schemas/ScheduleEntry.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' + $ref: '#/components/schemas/ScheduleEntry.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' readOnly: true type: array title: @@ -631,10 +756,19 @@ components: - scheduleEntries - title type: object - Activity.jsonapi-read_ScheduleEntry.Activity: + Activity.jsonhal-read_ScheduleEntry.Activity: deprecated: false description: '' properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object activityResponsibles: description: 'The list of people that are responsible for planning or carrying out this activity.' items: @@ -684,7 +818,7 @@ components: - 'null' - string rootContentNode: - $ref: '#/components/schemas/ColumnLayout.jsonapi-read_ScheduleEntry.Activity' + $ref: '#/components/schemas/ColumnLayout.jsonhal-read_ScheduleEntry.Activity' description: |- The programme contents, organized as a tree of content nodes. The root content node cannot be exchanged, but all the contents attached to it can. @@ -714,43 +848,19 @@ components: - scheduleEntries - title type: object - Activity.jsonapi-write: - deprecated: false - description: 'A piece of programme that will be carried out once or multiple times in a camp.' - properties: - category: - description: |- - The category to which this activity belongs. The category determines color and numbering scheme - of the activity, and is used for marking similar activities. Must be in the same camp as the activity. - example: /categories/1a2b3c4d - format: iri-reference - type: string - location: - description: "The physical location where this activity's programme will be carried out." - example: Spielwiese - maxLength: 64 - type: string - progressLabel: - description: 'The current assigned ProgressLabel.' - example: /progress_labels/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - title: - description: 'The title of this activity that is shown in the picasso.' - example: Sportolympiade - maxLength: 32 - type: string - required: - - category - - location - - title - type: object - Activity.jsonapi-write_create: + Activity.jsonhal-write_create: deprecated: false description: 'A piece of programme that will be carried out once or multiple times in a camp.' properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object category: description: |- The category to which this activity belongs. The category determines color and numbering scheme @@ -785,7 +895,7 @@ components: period: /periods/1a2b3c4a start: '2023-05-01T15:00:00+00:00' items: - $ref: '#/components/schemas/ScheduleEntry.jsonapi-write_create' + $ref: '#/components/schemas/ScheduleEntry.jsonhal-write_create' minItems: 1 type: array title: @@ -799,19 +909,33 @@ components: - scheduleEntries - title type: object - Activity.jsonhal-read: + Activity.jsonld-read: deprecated: false description: 'A piece of programme that will be carried out once or multiple times in a camp.' properties: - _links: - properties: - self: + '@context': + oneOf: + - + additionalProperties: true properties: - href: - format: iri-reference + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] type: string + required: + - '@vocab' + - hydra type: object - type: object + - + type: string + readOnly: true + '@id': + readOnly: true + type: string + '@type': + readOnly: true + type: string activityResponsibles: description: 'The list of people that are responsible for planning or carrying out this activity.' items: @@ -861,7 +985,7 @@ components: - 'null' - string rootContentNode: - $ref: '#/components/schemas/ColumnLayout.jsonhal-read' + $ref: '#/components/schemas/ColumnLayout.jsonld-read' description: |- The programme contents, organized as a tree of content nodes. The root content node cannot be exchanged, but all the contents attached to it can. @@ -891,22 +1015,19 @@ components: - scheduleEntries - title type: object - Activity.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: + Activity.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: deprecated: false description: 'A piece of programme that will be carried out once or multiple times in a camp.' properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object + '@id': + readOnly: true + type: string + '@type': + readOnly: true + type: string activityResponsibles: items: - $ref: '#/components/schemas/ActivityResponsible.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' + $ref: '#/components/schemas/ActivityResponsible.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' readOnly: true type: array camp: @@ -945,12 +1066,12 @@ components: progressLabel: anyOf: - - $ref: '#/components/schemas/ActivityProgressLabel.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' + $ref: '#/components/schemas/ActivityProgressLabel.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' - type: 'null' readOnly: true rootContentNode: - $ref: '#/components/schemas/ColumnLayout.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' + $ref: '#/components/schemas/ColumnLayout.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' description: |- The programme contents, organized as a tree of content nodes. The root content node cannot be exchanged, but all the contents attached to it can. @@ -958,7 +1079,7 @@ components: readOnly: true scheduleEntries: items: - $ref: '#/components/schemas/ScheduleEntry.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' + $ref: '#/components/schemas/ScheduleEntry.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' readOnly: true type: array title: @@ -973,22 +1094,36 @@ components: - scheduleEntries - title type: object - Activity.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: + Activity.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: deprecated: false description: 'A piece of programme that will be carried out once or multiple times in a camp.' properties: - _links: - properties: - self: + '@context': + oneOf: + - + additionalProperties: true properties: - href: - format: iri-reference + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] type: string + required: + - '@vocab' + - hydra type: object - type: object + - + type: string + readOnly: true + '@id': + readOnly: true + type: string + '@type': + readOnly: true + type: string activityResponsibles: items: - $ref: '#/components/schemas/ActivityResponsible.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' + $ref: '#/components/schemas/ActivityResponsible.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' readOnly: true type: array camp: @@ -1000,7 +1135,7 @@ components: category: anyOf: - - $ref: '#/components/schemas/Category.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' + $ref: '#/components/schemas/Category.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' - type: 'null' readOnly: true @@ -1027,12 +1162,12 @@ components: progressLabel: anyOf: - - $ref: '#/components/schemas/ActivityProgressLabel.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' + $ref: '#/components/schemas/ActivityProgressLabel.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' - type: 'null' readOnly: true rootContentNode: - $ref: '#/components/schemas/ColumnLayout.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' + $ref: '#/components/schemas/ColumnLayout.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' description: |- The programme contents, organized as a tree of content nodes. The root content node cannot be exchanged, but all the contents attached to it can. @@ -1040,7 +1175,7 @@ components: readOnly: true scheduleEntries: items: - $ref: '#/components/schemas/ScheduleEntry.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' + $ref: '#/components/schemas/ScheduleEntry.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' readOnly: true type: array title: @@ -1055,24 +1190,38 @@ components: - scheduleEntries - title type: object - Activity.jsonhal-read_ScheduleEntry.Activity: + Activity.jsonld-read_ScheduleEntry.Activity: deprecated: false description: '' properties: - _links: - properties: - self: + '@context': + oneOf: + - + additionalProperties: true properties: - href: - format: iri-reference + '@vocab': type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] + type: string + required: + - '@vocab' + - hydra type: object - type: object - activityResponsibles: - description: 'The list of people that are responsible for planning or carrying out this activity.' - items: - example: 'https://example.com/' - format: iri-reference + - + type: string + readOnly: true + '@id': + readOnly: true + type: string + '@type': + readOnly: true + type: string + activityResponsibles: + description: 'The list of people that are responsible for planning or carrying out this activity.' + items: + example: 'https://example.com/' + format: iri-reference type: string readOnly: true type: array @@ -1117,7 +1266,7 @@ components: - 'null' - string rootContentNode: - $ref: '#/components/schemas/ColumnLayout.jsonhal-read_ScheduleEntry.Activity' + $ref: '#/components/schemas/ColumnLayout.jsonld-read_ScheduleEntry.Activity' description: |- The programme contents, organized as a tree of content nodes. The root content node cannot be exchanged, but all the contents attached to it can. @@ -1147,19 +1296,10 @@ components: - scheduleEntries - title type: object - Activity.jsonhal-write_create: + Activity.jsonld-write_create: deprecated: false description: 'A piece of programme that will be carried out once or multiple times in a camp.' properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object category: description: |- The category to which this activity belongs. The category determines color and numbering scheme @@ -1194,7 +1334,7 @@ components: period: /periods/1a2b3c4a start: '2023-05-01T15:00:00+00:00' items: - $ref: '#/components/schemas/ScheduleEntry.jsonhal-write_create' + $ref: '#/components/schemas/ScheduleEntry.jsonld-write_create' minItems: 1 type: array title: @@ -1208,451 +1348,203 @@ components: - scheduleEntries - title type: object - Activity.jsonld-read: + ActivityProgressLabel-read: deprecated: false - description: 'A piece of programme that will be carried out once or multiple times in a camp.' + description: |- + Progress labels in a camp. + To each activity one label can be assigned. properties: - '@context': - oneOf: - - - additionalProperties: true - properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] - type: string - required: - - '@vocab' - - hydra - type: object - - - type: string - readOnly: true - '@id': - readOnly: true - type: string - '@type': - readOnly: true - type: string - activityResponsibles: - description: 'The list of people that are responsible for planning or carrying out this activity.' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array camp: - description: 'The camp to which this activity belongs.' + description: 'The camp to which this label belongs.' example: /camps/1a2b3c4d format: iri-reference - readOnly: true - type: string - category: - description: |- - The category to which this activity belongs. The category determines color and numbering scheme - of the activity, and is used for marking similar activities. Must be in the same camp as the activity. - example: /categories/1a2b3c4d - format: iri-reference type: string - contentNodes: - description: 'All the content nodes that make up the tree of programme content.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - location: - description: "The physical location where this activity's programme will be carried out." - example: Spielwiese - maxLength: 64 - type: string - progressLabel: - description: 'The current assigned ProgressLabel.' - example: /progress_labels/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - rootContentNode: - $ref: '#/components/schemas/ColumnLayout.jsonld-read' - description: |- - The programme contents, organized as a tree of content nodes. The root content node cannot be - exchanged, but all the contents attached to it can. - example: /content_nodes/1a2b3c4d - readOnly: true - scheduleEntries: - description: "The list of points in time when this activity's programme will be carried out." - example: - - - end: '2023-05-01T16:00:00+00:00' - period: /periods/1a2b3c4a - start: '2023-05-01T15:00:00+00:00' - items: - example: 'https://example.com/' - format: iri-reference - type: string - type: array + position: + default: -1 + example: -1 + type: integer title: - description: 'The title of this activity that is shown in the picasso.' - example: Sportolympiade + example: Planned maxLength: 32 type: string required: - - activityResponsibles - - category - - location - - scheduleEntries + - camp + - position - title type: object - Activity.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: + ActivityProgressLabel-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: deprecated: false - description: 'A piece of programme that will be carried out once or multiple times in a camp.' + description: '' properties: - '@id': - readOnly: true - type: string - '@type': - readOnly: true - type: string - activityResponsibles: - items: - $ref: '#/components/schemas/ActivityResponsible.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' - readOnly: true - type: array camp: - description: 'The camp to which this activity belongs.' + description: 'The camp to which this label belongs.' example: /camps/1a2b3c4d format: iri-reference - readOnly: true - type: string - category: - description: |- - The category to which this activity belongs. The category determines color and numbering scheme - of the activity, and is used for marking similar activities. Must be in the same camp as the activity. - example: /categories/1a2b3c4d - format: iri-reference type: string - contentNodes: - description: 'All the content nodes that make up the tree of programme content.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - location: - description: "The physical location where this activity's programme will be carried out." - example: Spielwiese - maxLength: 64 - type: string - progressLabel: - anyOf: - - - $ref: '#/components/schemas/ActivityProgressLabel.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' - - - type: 'null' - readOnly: true - rootContentNode: - $ref: '#/components/schemas/ColumnLayout.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' - description: |- - The programme contents, organized as a tree of content nodes. The root content node cannot be - exchanged, but all the contents attached to it can. - example: /content_nodes/1a2b3c4d - readOnly: true - scheduleEntries: - items: - $ref: '#/components/schemas/ScheduleEntry.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' - readOnly: true - type: array + position: + default: -1 + example: -1 + type: integer title: - description: 'The title of this activity that is shown in the picasso.' - example: Sportolympiade + example: Planned maxLength: 32 type: string required: - - activityResponsibles - - category - - location - - scheduleEntries + - camp + - position - title type: object - Activity.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: + ActivityProgressLabel-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: deprecated: false - description: 'A piece of programme that will be carried out once or multiple times in a camp.' + description: '' properties: - '@context': - oneOf: - - - additionalProperties: true - properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] - type: string - required: - - '@vocab' - - hydra - type: object - - - type: string - readOnly: true - '@id': - readOnly: true - type: string - '@type': - readOnly: true - type: string - activityResponsibles: - items: - $ref: '#/components/schemas/ActivityResponsible.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' - readOnly: true - type: array camp: - description: 'The camp to which this activity belongs.' + description: 'The camp to which this label belongs.' example: /camps/1a2b3c4d format: iri-reference - readOnly: true type: string - category: - anyOf: - - - $ref: '#/components/schemas/Category.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' - - - type: 'null' - readOnly: true - contentNodes: - description: 'All the content nodes that make up the tree of programme content.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - location: - description: "The physical location where this activity's programme will be carried out." - example: Spielwiese - maxLength: 64 - type: string - progressLabel: - anyOf: - - - $ref: '#/components/schemas/ActivityProgressLabel.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' - - - type: 'null' - readOnly: true - rootContentNode: - $ref: '#/components/schemas/ColumnLayout.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' - description: |- - The programme contents, organized as a tree of content nodes. The root content node cannot be - exchanged, but all the contents attached to it can. - example: /content_nodes/1a2b3c4d - readOnly: true - scheduleEntries: - items: - $ref: '#/components/schemas/ScheduleEntry.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' - readOnly: true - type: array + position: + default: -1 + example: -1 + type: integer title: - description: 'The title of this activity that is shown in the picasso.' - example: Sportolympiade + example: Planned maxLength: 32 type: string required: - - activityResponsibles - - category - - location - - scheduleEntries + - camp + - position - title type: object - Activity.jsonld-read_ScheduleEntry.Activity: + ActivityProgressLabel-write: deprecated: false - description: '' + description: |- + Progress labels in a camp. + To each activity one label can be assigned. properties: - '@context': - oneOf: - - - additionalProperties: true - properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] - type: string - required: - - '@vocab' - - hydra - type: object - - - type: string - readOnly: true - '@id': - readOnly: true - type: string - '@type': - readOnly: true - type: string - activityResponsibles: - description: 'The list of people that are responsible for planning or carrying out this activity.' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - camp: - description: 'The camp to which this activity belongs.' - example: /camps/1a2b3c4d - format: iri-reference - readOnly: true - type: string - category: - description: |- - The category to which this activity belongs. The category determines color and numbering scheme - of the activity, and is used for marking similar activities. Must be in the same camp as the activity. - example: /categories/1a2b3c4d - format: iri-reference - type: string - contentNodes: - description: 'All the content nodes that make up the tree of programme content.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - location: - description: "The physical location where this activity's programme will be carried out." - example: Spielwiese - maxLength: 64 - type: string - progressLabel: - description: 'The current assigned ProgressLabel.' - example: /progress_labels/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - rootContentNode: - $ref: '#/components/schemas/ColumnLayout.jsonld-read_ScheduleEntry.Activity' - description: |- - The programme contents, organized as a tree of content nodes. The root content node cannot be - exchanged, but all the contents attached to it can. - example: /content_nodes/1a2b3c4d - readOnly: true - scheduleEntries: - description: "The list of points in time when this activity's programme will be carried out." - example: - - - end: '2023-05-01T16:00:00+00:00' - period: /periods/1a2b3c4a - start: '2023-05-01T15:00:00+00:00' - items: - example: 'https://example.com/' - format: iri-reference - type: string - type: array + position: + default: -1 + example: -1 + type: integer title: - description: 'The title of this activity that is shown in the picasso.' - example: Sportolympiade + example: Planned maxLength: 32 type: string required: - - activityResponsibles - - category - - location - - scheduleEntries + - position - title type: object - Activity.jsonld-write_create: + ActivityProgressLabel-write_create: deprecated: false - description: 'A piece of programme that will be carried out once or multiple times in a camp.' + description: |- + Progress labels in a camp. + To each activity one label can be assigned. properties: - category: - description: |- - The category to which this activity belongs. The category determines color and numbering scheme - of the activity, and is used for marking similar activities. Must be in the same camp as the activity. - example: /categories/1a2b3c4d - format: iri-reference - type: string - copyActivitySource: - description: 'Copy contents from this source activity.' - example: /activities/1a2b3c4d + camp: + description: 'The camp to which this label belongs.' + example: /camps/1a2b3c4d format: iri-reference - type: - - 'null' - - string - location: - description: "The physical location where this activity's programme will be carried out." - example: Spielwiese - maxLength: 64 type: string - progressLabel: - description: 'The current assigned ProgressLabel.' - example: /progress_labels/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - scheduleEntries: - description: "The list of points in time when this activity's programme will be carried out." - example: - - - end: '2023-05-01T16:00:00+00:00' - period: /periods/1a2b3c4a - start: '2023-05-01T15:00:00+00:00' - items: - $ref: '#/components/schemas/ScheduleEntry.jsonld-write_create' - minItems: 1 - type: array + position: + default: -1 + example: -1 + type: integer title: - description: 'The title of this activity that is shown in the picasso.' - example: Sportolympiade + example: Planned maxLength: 32 type: string required: - - category - - location - - scheduleEntries + - camp + - position - title type: object - ActivityProgressLabel-read: + ActivityProgressLabel.jsonapi: + deprecated: false + description: |- + Progress labels in a camp. + To each activity one label can be assigned. + properties: + data: + properties: + attributes: + properties: + _id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string + position: + default: -1 + example: -1 + type: integer + title: + example: Planned + maxLength: 32 + type: string + required: + - position + - title + type: object + id: + type: string + relationships: + properties: + camp: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + required: + - camp + type: object + type: + type: string + required: + - id + - type + type: object + included: + description: 'Related resources requested via the "include" query parameter.' + externalDocs: + url: 'https://jsonapi.org/format/#fetching-includes' + items: + anyOf: + - + $ref: '#/components/schemas/Camp.jsonapi' + readOnly: true + type: array + type: object + ActivityProgressLabel.jsonhal-read: deprecated: false description: |- Progress labels in a camp. To each activity one label can be assigned. properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object camp: description: 'The camp to which this label belongs.' example: /camps/1a2b3c4d @@ -1677,10 +1569,19 @@ components: - position - title type: object - ActivityProgressLabel-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: + ActivityProgressLabel.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: deprecated: false description: '' properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object camp: description: 'The camp to which this label belongs.' example: /camps/1a2b3c4d @@ -1705,10 +1606,19 @@ components: - position - title type: object - ActivityProgressLabel-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: + ActivityProgressLabel.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: deprecated: false description: '' properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object camp: description: 'The camp to which this label belongs.' example: /camps/1a2b3c4d @@ -1733,30 +1643,21 @@ components: - position - title type: object - ActivityProgressLabel-write: - deprecated: false - description: |- - Progress labels in a camp. - To each activity one label can be assigned. - properties: - position: - default: -1 - example: -1 - type: integer - title: - example: Planned - maxLength: 32 - type: string - required: - - position - - title - type: object - ActivityProgressLabel-write_create: + ActivityProgressLabel.jsonhal-write_create: deprecated: false description: |- Progress labels in a camp. To each activity one label can be assigned. properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object camp: description: 'The camp to which this label belongs.' example: /camps/1a2b3c4d @@ -1775,12 +1676,35 @@ components: - position - title type: object - ActivityProgressLabel.jsonapi-read: + ActivityProgressLabel.jsonld-read: deprecated: false description: |- Progress labels in a camp. To each activity one label can be assigned. properties: + '@context': + oneOf: + - + additionalProperties: true + properties: + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] + type: string + required: + - '@vocab' + - hydra + type: object + - + type: string + readOnly: true + '@id': + readOnly: true + type: string + '@type': + readOnly: true + type: string camp: description: 'The camp to which this label belongs.' example: /camps/1a2b3c4d @@ -1805,10 +1729,33 @@ components: - position - title type: object - ActivityProgressLabel.jsonapi-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: + ActivityProgressLabel.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: deprecated: false description: '' properties: + '@context': + oneOf: + - + additionalProperties: true + properties: + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] + type: string + required: + - '@vocab' + - hydra + type: object + - + type: string + readOnly: true + '@id': + readOnly: true + type: string + '@type': + readOnly: true + type: string camp: description: 'The camp to which this label belongs.' example: /camps/1a2b3c4d @@ -1833,10 +1780,33 @@ components: - position - title type: object - ActivityProgressLabel.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: + ActivityProgressLabel.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: deprecated: false description: '' properties: + '@context': + oneOf: + - + additionalProperties: true + properties: + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] + type: string + required: + - '@vocab' + - hydra + type: object + - + type: string + readOnly: true + '@id': + readOnly: true + type: string + '@type': + readOnly: true + type: string camp: description: 'The camp to which this label belongs.' example: /camps/1a2b3c4d @@ -1861,25 +1831,7 @@ components: - position - title type: object - ActivityProgressLabel.jsonapi-write: - deprecated: false - description: |- - Progress labels in a camp. - To each activity one label can be assigned. - properties: - position: - default: -1 - example: -1 - type: integer - title: - example: Planned - maxLength: 32 - type: string - required: - - position - - title - type: object - ActivityProgressLabel.jsonapi-write_create: + ActivityProgressLabel.jsonld-write_create: deprecated: false description: |- Progress labels in a camp. @@ -1903,24 +1855,18 @@ components: - position - title type: object - ActivityProgressLabel.jsonhal-read: + ActivityResponsible-read: deprecated: false - description: |- - Progress labels in a camp. - To each activity one label can be assigned. + description: 'A person that is responsible for planning or carrying out an activity.' properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object - camp: - description: 'The camp to which this label belongs.' - example: /camps/1a2b3c4d + activity: + description: 'The activity that the person is responsible for.' + example: /activities/1a2b3c4d + format: iri-reference + type: string + campCollaboration: + description: 'The person that is responsible. Must be a collaborator in the same camp as the activity.' + example: /camp_collaborations/1a2b3c4d format: iri-reference type: string id: @@ -1929,35 +1875,22 @@ components: maxLength: 16 readOnly: true type: string - position: - default: -1 - example: -1 - type: integer - title: - example: Planned - maxLength: 32 - type: string required: - - camp - - position - - title + - activity + - campCollaboration type: object - ActivityProgressLabel.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: + ActivityResponsible-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: deprecated: false description: '' properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object - camp: - description: 'The camp to which this label belongs.' - example: /camps/1a2b3c4d + activity: + description: 'The activity that the person is responsible for.' + example: /activities/1a2b3c4d + format: iri-reference + type: string + campCollaboration: + description: 'The person that is responsible. Must be a collaborator in the same camp as the activity.' + example: /camp_collaborations/1a2b3c4d format: iri-reference type: string id: @@ -1966,35 +1899,22 @@ components: maxLength: 16 readOnly: true type: string - position: - default: -1 - example: -1 - type: integer - title: - example: Planned - maxLength: 32 - type: string required: - - camp - - position - - title + - activity + - campCollaboration type: object - ActivityProgressLabel.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: + ActivityResponsible-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: deprecated: false description: '' properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object - camp: - description: 'The camp to which this label belongs.' - example: /camps/1a2b3c4d + activity: + description: 'The activity that the person is responsible for.' + example: /activities/1a2b3c4d + format: iri-reference + type: string + campCollaboration: + description: 'The person that is responsible. Must be a collaborator in the same camp as the activity.' + example: /camp_collaborations/1a2b3c4d format: iri-reference type: string id: @@ -2003,57 +1923,203 @@ components: maxLength: 16 readOnly: true type: string - position: - default: -1 - example: -1 - type: integer - title: - example: Planned - maxLength: 32 + required: + - activity + - campCollaboration + type: object + ActivityResponsible-write: + deprecated: false + description: 'A person that is responsible for planning or carrying out an activity.' + properties: + activity: + description: 'The activity that the person is responsible for.' + example: /activities/1a2b3c4d + format: iri-reference + type: string + campCollaboration: + description: 'The person that is responsible. Must be a collaborator in the same camp as the activity.' + example: /camp_collaborations/1a2b3c4d + format: iri-reference type: string required: - - camp - - position - - title + - activity + - campCollaboration type: object - ActivityProgressLabel.jsonhal-write_create: + ActivityResponsible.jsonapi: deprecated: false - description: |- - Progress labels in a camp. - To each activity one label can be assigned. + description: 'A person that is responsible for planning or carrying out an activity.' properties: - _links: + data: properties: - self: + attributes: properties: - href: - format: iri-reference + _id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true type: string type: object + id: + type: string + relationships: + properties: + activity: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + campCollaboration: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + required: + - activity + - campCollaboration + type: object + type: + type: string + required: + - id + - type type: object - camp: - description: 'The camp to which this label belongs.' - example: /camps/1a2b3c4d + included: + description: 'Related resources requested via the "include" query parameter.' + externalDocs: + url: 'https://jsonapi.org/format/#fetching-includes' + items: + anyOf: + - + $ref: '#/components/schemas/Activity.jsonapi' + - + $ref: '#/components/schemas/Activity.jsonapi' + readOnly: true + type: array + type: object + ActivityResponsible.jsonhal-read: + deprecated: false + description: 'A person that is responsible for planning or carrying out an activity.' + properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object + activity: + description: 'The activity that the person is responsible for.' + example: /activities/1a2b3c4d format: iri-reference type: string - position: - default: -1 - example: -1 - type: integer - title: - example: Planned - maxLength: 32 + campCollaboration: + description: 'The person that is responsible. Must be a collaborator in the same camp as the activity.' + example: /camp_collaborations/1a2b3c4d + format: iri-reference + type: string + id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true type: string required: - - camp - - position - - title + - activity + - campCollaboration type: object - ActivityProgressLabel.jsonld-read: + ActivityResponsible.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: deprecated: false - description: |- - Progress labels in a camp. - To each activity one label can be assigned. + description: '' + properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object + activity: + description: 'The activity that the person is responsible for.' + example: /activities/1a2b3c4d + format: iri-reference + type: string + campCollaboration: + description: 'The person that is responsible. Must be a collaborator in the same camp as the activity.' + example: /camp_collaborations/1a2b3c4d + format: iri-reference + type: string + id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string + required: + - activity + - campCollaboration + type: object + ActivityResponsible.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: + deprecated: false + description: '' + properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object + activity: + description: 'The activity that the person is responsible for.' + example: /activities/1a2b3c4d + format: iri-reference + type: string + campCollaboration: + description: 'The person that is responsible. Must be a collaborator in the same camp as the activity.' + example: /camp_collaborations/1a2b3c4d + format: iri-reference + type: string + id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string + required: + - activity + - campCollaboration + type: object + ActivityResponsible.jsonhal-write: + deprecated: false + description: 'A person that is responsible for planning or carrying out an activity.' + properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object + activity: + description: 'The activity that the person is responsible for.' + example: /activities/1a2b3c4d + format: iri-reference + type: string + campCollaboration: + description: 'The person that is responsible. Must be a collaborator in the same camp as the activity.' + example: /camp_collaborations/1a2b3c4d + format: iri-reference + type: string + required: + - activity + - campCollaboration + type: object + ActivityResponsible.jsonld-read: + deprecated: false + description: 'A person that is responsible for planning or carrying out an activity.' properties: '@context': oneOf: @@ -2078,9 +2144,14 @@ components: '@type': readOnly: true type: string - camp: - description: 'The camp to which this label belongs.' - example: /camps/1a2b3c4d + activity: + description: 'The activity that the person is responsible for.' + example: /activities/1a2b3c4d + format: iri-reference + type: string + campCollaboration: + description: 'The person that is responsible. Must be a collaborator in the same camp as the activity.' + example: /camp_collaborations/1a2b3c4d format: iri-reference type: string id: @@ -2089,20 +2160,11 @@ components: maxLength: 16 readOnly: true type: string - position: - default: -1 - example: -1 - type: integer - title: - example: Planned - maxLength: 32 - type: string required: - - camp - - position - - title + - activity + - campCollaboration type: object - ActivityProgressLabel.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: + ActivityResponsible.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: deprecated: false description: '' properties: @@ -2129,9 +2191,14 @@ components: '@type': readOnly: true type: string - camp: - description: 'The camp to which this label belongs.' - example: /camps/1a2b3c4d + activity: + description: 'The activity that the person is responsible for.' + example: /activities/1a2b3c4d + format: iri-reference + type: string + campCollaboration: + description: 'The person that is responsible. Must be a collaborator in the same camp as the activity.' + example: /camp_collaborations/1a2b3c4d format: iri-reference type: string id: @@ -2140,20 +2207,11 @@ components: maxLength: 16 readOnly: true type: string - position: - default: -1 - example: -1 - type: integer - title: - example: Planned - maxLength: 32 - type: string required: - - camp - - position - - title + - activity + - campCollaboration type: object - ActivityProgressLabel.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: + ActivityResponsible.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: deprecated: false description: '' properties: @@ -2180,58 +2238,6 @@ components: '@type': readOnly: true type: string - camp: - description: 'The camp to which this label belongs.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - position: - default: -1 - example: -1 - type: integer - title: - example: Planned - maxLength: 32 - type: string - required: - - camp - - position - - title - type: object - ActivityProgressLabel.jsonld-write_create: - deprecated: false - description: |- - Progress labels in a camp. - To each activity one label can be assigned. - properties: - camp: - description: 'The camp to which this label belongs.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - position: - default: -1 - example: -1 - type: integer - title: - example: Planned - maxLength: 32 - type: string - required: - - camp - - position - - title - type: object - ActivityResponsible-read: - deprecated: false - description: 'A person that is responsible for planning or carrying out an activity.' - properties: activity: description: 'The activity that the person is responsible for.' example: /activities/1a2b3c4d @@ -2252,9 +2258,9 @@ components: - activity - campCollaboration type: object - ActivityResponsible-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: + ActivityResponsible.jsonld-write: deprecated: false - description: '' + description: 'A person that is responsible for planning or carrying out an activity.' properties: activity: description: 'The activity that the person is responsible for.' @@ -2266,71 +2272,98 @@ components: example: /camp_collaborations/1a2b3c4d format: iri-reference type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string required: - activity - campCollaboration type: object - ActivityResponsible-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: + Camp-read: deprecated: false - description: '' + description: |- + The main entity that eCamp is designed to manage. Contains programme which may be + distributed across multiple time periods. properties: - activity: - description: 'The activity that the person is responsible for.' - example: /activities/1a2b3c4d - format: iri-reference - type: string - campCollaboration: - description: 'The person that is responsible. Must be a collaborator in the same camp as the activity.' - example: /camp_collaborations/1a2b3c4d - format: iri-reference - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 + activities: + description: |- + All the programme that will be carried out during the camp. An activity may be carried out + multiple times in the same camp. + example: '/activities?camp=%2Fcamps%2F1a2b3c4d' + items: + example: 'https://example.com/' + format: iri-reference + type: string readOnly: true - type: string - required: - - activity - - campCollaboration - type: object - ActivityResponsible-write: - deprecated: false - description: 'A person that is responsible for planning or carrying out an activity.' - properties: - activity: - description: 'The activity that the person is responsible for.' - example: /activities/1a2b3c4d - format: iri-reference - type: string - campCollaboration: - description: 'The person that is responsible. Must be a collaborator in the same camp as the activity.' - example: /camp_collaborations/1a2b3c4d - format: iri-reference - type: string - required: - - activity - - campCollaboration - type: object - ActivityResponsible.jsonapi-read: - deprecated: false - description: 'A person that is responsible for planning or carrying out an activity.' - properties: - activity: - description: 'The activity that the person is responsible for.' - example: /activities/1a2b3c4d - format: iri-reference - type: string - campCollaboration: - description: 'The person that is responsible. Must be a collaborator in the same camp as the activity.' - example: /camp_collaborations/1a2b3c4d + type: array + addressCity: + description: 'The name of the town where the camp will take place.' + example: Hintertüpfingen + maxLength: 128 + type: + - 'null' + - string + addressName: + description: 'A textual description of the location of the camp.' + example: 'Wiese hinter der alten Mühle' + maxLength: 128 + type: + - 'null' + - string + addressStreet: + description: 'The street name and number (if any) of the location of the camp.' + example: 'Schönriedweg 23' + maxLength: 128 + type: + - 'null' + - string + addressZipcode: + description: 'The zipcode of the location of the camp.' + example: '1234' + maxLength: 128 + type: + - 'null' + - string + campCollaborations: + items: + example: 'https://example.com/' + format: iri-reference + type: string + type: array + categories: + description: 'Types of programme, such as sports activities or meal times.' + example: '["/categories/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + coachName: + description: 'The name of the Y+S coach who is in charge of the camp.' + example: 'Albert Anderegg' + maxLength: 64 + type: + - 'null' + - string + courseKind: + description: 'The official name for the type of this course.' + example: 'PBS AG 123-23' + maxLength: 64 + type: + - 'null' + - string + courseNumber: + description: 'The official course number, identifying this course.' + example: 'PBS AG 123-23' + maxLength: 64 + type: + - 'null' + - string + creator: + description: |- + The person that created the camp. This value never changes, even when the person + leaves the camp. + example: 'https://example.com/' format: iri-reference + readOnly: true type: string id: description: 'An internal, unique, randomly generated identifier of this entity.' @@ -2338,47 +2371,195 @@ components: maxLength: 16 readOnly: true type: string - required: - - activity - - campCollaboration - type: object - ActivityResponsible.jsonapi-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: - deprecated: false - description: '' - properties: - activity: - description: 'The activity that the person is responsible for.' - example: /activities/1a2b3c4d - format: iri-reference - type: string - campCollaboration: - description: 'The person that is responsible. Must be a collaborator in the same camp as the activity.' - example: /camp_collaborations/1a2b3c4d - format: iri-reference + isPrototype: + description: 'Whether this camp may serve as a template for creating other camps.' + example: true + readOnly: true + type: boolean + kind: + description: 'Rough categorization of the camp (house, tent, traveling, summer, autumn).' + example: Zeltlager + maxLength: 64 + type: + - 'null' + - string + materialLists: + description: |- + Lists for collecting the required materials needed for carrying out the programme. Each collaborator + has a material list, and there may be more, such as shopping lists. + example: '["/material_lists/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + motto: + description: "The thematic topic (if any) of the camp's programme and storyline." + example: Piraten + maxLength: 128 + type: + - 'null' + - string + name: + description: 'A short name for the camp.' + example: 'SoLa 2022' + maxLength: 32 type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 + organizer: + description: 'The name of the organization which plans and carries out the camp.' + example: 'Pfadi Luftig' + maxLength: 64 + type: + - 'null' + - string + periods: + description: 'The time periods of the camp, there must be at least one. Periods in a camp may not overlap.' + example: + - + description: Hauptlager + end: '2022-01-08' + start: '2022-01-01' + items: + example: 'https://example.com/' + format: iri-reference + type: string + type: array + printYSLogoOnPicasso: + description: 'Whether the Y+S logo should be printed on the picasso of this camp.' + example: true + type: boolean + profiles: + description: 'All profiles of the users collaborating in this camp.' + example: '/profiles?user.collaborations.camp=%2Fcamps%2F1a2b3c4d' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + progressLabels: + description: 'All the progress labels within this camp.' + example: '["/progress_labels/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string readOnly: true + type: array + title: + description: 'The full title of the camp.' + example: 'Abteilungs-Sommerlager 2022' + maxLength: 32 type: string + trainingAdvisorName: + description: 'The name of the training advisor who is in charge of the course.' + example: 'Albert Anderegg' + maxLength: 64 + type: + - 'null' + - string required: - - activity - - campCollaboration + - activities + - campCollaborations + - categories + - materialLists + - name + - periods + - printYSLogoOnPicasso + - progressLabels + - title type: object - ActivityResponsible.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: + Camp-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: deprecated: false - description: '' + description: |- + The main entity that eCamp is designed to manage. Contains programme which may be + distributed across multiple time periods. properties: - activity: - description: 'The activity that the person is responsible for.' - example: /activities/1a2b3c4d - format: iri-reference - type: string - campCollaboration: - description: 'The person that is responsible. Must be a collaborator in the same camp as the activity.' - example: /camp_collaborations/1a2b3c4d + activities: + description: |- + All the programme that will be carried out during the camp. An activity may be carried out + multiple times in the same camp. + example: '/activities?camp=%2Fcamps%2F1a2b3c4d' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + addressCity: + description: 'The name of the town where the camp will take place.' + example: Hintertüpfingen + maxLength: 128 + type: + - 'null' + - string + addressName: + description: 'A textual description of the location of the camp.' + example: 'Wiese hinter der alten Mühle' + maxLength: 128 + type: + - 'null' + - string + addressStreet: + description: 'The street name and number (if any) of the location of the camp.' + example: 'Schönriedweg 23' + maxLength: 128 + type: + - 'null' + - string + addressZipcode: + description: 'The zipcode of the location of the camp.' + example: '1234' + maxLength: 128 + type: + - 'null' + - string + campCollaborations: + description: |- + The people working on planning and carrying out the camp. Only collaborators have access + to the camp's contents. + items: + $ref: '#/components/schemas/CampCollaboration-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' + readOnly: true + type: array + categories: + description: 'Types of programme, such as sports activities or meal times.' + example: '["/categories/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + coachName: + description: 'The name of the Y+S coach who is in charge of the camp.' + example: 'Albert Anderegg' + maxLength: 64 + type: + - 'null' + - string + courseKind: + description: 'The official name for the type of this course.' + example: 'PBS AG 123-23' + maxLength: 64 + type: + - 'null' + - string + courseNumber: + description: 'The official course number, identifying this course.' + example: 'PBS AG 123-23' + maxLength: 64 + type: + - 'null' + - string + creator: + description: |- + The person that created the camp. This value never changes, even when the person + leaves the camp. + example: 'https://example.com/' format: iri-reference + readOnly: true type: string id: description: 'An internal, unique, randomly generated identifier of this entity.' @@ -2386,318 +2567,101 @@ components: maxLength: 16 readOnly: true type: string - required: - - activity - - campCollaboration - type: object - ActivityResponsible.jsonapi-write: - deprecated: false - description: 'A person that is responsible for planning or carrying out an activity.' - properties: - activity: - description: 'The activity that the person is responsible for.' - example: /activities/1a2b3c4d - format: iri-reference - type: string - campCollaboration: - description: 'The person that is responsible. Must be a collaborator in the same camp as the activity.' - example: /camp_collaborations/1a2b3c4d - format: iri-reference - type: string - required: - - activity - - campCollaboration - type: object - ActivityResponsible.jsonhal-read: - deprecated: false - description: 'A person that is responsible for planning or carrying out an activity.' - properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object - activity: - description: 'The activity that the person is responsible for.' - example: /activities/1a2b3c4d - format: iri-reference - type: string - campCollaboration: - description: 'The person that is responsible. Must be a collaborator in the same camp as the activity.' - example: /camp_collaborations/1a2b3c4d - format: iri-reference + isPrototype: + description: 'Whether this camp may serve as a template for creating other camps.' + example: true + readOnly: true + type: boolean + kind: + description: 'Rough categorization of the camp (house, tent, traveling, summer, autumn).' + example: Zeltlager + maxLength: 64 + type: + - 'null' + - string + materialLists: + description: |- + Lists for collecting the required materials needed for carrying out the programme. Each collaborator + has a material list, and there may be more, such as shopping lists. + example: '["/material_lists/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + motto: + description: "The thematic topic (if any) of the camp's programme and storyline." + example: Piraten + maxLength: 128 + type: + - 'null' + - string + name: + description: 'A short name for the camp.' + example: 'SoLa 2022' + maxLength: 32 type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 + organizer: + description: 'The name of the organization which plans and carries out the camp.' + example: 'Pfadi Luftig' + maxLength: 64 + type: + - 'null' + - string + periods: + items: + $ref: '#/components/schemas/Period-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' + readOnly: true + type: array + printYSLogoOnPicasso: + description: 'Whether the Y+S logo should be printed on the picasso of this camp.' + example: true + type: boolean + profiles: + description: 'All profiles of the users collaborating in this camp.' + example: '/profiles?user.collaborations.camp=%2Fcamps%2F1a2b3c4d' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + progressLabels: + description: 'All the progress labels within this camp.' + example: '["/progress_labels/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string readOnly: true + type: array + title: + description: 'The full title of the camp.' + example: 'Abteilungs-Sommerlager 2022' + maxLength: 32 type: string + trainingAdvisorName: + description: 'The name of the training advisor who is in charge of the course.' + example: 'Albert Anderegg' + maxLength: 64 + type: + - 'null' + - string required: - - activity - - campCollaboration + - activities + - campCollaborations + - categories + - materialLists + - name + - periods + - printYSLogoOnPicasso + - progressLabels + - title type: object - ActivityResponsible.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: + Camp-read_CampCollaboration.Camp_CampCollaboration.User: deprecated: false description: '' - properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object - activity: - description: 'The activity that the person is responsible for.' - example: /activities/1a2b3c4d - format: iri-reference - type: string - campCollaboration: - description: 'The person that is responsible. Must be a collaborator in the same camp as the activity.' - example: /camp_collaborations/1a2b3c4d - format: iri-reference - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - required: - - activity - - campCollaboration - type: object - ActivityResponsible.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: - deprecated: false - description: '' - properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object - activity: - description: 'The activity that the person is responsible for.' - example: /activities/1a2b3c4d - format: iri-reference - type: string - campCollaboration: - description: 'The person that is responsible. Must be a collaborator in the same camp as the activity.' - example: /camp_collaborations/1a2b3c4d - format: iri-reference - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - required: - - activity - - campCollaboration - type: object - ActivityResponsible.jsonhal-write: - deprecated: false - description: 'A person that is responsible for planning or carrying out an activity.' - properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object - activity: - description: 'The activity that the person is responsible for.' - example: /activities/1a2b3c4d - format: iri-reference - type: string - campCollaboration: - description: 'The person that is responsible. Must be a collaborator in the same camp as the activity.' - example: /camp_collaborations/1a2b3c4d - format: iri-reference - type: string - required: - - activity - - campCollaboration - type: object - ActivityResponsible.jsonld-read: - deprecated: false - description: 'A person that is responsible for planning or carrying out an activity.' - properties: - '@context': - oneOf: - - - additionalProperties: true - properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] - type: string - required: - - '@vocab' - - hydra - type: object - - - type: string - readOnly: true - '@id': - readOnly: true - type: string - '@type': - readOnly: true - type: string - activity: - description: 'The activity that the person is responsible for.' - example: /activities/1a2b3c4d - format: iri-reference - type: string - campCollaboration: - description: 'The person that is responsible. Must be a collaborator in the same camp as the activity.' - example: /camp_collaborations/1a2b3c4d - format: iri-reference - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - required: - - activity - - campCollaboration - type: object - ActivityResponsible.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: - deprecated: false - description: '' - properties: - '@context': - oneOf: - - - additionalProperties: true - properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] - type: string - required: - - '@vocab' - - hydra - type: object - - - type: string - readOnly: true - '@id': - readOnly: true - type: string - '@type': - readOnly: true - type: string - activity: - description: 'The activity that the person is responsible for.' - example: /activities/1a2b3c4d - format: iri-reference - type: string - campCollaboration: - description: 'The person that is responsible. Must be a collaborator in the same camp as the activity.' - example: /camp_collaborations/1a2b3c4d - format: iri-reference - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - required: - - activity - - campCollaboration - type: object - ActivityResponsible.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: - deprecated: false - description: '' - properties: - '@context': - oneOf: - - - additionalProperties: true - properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] - type: string - required: - - '@vocab' - - hydra - type: object - - - type: string - readOnly: true - '@id': - readOnly: true - type: string - '@type': - readOnly: true - type: string - activity: - description: 'The activity that the person is responsible for.' - example: /activities/1a2b3c4d - format: iri-reference - type: string - campCollaboration: - description: 'The person that is responsible. Must be a collaborator in the same camp as the activity.' - example: /camp_collaborations/1a2b3c4d - format: iri-reference - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - required: - - activity - - campCollaboration - type: object - ActivityResponsible.jsonld-write: - deprecated: false - description: 'A person that is responsible for planning or carrying out an activity.' - properties: - activity: - description: 'The activity that the person is responsible for.' - example: /activities/1a2b3c4d - format: iri-reference - type: string - campCollaboration: - description: 'The person that is responsible. Must be a collaborator in the same camp as the activity.' - example: /camp_collaborations/1a2b3c4d - format: iri-reference - type: string - required: - - activity - - campCollaboration - type: object - Camp-read: - deprecated: false - description: |- - The main entity that eCamp is designed to manage. Contains programme which may be - distributed across multiple time periods. properties: activities: description: |- @@ -2887,11 +2851,9 @@ components: - progressLabels - title type: object - Camp-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: + Camp-read_Period.Camp_Period.Days: deprecated: false - description: |- - The main entity that eCamp is designed to manage. Contains programme which may be - distributed across multiple time periods. + description: '' properties: activities: description: |- @@ -2933,12 +2895,10 @@ components: - 'null' - string campCollaborations: - description: |- - The people working on planning and carrying out the camp. Only collaborators have access - to the camp's contents. items: - $ref: '#/components/schemas/CampCollaboration-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' - readOnly: true + example: 'https://example.com/' + format: iri-reference + type: string type: array categories: description: 'Types of programme, such as sports activities or meal times.' @@ -3027,9 +2987,16 @@ components: - 'null' - string periods: + description: 'The time periods of the camp, there must be at least one. Periods in a camp may not overlap.' + example: + - + description: Hauptlager + end: '2022-01-08' + start: '2022-01-01' items: - $ref: '#/components/schemas/Period-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' - readOnly: true + example: 'https://example.com/' + format: iri-reference + type: string type: array printYSLogoOnPicasso: description: 'Whether the Y+S logo should be printed on the picasso of this camp.' @@ -3076,21 +3043,12 @@ components: - progressLabels - title type: object - Camp-read_CampCollaboration.Camp_CampCollaboration.User: + Camp-write_create: deprecated: false - description: '' + description: |- + The main entity that eCamp is designed to manage. Contains programme which may be + distributed across multiple time periods. properties: - activities: - description: |- - All the programme that will be carried out during the camp. An activity may be carried out - multiple times in the same camp. - example: '/activities?camp=%2Fcamps%2F1a2b3c4d' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array addressCity: description: 'The name of the town where the camp will take place.' example: Hintertüpfingen @@ -3119,21 +3077,14 @@ components: type: - 'null' - string - campCollaborations: - items: - example: 'https://example.com/' - format: iri-reference - type: string - type: array - categories: - description: 'Types of programme, such as sports activities or meal times.' - example: '["/categories/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array + campPrototype: + description: 'The prototype camp that will be used as a template to create this camp.' + example: /camps/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + writeOnly: true coachName: description: 'The name of the Y+S coach who is in charge of the camp.' example: 'Albert Anderegg' @@ -3155,25 +3106,6 @@ components: type: - 'null' - string - creator: - description: |- - The person that created the camp. This value never changes, even when the person - leaves the camp. - example: 'https://example.com/' - format: iri-reference - readOnly: true - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - isPrototype: - description: 'Whether this camp may serve as a template for creating other camps.' - example: true - readOnly: true - type: boolean kind: description: 'Rough categorization of the camp (house, tent, traveling, summer, autumn).' example: Zeltlager @@ -3181,17 +3113,6 @@ components: type: - 'null' - string - materialLists: - description: |- - Lists for collecting the required materials needed for carrying out the programme. Each collaborator - has a material list, and there may be more, such as shopping lists. - example: '["/material_lists/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array motto: description: "The thematic topic (if any) of the camp's programme and storyline." example: Piraten @@ -3219,32 +3140,13 @@ components: end: '2022-01-08' start: '2022-01-01' items: - example: 'https://example.com/' - format: iri-reference - type: string + $ref: '#/components/schemas/Period-write_create' + minItems: 1 type: array printYSLogoOnPicasso: description: 'Whether the Y+S logo should be printed on the picasso of this camp.' example: true type: boolean - profiles: - description: 'All profiles of the users collaborating in this camp.' - example: '/profiles?user.collaborations.camp=%2Fcamps%2F1a2b3c4d' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - progressLabels: - description: 'All the progress labels within this camp.' - example: '["/progress_labels/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array title: description: 'The full title of the camp.' example: 'Abteilungs-Sommerlager 2022' @@ -3258,31 +3160,17 @@ components: - 'null' - string required: - - activities - - campCollaborations - - categories - - materialLists - name - periods - printYSLogoOnPicasso - - progressLabels - title type: object - Camp-read_Period.Camp_Period.Days: + Camp-write_update: deprecated: false - description: '' + description: |- + The main entity that eCamp is designed to manage. Contains programme which may be + distributed across multiple time periods. properties: - activities: - description: |- - All the programme that will be carried out during the camp. An activity may be carried out - multiple times in the same camp. - example: '/activities?camp=%2Fcamps%2F1a2b3c4d' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array addressCity: description: 'The name of the town where the camp will take place.' example: Hintertüpfingen @@ -3311,21 +3199,6 @@ components: type: - 'null' - string - campCollaborations: - items: - example: 'https://example.com/' - format: iri-reference - type: string - type: array - categories: - description: 'Types of programme, such as sports activities or meal times.' - example: '["/categories/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array coachName: description: 'The name of the Y+S coach who is in charge of the camp.' example: 'Albert Anderegg' @@ -3347,25 +3220,6 @@ components: type: - 'null' - string - creator: - description: |- - The person that created the camp. This value never changes, even when the person - leaves the camp. - example: 'https://example.com/' - format: iri-reference - readOnly: true - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - isPrototype: - description: 'Whether this camp may serve as a template for creating other camps.' - example: true - readOnly: true - type: boolean kind: description: 'Rough categorization of the camp (house, tent, traveling, summer, autumn).' example: Zeltlager @@ -3373,17 +3227,6 @@ components: type: - 'null' - string - materialLists: - description: |- - Lists for collecting the required materials needed for carrying out the programme. Each collaborator - has a material list, and there may be more, such as shopping lists. - example: '["/material_lists/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array motto: description: "The thematic topic (if any) of the camp's programme and storyline." example: Piraten @@ -3403,40 +3246,10 @@ components: type: - 'null' - string - periods: - description: 'The time periods of the camp, there must be at least one. Periods in a camp may not overlap.' - example: - - - description: Hauptlager - end: '2022-01-08' - start: '2022-01-01' - items: - example: 'https://example.com/' - format: iri-reference - type: string - type: array printYSLogoOnPicasso: description: 'Whether the Y+S logo should be printed on the picasso of this camp.' example: true type: boolean - profiles: - description: 'All profiles of the users collaborating in this camp.' - example: '/profiles?user.collaborations.camp=%2Fcamps%2F1a2b3c4d' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - progressLabels: - description: 'All the progress labels within this camp.' - example: '["/progress_labels/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array title: description: 'The full title of the camp.' example: 'Abteilungs-Sommerlager 2022' @@ -3450,246 +3263,197 @@ components: - 'null' - string required: - - activities - - campCollaborations - - categories - - materialLists - name - - periods - printYSLogoOnPicasso - - progressLabels - title type: object - Camp-write_create: + Camp.jsonapi: deprecated: false description: |- The main entity that eCamp is designed to manage. Contains programme which may be distributed across multiple time periods. properties: - addressCity: - description: 'The name of the town where the camp will take place.' - example: Hintertüpfingen - maxLength: 128 - type: - - 'null' - - string - addressName: - description: 'A textual description of the location of the camp.' - example: 'Wiese hinter der alten Mühle' - maxLength: 128 - type: - - 'null' - - string - addressStreet: - description: 'The street name and number (if any) of the location of the camp.' - example: 'Schönriedweg 23' - maxLength: 128 - type: - - 'null' - - string - addressZipcode: - description: 'The zipcode of the location of the camp.' - example: '1234' - maxLength: 128 - type: - - 'null' - - string - campPrototype: - description: 'The prototype camp that will be used as a template to create this camp.' - example: /camps/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - writeOnly: true - coachName: - description: 'The name of the Y+S coach who is in charge of the camp.' - example: 'Albert Anderegg' - maxLength: 64 - type: - - 'null' - - string - courseKind: - description: 'The official name for the type of this course.' - example: 'PBS AG 123-23' - maxLength: 64 - type: - - 'null' - - string - courseNumber: - description: 'The official course number, identifying this course.' - example: 'PBS AG 123-23' - maxLength: 64 - type: - - 'null' - - string - kind: - description: 'Rough categorization of the camp (house, tent, traveling, summer, autumn).' - example: Zeltlager - maxLength: 64 - type: - - 'null' - - string - motto: - description: "The thematic topic (if any) of the camp's programme and storyline." - example: Piraten - maxLength: 128 - type: - - 'null' - - string - name: - description: 'A short name for the camp.' - example: 'SoLa 2022' - maxLength: 32 - type: string - organizer: - description: 'The name of the organization which plans and carries out the camp.' - example: 'Pfadi Luftig' - maxLength: 64 - type: - - 'null' - - string + campCollaborations: + description: |- + The people working on planning and carrying out the camp. Only collaborators have access + to the camp's contents. + items: + $ref: '#/components/schemas/CampCollaboration.jsonapi' + readOnly: true + type: array + data: + properties: + attributes: + properties: + _id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string + addressCity: + description: 'The name of the town where the camp will take place.' + example: Hintertüpfingen + maxLength: 128 + type: ['null', string] + addressName: + description: 'A textual description of the location of the camp.' + example: 'Wiese hinter der alten Mühle' + maxLength: 128 + type: ['null', string] + addressStreet: + description: 'The street name and number (if any) of the location of the camp.' + example: 'Schönriedweg 23' + maxLength: 128 + type: ['null', string] + addressZipcode: + description: 'The zipcode of the location of the camp.' + example: '1234' + maxLength: 128 + type: ['null', string] + coachName: + description: 'The name of the Y+S coach who is in charge of the camp.' + example: 'Albert Anderegg' + maxLength: 64 + type: ['null', string] + courseKind: + description: 'The official name for the type of this course.' + example: 'PBS AG 123-23' + maxLength: 64 + type: ['null', string] + courseNumber: + description: 'The official course number, identifying this course.' + example: 'PBS AG 123-23' + maxLength: 64 + type: ['null', string] + isPrototype: + description: 'Whether this camp may serve as a template for creating other camps.' + example: true + readOnly: true + type: boolean + kind: + description: 'Rough categorization of the camp (house, tent, traveling, summer, autumn).' + example: Zeltlager + maxLength: 64 + type: ['null', string] + motto: + description: "The thematic topic (if any) of the camp's programme and storyline." + example: Piraten + maxLength: 128 + type: ['null', string] + name: + description: 'A short name for the camp.' + example: 'SoLa 2022' + maxLength: 32 + type: string + organizer: + description: 'The name of the organization which plans and carries out the camp.' + example: 'Pfadi Luftig' + maxLength: 64 + type: ['null', string] + printYSLogoOnPicasso: + description: 'Whether the Y+S logo should be printed on the picasso of this camp.' + example: true + type: boolean + title: + description: 'The full title of the camp.' + example: 'Abteilungs-Sommerlager 2022' + maxLength: 32 + type: string + trainingAdvisorName: + description: 'The name of the training advisor who is in charge of the course.' + example: 'Albert Anderegg' + maxLength: 64 + type: ['null', string] + required: + - name + - printYSLogoOnPicasso + - title + type: object + id: + type: string + relationships: + properties: + activities: + properties: { data: { items: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object }, type: array } } + campCollaborations: + properties: { data: { items: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object }, type: array } } + categories: + properties: { data: { items: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object }, type: array } } + creator: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + materialLists: + properties: { data: { items: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object }, type: array } } + periods: + properties: { data: { items: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object }, type: array } } + progressLabels: + properties: { data: { items: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object }, type: array } } + required: + - activities + - campCollaborations + - categories + - materialLists + - periods + - progressLabels + type: object + type: + type: string + required: + - id + - type + type: object + included: + description: 'Related resources requested via the "include" query parameter.' + externalDocs: + url: 'https://jsonapi.org/format/#fetching-includes' + items: + anyOf: + - + $ref: '#/components/schemas/CampCollaboration.jsonapi' + - + $ref: '#/components/schemas/CampCollaboration.jsonapi' + - + $ref: '#/components/schemas/CampCollaboration.jsonapi' + - + $ref: '#/components/schemas/CampCollaboration.jsonapi' + - + $ref: '#/components/schemas/CampCollaboration.jsonapi' + - + $ref: '#/components/schemas/CampCollaboration.jsonapi' + - + $ref: '#/components/schemas/CampCollaboration.jsonapi' + readOnly: true + type: array periods: - description: 'The time periods of the camp, there must be at least one. Periods in a camp may not overlap.' - example: - - - description: Hauptlager - end: '2022-01-08' - start: '2022-01-01' items: - $ref: '#/components/schemas/Period-write_create' - minItems: 1 + $ref: '#/components/schemas/Period.jsonapi' + readOnly: true + type: array + profiles: + description: 'All profiles of the users collaborating in this camp.' + example: '/profiles?user.collaborations.camp=%2Fcamps%2F1a2b3c4d' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true type: array - printYSLogoOnPicasso: - description: 'Whether the Y+S logo should be printed on the picasso of this camp.' - example: true - type: boolean - title: - description: 'The full title of the camp.' - example: 'Abteilungs-Sommerlager 2022' - maxLength: 32 - type: string - trainingAdvisorName: - description: 'The name of the training advisor who is in charge of the course.' - example: 'Albert Anderegg' - maxLength: 64 - type: - - 'null' - - string - required: - - name - - periods - - printYSLogoOnPicasso - - title - type: object - Camp-write_update: - deprecated: false - description: |- - The main entity that eCamp is designed to manage. Contains programme which may be - distributed across multiple time periods. - properties: - addressCity: - description: 'The name of the town where the camp will take place.' - example: Hintertüpfingen - maxLength: 128 - type: - - 'null' - - string - addressName: - description: 'A textual description of the location of the camp.' - example: 'Wiese hinter der alten Mühle' - maxLength: 128 - type: - - 'null' - - string - addressStreet: - description: 'The street name and number (if any) of the location of the camp.' - example: 'Schönriedweg 23' - maxLength: 128 - type: - - 'null' - - string - addressZipcode: - description: 'The zipcode of the location of the camp.' - example: '1234' - maxLength: 128 - type: - - 'null' - - string - coachName: - description: 'The name of the Y+S coach who is in charge of the camp.' - example: 'Albert Anderegg' - maxLength: 64 - type: - - 'null' - - string - courseKind: - description: 'The official name for the type of this course.' - example: 'PBS AG 123-23' - maxLength: 64 - type: - - 'null' - - string - courseNumber: - description: 'The official course number, identifying this course.' - example: 'PBS AG 123-23' - maxLength: 64 - type: - - 'null' - - string - kind: - description: 'Rough categorization of the camp (house, tent, traveling, summer, autumn).' - example: Zeltlager - maxLength: 64 - type: - - 'null' - - string - motto: - description: "The thematic topic (if any) of the camp's programme and storyline." - example: Piraten - maxLength: 128 - type: - - 'null' - - string - name: - description: 'A short name for the camp.' - example: 'SoLa 2022' - maxLength: 32 - type: string - organizer: - description: 'The name of the organization which plans and carries out the camp.' - example: 'Pfadi Luftig' - maxLength: 64 - type: - - 'null' - - string - printYSLogoOnPicasso: - description: 'Whether the Y+S logo should be printed on the picasso of this camp.' - example: true - type: boolean - title: - description: 'The full title of the camp.' - example: 'Abteilungs-Sommerlager 2022' - maxLength: 32 - type: string - trainingAdvisorName: - description: 'The name of the training advisor who is in charge of the course.' - example: 'Albert Anderegg' - maxLength: 64 - type: - - 'null' - - string - required: - - name - - printYSLogoOnPicasso - - title type: object - Camp.jsonapi-read: + Camp.jsonhal-read: deprecated: false description: |- The main entity that eCamp is designed to manage. Contains programme which may be distributed across multiple time periods. properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object activities: description: |- All the programme that will be carried out during the camp. An activity may be carried out @@ -3878,12 +3642,21 @@ components: - progressLabels - title type: object - Camp.jsonapi-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: + Camp.jsonhal-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: deprecated: false description: |- The main entity that eCamp is designed to manage. Contains programme which may be distributed across multiple time periods. properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object activities: description: |- All the programme that will be carried out during the camp. An activity may be carried out @@ -3928,7 +3701,7 @@ components: The people working on planning and carrying out the camp. Only collaborators have access to the camp's contents. items: - $ref: '#/components/schemas/CampCollaboration.jsonapi-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' + $ref: '#/components/schemas/CampCollaboration.jsonhal-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' readOnly: true type: array categories: @@ -4019,7 +3792,7 @@ components: - string periods: items: - $ref: '#/components/schemas/Period.jsonapi-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' + $ref: '#/components/schemas/Period.jsonhal-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' readOnly: true type: array printYSLogoOnPicasso: @@ -4067,10 +3840,19 @@ components: - progressLabels - title type: object - Camp.jsonapi-read_CampCollaboration.Camp_CampCollaboration.User: + Camp.jsonhal-read_CampCollaboration.Camp_CampCollaboration.User: deprecated: false description: '' properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object activities: description: |- All the programme that will be carried out during the camp. An activity may be carried out @@ -4259,10 +4041,19 @@ components: - progressLabels - title type: object - Camp.jsonapi-read_Period.Camp_Period.Days: + Camp.jsonhal-read_Period.Camp_Period.Days: deprecated: false description: '' properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object activities: description: |- All the programme that will be carried out during the camp. An activity may be carried out @@ -4451,12 +4242,21 @@ components: - progressLabels - title type: object - Camp.jsonapi-write_create: + Camp.jsonhal-write_create: deprecated: false description: |- The main entity that eCamp is designed to manage. Contains programme which may be distributed across multiple time periods. properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object addressCity: description: 'The name of the town where the camp will take place.' example: Hintertüpfingen @@ -4548,7 +4348,7 @@ components: end: '2022-01-08' start: '2022-01-01' items: - $ref: '#/components/schemas/Period.jsonapi-write_create' + $ref: '#/components/schemas/Period.jsonhal-write_create' minItems: 1 type: array printYSLogoOnPicasso: @@ -4573,123 +4373,35 @@ components: - printYSLogoOnPicasso - title type: object - Camp.jsonapi-write_update: + Camp.jsonld-read: deprecated: false description: |- The main entity that eCamp is designed to manage. Contains programme which may be distributed across multiple time periods. properties: - addressCity: - description: 'The name of the town where the camp will take place.' - example: Hintertüpfingen - maxLength: 128 - type: - - 'null' - - string - addressName: - description: 'A textual description of the location of the camp.' - example: 'Wiese hinter der alten Mühle' - maxLength: 128 - type: - - 'null' - - string - addressStreet: - description: 'The street name and number (if any) of the location of the camp.' - example: 'Schönriedweg 23' - maxLength: 128 - type: - - 'null' - - string - addressZipcode: - description: 'The zipcode of the location of the camp.' - example: '1234' - maxLength: 128 - type: - - 'null' - - string - coachName: - description: 'The name of the Y+S coach who is in charge of the camp.' - example: 'Albert Anderegg' - maxLength: 64 - type: - - 'null' - - string - courseKind: - description: 'The official name for the type of this course.' - example: 'PBS AG 123-23' - maxLength: 64 - type: - - 'null' - - string - courseNumber: - description: 'The official course number, identifying this course.' - example: 'PBS AG 123-23' - maxLength: 64 - type: - - 'null' - - string - kind: - description: 'Rough categorization of the camp (house, tent, traveling, summer, autumn).' - example: Zeltlager - maxLength: 64 - type: - - 'null' - - string - motto: - description: "The thematic topic (if any) of the camp's programme and storyline." - example: Piraten - maxLength: 128 - type: - - 'null' - - string - name: - description: 'A short name for the camp.' - example: 'SoLa 2022' - maxLength: 32 - type: string - organizer: - description: 'The name of the organization which plans and carries out the camp.' - example: 'Pfadi Luftig' - maxLength: 64 - type: - - 'null' - - string - printYSLogoOnPicasso: - description: 'Whether the Y+S logo should be printed on the picasso of this camp.' - example: true - type: boolean - title: - description: 'The full title of the camp.' - example: 'Abteilungs-Sommerlager 2022' - maxLength: 32 - type: string - trainingAdvisorName: - description: 'The name of the training advisor who is in charge of the course.' - example: 'Albert Anderegg' - maxLength: 64 - type: - - 'null' - - string - required: - - name - - printYSLogoOnPicasso - - title - type: object - Camp.jsonhal-read: - deprecated: false - description: |- - The main entity that eCamp is designed to manage. Contains programme which may be - distributed across multiple time periods. - properties: - _links: - properties: - self: + '@context': + oneOf: + - + additionalProperties: true properties: - href: - format: iri-reference + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] type: string + required: + - '@vocab' + - hydra type: object - type: object + - + type: string + readOnly: true + '@id': + readOnly: true + type: string + '@type': + readOnly: true + type: string activities: description: |- All the programme that will be carried out during the camp. An activity may be carried out @@ -4878,21 +4590,35 @@ components: - progressLabels - title type: object - Camp.jsonhal-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: + Camp.jsonld-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: deprecated: false description: |- The main entity that eCamp is designed to manage. Contains programme which may be distributed across multiple time periods. properties: - _links: - properties: - self: + '@context': + oneOf: + - + additionalProperties: true properties: - href: - format: iri-reference + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] type: string + required: + - '@vocab' + - hydra type: object - type: object + - + type: string + readOnly: true + '@id': + readOnly: true + type: string + '@type': + readOnly: true + type: string activities: description: |- All the programme that will be carried out during the camp. An activity may be carried out @@ -4937,7 +4663,7 @@ components: The people working on planning and carrying out the camp. Only collaborators have access to the camp's contents. items: - $ref: '#/components/schemas/CampCollaboration.jsonhal-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' + $ref: '#/components/schemas/CampCollaboration.jsonld-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' readOnly: true type: array categories: @@ -5028,7 +4754,7 @@ components: - string periods: items: - $ref: '#/components/schemas/Period.jsonhal-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' + $ref: '#/components/schemas/Period.jsonld-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' readOnly: true type: array printYSLogoOnPicasso: @@ -5076,19 +4802,33 @@ components: - progressLabels - title type: object - Camp.jsonhal-read_CampCollaboration.Camp_CampCollaboration.User: + Camp.jsonld-read_CampCollaboration.Camp_CampCollaboration.User: deprecated: false description: '' properties: - _links: - properties: - self: + '@context': + oneOf: + - + additionalProperties: true properties: - href: - format: iri-reference + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] type: string + required: + - '@vocab' + - hydra type: object - type: object + - + type: string + readOnly: true + '@id': + readOnly: true + type: string + '@type': + readOnly: true + type: string activities: description: |- All the programme that will be carried out during the camp. An activity may be carried out @@ -5277,19 +5017,33 @@ components: - progressLabels - title type: object - Camp.jsonhal-read_Period.Camp_Period.Days: + Camp.jsonld-read_Period.Camp_Period.Days: deprecated: false description: '' properties: - _links: - properties: - self: + '@context': + oneOf: + - + additionalProperties: true properties: - href: - format: iri-reference + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] type: string + required: + - '@vocab' + - hydra type: object - type: object + - + type: string + readOnly: true + '@id': + readOnly: true + type: string + '@type': + readOnly: true + type: string activities: description: |- All the programme that will be carried out during the camp. An activity may be carried out @@ -5478,21 +5232,12 @@ components: - progressLabels - title type: object - Camp.jsonhal-write_create: + Camp.jsonld-write_create: deprecated: false description: |- The main entity that eCamp is designed to manage. Contains programme which may be distributed across multiple time periods. properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object addressCity: description: 'The name of the town where the camp will take place.' example: Hintertüpfingen @@ -5584,7 +5329,7 @@ components: end: '2022-01-08' start: '2022-01-01' items: - $ref: '#/components/schemas/Period.jsonhal-write_create' + $ref: '#/components/schemas/Period.jsonld-write_create' minItems: 1 type: array printYSLogoOnPicasso: @@ -5609,117 +5354,75 @@ components: - printYSLogoOnPicasso - title type: object - Camp.jsonld-read: + CampCollaboration-read: deprecated: false - description: |- - The main entity that eCamp is designed to manage. Contains programme which may be - distributed across multiple time periods. + description: 'A user participating in some way in the planning or realization of a camp.' properties: - '@context': - oneOf: - - - additionalProperties: true - properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] - type: string - required: - - '@vocab' - - hydra - type: object - - - type: string - readOnly: true - '@id': - readOnly: true - type: string - '@type': - readOnly: true + camp: + description: 'The camp that the collaborator is part of. Cannot be changed once the campCollaboration is created.' + example: /camps/1a2b3c4d + format: iri-reference type: string - activities: - description: |- - All the programme that will be carried out during the camp. An activity may be carried out - multiple times in the same camp. - example: '/activities?camp=%2Fcamps%2F1a2b3c4d' - items: - example: 'https://example.com/' - format: iri-reference - type: string + id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 readOnly: true - type: array - addressCity: - description: 'The name of the town where the camp will take place.' - example: Hintertüpfingen - maxLength: 128 - type: - - 'null' - - string - addressName: - description: 'A textual description of the location of the camp.' - example: 'Wiese hinter der alten Mühle' - maxLength: 128 - type: - - 'null' - - string - addressStreet: - description: 'The street name and number (if any) of the location of the camp.' - example: 'Schönriedweg 23' - maxLength: 128 - type: - - 'null' - - string - addressZipcode: - description: 'The zipcode of the location of the camp.' - example: '1234' + type: string + inviteEmail: + description: |- + The receiver email address of the invitation email, in case the collaboration does not yet have + a user account. Either this field or the user field should be null. + example: some-email@example.com + externalDocs: + url: 'https://schema.org/email' + format: email maxLength: 128 + minLength: 1 type: - 'null' - string - campCollaborations: - items: - example: 'https://example.com/' - format: iri-reference - type: string - type: array - categories: - description: 'Types of programme, such as sports activities or meal times.' - example: '["/categories/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - coachName: - description: 'The name of the Y+S coach who is in charge of the camp.' - example: 'Albert Anderegg' - maxLength: 64 - type: - - 'null' - - string - courseKind: - description: 'The official name for the type of this course.' - example: 'PBS AG 123-23' - maxLength: 64 - type: - - 'null' - - string - courseNumber: - description: 'The official course number, identifying this course.' - example: 'PBS AG 123-23' - maxLength: 64 + role: + description: |- + The role that this person has in the camp. Depending on the role, the collaborator might have + different access rights. There must always be at least one manager in a camp. + enum: + - guest + - manager + - member + example: member + maxLength: 16 + type: string + status: + default: invited + description: 'Indicates whether the collaborator is still invited, has left the camp, or is participating normally.' + enum: + - established + - inactive + - invited + example: inactive + maxLength: 16 + type: string + user: + description: 'The person that is collaborating in the camp. Cannot be changed once the campCollaboration is established.' + example: /users/1a2b3c4d + format: iri-reference type: - 'null' - string - creator: - description: |- - The person that created the camp. This value never changes, even when the person - leaves the camp. - example: 'https://example.com/' + required: + - camp + - role + - status + type: object + CampCollaboration-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: + deprecated: false + description: '' + properties: + camp: + description: 'The camp that the collaborator is part of. Cannot be changed once the campCollaboration is created.' + example: /camps/1a2b3c4d format: iri-reference - readOnly: true type: string id: description: 'An internal, unique, randomly generated identifier of this entity.' @@ -5727,218 +5430,284 @@ components: maxLength: 16 readOnly: true type: string - isPrototype: - description: 'Whether this camp may serve as a template for creating other camps.' - example: true - readOnly: true - type: boolean - kind: - description: 'Rough categorization of the camp (house, tent, traveling, summer, autumn).' - example: Zeltlager - maxLength: 64 - type: - - 'null' - - string - materialLists: + inviteEmail: description: |- - Lists for collecting the required materials needed for carrying out the programme. Each collaborator - has a material list, and there may be more, such as shopping lists. - example: '["/material_lists/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - motto: - description: "The thematic topic (if any) of the camp's programme and storyline." - example: Piraten + The receiver email address of the invitation email, in case the collaboration does not yet have + a user account. Either this field or the user field should be null. + example: some-email@example.com + externalDocs: + url: 'https://schema.org/email' + format: email maxLength: 128 + minLength: 1 type: - 'null' - string - name: - description: 'A short name for the camp.' - example: 'SoLa 2022' - maxLength: 32 + role: + description: |- + The role that this person has in the camp. Depending on the role, the collaborator might have + different access rights. There must always be at least one manager in a camp. + enum: + - guest + - manager + - member + example: member + maxLength: 16 type: string - organizer: - description: 'The name of the organization which plans and carries out the camp.' - example: 'Pfadi Luftig' - maxLength: 64 - type: - - 'null' - - string - periods: - description: 'The time periods of the camp, there must be at least one. Periods in a camp may not overlap.' - example: + status: + default: invited + description: 'Indicates whether the collaborator is still invited, has left the camp, or is participating normally.' + enum: + - established + - inactive + - invited + example: inactive + maxLength: 16 + type: string + user: + anyOf: - - description: Hauptlager - end: '2022-01-08' - start: '2022-01-01' - items: - example: 'https://example.com/' - format: iri-reference - type: string - type: array - printYSLogoOnPicasso: - description: 'Whether the Y+S logo should be printed on the picasso of this camp.' - example: true - type: boolean - profiles: - description: 'All profiles of the users collaborating in this camp.' - example: '/profiles?user.collaborations.camp=%2Fcamps%2F1a2b3c4d' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - progressLabels: - description: 'All the progress labels within this camp.' - example: '["/progress_labels/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string + $ref: '#/components/schemas/User-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' + - + type: 'null' readOnly: true - type: array - title: - description: 'The full title of the camp.' - example: 'Abteilungs-Sommerlager 2022' - maxLength: 32 - type: string - trainingAdvisorName: - description: 'The name of the training advisor who is in charge of the course.' - example: 'Albert Anderegg' - maxLength: 64 - type: - - 'null' - - string required: - - activities - - campCollaborations - - categories - - materialLists - - name - - periods - - printYSLogoOnPicasso - - progressLabels - - title + - camp + - role + - status type: object - Camp.jsonld-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: + CampCollaboration-read_CampCollaboration.Camp_CampCollaboration.User: deprecated: false - description: |- - The main entity that eCamp is designed to manage. Contains programme which may be - distributed across multiple time periods. + description: 'A user participating in some way in the planning or realization of a camp.' properties: - '@context': - oneOf: + camp: + anyOf: - - additionalProperties: true - properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] - type: string - required: - - '@vocab' - - hydra - type: object + $ref: '#/components/schemas/Camp-read_CampCollaboration.Camp_CampCollaboration.User' - - type: string - readOnly: true - '@id': + type: 'null' readOnly: true - type: string - '@type': + id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 readOnly: true type: string - activities: + inviteEmail: description: |- - All the programme that will be carried out during the camp. An activity may be carried out - multiple times in the same camp. - example: '/activities?camp=%2Fcamps%2F1a2b3c4d' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - addressCity: - description: 'The name of the town where the camp will take place.' - example: Hintertüpfingen - maxLength: 128 - type: - - 'null' - - string - addressName: - description: 'A textual description of the location of the camp.' - example: 'Wiese hinter der alten Mühle' + The receiver email address of the invitation email, in case the collaboration does not yet have + a user account. Either this field or the user field should be null. + example: some-email@example.com + externalDocs: + url: 'https://schema.org/email' + format: email maxLength: 128 + minLength: 1 type: - 'null' - string - addressStreet: - description: 'The street name and number (if any) of the location of the camp.' - example: 'Schönriedweg 23' + role: + description: |- + The role that this person has in the camp. Depending on the role, the collaborator might have + different access rights. There must always be at least one manager in a camp. + enum: + - guest + - manager + - member + example: member + maxLength: 16 + type: string + status: + default: invited + description: 'Indicates whether the collaborator is still invited, has left the camp, or is participating normally.' + enum: + - established + - inactive + - invited + example: inactive + maxLength: 16 + type: string + user: + anyOf: + - + $ref: '#/components/schemas/User-read_CampCollaboration.Camp_CampCollaboration.User' + - + type: 'null' + readOnly: true + required: + - camp + - role + - status + type: object + CampCollaboration-resend_invitation: + deprecated: false + description: 'A user participating in some way in the planning or realization of a camp.' + type: object + CampCollaboration-write_create: + deprecated: false + description: 'A user participating in some way in the planning or realization of a camp.' + properties: + camp: + description: 'The camp that the collaborator is part of. Cannot be changed once the campCollaboration is created.' + example: /camps/1a2b3c4d + format: iri-reference + type: string + inviteEmail: + description: |- + The receiver email address of the invitation email, in case the collaboration does not yet have + a user account. Either this field or the user field should be null. + example: some-email@example.com + externalDocs: + url: 'https://schema.org/email' + format: email maxLength: 128 + minLength: 1 type: - 'null' - string - addressZipcode: - description: 'The zipcode of the location of the camp.' - example: '1234' - maxLength: 128 + role: + description: |- + The role that this person has in the camp. Depending on the role, the collaborator might have + different access rights. There must always be at least one manager in a camp. + enum: + - guest + - manager + - member + example: member + maxLength: 16 + type: string + user: + description: 'The person that is collaborating in the camp. Cannot be changed once the campCollaboration is established.' + example: /users/1a2b3c4d + format: iri-reference type: - 'null' - string - campCollaborations: + required: + - camp + - role + type: object + CampCollaboration-write_update: + deprecated: false + description: 'A user participating in some way in the planning or realization of a camp.' + properties: + role: description: |- - The people working on planning and carrying out the camp. Only collaborators have access - to the camp's contents. - items: - $ref: '#/components/schemas/CampCollaboration.jsonld-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' - readOnly: true - type: array - categories: - description: 'Types of programme, such as sports activities or meal times.' - example: '["/categories/1a2b3c4d"]' + The role that this person has in the camp. Depending on the role, the collaborator might have + different access rights. There must always be at least one manager in a camp. + enum: + - guest + - manager + - member + example: member + maxLength: 16 + type: string + status: + default: invited + description: 'Indicates whether the collaborator is still invited, has left the camp, or is participating normally.' + enum: + - established + - inactive + - invited + example: inactive + maxLength: 16 + type: string + required: + - role + - status + type: object + CampCollaboration.jsonapi: + deprecated: false + description: 'A user participating in some way in the planning or realization of a camp.' + properties: + data: + properties: + attributes: + properties: + _id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string + inviteEmail: + description: |- + The receiver email address of the invitation email, in case the collaboration does not yet have + a user account. Either this field or the user field should be null. + example: some-email@example.com + externalDocs: { url: 'https://schema.org/email' } + format: email + maxLength: 128 + minLength: 1 + readOnly: true + type: ['null', string] + role: + description: |- + The role that this person has in the camp. Depending on the role, the collaborator might have + different access rights. There must always be at least one manager in a camp. + enum: [guest, manager, member] + example: member + maxLength: 16 + type: string + status: + default: invited + description: 'Indicates whether the collaborator is still invited, has left the camp, or is participating normally.' + enum: [established, inactive, invited] + example: inactive + maxLength: 16 + readOnly: true + type: string + required: + - role + - status + type: object + id: + type: string + relationships: + properties: + camp: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + user: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + required: + - camp + type: object + type: + type: string + required: + - id + - type + type: object + included: + description: 'Related resources requested via the "include" query parameter.' + externalDocs: + url: 'https://jsonapi.org/format/#fetching-includes' items: - example: 'https://example.com/' - format: iri-reference - type: string + anyOf: + - + $ref: '#/components/schemas/User.jsonapi' + - + $ref: '#/components/schemas/User.jsonapi' readOnly: true type: array - coachName: - description: 'The name of the Y+S coach who is in charge of the camp.' - example: 'Albert Anderegg' - maxLength: 64 - type: - - 'null' - - string - courseKind: - description: 'The official name for the type of this course.' - example: 'PBS AG 123-23' - maxLength: 64 - type: - - 'null' - - string - courseNumber: - description: 'The official course number, identifying this course.' - example: 'PBS AG 123-23' - maxLength: 64 - type: - - 'null' - - string - creator: - description: |- - The person that created the camp. This value never changes, even when the person - leaves the camp. - example: 'https://example.com/' + type: object + CampCollaboration.jsonhal-read: + deprecated: false + description: 'A user participating in some way in the planning or realization of a camp.' + properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object + camp: + description: 'The camp that the collaborator is part of. Cannot be changed once the campCollaboration is created.' + example: /camps/1a2b3c4d format: iri-reference - readOnly: true type: string id: description: 'An internal, unique, randomly generated identifier of this entity.' @@ -5946,207 +5715,69 @@ components: maxLength: 16 readOnly: true type: string - isPrototype: - description: 'Whether this camp may serve as a template for creating other camps.' - example: true - readOnly: true - type: boolean - kind: - description: 'Rough categorization of the camp (house, tent, traveling, summer, autumn).' - example: Zeltlager - maxLength: 64 - type: - - 'null' - - string - materialLists: + inviteEmail: description: |- - Lists for collecting the required materials needed for carrying out the programme. Each collaborator - has a material list, and there may be more, such as shopping lists. - example: '["/material_lists/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - motto: - description: "The thematic topic (if any) of the camp's programme and storyline." - example: Piraten + The receiver email address of the invitation email, in case the collaboration does not yet have + a user account. Either this field or the user field should be null. + example: some-email@example.com + externalDocs: + url: 'https://schema.org/email' + format: email maxLength: 128 + minLength: 1 type: - 'null' - string - name: - description: 'A short name for the camp.' - example: 'SoLa 2022' - maxLength: 32 + role: + description: |- + The role that this person has in the camp. Depending on the role, the collaborator might have + different access rights. There must always be at least one manager in a camp. + enum: + - guest + - manager + - member + example: member + maxLength: 16 type: string - organizer: - description: 'The name of the organization which plans and carries out the camp.' - example: 'Pfadi Luftig' - maxLength: 64 - type: - - 'null' - - string - periods: - items: - $ref: '#/components/schemas/Period.jsonld-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' - readOnly: true - type: array - printYSLogoOnPicasso: - description: 'Whether the Y+S logo should be printed on the picasso of this camp.' - example: true - type: boolean - profiles: - description: 'All profiles of the users collaborating in this camp.' - example: '/profiles?user.collaborations.camp=%2Fcamps%2F1a2b3c4d' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - progressLabels: - description: 'All the progress labels within this camp.' - example: '["/progress_labels/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - title: - description: 'The full title of the camp.' - example: 'Abteilungs-Sommerlager 2022' - maxLength: 32 + status: + default: invited + description: 'Indicates whether the collaborator is still invited, has left the camp, or is participating normally.' + enum: + - established + - inactive + - invited + example: inactive + maxLength: 16 type: string - trainingAdvisorName: - description: 'The name of the training advisor who is in charge of the course.' - example: 'Albert Anderegg' - maxLength: 64 + user: + description: 'The person that is collaborating in the camp. Cannot be changed once the campCollaboration is established.' + example: /users/1a2b3c4d + format: iri-reference type: - 'null' - string required: - - activities - - campCollaborations - - categories - - materialLists - - name - - periods - - printYSLogoOnPicasso - - progressLabels - - title + - camp + - role + - status type: object - Camp.jsonld-read_CampCollaboration.Camp_CampCollaboration.User: + CampCollaboration.jsonhal-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: deprecated: false description: '' properties: - '@context': - oneOf: - - - additionalProperties: true + _links: + properties: + self: properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] + href: + format: iri-reference type: string - required: - - '@vocab' - - hydra type: object - - - type: string - readOnly: true - '@id': - readOnly: true - type: string - '@type': - readOnly: true - type: string - activities: - description: |- - All the programme that will be carried out during the camp. An activity may be carried out - multiple times in the same camp. - example: '/activities?camp=%2Fcamps%2F1a2b3c4d' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - addressCity: - description: 'The name of the town where the camp will take place.' - example: Hintertüpfingen - maxLength: 128 - type: - - 'null' - - string - addressName: - description: 'A textual description of the location of the camp.' - example: 'Wiese hinter der alten Mühle' - maxLength: 128 - type: - - 'null' - - string - addressStreet: - description: 'The street name and number (if any) of the location of the camp.' - example: 'Schönriedweg 23' - maxLength: 128 - type: - - 'null' - - string - addressZipcode: - description: 'The zipcode of the location of the camp.' - example: '1234' - maxLength: 128 - type: - - 'null' - - string - campCollaborations: - items: - example: 'https://example.com/' - format: iri-reference - type: string - type: array - categories: - description: 'Types of programme, such as sports activities or meal times.' - example: '["/categories/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - coachName: - description: 'The name of the Y+S coach who is in charge of the camp.' - example: 'Albert Anderegg' - maxLength: 64 - type: - - 'null' - - string - courseKind: - description: 'The official name for the type of this course.' - example: 'PBS AG 123-23' - maxLength: 64 - type: - - 'null' - - string - courseNumber: - description: 'The official course number, identifying this course.' - example: 'PBS AG 123-23' - maxLength: 64 - type: - - 'null' - - string - creator: - description: |- - The person that created the camp. This value never changes, even when the person - leaves the camp. - example: 'https://example.com/' + type: object + camp: + description: 'The camp that the collaborator is part of. Cannot be changed once the campCollaboration is created.' + example: /camps/1a2b3c4d format: iri-reference - readOnly: true type: string id: description: 'An internal, unique, randomly generated identifier of this entity.' @@ -6154,108 +5785,180 @@ components: maxLength: 16 readOnly: true type: string - isPrototype: - description: 'Whether this camp may serve as a template for creating other camps.' - example: true - readOnly: true - type: boolean - kind: - description: 'Rough categorization of the camp (house, tent, traveling, summer, autumn).' - example: Zeltlager - maxLength: 64 - type: - - 'null' - - string - materialLists: + inviteEmail: description: |- - Lists for collecting the required materials needed for carrying out the programme. Each collaborator - has a material list, and there may be more, such as shopping lists. - example: '["/material_lists/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - motto: - description: "The thematic topic (if any) of the camp's programme and storyline." - example: Piraten + The receiver email address of the invitation email, in case the collaboration does not yet have + a user account. Either this field or the user field should be null. + example: some-email@example.com + externalDocs: + url: 'https://schema.org/email' + format: email maxLength: 128 + minLength: 1 type: - 'null' - string - name: - description: 'A short name for the camp.' - example: 'SoLa 2022' - maxLength: 32 + role: + description: |- + The role that this person has in the camp. Depending on the role, the collaborator might have + different access rights. There must always be at least one manager in a camp. + enum: + - guest + - manager + - member + example: member + maxLength: 16 type: string - organizer: - description: 'The name of the organization which plans and carries out the camp.' - example: 'Pfadi Luftig' - maxLength: 64 + status: + default: invited + description: 'Indicates whether the collaborator is still invited, has left the camp, or is participating normally.' + enum: + - established + - inactive + - invited + example: inactive + maxLength: 16 + type: string + user: + anyOf: + - + $ref: '#/components/schemas/User.jsonhal-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' + - + type: 'null' + readOnly: true + required: + - camp + - role + - status + type: object + CampCollaboration.jsonhal-read_CampCollaboration.Camp_CampCollaboration.User: + deprecated: false + description: 'A user participating in some way in the planning or realization of a camp.' + properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object + camp: + anyOf: + - + $ref: '#/components/schemas/Camp.jsonhal-read_CampCollaboration.Camp_CampCollaboration.User' + - + type: 'null' + readOnly: true + id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string + inviteEmail: + description: |- + The receiver email address of the invitation email, in case the collaboration does not yet have + a user account. Either this field or the user field should be null. + example: some-email@example.com + externalDocs: + url: 'https://schema.org/email' + format: email + maxLength: 128 + minLength: 1 type: - 'null' - string - periods: - description: 'The time periods of the camp, there must be at least one. Periods in a camp may not overlap.' - example: + role: + description: |- + The role that this person has in the camp. Depending on the role, the collaborator might have + different access rights. There must always be at least one manager in a camp. + enum: + - guest + - manager + - member + example: member + maxLength: 16 + type: string + status: + default: invited + description: 'Indicates whether the collaborator is still invited, has left the camp, or is participating normally.' + enum: + - established + - inactive + - invited + example: inactive + maxLength: 16 + type: string + user: + anyOf: - - description: Hauptlager - end: '2022-01-08' - start: '2022-01-01' - items: - example: 'https://example.com/' - format: iri-reference - type: string - type: array - printYSLogoOnPicasso: - description: 'Whether the Y+S logo should be printed on the picasso of this camp.' - example: true - type: boolean - profiles: - description: 'All profiles of the users collaborating in this camp.' - example: '/profiles?user.collaborations.camp=%2Fcamps%2F1a2b3c4d' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - progressLabels: - description: 'All the progress labels within this camp.' - example: '["/progress_labels/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string + $ref: '#/components/schemas/User.jsonhal-read_CampCollaboration.Camp_CampCollaboration.User' + - + type: 'null' readOnly: true - type: array - title: - description: 'The full title of the camp.' - example: 'Abteilungs-Sommerlager 2022' - maxLength: 32 + required: + - camp + - role + - status + type: object + CampCollaboration.jsonhal-write_create: + deprecated: false + description: 'A user participating in some way in the planning or realization of a camp.' + properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object + camp: + description: 'The camp that the collaborator is part of. Cannot be changed once the campCollaboration is created.' + example: /camps/1a2b3c4d + format: iri-reference type: string - trainingAdvisorName: - description: 'The name of the training advisor who is in charge of the course.' - example: 'Albert Anderegg' - maxLength: 64 + inviteEmail: + description: |- + The receiver email address of the invitation email, in case the collaboration does not yet have + a user account. Either this field or the user field should be null. + example: some-email@example.com + externalDocs: + url: 'https://schema.org/email' + format: email + maxLength: 128 + minLength: 1 + type: + - 'null' + - string + role: + description: |- + The role that this person has in the camp. Depending on the role, the collaborator might have + different access rights. There must always be at least one manager in a camp. + enum: + - guest + - manager + - member + example: member + maxLength: 16 + type: string + user: + description: 'The person that is collaborating in the camp. Cannot be changed once the campCollaboration is established.' + example: /users/1a2b3c4d + format: iri-reference type: - 'null' - string required: - - activities - - campCollaborations - - categories - - materialLists - - name - - periods - - printYSLogoOnPicasso - - progressLabels - - title + - camp + - role type: object - Camp.jsonld-read_Period.Camp_Period.Days: + CampCollaboration.jsonld-read: deprecated: false - description: '' + description: 'A user participating in some way in the planning or realization of a camp.' properties: '@context': oneOf: @@ -6280,341 +5983,197 @@ components: '@type': readOnly: true type: string - activities: - description: |- - All the programme that will be carried out during the camp. An activity may be carried out - multiple times in the same camp. - example: '/activities?camp=%2Fcamps%2F1a2b3c4d' - items: - example: 'https://example.com/' - format: iri-reference - type: string + camp: + description: 'The camp that the collaborator is part of. Cannot be changed once the campCollaboration is created.' + example: /camps/1a2b3c4d + format: iri-reference + type: string + id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 readOnly: true - type: array - addressCity: - description: 'The name of the town where the camp will take place.' - example: Hintertüpfingen + type: string + inviteEmail: + description: |- + The receiver email address of the invitation email, in case the collaboration does not yet have + a user account. Either this field or the user field should be null. + example: some-email@example.com + externalDocs: + url: 'https://schema.org/email' + format: email maxLength: 128 + minLength: 1 type: - 'null' - string - addressName: - description: 'A textual description of the location of the camp.' - example: 'Wiese hinter der alten Mühle' - maxLength: 128 + role: + description: |- + The role that this person has in the camp. Depending on the role, the collaborator might have + different access rights. There must always be at least one manager in a camp. + enum: + - guest + - manager + - member + example: member + maxLength: 16 + type: string + status: + default: invited + description: 'Indicates whether the collaborator is still invited, has left the camp, or is participating normally.' + enum: + - established + - inactive + - invited + example: inactive + maxLength: 16 + type: string + user: + description: 'The person that is collaborating in the camp. Cannot be changed once the campCollaboration is established.' + example: /users/1a2b3c4d + format: iri-reference type: - 'null' - string - addressStreet: - description: 'The street name and number (if any) of the location of the camp.' - example: 'Schönriedweg 23' - maxLength: 128 - type: - - 'null' - - string - addressZipcode: - description: 'The zipcode of the location of the camp.' - example: '1234' - maxLength: 128 - type: - - 'null' - - string - campCollaborations: - items: - example: 'https://example.com/' - format: iri-reference - type: string - type: array - categories: - description: 'Types of programme, such as sports activities or meal times.' - example: '["/categories/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string + required: + - camp + - role + - status + type: object + CampCollaboration.jsonld-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: + deprecated: false + description: '' + properties: + '@context': + oneOf: + - + additionalProperties: true + properties: + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] + type: string + required: + - '@vocab' + - hydra + type: object + - + type: string readOnly: true - type: array - coachName: - description: 'The name of the Y+S coach who is in charge of the camp.' - example: 'Albert Anderegg' - maxLength: 64 - type: - - 'null' - - string - courseKind: - description: 'The official name for the type of this course.' - example: 'PBS AG 123-23' - maxLength: 64 - type: - - 'null' - - string - courseNumber: - description: 'The official course number, identifying this course.' - example: 'PBS AG 123-23' - maxLength: 64 - type: - - 'null' - - string - creator: - description: |- - The person that created the camp. This value never changes, even when the person - leaves the camp. - example: 'https://example.com/' - format: iri-reference + '@id': + readOnly: true + type: string + '@type': readOnly: true type: string + camp: + description: 'The camp that the collaborator is part of. Cannot be changed once the campCollaboration is created.' + example: /camps/1a2b3c4d + format: iri-reference + type: string id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - isPrototype: - description: 'Whether this camp may serve as a template for creating other camps.' - example: true - readOnly: true - type: boolean - kind: - description: 'Rough categorization of the camp (house, tent, traveling, summer, autumn).' - example: Zeltlager - maxLength: 64 - type: - - 'null' - - string - materialLists: + inviteEmail: description: |- - Lists for collecting the required materials needed for carrying out the programme. Each collaborator - has a material list, and there may be more, such as shopping lists. - example: '["/material_lists/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - motto: - description: "The thematic topic (if any) of the camp's programme and storyline." - example: Piraten + The receiver email address of the invitation email, in case the collaboration does not yet have + a user account. Either this field or the user field should be null. + example: some-email@example.com + externalDocs: + url: 'https://schema.org/email' + format: email maxLength: 128 + minLength: 1 type: - 'null' - string - name: - description: 'A short name for the camp.' - example: 'SoLa 2022' - maxLength: 32 + role: + description: |- + The role that this person has in the camp. Depending on the role, the collaborator might have + different access rights. There must always be at least one manager in a camp. + enum: + - guest + - manager + - member + example: member + maxLength: 16 type: string - organizer: - description: 'The name of the organization which plans and carries out the camp.' - example: 'Pfadi Luftig' - maxLength: 64 - type: - - 'null' - - string - periods: - description: 'The time periods of the camp, there must be at least one. Periods in a camp may not overlap.' - example: + status: + default: invited + description: 'Indicates whether the collaborator is still invited, has left the camp, or is participating normally.' + enum: + - established + - inactive + - invited + example: inactive + maxLength: 16 + type: string + user: + anyOf: - - description: Hauptlager - end: '2022-01-08' - start: '2022-01-01' - items: - example: 'https://example.com/' - format: iri-reference - type: string - type: array - printYSLogoOnPicasso: - description: 'Whether the Y+S logo should be printed on the picasso of this camp.' - example: true - type: boolean - profiles: - description: 'All profiles of the users collaborating in this camp.' - example: '/profiles?user.collaborations.camp=%2Fcamps%2F1a2b3c4d' - items: - example: 'https://example.com/' - format: iri-reference - type: string + $ref: '#/components/schemas/User.jsonld-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' + - + type: 'null' readOnly: true - type: array - progressLabels: - description: 'All the progress labels within this camp.' - example: '["/progress_labels/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string + required: + - camp + - role + - status + type: object + CampCollaboration.jsonld-read_CampCollaboration.Camp_CampCollaboration.User: + deprecated: false + description: 'A user participating in some way in the planning or realization of a camp.' + properties: + '@context': + oneOf: + - + additionalProperties: true + properties: + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] + type: string + required: + - '@vocab' + - hydra + type: object + - + type: string + readOnly: true + '@id': readOnly: true - type: array - title: - description: 'The full title of the camp.' - example: 'Abteilungs-Sommerlager 2022' - maxLength: 32 type: string - trainingAdvisorName: - description: 'The name of the training advisor who is in charge of the course.' - example: 'Albert Anderegg' - maxLength: 64 - type: - - 'null' - - string - required: - - activities - - campCollaborations - - categories - - materialLists - - name - - periods - - printYSLogoOnPicasso - - progressLabels - - title - type: object - Camp.jsonld-write_create: - deprecated: false - description: |- - The main entity that eCamp is designed to manage. Contains programme which may be - distributed across multiple time periods. - properties: - addressCity: - description: 'The name of the town where the camp will take place.' - example: Hintertüpfingen - maxLength: 128 - type: - - 'null' - - string - addressName: - description: 'A textual description of the location of the camp.' - example: 'Wiese hinter der alten Mühle' - maxLength: 128 - type: - - 'null' - - string - addressStreet: - description: 'The street name and number (if any) of the location of the camp.' - example: 'Schönriedweg 23' - maxLength: 128 - type: - - 'null' - - string - addressZipcode: - description: 'The zipcode of the location of the camp.' - example: '1234' - maxLength: 128 - type: - - 'null' - - string - campPrototype: - description: 'The prototype camp that will be used as a template to create this camp.' - example: /camps/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - writeOnly: true - coachName: - description: 'The name of the Y+S coach who is in charge of the camp.' - example: 'Albert Anderegg' - maxLength: 64 - type: - - 'null' - - string - courseKind: - description: 'The official name for the type of this course.' - example: 'PBS AG 123-23' - maxLength: 64 - type: - - 'null' - - string - courseNumber: - description: 'The official course number, identifying this course.' - example: 'PBS AG 123-23' - maxLength: 64 - type: - - 'null' - - string - kind: - description: 'Rough categorization of the camp (house, tent, traveling, summer, autumn).' - example: Zeltlager - maxLength: 64 - type: - - 'null' - - string - motto: - description: "The thematic topic (if any) of the camp's programme and storyline." - example: Piraten - maxLength: 128 - type: - - 'null' - - string - name: - description: 'A short name for the camp.' - example: 'SoLa 2022' - maxLength: 32 - type: string - organizer: - description: 'The name of the organization which plans and carries out the camp.' - example: 'Pfadi Luftig' - maxLength: 64 - type: - - 'null' - - string - periods: - description: 'The time periods of the camp, there must be at least one. Periods in a camp may not overlap.' - example: - - - description: Hauptlager - end: '2022-01-08' - start: '2022-01-01' - items: - $ref: '#/components/schemas/Period.jsonld-write_create' - minItems: 1 - type: array - printYSLogoOnPicasso: - description: 'Whether the Y+S logo should be printed on the picasso of this camp.' - example: true - type: boolean - title: - description: 'The full title of the camp.' - example: 'Abteilungs-Sommerlager 2022' - maxLength: 32 - type: string - trainingAdvisorName: - description: 'The name of the training advisor who is in charge of the course.' - example: 'Albert Anderegg' - maxLength: 64 - type: - - 'null' - - string - required: - - name - - periods - - printYSLogoOnPicasso - - title - type: object - CampCollaboration-read: - deprecated: false - description: 'A user participating in some way in the planning or realization of a camp.' - properties: - camp: - description: 'The camp that the collaborator is part of. Cannot be changed once the campCollaboration is created.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - inviteEmail: - description: |- - The receiver email address of the invitation email, in case the collaboration does not yet have - a user account. Either this field or the user field should be null. - example: some-email@example.com - externalDocs: - url: 'https://schema.org/email' - format: email - maxLength: 128 - minLength: 1 + '@type': + readOnly: true + type: string + camp: + anyOf: + - + $ref: '#/components/schemas/Camp.jsonld-read_CampCollaboration.Camp_CampCollaboration.User' + - + type: 'null' + readOnly: true + id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string + inviteEmail: + description: |- + The receiver email address of the invitation email, in case the collaboration does not yet have + a user account. Either this field or the user field should be null. + example: some-email@example.com + externalDocs: + url: 'https://schema.org/email' + format: email + maxLength: 128 + minLength: 1 type: - 'null' - string @@ -6640,32 +6199,26 @@ components: maxLength: 16 type: string user: - description: 'The person that is collaborating in the camp. Cannot be changed once the campCollaboration is established.' - example: /users/1a2b3c4d - format: iri-reference - type: - - 'null' - - string + anyOf: + - + $ref: '#/components/schemas/User.jsonld-read_CampCollaboration.Camp_CampCollaboration.User' + - + type: 'null' + readOnly: true required: - camp - role - status type: object - CampCollaboration-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: + CampCollaboration.jsonld-write_create: deprecated: false - description: '' + description: 'A user participating in some way in the planning or realization of a camp.' properties: camp: description: 'The camp that the collaborator is part of. Cannot be changed once the campCollaboration is created.' example: /camps/1a2b3c4d format: iri-reference type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string inviteEmail: description: |- The receiver email address of the invitation email, in case the collaboration does not yet have @@ -6690,433 +6243,483 @@ components: example: member maxLength: 16 type: string - status: - default: invited - description: 'Indicates whether the collaborator is still invited, has left the camp, or is participating normally.' - enum: - - established - - inactive - - invited - example: inactive - maxLength: 16 - type: string user: - anyOf: - - - $ref: '#/components/schemas/User-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' - - - type: 'null' - readOnly: true + description: 'The person that is collaborating in the camp. Cannot be changed once the campCollaboration is established.' + example: /users/1a2b3c4d + format: iri-reference + type: + - 'null' + - string required: - camp - role - - status type: object - CampCollaboration-read_CampCollaboration.Camp_CampCollaboration.User: + Category-read: deprecated: false - description: 'A user participating in some way in the planning or realization of a camp.' + description: |- + A type of programme, such as sports activities or meal times, is called a category. A category + determines color and numbering scheme of the associated activities, and is used for marking + "similar" activities. A category may contain some skeleton programme which is used as a blueprint + when creating a new activity in the category. properties: camp: - anyOf: - - - $ref: '#/components/schemas/Camp-read_CampCollaboration.Camp_CampCollaboration.User' - - - type: 'null' + description: 'The camp to which this category belongs. May not be changed once the category is created.' + example: /camps/1a2b3c4d + format: iri-reference + type: string + color: + description: 'The color of the activities in this category, as a hex color string.' + example: '#4DBB52' + maxLength: 8 + pattern: '^(#[0-9a-zA-Z]{6})$' + type: string + contentNodes: + description: 'All the content nodes that make up the tree of programme content.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string readOnly: true + type: array id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - inviteEmail: - description: |- - The receiver email address of the invitation email, in case the collaboration does not yet have - a user account. Either this field or the user field should be null. - example: some-email@example.com - externalDocs: - url: 'https://schema.org/email' - format: email - maxLength: 128 - minLength: 1 - type: - - 'null' - - string - role: + name: + description: 'The full name of the category.' + example: Lagersport + maxLength: 32 + type: string + numberingStyle: + default: '1' description: |- - The role that this person has in the camp. Depending on the role, the collaborator might have - different access rights. There must always be at least one manager in a camp. + Specifies whether the schedule entries of the activities in this category should be numbered + using arabic numbers, roman numerals or letters. enum: - - guest - - manager - - member - example: member - maxLength: 16 - type: string - status: - default: invited - description: 'Indicates whether the collaborator is still invited, has left the camp, or is participating normally.' - enum: - - established - - inactive - - invited - example: inactive - maxLength: 16 - type: string - user: - anyOf: - - - $ref: '#/components/schemas/User-read_CampCollaboration.Camp_CampCollaboration.User' - - - type: 'null' - readOnly: true - required: - - camp - - role - - status - type: object - CampCollaboration-resend_invitation: - deprecated: false - description: 'A user participating in some way in the planning or realization of a camp.' - type: object - CampCollaboration-write_create: - deprecated: false - description: 'A user participating in some way in the planning or realization of a camp.' - properties: - camp: - description: 'The camp that the collaborator is part of. Cannot be changed once the campCollaboration is created.' - example: /camps/1a2b3c4d - format: iri-reference + - '-' + - '1' + - A + - I + - a + - i + example: '1' + maxLength: 1 type: string - inviteEmail: + preferredContentTypes: + description: 'The content types that are most likely to be useful for planning programme of this category.' + example: '["/content_types/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + type: array + rootContentNode: + $ref: '#/components/schemas/ColumnLayout-read' description: |- - The receiver email address of the invitation email, in case the collaboration does not yet have - a user account. Either this field or the user field should be null. - example: some-email@example.com - externalDocs: - url: 'https://schema.org/email' - format: email - maxLength: 128 - minLength: 1 - type: - - 'null' - - string - role: + The programme contents, organized as a tree of content nodes. The root content node cannot be + exchanged, but all the contents attached to it can. + example: /content_nodes/1a2b3c4d + readOnly: true + short: description: |- - The role that this person has in the camp. Depending on the role, the collaborator might have - different access rights. There must always be at least one manager in a camp. - enum: - - guest - - manager - - member - example: member + An abbreviated name of the category, for display in tight spaces, often together with the day and + schedule entry number, e.g. LS 3.a, where LS is the category's short name. + example: LS maxLength: 16 type: string - user: - description: 'The person that is collaborating in the camp. Cannot be changed once the campCollaboration is established.' - example: /users/1a2b3c4d - format: iri-reference - type: - - 'null' - - string required: - camp - - role - type: object - CampCollaboration-write_update: - deprecated: false - description: 'A user participating in some way in the planning or realization of a camp.' - properties: - role: - description: |- - The role that this person has in the camp. Depending on the role, the collaborator might have - different access rights. There must always be at least one manager in a camp. - enum: - - guest - - manager - - member - example: member - maxLength: 16 - type: string - status: - default: invited - description: 'Indicates whether the collaborator is still invited, has left the camp, or is participating normally.' - enum: - - established - - inactive - - invited - example: inactive - maxLength: 16 - type: string - required: - - role - - status + - color + - name + - numberingStyle + - preferredContentTypes + - short type: object - CampCollaboration.jsonapi-read: + Category-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: deprecated: false - description: 'A user participating in some way in the planning or realization of a camp.' + description: '' properties: camp: - description: 'The camp that the collaborator is part of. Cannot be changed once the campCollaboration is created.' + description: 'The camp to which this category belongs. May not be changed once the category is created.' example: /camps/1a2b3c4d format: iri-reference type: string + color: + description: 'The color of the activities in this category, as a hex color string.' + example: '#4DBB52' + maxLength: 8 + pattern: '^(#[0-9a-zA-Z]{6})$' + type: string + contentNodes: + description: 'All the content nodes that make up the tree of programme content.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - inviteEmail: - description: |- - The receiver email address of the invitation email, in case the collaboration does not yet have - a user account. Either this field or the user field should be null. - example: some-email@example.com - externalDocs: - url: 'https://schema.org/email' - format: email - maxLength: 128 - minLength: 1 - type: - - 'null' - - string - role: + name: + description: 'The full name of the category.' + example: Lagersport + maxLength: 32 + type: string + numberingStyle: + default: '1' description: |- - The role that this person has in the camp. Depending on the role, the collaborator might have - different access rights. There must always be at least one manager in a camp. + Specifies whether the schedule entries of the activities in this category should be numbered + using arabic numbers, roman numerals or letters. enum: - - guest - - manager - - member - example: member - maxLength: 16 + - '-' + - '1' + - A + - I + - a + - i + example: '1' + maxLength: 1 type: string - status: - default: invited - description: 'Indicates whether the collaborator is still invited, has left the camp, or is participating normally.' - enum: - - established - - inactive - - invited - example: inactive + preferredContentTypes: + description: 'The content types that are most likely to be useful for planning programme of this category.' + example: '["/content_types/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + type: array + rootContentNode: + $ref: '#/components/schemas/ColumnLayout-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' + description: |- + The programme contents, organized as a tree of content nodes. The root content node cannot be + exchanged, but all the contents attached to it can. + example: /content_nodes/1a2b3c4d + readOnly: true + short: + description: |- + An abbreviated name of the category, for display in tight spaces, often together with the day and + schedule entry number, e.g. LS 3.a, where LS is the category's short name. + example: LS maxLength: 16 type: string - user: - description: 'The person that is collaborating in the camp. Cannot be changed once the campCollaboration is established.' - example: /users/1a2b3c4d - format: iri-reference - type: - - 'null' - - string required: - camp - - role - - status + - color + - name + - numberingStyle + - preferredContentTypes + - short type: object - CampCollaboration.jsonapi-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: + Category-read_Category.PreferredContentTypes_Category.ContentNodes: deprecated: false - description: '' + description: |- + A type of programme, such as sports activities or meal times, is called a category. A category + determines color and numbering scheme of the associated activities, and is used for marking + "similar" activities. A category may contain some skeleton programme which is used as a blueprint + when creating a new activity in the category. properties: camp: - description: 'The camp that the collaborator is part of. Cannot be changed once the campCollaboration is created.' + description: 'The camp to which this category belongs. May not be changed once the category is created.' example: /camps/1a2b3c4d format: iri-reference type: string + color: + description: 'The color of the activities in this category, as a hex color string.' + example: '#4DBB52' + maxLength: 8 + pattern: '^(#[0-9a-zA-Z]{6})$' + type: string + contentNodes: + description: 'All the content nodes that make up the tree of programme content.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - inviteEmail: - description: |- - The receiver email address of the invitation email, in case the collaboration does not yet have - a user account. Either this field or the user field should be null. - example: some-email@example.com - externalDocs: - url: 'https://schema.org/email' - format: email - maxLength: 128 - minLength: 1 - type: - - 'null' - - string - role: + name: + description: 'The full name of the category.' + example: Lagersport + maxLength: 32 + type: string + numberingStyle: + default: '1' description: |- - The role that this person has in the camp. Depending on the role, the collaborator might have - different access rights. There must always be at least one manager in a camp. + Specifies whether the schedule entries of the activities in this category should be numbered + using arabic numbers, roman numerals or letters. enum: - - guest - - manager - - member - example: member - maxLength: 16 + - '-' + - '1' + - A + - I + - a + - i + example: '1' + maxLength: 1 type: string - status: - default: invited - description: 'Indicates whether the collaborator is still invited, has left the camp, or is participating normally.' - enum: - - established - - inactive - - invited - example: inactive + preferredContentTypes: + items: + $ref: '#/components/schemas/ContentType-read_Category.PreferredContentTypes_Category.ContentNodes' + readOnly: true + type: array + rootContentNode: + $ref: '#/components/schemas/ColumnLayout-read_Category.PreferredContentTypes_Category.ContentNodes' + description: |- + The programme contents, organized as a tree of content nodes. The root content node cannot be + exchanged, but all the contents attached to it can. + example: /content_nodes/1a2b3c4d + readOnly: true + short: + description: |- + An abbreviated name of the category, for display in tight spaces, often together with the day and + schedule entry number, e.g. LS 3.a, where LS is the category's short name. + example: LS maxLength: 16 type: string - user: - anyOf: - - - $ref: '#/components/schemas/User.jsonapi-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' - - - type: 'null' - readOnly: true required: - camp - - role - - status + - color + - name + - numberingStyle + - preferredContentTypes + - short type: object - CampCollaboration.jsonapi-read_CampCollaboration.Camp_CampCollaboration.User: + Category-write_create: deprecated: false - description: 'A user participating in some way in the planning or realization of a camp.' + description: |- + A type of programme, such as sports activities or meal times, is called a category. A category + determines color and numbering scheme of the associated activities, and is used for marking + "similar" activities. A category may contain some skeleton programme which is used as a blueprint + when creating a new activity in the category. properties: camp: - anyOf: - - - $ref: '#/components/schemas/Camp.jsonapi-read_CampCollaboration.Camp_CampCollaboration.User' - - - type: 'null' - readOnly: true - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true + description: 'The camp to which this category belongs. May not be changed once the category is created.' + example: /camps/1a2b3c4d + format: iri-reference type: string - inviteEmail: - description: |- - The receiver email address of the invitation email, in case the collaboration does not yet have - a user account. Either this field or the user field should be null. - example: some-email@example.com - externalDocs: - url: 'https://schema.org/email' - format: email - maxLength: 128 - minLength: 1 + color: + description: 'The color of the activities in this category, as a hex color string.' + example: '#4DBB52' + maxLength: 8 + pattern: '^(#[0-9a-zA-Z]{6})$' + type: string + copyCategorySource: + description: 'Copy contents from this source category or activity.' + example: /categories/1a2b3c4d + format: iri-reference type: - 'null' - string - role: + name: + description: 'The full name of the category.' + example: Lagersport + maxLength: 32 + type: string + numberingStyle: + default: '1' description: |- - The role that this person has in the camp. Depending on the role, the collaborator might have - different access rights. There must always be at least one manager in a camp. + Specifies whether the schedule entries of the activities in this category should be numbered + using arabic numbers, roman numerals or letters. enum: - - guest - - manager - - member - example: member - maxLength: 16 + - '-' + - '1' + - A + - I + - a + - i + example: '1' + maxLength: 1 type: string - status: - default: invited - description: 'Indicates whether the collaborator is still invited, has left the camp, or is participating normally.' - enum: - - established - - inactive - - invited - example: inactive + preferredContentTypes: + description: 'The content types that are most likely to be useful for planning programme of this category.' + example: '["/content_types/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + type: array + short: + description: |- + An abbreviated name of the category, for display in tight spaces, often together with the day and + schedule entry number, e.g. LS 3.a, where LS is the category's short name. + example: LS maxLength: 16 type: string - user: - anyOf: - - - $ref: '#/components/schemas/User.jsonapi-read_CampCollaboration.Camp_CampCollaboration.User' - - - type: 'null' - readOnly: true required: - camp - - role - - status - type: object - CampCollaboration.jsonapi-resend_invitation: - deprecated: false - description: 'A user participating in some way in the planning or realization of a camp.' + - color + - name + - numberingStyle + - preferredContentTypes + - short type: object - CampCollaboration.jsonapi-write_create: + Category-write_update: deprecated: false - description: 'A user participating in some way in the planning or realization of a camp.' + description: |- + A type of programme, such as sports activities or meal times, is called a category. A category + determines color and numbering scheme of the associated activities, and is used for marking + "similar" activities. A category may contain some skeleton programme which is used as a blueprint + when creating a new activity in the category. properties: - camp: - description: 'The camp that the collaborator is part of. Cannot be changed once the campCollaboration is created.' - example: /camps/1a2b3c4d - format: iri-reference + color: + description: 'The color of the activities in this category, as a hex color string.' + example: '#4DBB52' + maxLength: 8 + pattern: '^(#[0-9a-zA-Z]{6})$' type: string - inviteEmail: - description: |- - The receiver email address of the invitation email, in case the collaboration does not yet have - a user account. Either this field or the user field should be null. - example: some-email@example.com - externalDocs: - url: 'https://schema.org/email' - format: email - maxLength: 128 - minLength: 1 - type: - - 'null' - - string - role: + name: + description: 'The full name of the category.' + example: Lagersport + maxLength: 32 + type: string + numberingStyle: + default: '1' description: |- - The role that this person has in the camp. Depending on the role, the collaborator might have - different access rights. There must always be at least one manager in a camp. + Specifies whether the schedule entries of the activities in this category should be numbered + using arabic numbers, roman numerals or letters. enum: - - guest - - manager - - member - example: member + - '-' + - '1' + - A + - I + - a + - i + example: '1' + maxLength: 1 + type: string + preferredContentTypes: + description: 'The content types that are most likely to be useful for planning programme of this category.' + example: '["/content_types/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + type: array + short: + description: |- + An abbreviated name of the category, for display in tight spaces, often together with the day and + schedule entry number, e.g. LS 3.a, where LS is the category's short name. + example: LS maxLength: 16 type: string - user: - description: 'The person that is collaborating in the camp. Cannot be changed once the campCollaboration is established.' - example: /users/1a2b3c4d - format: iri-reference - type: - - 'null' - - string required: - - camp - - role + - color + - name + - numberingStyle + - preferredContentTypes + - short type: object - CampCollaboration.jsonapi-write_update: + Category.jsonapi: deprecated: false - description: 'A user participating in some way in the planning or realization of a camp.' - properties: - role: - description: |- - The role that this person has in the camp. Depending on the role, the collaborator might have - different access rights. There must always be at least one manager in a camp. - enum: - - guest - - manager - - member - example: member - maxLength: 16 - type: string - status: - default: invited - description: 'Indicates whether the collaborator is still invited, has left the camp, or is participating normally.' - enum: - - established - - inactive - - invited - example: inactive - maxLength: 16 - type: string - required: - - role - - status + description: |- + A type of programme, such as sports activities or meal times, is called a category. A category + determines color and numbering scheme of the associated activities, and is used for marking + "similar" activities. A category may contain some skeleton programme which is used as a blueprint + when creating a new activity in the category. + properties: + data: + properties: + attributes: + properties: + _id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string + color: + description: 'The color of the activities in this category, as a hex color string.' + example: '#4DBB52' + maxLength: 8 + pattern: '^(#[0-9a-zA-Z]{6})$' + type: string + name: + description: 'The full name of the category.' + example: Lagersport + maxLength: 32 + type: string + numberingStyle: + default: '1' + description: |- + Specifies whether the schedule entries of the activities in this category should be numbered + using arabic numbers, roman numerals or letters. + enum: ['-', '1', A, I, a, i] + example: '1' + maxLength: 1 + type: string + short: + description: |- + An abbreviated name of the category, for display in tight spaces, often together with the day and + schedule entry number, e.g. LS 3.a, where LS is the category's short name. + example: LS + maxLength: 16 + type: string + required: + - color + - name + - numberingStyle + - short + type: object + id: + type: string + relationships: + properties: + camp: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + contentNodes: + properties: { data: { items: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object }, type: array } } + preferredContentTypes: + properties: { data: { items: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object }, type: array } } + rootContentNode: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + required: + - camp + - preferredContentTypes + type: object + type: + type: string + required: + - id + - type + type: object + included: + description: 'Related resources requested via the "include" query parameter.' + externalDocs: + url: 'https://jsonapi.org/format/#fetching-includes' + items: + anyOf: + - [] + - + $ref: '#/components/schemas/Camp.jsonapi' + - + $ref: '#/components/schemas/Camp.jsonapi' + - + $ref: '#/components/schemas/Camp.jsonapi' + readOnly: true + type: array type: object - CampCollaboration.jsonhal-read: + Category.jsonhal-read: deprecated: false - description: 'A user participating in some way in the planning or realization of a camp.' + description: |- + A type of programme, such as sports activities or meal times, is called a category. A category + determines color and numbering scheme of the associated activities, and is used for marking + "similar" activities. A category may contain some skeleton programme which is used as a blueprint + when creating a new activity in the category. properties: _links: properties: @@ -7128,63 +6731,82 @@ components: type: object type: object camp: - description: 'The camp that the collaborator is part of. Cannot be changed once the campCollaboration is created.' + description: 'The camp to which this category belongs. May not be changed once the category is created.' example: /camps/1a2b3c4d format: iri-reference type: string + color: + description: 'The color of the activities in this category, as a hex color string.' + example: '#4DBB52' + maxLength: 8 + pattern: '^(#[0-9a-zA-Z]{6})$' + type: string + contentNodes: + description: 'All the content nodes that make up the tree of programme content.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - inviteEmail: - description: |- - The receiver email address of the invitation email, in case the collaboration does not yet have - a user account. Either this field or the user field should be null. - example: some-email@example.com - externalDocs: - url: 'https://schema.org/email' - format: email - maxLength: 128 - minLength: 1 - type: - - 'null' - - string - role: + name: + description: 'The full name of the category.' + example: Lagersport + maxLength: 32 + type: string + numberingStyle: + default: '1' description: |- - The role that this person has in the camp. Depending on the role, the collaborator might have - different access rights. There must always be at least one manager in a camp. + Specifies whether the schedule entries of the activities in this category should be numbered + using arabic numbers, roman numerals or letters. enum: - - guest - - manager - - member - example: member - maxLength: 16 + - '-' + - '1' + - A + - I + - a + - i + example: '1' + maxLength: 1 type: string - status: - default: invited - description: 'Indicates whether the collaborator is still invited, has left the camp, or is participating normally.' - enum: - - established - - inactive - - invited - example: inactive + preferredContentTypes: + description: 'The content types that are most likely to be useful for planning programme of this category.' + example: '["/content_types/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + type: array + rootContentNode: + $ref: '#/components/schemas/ColumnLayout.jsonhal-read' + description: |- + The programme contents, organized as a tree of content nodes. The root content node cannot be + exchanged, but all the contents attached to it can. + example: /content_nodes/1a2b3c4d + readOnly: true + short: + description: |- + An abbreviated name of the category, for display in tight spaces, often together with the day and + schedule entry number, e.g. LS 3.a, where LS is the category's short name. + example: LS maxLength: 16 type: string - user: - description: 'The person that is collaborating in the camp. Cannot be changed once the campCollaboration is established.' - example: /users/1a2b3c4d - format: iri-reference - type: - - 'null' - - string required: - camp - - role - - status + - color + - name + - numberingStyle + - preferredContentTypes + - short type: object - CampCollaboration.jsonhal-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: + Category.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: deprecated: false description: '' properties: @@ -7198,65 +6820,88 @@ components: type: object type: object camp: - description: 'The camp that the collaborator is part of. Cannot be changed once the campCollaboration is created.' + description: 'The camp to which this category belongs. May not be changed once the category is created.' example: /camps/1a2b3c4d format: iri-reference type: string + color: + description: 'The color of the activities in this category, as a hex color string.' + example: '#4DBB52' + maxLength: 8 + pattern: '^(#[0-9a-zA-Z]{6})$' + type: string + contentNodes: + description: 'All the content nodes that make up the tree of programme content.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - inviteEmail: - description: |- - The receiver email address of the invitation email, in case the collaboration does not yet have - a user account. Either this field or the user field should be null. - example: some-email@example.com - externalDocs: - url: 'https://schema.org/email' - format: email - maxLength: 128 - minLength: 1 - type: - - 'null' - - string - role: + name: + description: 'The full name of the category.' + example: Lagersport + maxLength: 32 + type: string + numberingStyle: + default: '1' description: |- - The role that this person has in the camp. Depending on the role, the collaborator might have - different access rights. There must always be at least one manager in a camp. + Specifies whether the schedule entries of the activities in this category should be numbered + using arabic numbers, roman numerals or letters. enum: - - guest - - manager - - member - example: member - maxLength: 16 + - '-' + - '1' + - A + - I + - a + - i + example: '1' + maxLength: 1 type: string - status: - default: invited - description: 'Indicates whether the collaborator is still invited, has left the camp, or is participating normally.' - enum: - - established - - inactive - - invited - example: inactive + preferredContentTypes: + description: 'The content types that are most likely to be useful for planning programme of this category.' + example: '["/content_types/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + type: array + rootContentNode: + $ref: '#/components/schemas/ColumnLayout.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' + description: |- + The programme contents, organized as a tree of content nodes. The root content node cannot be + exchanged, but all the contents attached to it can. + example: /content_nodes/1a2b3c4d + readOnly: true + short: + description: |- + An abbreviated name of the category, for display in tight spaces, often together with the day and + schedule entry number, e.g. LS 3.a, where LS is the category's short name. + example: LS maxLength: 16 type: string - user: - anyOf: - - - $ref: '#/components/schemas/User.jsonhal-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' - - - type: 'null' - readOnly: true required: - camp - - role - - status + - color + - name + - numberingStyle + - preferredContentTypes + - short type: object - CampCollaboration.jsonhal-read_CampCollaboration.Camp_CampCollaboration.User: + Category.jsonhal-read_Category.PreferredContentTypes_Category.ContentNodes: deprecated: false - description: 'A user participating in some way in the planning or realization of a camp.' + description: |- + A type of programme, such as sports activities or meal times, is called a category. A category + determines color and numbering scheme of the associated activities, and is used for marking + "similar" activities. A category may contain some skeleton programme which is used as a blueprint + when creating a new activity in the category. properties: _links: properties: @@ -7268,67 +6913,85 @@ components: type: object type: object camp: - anyOf: - - - $ref: '#/components/schemas/Camp.jsonhal-read_CampCollaboration.Camp_CampCollaboration.User' - - - type: 'null' + description: 'The camp to which this category belongs. May not be changed once the category is created.' + example: /camps/1a2b3c4d + format: iri-reference + type: string + color: + description: 'The color of the activities in this category, as a hex color string.' + example: '#4DBB52' + maxLength: 8 + pattern: '^(#[0-9a-zA-Z]{6})$' + type: string + contentNodes: + description: 'All the content nodes that make up the tree of programme content.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string readOnly: true + type: array id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - inviteEmail: - description: |- - The receiver email address of the invitation email, in case the collaboration does not yet have - a user account. Either this field or the user field should be null. - example: some-email@example.com - externalDocs: - url: 'https://schema.org/email' - format: email - maxLength: 128 - minLength: 1 - type: - - 'null' - - string - role: + name: + description: 'The full name of the category.' + example: Lagersport + maxLength: 32 + type: string + numberingStyle: + default: '1' description: |- - The role that this person has in the camp. Depending on the role, the collaborator might have - different access rights. There must always be at least one manager in a camp. + Specifies whether the schedule entries of the activities in this category should be numbered + using arabic numbers, roman numerals or letters. enum: - - guest - - manager - - member - example: member - maxLength: 16 + - '-' + - '1' + - A + - I + - a + - i + example: '1' + maxLength: 1 type: string - status: - default: invited - description: 'Indicates whether the collaborator is still invited, has left the camp, or is participating normally.' - enum: - - established - - inactive - - invited - example: inactive + preferredContentTypes: + items: + $ref: '#/components/schemas/ContentType.jsonhal-read_Category.PreferredContentTypes_Category.ContentNodes' + readOnly: true + type: array + rootContentNode: + $ref: '#/components/schemas/ColumnLayout.jsonhal-read_Category.PreferredContentTypes_Category.ContentNodes' + description: |- + The programme contents, organized as a tree of content nodes. The root content node cannot be + exchanged, but all the contents attached to it can. + example: /content_nodes/1a2b3c4d + readOnly: true + short: + description: |- + An abbreviated name of the category, for display in tight spaces, often together with the day and + schedule entry number, e.g. LS 3.a, where LS is the category's short name. + example: LS maxLength: 16 type: string - user: - anyOf: - - - $ref: '#/components/schemas/User.jsonhal-read_CampCollaboration.Camp_CampCollaboration.User' - - - type: 'null' - readOnly: true required: - camp - - role - - status + - color + - name + - numberingStyle + - preferredContentTypes + - short type: object - CampCollaboration.jsonhal-write_create: + Category.jsonhal-write_create: deprecated: false - description: 'A user participating in some way in the planning or realization of a camp.' + description: |- + A type of programme, such as sports activities or meal times, is called a category. A category + determines color and numbering scheme of the associated activities, and is used for marking + "similar" activities. A category may contain some skeleton programme which is used as a blueprint + when creating a new activity in the category. properties: _links: properties: @@ -7340,48 +7003,73 @@ components: type: object type: object camp: - description: 'The camp that the collaborator is part of. Cannot be changed once the campCollaboration is created.' + description: 'The camp to which this category belongs. May not be changed once the category is created.' example: /camps/1a2b3c4d format: iri-reference type: string - inviteEmail: - description: |- - The receiver email address of the invitation email, in case the collaboration does not yet have - a user account. Either this field or the user field should be null. - example: some-email@example.com - externalDocs: - url: 'https://schema.org/email' - format: email - maxLength: 128 - minLength: 1 + color: + description: 'The color of the activities in this category, as a hex color string.' + example: '#4DBB52' + maxLength: 8 + pattern: '^(#[0-9a-zA-Z]{6})$' + type: string + copyCategorySource: + description: 'Copy contents from this source category or activity.' + example: /categories/1a2b3c4d + format: iri-reference type: - 'null' - string - role: + name: + description: 'The full name of the category.' + example: Lagersport + maxLength: 32 + type: string + numberingStyle: + default: '1' description: |- - The role that this person has in the camp. Depending on the role, the collaborator might have - different access rights. There must always be at least one manager in a camp. + Specifies whether the schedule entries of the activities in this category should be numbered + using arabic numbers, roman numerals or letters. enum: - - guest - - manager - - member - example: member + - '-' + - '1' + - A + - I + - a + - i + example: '1' + maxLength: 1 + type: string + preferredContentTypes: + description: 'The content types that are most likely to be useful for planning programme of this category.' + example: '["/content_types/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + type: array + short: + description: |- + An abbreviated name of the category, for display in tight spaces, often together with the day and + schedule entry number, e.g. LS 3.a, where LS is the category's short name. + example: LS maxLength: 16 type: string - user: - description: 'The person that is collaborating in the camp. Cannot be changed once the campCollaboration is established.' - example: /users/1a2b3c4d - format: iri-reference - type: - - 'null' - - string required: - camp - - role + - color + - name + - numberingStyle + - preferredContentTypes + - short type: object - CampCollaboration.jsonld-read: + Category.jsonld-read: deprecated: false - description: 'A user participating in some way in the planning or realization of a camp.' + description: |- + A type of programme, such as sports activities or meal times, is called a category. A category + determines color and numbering scheme of the associated activities, and is used for marking + "similar" activities. A category may contain some skeleton programme which is used as a blueprint + when creating a new activity in the category. properties: '@context': oneOf: @@ -7407,63 +7095,82 @@ components: readOnly: true type: string camp: - description: 'The camp that the collaborator is part of. Cannot be changed once the campCollaboration is created.' + description: 'The camp to which this category belongs. May not be changed once the category is created.' example: /camps/1a2b3c4d format: iri-reference type: string + color: + description: 'The color of the activities in this category, as a hex color string.' + example: '#4DBB52' + maxLength: 8 + pattern: '^(#[0-9a-zA-Z]{6})$' + type: string + contentNodes: + description: 'All the content nodes that make up the tree of programme content.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - inviteEmail: - description: |- - The receiver email address of the invitation email, in case the collaboration does not yet have - a user account. Either this field or the user field should be null. - example: some-email@example.com - externalDocs: - url: 'https://schema.org/email' - format: email - maxLength: 128 - minLength: 1 - type: - - 'null' - - string - role: + name: + description: 'The full name of the category.' + example: Lagersport + maxLength: 32 + type: string + numberingStyle: + default: '1' description: |- - The role that this person has in the camp. Depending on the role, the collaborator might have - different access rights. There must always be at least one manager in a camp. + Specifies whether the schedule entries of the activities in this category should be numbered + using arabic numbers, roman numerals or letters. enum: - - guest - - manager - - member - example: member - maxLength: 16 + - '-' + - '1' + - A + - I + - a + - i + example: '1' + maxLength: 1 type: string - status: - default: invited - description: 'Indicates whether the collaborator is still invited, has left the camp, or is participating normally.' - enum: - - established - - inactive - - invited - example: inactive + preferredContentTypes: + description: 'The content types that are most likely to be useful for planning programme of this category.' + example: '["/content_types/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + type: array + rootContentNode: + $ref: '#/components/schemas/ColumnLayout.jsonld-read' + description: |- + The programme contents, organized as a tree of content nodes. The root content node cannot be + exchanged, but all the contents attached to it can. + example: /content_nodes/1a2b3c4d + readOnly: true + short: + description: |- + An abbreviated name of the category, for display in tight spaces, often together with the day and + schedule entry number, e.g. LS 3.a, where LS is the category's short name. + example: LS maxLength: 16 type: string - user: - description: 'The person that is collaborating in the camp. Cannot be changed once the campCollaboration is established.' - example: /users/1a2b3c4d - format: iri-reference - type: - - 'null' - - string required: - camp - - role - - status + - color + - name + - numberingStyle + - preferredContentTypes + - short type: object - CampCollaboration.jsonld-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: + Category.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: deprecated: false description: '' properties: @@ -7491,65 +7198,88 @@ components: readOnly: true type: string camp: - description: 'The camp that the collaborator is part of. Cannot be changed once the campCollaboration is created.' + description: 'The camp to which this category belongs. May not be changed once the category is created.' example: /camps/1a2b3c4d format: iri-reference type: string + color: + description: 'The color of the activities in this category, as a hex color string.' + example: '#4DBB52' + maxLength: 8 + pattern: '^(#[0-9a-zA-Z]{6})$' + type: string + contentNodes: + description: 'All the content nodes that make up the tree of programme content.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - inviteEmail: - description: |- - The receiver email address of the invitation email, in case the collaboration does not yet have - a user account. Either this field or the user field should be null. - example: some-email@example.com - externalDocs: - url: 'https://schema.org/email' - format: email - maxLength: 128 - minLength: 1 - type: - - 'null' - - string - role: + name: + description: 'The full name of the category.' + example: Lagersport + maxLength: 32 + type: string + numberingStyle: + default: '1' description: |- - The role that this person has in the camp. Depending on the role, the collaborator might have - different access rights. There must always be at least one manager in a camp. + Specifies whether the schedule entries of the activities in this category should be numbered + using arabic numbers, roman numerals or letters. enum: - - guest - - manager - - member - example: member - maxLength: 16 + - '-' + - '1' + - A + - I + - a + - i + example: '1' + maxLength: 1 type: string - status: - default: invited - description: 'Indicates whether the collaborator is still invited, has left the camp, or is participating normally.' - enum: - - established - - inactive - - invited - example: inactive + preferredContentTypes: + description: 'The content types that are most likely to be useful for planning programme of this category.' + example: '["/content_types/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + type: array + rootContentNode: + $ref: '#/components/schemas/ColumnLayout.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' + description: |- + The programme contents, organized as a tree of content nodes. The root content node cannot be + exchanged, but all the contents attached to it can. + example: /content_nodes/1a2b3c4d + readOnly: true + short: + description: |- + An abbreviated name of the category, for display in tight spaces, often together with the day and + schedule entry number, e.g. LS 3.a, where LS is the category's short name. + example: LS maxLength: 16 type: string - user: - anyOf: - - - $ref: '#/components/schemas/User.jsonld-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' - - - type: 'null' - readOnly: true required: - camp - - role - - status + - color + - name + - numberingStyle + - preferredContentTypes + - short type: object - CampCollaboration.jsonld-read_CampCollaboration.Camp_CampCollaboration.User: + Category.jsonld-read_Category.PreferredContentTypes_Category.ContentNodes: deprecated: false - description: 'A user participating in some way in the planning or realization of a camp.' + description: |- + A type of programme, such as sports activities or meal times, is called a category. A category + determines color and numbering scheme of the associated activities, and is used for marking + "similar" activities. A category may contain some skeleton programme which is used as a blueprint + when creating a new activity in the category. properties: '@context': oneOf: @@ -7574,117 +7304,6 @@ components: '@type': readOnly: true type: string - camp: - anyOf: - - - $ref: '#/components/schemas/Camp.jsonld-read_CampCollaboration.Camp_CampCollaboration.User' - - - type: 'null' - readOnly: true - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - inviteEmail: - description: |- - The receiver email address of the invitation email, in case the collaboration does not yet have - a user account. Either this field or the user field should be null. - example: some-email@example.com - externalDocs: - url: 'https://schema.org/email' - format: email - maxLength: 128 - minLength: 1 - type: - - 'null' - - string - role: - description: |- - The role that this person has in the camp. Depending on the role, the collaborator might have - different access rights. There must always be at least one manager in a camp. - enum: - - guest - - manager - - member - example: member - maxLength: 16 - type: string - status: - default: invited - description: 'Indicates whether the collaborator is still invited, has left the camp, or is participating normally.' - enum: - - established - - inactive - - invited - example: inactive - maxLength: 16 - type: string - user: - anyOf: - - - $ref: '#/components/schemas/User.jsonld-read_CampCollaboration.Camp_CampCollaboration.User' - - - type: 'null' - readOnly: true - required: - - camp - - role - - status - type: object - CampCollaboration.jsonld-write_create: - deprecated: false - description: 'A user participating in some way in the planning or realization of a camp.' - properties: - camp: - description: 'The camp that the collaborator is part of. Cannot be changed once the campCollaboration is created.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - inviteEmail: - description: |- - The receiver email address of the invitation email, in case the collaboration does not yet have - a user account. Either this field or the user field should be null. - example: some-email@example.com - externalDocs: - url: 'https://schema.org/email' - format: email - maxLength: 128 - minLength: 1 - type: - - 'null' - - string - role: - description: |- - The role that this person has in the camp. Depending on the role, the collaborator might have - different access rights. There must always be at least one manager in a camp. - enum: - - guest - - manager - - member - example: member - maxLength: 16 - type: string - user: - description: 'The person that is collaborating in the camp. Cannot be changed once the campCollaboration is established.' - example: /users/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - required: - - camp - - role - type: object - Category-read: - deprecated: false - description: |- - A type of programme, such as sports activities or meal times, is called a category. A category - determines color and numbering scheme of the associated activities, and is used for marking - "similar" activities. A category may contain some skeleton programme which is used as a blueprint - when creating a new activity in the category. - properties: camp: description: 'The camp to which this category belongs. May not be changed once the category is created.' example: /camps/1a2b3c4d @@ -7732,15 +7351,12 @@ components: maxLength: 1 type: string preferredContentTypes: - description: 'The content types that are most likely to be useful for planning programme of this category.' - example: '["/content_types/1a2b3c4d"]' items: - example: 'https://example.com/' - format: iri-reference - type: string + $ref: '#/components/schemas/ContentType.jsonld-read_Category.PreferredContentTypes_Category.ContentNodes' + readOnly: true type: array rootContentNode: - $ref: '#/components/schemas/ColumnLayout-read' + $ref: '#/components/schemas/ColumnLayout.jsonld-read_Category.PreferredContentTypes_Category.ContentNodes' description: |- The programme contents, organized as a tree of content nodes. The root content node cannot be exchanged, but all the contents attached to it can. @@ -7761,9 +7377,13 @@ components: - preferredContentTypes - short type: object - Category-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: + Category.jsonld-write_create: deprecated: false - description: '' + description: |- + A type of programme, such as sports activities or meal times, is called a category. A category + determines color and numbering scheme of the associated activities, and is used for marking + "similar" activities. A category may contain some skeleton programme which is used as a blueprint + when creating a new activity in the category. properties: camp: description: 'The camp to which this category belongs. May not be changed once the category is created.' @@ -7776,21 +7396,13 @@ components: maxLength: 8 pattern: '^(#[0-9a-zA-Z]{6})$' type: string - contentNodes: - description: 'All the content nodes that make up the tree of programme content.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string + copyCategorySource: + description: 'Copy contents from this source category or activity.' + example: /categories/1a2b3c4d + format: iri-reference + type: + - 'null' + - string name: description: 'The full name of the category.' example: Lagersport @@ -7819,13 +7431,6 @@ components: format: iri-reference type: string type: array - rootContentNode: - $ref: '#/components/schemas/ColumnLayout-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' - description: |- - The programme contents, organized as a tree of content nodes. The root content node cannot be - exchanged, but all the contents attached to it can. - example: /content_nodes/1a2b3c4d - readOnly: true short: description: |- An abbreviated name of the category, for display in tight spaces, often together with the day and @@ -7841,27 +7446,12 @@ components: - preferredContentTypes - short type: object - Category-read_Category.PreferredContentTypes_Category.ContentNodes: + ColumnLayout-read: deprecated: false - description: |- - A type of programme, such as sports activities or meal times, is called a category. A category - determines color and numbering scheme of the associated activities, and is used for marking - "similar" activities. A category may contain some skeleton programme which is used as a blueprint - when creating a new activity in the category. + description: '' properties: - camp: - description: 'The camp to which this category belongs. May not be changed once the category is created.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - color: - description: 'The color of the activities in this category, as a hex color string.' - example: '#4DBB52' - maxLength: 8 - pattern: '^(#[0-9a-zA-Z]{6})$' - type: string - contentNodes: - description: 'All the content nodes that make up the tree of programme content.' + children: + description: 'All content nodes that are direct children of this content node.' example: '["/content_nodes/1a2b3c4d"]' items: example: 'https://example.com/' @@ -7869,285 +7459,195 @@ components: type: string readOnly: true type: array + contentType: + description: |- + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d + format: iri-reference + type: string + contentTypeName: + description: 'The name of the content type of this content node. Read-only, for convenience.' + example: SafetyConcept + readOnly: true + type: string + data: + default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' + description: |- + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + example: + columns: + - + slot: '1' + width: 12 + items: + type: string + type: + - array + - 'null' id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - name: - description: 'The full name of the category.' - example: Lagersport - maxLength: 32 - type: string - numberingStyle: - default: '1' + instanceName: description: |- - Specifies whether the schedule entries of the activities in this category should be numbered - using arabic numbers, roman numerals or letters. - enum: - - '-' - - '1' - - A - - I - - a - - i - example: '1' - maxLength: 1 - type: string - preferredContentTypes: - items: - $ref: '#/components/schemas/ContentType-read_Category.PreferredContentTypes_Category.ContentNodes' - readOnly: true - type: array - rootContentNode: - $ref: '#/components/schemas/ColumnLayout-read_Category.PreferredContentTypes_Category.ContentNodes' + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 + type: + - 'null' + - string + parent: description: |- - The programme contents, organized as a tree of content nodes. The root content node cannot be - exchanged, but all the contents attached to it can. + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. example: /content_nodes/1a2b3c4d - readOnly: true - short: - description: |- - An abbreviated name of the category, for display in tight spaces, often together with the day and - schedule entry number, e.g. LS 3.a, where LS is the category's short name. - example: LS - maxLength: 16 - type: string - required: - - camp - - color - - name - - numberingStyle - - preferredContentTypes - - short - type: object - Category-write_create: - deprecated: false - description: |- - A type of programme, such as sports activities or meal times, is called a category. A category - determines color and numbering scheme of the associated activities, and is used for marking - "similar" activities. A category may contain some skeleton programme which is used as a blueprint - when creating a new activity in the category. - properties: - camp: - description: 'The camp to which this category belongs. May not be changed once the category is created.' - example: /camps/1a2b3c4d format: iri-reference - type: string - color: - description: 'The color of the activities in this category, as a hex color string.' - example: '#4DBB52' - maxLength: 8 - pattern: '^(#[0-9a-zA-Z]{6})$' - type: string - copyCategorySource: - description: 'Copy contents from this source category or activity.' - example: /categories/1a2b3c4d + type: + - 'null' + - string + position: + default: -1 + description: |- + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 + type: integer + root: + description: |- + The content node that is the root of the content node tree. Refers to itself in case this + content node is the root. + example: /content_nodes/1a2b3c4d format: iri-reference + readOnly: true type: - 'null' - string - name: - description: 'The full name of the category.' - example: Lagersport - maxLength: 32 - type: string - numberingStyle: - default: '1' + slot: description: |- - Specifies whether the schedule entries of the activities in this category should be numbered - using arabic numbers, roman numerals or letters. - enum: - - '-' - - '1' - - A - - I - - a - - i + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. example: '1' - maxLength: 1 - type: string - preferredContentTypes: - description: 'The content types that are most likely to be useful for planning programme of this category.' - example: '["/content_types/1a2b3c4d"]' + maxLength: 32 + type: + - 'null' + - string + required: + - children + - contentType + - data + - position + type: object + ColumnLayout-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: + deprecated: false + description: '' + properties: + children: + description: 'All content nodes that are direct children of this content node.' + example: '["/content_nodes/1a2b3c4d"]' items: example: 'https://example.com/' format: iri-reference type: string + readOnly: true type: array - short: + contentType: description: |- - An abbreviated name of the category, for display in tight spaces, often together with the day and - schedule entry number, e.g. LS 3.a, where LS is the category's short name. - example: LS - maxLength: 16 + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d + format: iri-reference type: string - required: - - camp - - color - - name - - numberingStyle - - preferredContentTypes - - short - type: object - Category-write_update: - deprecated: false - description: |- - A type of programme, such as sports activities or meal times, is called a category. A category - determines color and numbering scheme of the associated activities, and is used for marking - "similar" activities. A category may contain some skeleton programme which is used as a blueprint - when creating a new activity in the category. - properties: - color: - description: 'The color of the activities in this category, as a hex color string.' - example: '#4DBB52' - maxLength: 8 - pattern: '^(#[0-9a-zA-Z]{6})$' - type: string - name: - description: 'The full name of the category.' - example: Lagersport - maxLength: 32 - type: string - numberingStyle: - default: '1' - description: |- - Specifies whether the schedule entries of the activities in this category should be numbered - using arabic numbers, roman numerals or letters. - enum: - - '-' - - '1' - - A - - I - - a - - i - example: '1' - maxLength: 1 + contentTypeName: + description: 'The name of the content type of this content node. Read-only, for convenience.' + example: SafetyConcept + readOnly: true type: string - preferredContentTypes: - description: 'The content types that are most likely to be useful for planning programme of this category.' - example: '["/content_types/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - type: array - short: + data: + default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' description: |- - An abbreviated name of the category, for display in tight spaces, often together with the day and - schedule entry number, e.g. LS 3.a, where LS is the category's short name. - example: LS - maxLength: 16 - type: string - required: - - color - - name - - numberingStyle - - preferredContentTypes - - short - type: object - Category.jsonapi-read: - deprecated: false - description: |- - A type of programme, such as sports activities or meal times, is called a category. A category - determines color and numbering scheme of the associated activities, and is used for marking - "similar" activities. A category may contain some skeleton programme which is used as a blueprint - when creating a new activity in the category. - properties: - camp: - description: 'The camp to which this category belongs. May not be changed once the category is created.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - color: - description: 'The color of the activities in this category, as a hex color string.' - example: '#4DBB52' - maxLength: 8 - pattern: '^(#[0-9a-zA-Z]{6})$' - type: string - contentNodes: - description: 'All the content nodes that make up the tree of programme content.' - example: '["/content_nodes/1a2b3c4d"]' + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + example: + columns: + - + slot: '1' + width: 12 items: - example: 'https://example.com/' - format: iri-reference type: string - readOnly: true - type: array + type: + - array + - 'null' id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - name: - description: 'The full name of the category.' - example: Lagersport + instanceName: + description: |- + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm maxLength: 32 - type: string - numberingStyle: - default: '1' + type: + - 'null' + - string + parent: description: |- - Specifies whether the schedule entries of the activities in this category should be numbered - using arabic numbers, roman numerals or letters. - enum: - - '-' - - '1' - - A - - I - - a - - i - example: '1' - maxLength: 1 - type: string - preferredContentTypes: - description: 'The content types that are most likely to be useful for planning programme of this category.' - example: '["/content_types/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - type: array - rootContentNode: - $ref: '#/components/schemas/ColumnLayout.jsonapi-read' + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + position: + default: -1 description: |- - The programme contents, organized as a tree of content nodes. The root content node cannot be - exchanged, but all the contents attached to it can. + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 + type: integer + root: + description: |- + The content node that is the root of the content node tree. Refers to itself in case this + content node is the root. example: /content_nodes/1a2b3c4d + format: iri-reference readOnly: true - short: + type: + - 'null' + - string + slot: description: |- - An abbreviated name of the category, for display in tight spaces, often together with the day and - schedule entry number, e.g. LS 3.a, where LS is the category's short name. - example: LS - maxLength: 16 - type: string + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 + type: + - 'null' + - string required: - - camp - - color - - name - - numberingStyle - - preferredContentTypes - - short + - children + - contentType + - data + - position type: object - Category.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: + ColumnLayout-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: deprecated: false description: '' properties: - camp: - description: 'The camp to which this category belongs. May not be changed once the category is created.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - color: - description: 'The color of the activities in this category, as a hex color string.' - example: '#4DBB52' - maxLength: 8 - pattern: '^(#[0-9a-zA-Z]{6})$' - type: string - contentNodes: - description: 'All the content nodes that make up the tree of programme content.' + children: + description: 'All content nodes that are direct children of this content node.' example: '["/content_nodes/1a2b3c4d"]' items: example: 'https://example.com/' @@ -8155,83 +7655,97 @@ components: type: string readOnly: true type: array + contentType: + description: |- + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d + format: iri-reference + type: string + contentTypeName: + description: 'The name of the content type of this content node. Read-only, for convenience.' + example: SafetyConcept + readOnly: true + type: string + data: + default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' + description: |- + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + example: + columns: + - + slot: '1' + width: 12 + items: + type: string + type: + - array + - 'null' id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - name: - description: 'The full name of the category.' - example: Lagersport - maxLength: 32 - type: string - numberingStyle: - default: '1' + instanceName: description: |- - Specifies whether the schedule entries of the activities in this category should be numbered - using arabic numbers, roman numerals or letters. - enum: - - '-' - - '1' - - A - - I - - a - - i - example: '1' - maxLength: 1 - type: string - preferredContentTypes: - description: 'The content types that are most likely to be useful for planning programme of this category.' - example: '["/content_types/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - type: array - rootContentNode: - $ref: '#/components/schemas/ColumnLayout.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 + type: + - 'null' + - string + parent: description: |- - The programme contents, organized as a tree of content nodes. The root content node cannot be - exchanged, but all the contents attached to it can. + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + position: + default: -1 + description: |- + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 + type: integer + root: + description: |- + The content node that is the root of the content node tree. Refers to itself in case this + content node is the root. example: /content_nodes/1a2b3c4d + format: iri-reference readOnly: true - short: + type: + - 'null' + - string + slot: description: |- - An abbreviated name of the category, for display in tight spaces, often together with the day and - schedule entry number, e.g. LS 3.a, where LS is the category's short name. - example: LS - maxLength: 16 - type: string + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 + type: + - 'null' + - string required: - - camp - - color - - name - - numberingStyle - - preferredContentTypes - - short + - children + - contentType + - data + - position type: object - Category.jsonapi-read_Category.PreferredContentTypes_Category.ContentNodes: + ColumnLayout-read_Category.PreferredContentTypes_Category.ContentNodes: deprecated: false - description: |- - A type of programme, such as sports activities or meal times, is called a category. A category - determines color and numbering scheme of the associated activities, and is used for marking - "similar" activities. A category may contain some skeleton programme which is used as a blueprint - when creating a new activity in the category. + description: '' properties: - camp: - description: 'The camp to which this category belongs. May not be changed once the category is created.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - color: - description: 'The color of the activities in this category, as a hex color string.' - example: '#4DBB52' - maxLength: 8 - pattern: '^(#[0-9a-zA-Z]{6})$' - type: string - contentNodes: - description: 'All the content nodes that make up the tree of programme content.' + children: + description: 'All content nodes that are direct children of this content node.' example: '["/content_nodes/1a2b3c4d"]' items: example: 'https://example.com/' @@ -8239,373 +7753,417 @@ components: type: string readOnly: true type: array + contentType: + description: |- + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d + format: iri-reference + type: string + contentTypeName: + description: 'The name of the content type of this content node. Read-only, for convenience.' + example: SafetyConcept + readOnly: true + type: string + data: + default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' + description: |- + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + example: + columns: + - + slot: '1' + width: 12 + items: + type: string + type: + - array + - 'null' id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - name: - description: 'The full name of the category.' - example: Lagersport - maxLength: 32 - type: string - numberingStyle: - default: '1' + instanceName: description: |- - Specifies whether the schedule entries of the activities in this category should be numbered - using arabic numbers, roman numerals or letters. - enum: - - '-' - - '1' - - A - - I - - a - - i - example: '1' - maxLength: 1 - type: string - preferredContentTypes: - items: - $ref: '#/components/schemas/ContentType.jsonapi-read_Category.PreferredContentTypes_Category.ContentNodes' - readOnly: true - type: array - rootContentNode: - $ref: '#/components/schemas/ColumnLayout.jsonapi-read_Category.PreferredContentTypes_Category.ContentNodes' + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 + type: + - 'null' + - string + parent: description: |- - The programme contents, organized as a tree of content nodes. The root content node cannot be - exchanged, but all the contents attached to it can. + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. example: /content_nodes/1a2b3c4d - readOnly: true - short: - description: |- - An abbreviated name of the category, for display in tight spaces, often together with the day and - schedule entry number, e.g. LS 3.a, where LS is the category's short name. - example: LS - maxLength: 16 - type: string - required: - - camp - - color - - name - - numberingStyle - - preferredContentTypes - - short - type: object - Category.jsonapi-write_create: - deprecated: false - description: |- - A type of programme, such as sports activities or meal times, is called a category. A category - determines color and numbering scheme of the associated activities, and is used for marking - "similar" activities. A category may contain some skeleton programme which is used as a blueprint - when creating a new activity in the category. - properties: - camp: - description: 'The camp to which this category belongs. May not be changed once the category is created.' - example: /camps/1a2b3c4d format: iri-reference - type: string - color: - description: 'The color of the activities in this category, as a hex color string.' - example: '#4DBB52' - maxLength: 8 - pattern: '^(#[0-9a-zA-Z]{6})$' - type: string - copyCategorySource: - description: 'Copy contents from this source category or activity.' - example: /categories/1a2b3c4d + type: + - 'null' + - string + position: + default: -1 + description: |- + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 + type: integer + root: + description: |- + The content node that is the root of the content node tree. Refers to itself in case this + content node is the root. + example: /content_nodes/1a2b3c4d format: iri-reference + readOnly: true type: - 'null' - string - name: - description: 'The full name of the category.' - example: Lagersport - maxLength: 32 - type: string - numberingStyle: - default: '1' + slot: description: |- - Specifies whether the schedule entries of the activities in this category should be numbered - using arabic numbers, roman numerals or letters. - enum: - - '-' - - '1' - - A - - I - - a - - i + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. example: '1' - maxLength: 1 - type: string - preferredContentTypes: - description: 'The content types that are most likely to be useful for planning programme of this category.' - example: '["/content_types/1a2b3c4d"]' + maxLength: 32 + type: + - 'null' + - string + required: + - children + - contentType + - data + - position + type: object + ColumnLayout-read_ScheduleEntry.Activity: + deprecated: false + description: '' + properties: + children: + description: 'All content nodes that are direct children of this content node.' + example: '["/content_nodes/1a2b3c4d"]' items: example: 'https://example.com/' format: iri-reference type: string + readOnly: true type: array - short: + contentType: description: |- - An abbreviated name of the category, for display in tight spaces, often together with the day and - schedule entry number, e.g. LS 3.a, where LS is the category's short name. - example: LS - maxLength: 16 + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d + format: iri-reference type: string - required: - - camp - - color - - name - - numberingStyle - - preferredContentTypes - - short - type: object - Category.jsonapi-write_update: - deprecated: false - description: |- - A type of programme, such as sports activities or meal times, is called a category. A category - determines color and numbering scheme of the associated activities, and is used for marking - "similar" activities. A category may contain some skeleton programme which is used as a blueprint - when creating a new activity in the category. - properties: - color: - description: 'The color of the activities in this category, as a hex color string.' - example: '#4DBB52' - maxLength: 8 - pattern: '^(#[0-9a-zA-Z]{6})$' - type: string - name: - description: 'The full name of the category.' - example: Lagersport - maxLength: 32 - type: string - numberingStyle: - default: '1' - description: |- - Specifies whether the schedule entries of the activities in this category should be numbered - using arabic numbers, roman numerals or letters. - enum: - - '-' - - '1' - - A - - I - - a - - i - example: '1' - maxLength: 1 + contentTypeName: + description: 'The name of the content type of this content node. Read-only, for convenience.' + example: SafetyConcept + readOnly: true type: string - preferredContentTypes: - description: 'The content types that are most likely to be useful for planning programme of this category.' - example: '["/content_types/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - type: array - short: + data: + default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' description: |- - An abbreviated name of the category, for display in tight spaces, often together with the day and - schedule entry number, e.g. LS 3.a, where LS is the category's short name. - example: LS - maxLength: 16 - type: string - required: - - color - - name - - numberingStyle - - preferredContentTypes - - short - type: object - Category.jsonhal-read: - deprecated: false - description: |- - A type of programme, such as sports activities or meal times, is called a category. A category - determines color and numbering scheme of the associated activities, and is used for marking - "similar" activities. A category may contain some skeleton programme which is used as a blueprint - when creating a new activity in the category. - properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object - camp: - description: 'The camp to which this category belongs. May not be changed once the category is created.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - color: - description: 'The color of the activities in this category, as a hex color string.' - example: '#4DBB52' - maxLength: 8 - pattern: '^(#[0-9a-zA-Z]{6})$' - type: string - contentNodes: - description: 'All the content nodes that make up the tree of programme content.' - example: '["/content_nodes/1a2b3c4d"]' + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + example: + columns: + - + slot: '1' + width: 12 items: - example: 'https://example.com/' - format: iri-reference type: string - readOnly: true - type: array + type: + - array + - 'null' id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - name: - description: 'The full name of the category.' - example: Lagersport + instanceName: + description: |- + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm maxLength: 32 - type: string - numberingStyle: - default: '1' + type: + - 'null' + - string + parent: description: |- - Specifies whether the schedule entries of the activities in this category should be numbered - using arabic numbers, roman numerals or letters. - enum: - - '-' - - '1' - - A - - I - - a - - i - example: '1' - maxLength: 1 - type: string - preferredContentTypes: - description: 'The content types that are most likely to be useful for planning programme of this category.' - example: '["/content_types/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - type: array - rootContentNode: - $ref: '#/components/schemas/ColumnLayout.jsonhal-read' + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + position: + default: -1 description: |- - The programme contents, organized as a tree of content nodes. The root content node cannot be - exchanged, but all the contents attached to it can. + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 + type: integer + root: + description: |- + The content node that is the root of the content node tree. Refers to itself in case this + content node is the root. example: /content_nodes/1a2b3c4d + format: iri-reference readOnly: true - short: + type: + - 'null' + - string + slot: description: |- - An abbreviated name of the category, for display in tight spaces, often together with the day and - schedule entry number, e.g. LS 3.a, where LS is the category's short name. - example: LS - maxLength: 16 - type: string + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 + type: + - 'null' + - string required: - - camp - - color - - name - - numberingStyle - - preferredContentTypes - - short + - children + - contentType + - data + - position type: object - Category.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: + ColumnLayout-write_create: deprecated: false description: '' properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object - camp: - description: 'The camp to which this category belongs. May not be changed once the category is created.' - example: /camps/1a2b3c4d + contentType: + description: |- + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d format: iri-reference type: string - color: - description: 'The color of the activities in this category, as a hex color string.' - example: '#4DBB52' - maxLength: 8 - pattern: '^(#[0-9a-zA-Z]{6})$' - type: string - contentNodes: - description: 'All the content nodes that make up the tree of programme content.' - example: '["/content_nodes/1a2b3c4d"]' + data: + default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' + description: |- + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + example: + columns: + - + slot: '1' + width: 12 items: - example: 'https://example.com/' - format: iri-reference type: string - readOnly: true - type: array - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - name: - description: 'The full name of the category.' - example: Lagersport + type: + - array + - 'null' + instanceName: + description: |- + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm maxLength: 32 - type: string - numberingStyle: - default: '1' + type: + - 'null' + - string + parent: description: |- - Specifies whether the schedule entries of the activities in this category should be numbered - using arabic numbers, roman numerals or letters. - enum: - - '-' - - '1' - - A - - I - - a - - i + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + position: + default: -1 + description: |- + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 + type: integer + slot: + description: |- + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. example: '1' - maxLength: 1 - type: string - preferredContentTypes: - description: 'The content types that are most likely to be useful for planning programme of this category.' - example: '["/content_types/1a2b3c4d"]' + maxLength: 32 + type: + - 'null' + - string + required: + - contentType + - data + - parent + - position + type: object + ColumnLayout-write_update: + deprecated: false + description: '' + properties: + data: + default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' + description: |- + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + example: + columns: + - + slot: '1' + width: 12 + items: + type: string + type: + - array + - 'null' + instanceName: + description: |- + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 + type: + - 'null' + - string + parent: + description: |- + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + position: + default: -1 + description: |- + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 + type: integer + slot: + description: |- + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 + type: + - 'null' + - string + required: + - data + - position + type: object + ColumnLayout.jsonapi: + deprecated: false + description: '' + properties: + children: + description: 'All content nodes that are direct children of this content node.' + example: '["/content_nodes/1a2b3c4d"]' items: example: 'https://example.com/' format: iri-reference type: string + readOnly: true type: array - rootContentNode: - $ref: '#/components/schemas/ColumnLayout.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' + contentType: description: |- - The programme contents, organized as a tree of content nodes. The root content node cannot be - exchanged, but all the contents attached to it can. - example: /content_nodes/1a2b3c4d + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d + format: iri-reference readOnly: true - short: + type: string + contentTypeName: + description: 'The name of the content type of this content node. Read-only, for convenience.' + example: SafetyConcept + readOnly: true + type: string + data: + default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' description: |- - An abbreviated name of the category, for display in tight spaces, often together with the day and - schedule entry number, e.g. LS 3.a, where LS is the category's short name. - example: LS + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + example: + columns: + - + slot: '1' + width: 12 + items: + type: string + type: + - array + - 'null' + id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d maxLength: 16 + readOnly: true type: string + instanceName: + description: |- + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 + type: + - 'null' + - string + parent: + description: |- + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + position: + default: -1 + description: |- + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 + type: integer + root: + description: |- + The content node that is the root of the content node tree. Refers to itself in case this + content node is the root. + example: /content_nodes/1a2b3c4d + format: iri-reference + readOnly: true + type: + - 'null' + - string + slot: + description: |- + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 + type: + - 'null' + - string required: - - camp - - color - - name - - numberingStyle - - preferredContentTypes - - short + - children + - contentType + - data + - position type: object - Category.jsonhal-read_Category.PreferredContentTypes_Category.ContentNodes: + ColumnLayout.jsonhal-read: deprecated: false - description: |- - A type of programme, such as sports activities or meal times, is called a category. A category - determines color and numbering scheme of the associated activities, and is used for marking - "similar" activities. A category may contain some skeleton programme which is used as a blueprint - when creating a new activity in the category. + description: '' properties: _links: properties: @@ -8616,19 +8174,8 @@ components: type: string type: object type: object - camp: - description: 'The camp to which this category belongs. May not be changed once the category is created.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - color: - description: 'The color of the activities in this category, as a hex color string.' - example: '#4DBB52' - maxLength: 8 - pattern: '^(#[0-9a-zA-Z]{6})$' - type: string - contentNodes: - description: 'All the content nodes that make up the tree of programme content.' + children: + description: 'All content nodes that are direct children of this content node.' example: '["/content_nodes/1a2b3c4d"]' items: example: 'https://example.com/' @@ -8636,66 +8183,94 @@ components: type: string readOnly: true type: array + contentType: + description: |- + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d + format: iri-reference + type: string + contentTypeName: + description: 'The name of the content type of this content node. Read-only, for convenience.' + example: SafetyConcept + readOnly: true + type: string + data: + default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' + description: |- + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + example: + columns: + - + slot: '1' + width: 12 + items: + type: string + type: + - array + - 'null' id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - name: - description: 'The full name of the category.' - example: Lagersport - maxLength: 32 - type: string - numberingStyle: - default: '1' + instanceName: description: |- - Specifies whether the schedule entries of the activities in this category should be numbered - using arabic numbers, roman numerals or letters. - enum: - - '-' - - '1' - - A - - I - - a - - i - example: '1' - maxLength: 1 - type: string - preferredContentTypes: - items: - $ref: '#/components/schemas/ContentType.jsonhal-read_Category.PreferredContentTypes_Category.ContentNodes' - readOnly: true - type: array - rootContentNode: - $ref: '#/components/schemas/ColumnLayout.jsonhal-read_Category.PreferredContentTypes_Category.ContentNodes' + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 + type: + - 'null' + - string + parent: description: |- - The programme contents, organized as a tree of content nodes. The root content node cannot be - exchanged, but all the contents attached to it can. + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + position: + default: -1 + description: |- + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 + type: integer + root: + description: |- + The content node that is the root of the content node tree. Refers to itself in case this + content node is the root. example: /content_nodes/1a2b3c4d + format: iri-reference readOnly: true - short: + type: + - 'null' + - string + slot: description: |- - An abbreviated name of the category, for display in tight spaces, often together with the day and - schedule entry number, e.g. LS 3.a, where LS is the category's short name. - example: LS - maxLength: 16 - type: string + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 + type: + - 'null' + - string required: - - camp - - color - - name - - numberingStyle - - preferredContentTypes - - short + - children + - contentType + - data + - position type: object - Category.jsonhal-write_create: + ColumnLayout.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: deprecated: false - description: |- - A type of programme, such as sports activities or meal times, is called a category. A category - determines color and numbering scheme of the associated activities, and is used for marking - "similar" activities. A category may contain some skeleton programme which is used as a blueprint - when creating a new activity in the category. + description: '' properties: _links: properties: @@ -8706,214 +8281,115 @@ components: type: string type: object type: object - camp: - description: 'The camp to which this category belongs. May not be changed once the category is created.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - color: - description: 'The color of the activities in this category, as a hex color string.' - example: '#4DBB52' - maxLength: 8 - pattern: '^(#[0-9a-zA-Z]{6})$' - type: string - copyCategorySource: - description: 'Copy contents from this source category or activity.' - example: /categories/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - name: - description: 'The full name of the category.' - example: Lagersport - maxLength: 32 - type: string - numberingStyle: - default: '1' - description: |- - Specifies whether the schedule entries of the activities in this category should be numbered - using arabic numbers, roman numerals or letters. - enum: - - '-' - - '1' - - A - - I - - a - - i - example: '1' - maxLength: 1 - type: string - preferredContentTypes: - description: 'The content types that are most likely to be useful for planning programme of this category.' - example: '["/content_types/1a2b3c4d"]' + children: + description: 'All content nodes that are direct children of this content node.' + example: '["/content_nodes/1a2b3c4d"]' items: example: 'https://example.com/' format: iri-reference type: string + readOnly: true type: array - short: + contentType: description: |- - An abbreviated name of the category, for display in tight spaces, often together with the day and - schedule entry number, e.g. LS 3.a, where LS is the category's short name. - example: LS - maxLength: 16 - type: string - required: - - camp - - color - - name - - numberingStyle - - preferredContentTypes - - short - type: object - Category.jsonld-read: - deprecated: false - description: |- - A type of programme, such as sports activities or meal times, is called a category. A category - determines color and numbering scheme of the associated activities, and is used for marking - "similar" activities. A category may contain some skeleton programme which is used as a blueprint - when creating a new activity in the category. - properties: - '@context': - oneOf: - - - additionalProperties: true - properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] - type: string - required: - - '@vocab' - - hydra - type: object - - - type: string - readOnly: true - '@id': - readOnly: true - type: string - '@type': - readOnly: true - type: string - camp: - description: 'The camp to which this category belongs. May not be changed once the category is created.' - example: /camps/1a2b3c4d + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d format: iri-reference type: string - color: - description: 'The color of the activities in this category, as a hex color string.' - example: '#4DBB52' - maxLength: 8 - pattern: '^(#[0-9a-zA-Z]{6})$' + contentTypeName: + description: 'The name of the content type of this content node. Read-only, for convenience.' + example: SafetyConcept + readOnly: true type: string - contentNodes: - description: 'All the content nodes that make up the tree of programme content.' - example: '["/content_nodes/1a2b3c4d"]' + data: + default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' + description: |- + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + example: + columns: + - + slot: '1' + width: 12 items: - example: 'https://example.com/' - format: iri-reference type: string - readOnly: true - type: array + type: + - array + - 'null' id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - name: - description: 'The full name of the category.' - example: Lagersport - maxLength: 32 - type: string - numberingStyle: - default: '1' + instanceName: description: |- - Specifies whether the schedule entries of the activities in this category should be numbered - using arabic numbers, roman numerals or letters. - enum: - - '-' - - '1' - - A - - I - - a - - i - example: '1' - maxLength: 1 - type: string - preferredContentTypes: - description: 'The content types that are most likely to be useful for planning programme of this category.' - example: '["/content_types/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - type: array - rootContentNode: - $ref: '#/components/schemas/ColumnLayout.jsonld-read' + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 + type: + - 'null' + - string + parent: description: |- - The programme contents, organized as a tree of content nodes. The root content node cannot be - exchanged, but all the contents attached to it can. + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. example: /content_nodes/1a2b3c4d - readOnly: true - short: - description: |- - An abbreviated name of the category, for display in tight spaces, often together with the day and - schedule entry number, e.g. LS 3.a, where LS is the category's short name. - example: LS - maxLength: 16 - type: string + format: iri-reference + type: + - 'null' + - string + position: + default: -1 + description: |- + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 + type: integer + root: + description: |- + The content node that is the root of the content node tree. Refers to itself in case this + content node is the root. + example: /content_nodes/1a2b3c4d + format: iri-reference + readOnly: true + type: + - 'null' + - string + slot: + description: |- + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 + type: + - 'null' + - string required: - - camp - - color - - name - - numberingStyle - - preferredContentTypes - - short + - children + - contentType + - data + - position type: object - Category.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: + ColumnLayout.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: deprecated: false description: '' properties: - '@context': - oneOf: - - - additionalProperties: true + _links: + properties: + self: properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] + href: + format: iri-reference type: string - required: - - '@vocab' - - hydra type: object - - - type: string - readOnly: true - '@id': - readOnly: true - type: string - '@type': - readOnly: true - type: string - camp: - description: 'The camp to which this category belongs. May not be changed once the category is created.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - color: - description: 'The color of the activities in this category, as a hex color string.' - example: '#4DBB52' - maxLength: 8 - pattern: '^(#[0-9a-zA-Z]{6})$' - type: string - contentNodes: - description: 'All the content nodes that make up the tree of programme content.' + type: object + children: + description: 'All content nodes that are direct children of this content node.' example: '["/content_nodes/1a2b3c4d"]' items: example: 'https://example.com/' @@ -8921,241 +8397,106 @@ components: type: string readOnly: true type: array + contentType: + description: |- + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d + format: iri-reference + type: string + contentTypeName: + description: 'The name of the content type of this content node. Read-only, for convenience.' + example: SafetyConcept + readOnly: true + type: string + data: + default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' + description: |- + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + example: + columns: + - + slot: '1' + width: 12 + items: + type: string + type: + - array + - 'null' id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - name: - description: 'The full name of the category.' - example: Lagersport + instanceName: + description: |- + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm maxLength: 32 - type: string - numberingStyle: - default: '1' + type: + - 'null' + - string + parent: description: |- - Specifies whether the schedule entries of the activities in this category should be numbered - using arabic numbers, roman numerals or letters. - enum: - - '-' - - '1' - - A - - I - - a - - i - example: '1' - maxLength: 1 - type: string - preferredContentTypes: - description: 'The content types that are most likely to be useful for planning programme of this category.' - example: '["/content_types/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - type: array - rootContentNode: - $ref: '#/components/schemas/ColumnLayout.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + position: + default: -1 description: |- - The programme contents, organized as a tree of content nodes. The root content node cannot be - exchanged, but all the contents attached to it can. + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 + type: integer + root: + description: |- + The content node that is the root of the content node tree. Refers to itself in case this + content node is the root. example: /content_nodes/1a2b3c4d + format: iri-reference readOnly: true - short: + type: + - 'null' + - string + slot: description: |- - An abbreviated name of the category, for display in tight spaces, often together with the day and - schedule entry number, e.g. LS 3.a, where LS is the category's short name. - example: LS - maxLength: 16 - type: string + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 + type: + - 'null' + - string required: - - camp - - color - - name - - numberingStyle - - preferredContentTypes - - short + - children + - contentType + - data + - position type: object - Category.jsonld-read_Category.PreferredContentTypes_Category.ContentNodes: + ColumnLayout.jsonhal-read_Category.PreferredContentTypes_Category.ContentNodes: deprecated: false - description: |- - A type of programme, such as sports activities or meal times, is called a category. A category - determines color and numbering scheme of the associated activities, and is used for marking - "similar" activities. A category may contain some skeleton programme which is used as a blueprint - when creating a new activity in the category. + description: '' properties: - '@context': - oneOf: - - - additionalProperties: true + _links: + properties: + self: properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] + href: + format: iri-reference type: string - required: - - '@vocab' - - hydra type: object - - - type: string - readOnly: true - '@id': - readOnly: true - type: string - '@type': - readOnly: true - type: string - camp: - description: 'The camp to which this category belongs. May not be changed once the category is created.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - color: - description: 'The color of the activities in this category, as a hex color string.' - example: '#4DBB52' - maxLength: 8 - pattern: '^(#[0-9a-zA-Z]{6})$' - type: string - contentNodes: - description: 'All the content nodes that make up the tree of programme content.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - name: - description: 'The full name of the category.' - example: Lagersport - maxLength: 32 - type: string - numberingStyle: - default: '1' - description: |- - Specifies whether the schedule entries of the activities in this category should be numbered - using arabic numbers, roman numerals or letters. - enum: - - '-' - - '1' - - A - - I - - a - - i - example: '1' - maxLength: 1 - type: string - preferredContentTypes: - items: - $ref: '#/components/schemas/ContentType.jsonld-read_Category.PreferredContentTypes_Category.ContentNodes' - readOnly: true - type: array - rootContentNode: - $ref: '#/components/schemas/ColumnLayout.jsonld-read_Category.PreferredContentTypes_Category.ContentNodes' - description: |- - The programme contents, organized as a tree of content nodes. The root content node cannot be - exchanged, but all the contents attached to it can. - example: /content_nodes/1a2b3c4d - readOnly: true - short: - description: |- - An abbreviated name of the category, for display in tight spaces, often together with the day and - schedule entry number, e.g. LS 3.a, where LS is the category's short name. - example: LS - maxLength: 16 - type: string - required: - - camp - - color - - name - - numberingStyle - - preferredContentTypes - - short - type: object - Category.jsonld-write_create: - deprecated: false - description: |- - A type of programme, such as sports activities or meal times, is called a category. A category - determines color and numbering scheme of the associated activities, and is used for marking - "similar" activities. A category may contain some skeleton programme which is used as a blueprint - when creating a new activity in the category. - properties: - camp: - description: 'The camp to which this category belongs. May not be changed once the category is created.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - color: - description: 'The color of the activities in this category, as a hex color string.' - example: '#4DBB52' - maxLength: 8 - pattern: '^(#[0-9a-zA-Z]{6})$' - type: string - copyCategorySource: - description: 'Copy contents from this source category or activity.' - example: /categories/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - name: - description: 'The full name of the category.' - example: Lagersport - maxLength: 32 - type: string - numberingStyle: - default: '1' - description: |- - Specifies whether the schedule entries of the activities in this category should be numbered - using arabic numbers, roman numerals or letters. - enum: - - '-' - - '1' - - A - - I - - a - - i - example: '1' - maxLength: 1 - type: string - preferredContentTypes: - description: 'The content types that are most likely to be useful for planning programme of this category.' - example: '["/content_types/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - type: array - short: - description: |- - An abbreviated name of the category, for display in tight spaces, often together with the day and - schedule entry number, e.g. LS 3.a, where LS is the category's short name. - example: LS - maxLength: 16 - type: string - required: - - camp - - color - - name - - numberingStyle - - preferredContentTypes - - short - type: object - ColumnLayout-read: - deprecated: false - description: '' - properties: - children: - description: 'All content nodes that are direct children of this content node.' + type: object + children: + description: 'All content nodes that are direct children of this content node.' example: '["/content_nodes/1a2b3c4d"]' items: example: 'https://example.com/' @@ -9248,10 +8589,19 @@ components: - data - position type: object - ColumnLayout-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: + ColumnLayout.jsonhal-read_ScheduleEntry.Activity: deprecated: false description: '' properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object children: description: 'All content nodes that are direct children of this content node.' example: '["/content_nodes/1a2b3c4d"]' @@ -9346,19 +8696,19 @@ components: - data - position type: object - ColumnLayout-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: + ColumnLayout.jsonhal-write_create: deprecated: false description: '' properties: - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object contentType: description: |- Defines the type of this content node. There is a fixed list of types that are implemented @@ -9367,11 +8717,6 @@ components: example: /content_types/1a2b3c4d format: iri-reference type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept - readOnly: true - type: string data: default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' description: |- @@ -9387,12 +8732,6 @@ components: type: - array - 'null' - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string instanceName: description: |- An optional name for this content node. This is useful when planning e.g. an alternative @@ -9419,16 +8758,6 @@ components: same parent. The API does not guarantee the uniqueness of parent+slot+position. example: -1 type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d - format: iri-reference - readOnly: true - type: - - 'null' - - string slot: description: |- The name of the slot in the parent in which this content node resides. The valid slot names @@ -9439,15 +8768,38 @@ components: - 'null' - string required: - - children - contentType - data + - parent - position type: object - ColumnLayout-read_Category.PreferredContentTypes_Category.ContentNodes: + ColumnLayout.jsonld-read: deprecated: false description: '' properties: + '@context': + oneOf: + - + additionalProperties: true + properties: + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] + type: string + required: + - '@vocab' + - hydra + type: object + - + type: string + readOnly: true + '@id': + readOnly: true + type: string + '@type': + readOnly: true + type: string children: description: 'All content nodes that are direct children of this content node.' example: '["/content_nodes/1a2b3c4d"]' @@ -9542,10 +8894,33 @@ components: - data - position type: object - ColumnLayout-read_ScheduleEntry.Activity: + ColumnLayout.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: deprecated: false description: '' properties: + '@context': + oneOf: + - + additionalProperties: true + properties: + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] + type: string + required: + - '@vocab' + - hydra + type: object + - + type: string + readOnly: true + '@id': + readOnly: true + type: string + '@type': + readOnly: true + type: string children: description: 'All content nodes that are direct children of this content node.' example: '["/content_nodes/1a2b3c4d"]' @@ -9640,78 +9015,55 @@ components: - data - position type: object - ColumnLayout-write_create: + ColumnLayout.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: deprecated: false description: '' properties: - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - data: - default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - columns: - - - slot: '1' - width: 12 - items: - type: string - type: - - array - - 'null' - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: + '@context': + oneOf: + - + additionalProperties: true + properties: + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] + type: string + required: + - '@vocab' + - hydra + type: object + - + type: string + readOnly: true + '@id': + readOnly: true + type: string + '@type': + readOnly: true + type: string + children: + description: 'All content nodes that are direct children of this content node.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + contentType: description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - contentType - - data - - parent - - position - type: object - ColumnLayout-write_update: - deprecated: false - description: '' - properties: + type: string + contentTypeName: + description: 'The name of the content type of this content node. Read-only, for convenience.' + example: SafetyConcept + readOnly: true + type: string data: default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' description: |- @@ -9727,6 +9079,12 @@ components: type: - array - 'null' + id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string instanceName: description: |- An optional name for this content node. This is useful when planning e.g. an alternative @@ -9753,6 +9111,16 @@ components: same parent. The API does not guarantee the uniqueness of parent+slot+position. example: -1 type: integer + root: + description: |- + The content node that is the root of the content node tree. Refers to itself in case this + content node is the root. + example: /content_nodes/1a2b3c4d + format: iri-reference + readOnly: true + type: + - 'null' + - string slot: description: |- The name of the slot in the parent in which this content node resides. The valid slot names @@ -9763,13 +9131,38 @@ components: - 'null' - string required: + - children + - contentType - data - position type: object - ColumnLayout.jsonapi-read: + ColumnLayout.jsonld-read_Category.PreferredContentTypes_Category.ContentNodes: deprecated: false description: '' properties: + '@context': + oneOf: + - + additionalProperties: true + properties: + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] + type: string + required: + - '@vocab' + - hydra + type: object + - + type: string + readOnly: true + '@id': + readOnly: true + type: string + '@type': + readOnly: true + type: string children: description: 'All content nodes that are direct children of this content node.' example: '["/content_nodes/1a2b3c4d"]' @@ -9864,10 +9257,33 @@ components: - data - position type: object - ColumnLayout.jsonapi-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: + ColumnLayout.jsonld-read_ScheduleEntry.Activity: deprecated: false description: '' properties: + '@context': + oneOf: + - + additionalProperties: true + properties: + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] + type: string + required: + - '@vocab' + - hydra + type: object + - + type: string + readOnly: true + '@id': + readOnly: true + type: string + '@type': + readOnly: true + type: string children: description: 'All content nodes that are direct children of this content node.' example: '["/content_nodes/1a2b3c4d"]' @@ -9962,19 +9378,10 @@ components: - data - position type: object - ColumnLayout.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: + ColumnLayout.jsonld-write_create: deprecated: false description: '' properties: - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array contentType: description: |- Defines the type of this content node. There is a fixed list of types that are implemented @@ -9983,11 +9390,6 @@ components: example: /content_types/1a2b3c4d format: iri-reference type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept - readOnly: true - type: string data: default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' description: |- @@ -10003,12 +9405,6 @@ components: type: - array - 'null' - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string instanceName: description: |- An optional name for this content node. This is useful when planning e.g. an alternative @@ -10035,16 +9431,6 @@ components: same parent. The API does not guarantee the uniqueness of parent+slot+position. example: -1 type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d - format: iri-reference - readOnly: true - type: - - 'null' - - string slot: description: |- The name of the slot in the parent in which this content node resides. The valid slot names @@ -10055,14 +9441,19 @@ components: - 'null' - string required: - - children - contentType - data + - parent - position type: object - ColumnLayout.jsonapi-read_Category.PreferredContentTypes_Category.ContentNodes: + ContentNode-read: deprecated: false - description: '' + description: |- + A piece of information that is part of a programme. ContentNodes may store content such as + one or multiple free text fields, or any other necessary data. Content nodes may also be used + to define layouts. For this purpose, a content node may offer so-called slots, into which other + content nodes may be inserted. In return, a content node may be nested inside a slot in a parent + container content node. This way, a tree of content nodes makes up a complete programme. properties: children: description: 'All content nodes that are direct children of this content node.' @@ -10087,15 +9478,9 @@ components: readOnly: true type: string data: - default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). + description: 'Holds the actual data of the content node.' example: - columns: - - - slot: '1' - width: 12 + text: 'dummy text' items: type: string type: @@ -10155,10 +9540,9 @@ components: required: - children - contentType - - data - position type: object - ColumnLayout.jsonapi-read_ScheduleEntry.Activity: + ContentNode-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: deprecated: false description: '' properties: @@ -10185,15 +9569,9 @@ components: readOnly: true type: string data: - default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). + description: 'Holds the actual data of the content node.' example: - columns: - - - slot: '1' - width: 12 + text: 'dummy text' items: type: string type: @@ -10253,13 +9631,21 @@ components: required: - children - contentType - - data - position type: object - ColumnLayout.jsonapi-write_create: + ContentNode-read_Category.PreferredContentTypes_Category.ContentNodes: deprecated: false description: '' properties: + children: + description: 'All content nodes that are direct children of this content node.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array contentType: description: |- Defines the type of this content node. There is a fixed list of types that are implemented @@ -10268,21 +9654,26 @@ components: example: /content_types/1a2b3c4d format: iri-reference type: string + contentTypeName: + description: 'The name of the content type of this content node. Read-only, for convenience.' + example: SafetyConcept + readOnly: true + type: string data: - default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). + description: 'Holds the actual data of the content node.' example: - columns: - - - slot: '1' - width: 12 + text: 'dummy text' items: type: string type: - array - 'null' + id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string instanceName: description: |- An optional name for this content node. This is useful when planning e.g. an alternative @@ -10309,66 +9700,16 @@ components: same parent. The API does not guarantee the uniqueness of parent+slot+position. example: -1 type: integer - slot: + root: description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - contentType - - data - - parent - - position - type: object - ColumnLayout.jsonapi-write_update: - deprecated: false - description: '' - properties: - data: - default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - columns: - - - slot: '1' - width: 12 - items: - type: string - type: - - array - - 'null' - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. + The content node that is the root of the content node tree. Refers to itself in case this + content node is the root. example: /content_nodes/1a2b3c4d format: iri-reference + readOnly: true type: - 'null' - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer slot: description: |- The name of the slot in the parent in which this content node resides. The valid slot names @@ -10379,22 +9720,19 @@ components: - 'null' - string required: - - data + - children + - contentType - position type: object - ColumnLayout.jsonhal-read: + ContentNode.jsonapi: deprecated: false - description: '' + description: |- + A piece of information that is part of a programme. ContentNodes may store content such as + one or multiple free text fields, or any other necessary data. Content nodes may also be used + to define layouts. For this purpose, a content node may offer so-called slots, into which other + content nodes may be inserted. In return, a content node may be nested inside a slot in a parent + container content node. This way, a tree of content nodes makes up a complete programme. properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object children: description: 'All content nodes that are direct children of this content node.' example: '["/content_nodes/1a2b3c4d"]' @@ -10411,6 +9749,7 @@ components: in a content node. The content type may not be changed once the content node is created. example: /content_types/1a2b3c4d format: iri-reference + readOnly: true type: string contentTypeName: description: 'The name of the content type of this content node. Read-only, for convenience.' @@ -10418,15 +9757,9 @@ components: readOnly: true type: string data: - default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). + description: 'Holds the actual data of the content node.' example: - columns: - - - slot: '1' - width: 12 + text: 'dummy text' items: type: string type: @@ -10486,12 +9819,16 @@ components: required: - children - contentType - - data - position type: object - ColumnLayout.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: + ContentNode.jsonhal-read: deprecated: false - description: '' + description: |- + A piece of information that is part of a programme. ContentNodes may store content such as + one or multiple free text fields, or any other necessary data. Content nodes may also be used + to define layouts. For this purpose, a content node may offer so-called slots, into which other + content nodes may be inserted. In return, a content node may be nested inside a slot in a parent + container content node. This way, a tree of content nodes makes up a complete programme. properties: _links: properties: @@ -10525,15 +9862,9 @@ components: readOnly: true type: string data: - default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). + description: 'Holds the actual data of the content node.' example: - columns: - - - slot: '1' - width: 12 + text: 'dummy text' items: type: string type: @@ -10593,10 +9924,9 @@ components: required: - children - contentType - - data - position type: object - ColumnLayout.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: + ContentNode.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: deprecated: false description: '' properties: @@ -10632,15 +9962,9 @@ components: readOnly: true type: string data: - default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). + description: 'Holds the actual data of the content node.' example: - columns: - - - slot: '1' - width: 12 + text: 'dummy text' items: type: string type: @@ -10700,10 +10024,9 @@ components: required: - children - contentType - - data - position type: object - ColumnLayout.jsonhal-read_Category.PreferredContentTypes_Category.ContentNodes: + ContentNode.jsonhal-read_Category.PreferredContentTypes_Category.ContentNodes: deprecated: false description: '' properties: @@ -10739,15 +10062,9 @@ components: readOnly: true type: string data: - default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). + description: 'Holds the actual data of the content node.' example: - columns: - - - slot: '1' - width: 12 + text: 'dummy text' items: type: string type: @@ -10807,22 +10124,23 @@ components: required: - children - contentType - - data - position type: object - ColumnLayout.jsonhal-read_ScheduleEntry.Activity: + ContentNode.jsonld-read: deprecated: false - description: '' + description: |- + A piece of information that is part of a programme. ContentNodes may store content such as + one or multiple free text fields, or any other necessary data. Content nodes may also be used + to define layouts. For this purpose, a content node may offer so-called slots, into which other + content nodes may be inserted. In return, a content node may be nested inside a slot in a parent + container content node. This way, a tree of content nodes makes up a complete programme. properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object + '@id': + readOnly: true + type: string + '@type': + readOnly: true + type: string children: description: 'All content nodes that are direct children of this content node.' example: '["/content_nodes/1a2b3c4d"]' @@ -10846,15 +10164,9 @@ components: readOnly: true type: string data: - default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). + description: 'Holds the actual data of the content node.' example: - columns: - - - slot: '1' - width: 12 + text: 'dummy text' items: type: string type: @@ -10914,22 +10226,44 @@ components: required: - children - contentType - - data - position type: object - ColumnLayout.jsonhal-write_create: + ContentNode.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: deprecated: false description: '' properties: - _links: - properties: - self: + '@context': + oneOf: + - + additionalProperties: true properties: - href: - format: iri-reference + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] type: string + required: + - '@vocab' + - hydra type: object - type: object + - + type: string + readOnly: true + '@id': + readOnly: true + type: string + '@type': + readOnly: true + type: string + children: + description: 'All content nodes that are direct children of this content node.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array contentType: description: |- Defines the type of this content node. There is a fixed list of types that are implemented @@ -10938,21 +10272,26 @@ components: example: /content_types/1a2b3c4d format: iri-reference type: string + contentTypeName: + description: 'The name of the content type of this content node. Read-only, for convenience.' + example: SafetyConcept + readOnly: true + type: string data: - default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). + description: 'Holds the actual data of the content node.' example: - columns: - - - slot: '1' - width: 12 + text: 'dummy text' items: type: string type: - array - 'null' + id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string instanceName: description: |- An optional name for this content node. This is useful when planning e.g. an alternative @@ -10979,6 +10318,16 @@ components: same parent. The API does not guarantee the uniqueness of parent+slot+position. example: -1 type: integer + root: + description: |- + The content node that is the root of the content node tree. Refers to itself in case this + content node is the root. + example: /content_nodes/1a2b3c4d + format: iri-reference + readOnly: true + type: + - 'null' + - string slot: description: |- The name of the slot in the parent in which this content node resides. The valid slot names @@ -10989,12 +10338,11 @@ components: - 'null' - string required: + - children - contentType - - data - - parent - position type: object - ColumnLayout.jsonld-read: + ContentNode.jsonld-read_Category.PreferredContentTypes_Category.ContentNodes: deprecated: false description: '' properties: @@ -11044,15 +10392,9 @@ components: readOnly: true type: string data: - default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). + description: 'Holds the actual data of the content node.' example: - columns: - - - slot: '1' - width: 12 + text: 'dummy text' items: type: string type: @@ -11112,133 +10454,264 @@ components: required: - children - contentType - - data - position type: object - ColumnLayout.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: + ContentType-read: deprecated: false - description: '' + description: |- + Defines a type of content that can be present in a content node tree. A content type + determines what data can be stored in content nodes of this type, as well as validation, + available slots and jsonConfig settings. properties: - '@context': - oneOf: - - - additionalProperties: true - properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] - type: string - required: - - '@vocab' - - hydra - type: object - - - type: string + active: + default: true + description: 'Whether this content type is still maintained and recommended for use in new camps.' + example: 'true' readOnly: true - '@id': + type: boolean + contentNodes: + description: 'API endpoint link for creating new entities of type entityClass.' + example: '/content_node/column_layouts?contentType=%2Fcontent_types%2F1a2b3c4d' + format: iri-reference + items: + type: string + readOnly: true + type: array + id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 readOnly: true type: string - '@type': + name: + description: |- + A name in UpperCamelCase of the content type. This value may be used as a technical + identifier of this content type, it is guaranteed to stay fixed. + example: SafetyConcept + maxLength: 32 readOnly: true type: string - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' + required: + - active + - name + type: object + ContentType-read_Category.PreferredContentTypes_Category.ContentNodes: + deprecated: false + description: '' + properties: + active: + default: true + description: 'Whether this content type is still maintained and recommended for use in new camps.' + example: 'true' + readOnly: true + type: boolean + contentNodes: + description: 'API endpoint link for creating new entities of type entityClass.' + example: '/content_node/column_layouts?contentType=%2Fcontent_types%2F1a2b3c4d' + format: iri-reference items: - example: 'https://example.com/' - format: iri-reference type: string readOnly: true type: array - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference + id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' + name: + description: |- + A name in UpperCamelCase of the content type. This value may be used as a technical + identifier of this content type, it is guaranteed to stay fixed. example: SafetyConcept + maxLength: 32 readOnly: true type: string + required: + - active + - name + type: object + ContentType.jsonapi: + deprecated: false + description: |- + Defines a type of content that can be present in a content node tree. A content type + determines what data can be stored in content nodes of this type, as well as validation, + available slots and jsonConfig settings. + properties: data: - default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - columns: + properties: + attributes: + properties: + _id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string + active: + default: true + description: 'Whether this content type is still maintained and recommended for use in new camps.' + example: 'true' + readOnly: true + type: boolean + contentNodes: + description: 'API endpoint link for creating new entities of type entityClass.' + example: '/content_node/column_layouts?contentType=%2Fcontent_types%2F1a2b3c4d' + format: iri-reference + items: { type: string } + readOnly: true + type: array + entityClass: + description: |- + The name of the internal PHP class that implements all custom behaviour of content nodes + of this type. + readOnly: true + type: string + jsonConfig: + description: |- + Internal configuration for the entityClass, in case the same entityClass is reused + for different content types. + items: { type: string } + readOnly: true + type: [array, 'null'] + name: + description: |- + A name in UpperCamelCase of the content type. This value may be used as a technical + identifier of this content type, it is guaranteed to stay fixed. + example: SafetyConcept + maxLength: 32 + readOnly: true + type: string + required: + - active + - entityClass + - name + type: object + id: + type: string + relationships: + properties: + categories: + properties: { data: { items: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object }, type: array } } + required: + - categories + type: object + type: + type: string + required: + - id + - type + type: object + included: + description: 'Related resources requested via the "include" query parameter.' + externalDocs: + url: 'https://jsonapi.org/format/#fetching-includes' + items: + anyOf: - - slot: '1' - width: 12 + $ref: '#/components/schemas/Category.jsonapi' + readOnly: true + type: array + type: object + ContentType.jsonhal-read: + deprecated: false + description: |- + Defines a type of content that can be present in a content node tree. A content type + determines what data can be stored in content nodes of this type, as well as validation, + available slots and jsonConfig settings. + properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object + active: + default: true + description: 'Whether this content type is still maintained and recommended for use in new camps.' + example: 'true' + readOnly: true + type: boolean + contentNodes: + description: 'API endpoint link for creating new entities of type entityClass.' + example: '/content_node/column_layouts?contentType=%2Fcontent_types%2F1a2b3c4d' + format: iri-reference items: type: string - type: - - array - - 'null' + readOnly: true + type: array id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - instanceName: + name: description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm + A name in UpperCamelCase of the content type. This value may be used as a technical + identifier of this content type, it is guaranteed to stay fixed. + example: SafetyConcept maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d + readOnly: true + type: string + required: + - active + - name + type: object + ContentType.jsonhal-read_Category.PreferredContentTypes_Category.ContentNodes: + deprecated: false + description: '' + properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object + active: + default: true + description: 'Whether this content type is still maintained and recommended for use in new camps.' + example: 'true' + readOnly: true + type: boolean + contentNodes: + description: 'API endpoint link for creating new entities of type entityClass.' + example: '/content_node/column_layouts?contentType=%2Fcontent_types%2F1a2b3c4d' format: iri-reference + items: + type: string readOnly: true - type: - - 'null' - - string - slot: + type: array + id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string + name: description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' + A name in UpperCamelCase of the content type. This value may be used as a technical + identifier of this content type, it is guaranteed to stay fixed. + example: SafetyConcept maxLength: 32 - type: - - 'null' - - string + readOnly: true + type: string required: - - children - - contentType - - data - - position + - active + - name type: object - ColumnLayout.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: + ContentType.jsonld-read: deprecated: false - description: '' + description: |- + Defines a type of content that can be present in a content node tree. A content type + determines what data can be stored in content nodes of this type, as well as validation, + available slots and jsonConfig settings. properties: '@context': oneOf: @@ -11263,101 +10736,39 @@ components: '@type': readOnly: true type: string - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept + active: + default: true + description: 'Whether this content type is still maintained and recommended for use in new camps.' + example: 'true' readOnly: true - type: string - data: - default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - columns: - - - slot: '1' - width: 12 + type: boolean + contentNodes: + description: 'API endpoint link for creating new entities of type entityClass.' + example: '/content_node/column_layouts?contentType=%2Fcontent_types%2F1a2b3c4d' + format: iri-reference items: type: string - type: - - array - - 'null' + readOnly: true + type: array id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - instanceName: + name: description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm + A name in UpperCamelCase of the content type. This value may be used as a technical + identifier of this content type, it is guaranteed to stay fixed. + example: SafetyConcept maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d - format: iri-reference readOnly: true - type: - - 'null' - - string - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string + type: string required: - - children - - contentType - - data - - position + - active + - name type: object - ColumnLayout.jsonld-read_Category.PreferredContentTypes_Category.ContentNodes: + ContentType.jsonld-read_Category.PreferredContentTypes_Category.ContentNodes: deprecated: false description: '' properties: @@ -11384,953 +10795,912 @@ components: '@type': readOnly: true type: string - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string + active: + default: true + description: 'Whether this content type is still maintained and recommended for use in new camps.' + example: 'true' readOnly: true - type: array - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d + type: boolean + contentNodes: + description: 'API endpoint link for creating new entities of type entityClass.' + example: '/content_node/column_layouts?contentType=%2Fcontent_types%2F1a2b3c4d' format: iri-reference - type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept - readOnly: true - type: string - data: - default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - columns: - - - slot: '1' - width: 12 items: type: string - type: - - array - - 'null' + readOnly: true + type: array id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - instanceName: + name: description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm + A name in UpperCamelCase of the content type. This value may be used as a technical + identifier of this content type, it is guaranteed to stay fixed. + example: SafetyConcept maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d - format: iri-reference readOnly: true - type: - - 'null' - - string - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string + type: string required: - - children - - contentType - - data - - position + - active + - name type: object - ColumnLayout.jsonld-read_ScheduleEntry.Activity: + Credentials: + properties: + identifier: + example: test@example.com + type: string + password: + example: test + type: string + type: object + Day-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: deprecated: false description: '' properties: - '@context': - oneOf: - - - additionalProperties: true - properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] - type: string - required: - - '@vocab' - - hydra - type: object - - - type: string + dayOffset: + description: "The 0-based offset in days from the period's start date when this day starts." + example: '1' readOnly: true - '@id': + type: integer + dayResponsibles: + description: 'The list of people who have a whole-day responsibility on this day.' + example: '["/day_responsibles/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + end: + description: 'The end date and time of the day. This is a read-only convenience property.' + example: '2022-01-03T00:00:00+00:00' + format: date + readOnly: true + type: + - 'null' + - string + id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 readOnly: true type: string - '@type': + number: + description: 'The 1-based cardinal number of the day in the period. Not unique within the camp.' + example: '2' readOnly: true + type: integer + period: + description: 'The time period that this day belongs to.' + example: /periods/1a2b3c4d + format: iri-reference type: string - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' + scheduleEntries: + description: "All scheduleEntries in this day's period which overlap with this day (using midnight as cutoff)." + example: '/schedule_entries?period=%2Fperiods%2F1a2b3c4d&start%5Bstrictly_before%5D=2022-01-03T00%3A00%3A00%2B00%3A00&end%5Bafter%5D=2022-01-02T00%3A00%3A00%2B00%3A00' items: example: 'https://example.com/' format: iri-reference type: string readOnly: true type: array - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept + start: + description: 'The start date and time of the day. This is a read-only convenience property.' + example: '2022-01-02T00:00:00+00:00' + format: date readOnly: true - type: string - data: - default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - columns: - - - slot: '1' - width: 12 + type: + - 'null' + - string + required: + - dayOffset + - dayResponsibles + - period + type: object + Day-read_Day.DayResponsibles: + deprecated: false + description: |- + A day in a time period of a camp. This is represented as a reference to the time period + along with a number of days offset from the period's starting date. This is to make it + easier to move the whole periods to different dates. Days are created automatically when + creating or updating periods, and are not writable through the API directly. + properties: + dayOffset: + description: "The 0-based offset in days from the period's start date when this day starts." + example: '1' + readOnly: true + type: integer + dayResponsibles: items: - type: string + $ref: '#/components/schemas/DayResponsible-read_Day.DayResponsibles' + readOnly: true + type: array + end: + description: 'The end date and time of the day. This is a read-only convenience property.' + example: '2022-01-03T00:00:00+00:00' + format: date + readOnly: true type: - - array - 'null' + - string id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d - format: iri-reference + number: + description: 'The 1-based cardinal number of the day in the period. Not unique within the camp.' + example: '2' readOnly: true - type: - - 'null' - - string - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - children - - contentType - - data - - position - type: object - ColumnLayout.jsonld-write_create: - deprecated: false - description: '' - properties: - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d + type: integer + period: + description: 'The time period that this day belongs to.' + example: /periods/1a2b3c4d format: iri-reference type: string - data: - default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - columns: - - - slot: '1' - width: 12 + scheduleEntries: + description: "All scheduleEntries in this day's period which overlap with this day (using midnight as cutoff)." + example: '/schedule_entries?period=%2Fperiods%2F1a2b3c4d&start%5Bstrictly_before%5D=2022-01-03T00%3A00%3A00%2B00%3A00&end%5Bafter%5D=2022-01-02T00%3A00%3A00%2B00%3A00' items: + example: 'https://example.com/' + format: iri-reference type: string - type: - - array - - 'null' - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 + readOnly: true + type: array + start: + description: 'The start date and time of the day. This is a read-only convenience property.' + example: '2022-01-02T00:00:00+00:00' + format: date + readOnly: true type: - 'null' - string required: - - contentType - - data - - parent - - position + - dayOffset + - dayResponsibles + - period type: object - ContentNode-read: + Day-read_Period.Camp_Period.Days: deprecated: false - description: |- - A piece of information that is part of a programme. ContentNodes may store content such as - one or multiple free text fields, or any other necessary data. Content nodes may also be used - to define layouts. For this purpose, a content node may offer so-called slots, into which other - content nodes may be inserted. In return, a content node may be nested inside a slot in a parent - container content node. This way, a tree of content nodes makes up a complete programme. + description: '' properties: - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' + dayOffset: + description: "The 0-based offset in days from the period's start date when this day starts." + example: '1' + readOnly: true + type: integer + dayResponsibles: + description: 'The list of people who have a whole-day responsibility on this day.' + example: '["/day_responsibles/1a2b3c4d"]' items: example: 'https://example.com/' format: iri-reference type: string readOnly: true type: array - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept + end: + description: 'The end date and time of the day. This is a read-only convenience property.' + example: '2022-01-03T00:00:00+00:00' + format: date readOnly: true - type: string - data: - description: 'Holds the actual data of the content node.' - example: - text: 'dummy text' - items: - type: string type: - - array - 'null' + - string id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d + number: + description: 'The 1-based cardinal number of the day in the period. Not unique within the camp.' + example: '2' + readOnly: true + type: integer + period: + description: 'The time period that this day belongs to.' + example: /periods/1a2b3c4d format: iri-reference + type: string + scheduleEntries: + description: "All scheduleEntries in this day's period which overlap with this day (using midnight as cutoff)." + example: '/schedule_entries?period=%2Fperiods%2F1a2b3c4d&start%5Bstrictly_before%5D=2022-01-03T00%3A00%3A00%2B00%3A00&end%5Bafter%5D=2022-01-02T00%3A00%3A00%2B00%3A00' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + start: + description: 'The start date and time of the day. This is a read-only convenience property.' + example: '2022-01-02T00:00:00+00:00' + format: date readOnly: true - type: - - 'null' - - string - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 type: - 'null' - string required: - - children - - contentType - - position + - dayOffset + - dayResponsibles + - period type: object - ContentNode-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: + Day.jsonapi: + deprecated: false + description: |- + A day in a time period of a camp. This is represented as a reference to the time period + along with a number of days offset from the period's starting date. This is to make it + easier to move the whole periods to different dates. Days are created automatically when + creating or updating periods, and are not writable through the API directly. + properties: + data: + properties: + attributes: + properties: + _id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string + dayOffset: + description: "The 0-based offset in days from the period's start date when this day starts." + example: '1' + readOnly: true + type: integer + end: + description: 'The end date and time of the day. This is a read-only convenience property.' + example: '2022-01-03T00:00:00+00:00' + format: date + readOnly: true + type: ['null', string] + number: + description: 'The 1-based cardinal number of the day in the period. Not unique within the camp.' + example: '2' + readOnly: true + type: integer + start: + description: 'The start date and time of the day. This is a read-only convenience property.' + example: '2022-01-02T00:00:00+00:00' + format: date + readOnly: true + type: ['null', string] + required: + - dayOffset + type: object + id: + type: string + relationships: + properties: + dayResponsibles: + properties: { data: { items: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object }, type: array } } + period: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + scheduleEntries: + properties: { data: { items: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object }, type: array } } + required: + - dayResponsibles + - period + type: object + type: + type: string + required: + - id + - type + type: object + included: + description: 'Related resources requested via the "include" query parameter.' + externalDocs: + url: 'https://jsonapi.org/format/#fetching-includes' + items: + anyOf: + - + $ref: '#/components/schemas/DayResponsible.jsonapi' + - + $ref: '#/components/schemas/DayResponsible.jsonapi' + - + $ref: '#/components/schemas/DayResponsible.jsonapi' + readOnly: true + type: array + type: object + Day.jsonhal-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: deprecated: false description: '' properties: - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object + dayOffset: + description: "The 0-based offset in days from the period's start date when this day starts." + example: '1' + readOnly: true + type: integer + dayResponsibles: + description: 'The list of people who have a whole-day responsibility on this day.' + example: '["/day_responsibles/1a2b3c4d"]' items: example: 'https://example.com/' format: iri-reference type: string readOnly: true type: array - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept + end: + description: 'The end date and time of the day. This is a read-only convenience property.' + example: '2022-01-03T00:00:00+00:00' + format: date readOnly: true - type: string - data: - description: 'Holds the actual data of the content node.' - example: - text: 'dummy text' - items: - type: string type: - - array - 'null' + - string id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 + number: + description: 'The 1-based cardinal number of the day in the period. Not unique within the camp.' + example: '2' + readOnly: true type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d + period: + description: 'The time period that this day belongs to.' + example: /periods/1a2b3c4d format: iri-reference + type: string + scheduleEntries: + description: "All scheduleEntries in this day's period which overlap with this day (using midnight as cutoff)." + example: '/schedule_entries?period=%2Fperiods%2F1a2b3c4d&start%5Bstrictly_before%5D=2022-01-03T00%3A00%3A00%2B00%3A00&end%5Bafter%5D=2022-01-02T00%3A00%3A00%2B00%3A00' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + start: + description: 'The start date and time of the day. This is a read-only convenience property.' + example: '2022-01-02T00:00:00+00:00' + format: date readOnly: true - type: - - 'null' - - string - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 type: - 'null' - string required: - - children - - contentType - - position + - dayOffset + - dayResponsibles + - period type: object - ContentNode-read_Category.PreferredContentTypes_Category.ContentNodes: + Day.jsonhal-read_Day.DayResponsibles: deprecated: false - description: '' + description: |- + A day in a time period of a camp. This is represented as a reference to the time period + along with a number of days offset from the period's starting date. This is to make it + easier to move the whole periods to different dates. Days are created automatically when + creating or updating periods, and are not writable through the API directly. properties: - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object + dayOffset: + description: "The 0-based offset in days from the period's start date when this day starts." + example: '1' + readOnly: true + type: integer + dayResponsibles: items: - example: 'https://example.com/' - format: iri-reference - type: string + $ref: '#/components/schemas/DayResponsible.jsonhal-read_Day.DayResponsibles' readOnly: true type: array - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept + end: + description: 'The end date and time of the day. This is a read-only convenience property.' + example: '2022-01-03T00:00:00+00:00' + format: date readOnly: true - type: string - data: - description: 'Holds the actual data of the content node.' - example: - text: 'dummy text' - items: - type: string type: - - array - 'null' + - string id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 + number: + description: 'The 1-based cardinal number of the day in the period. Not unique within the camp.' + example: '2' + readOnly: true type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d + period: + description: 'The time period that this day belongs to.' + example: /periods/1a2b3c4d format: iri-reference + type: string + scheduleEntries: + description: "All scheduleEntries in this day's period which overlap with this day (using midnight as cutoff)." + example: '/schedule_entries?period=%2Fperiods%2F1a2b3c4d&start%5Bstrictly_before%5D=2022-01-03T00%3A00%3A00%2B00%3A00&end%5Bafter%5D=2022-01-02T00%3A00%3A00%2B00%3A00' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + start: + description: 'The start date and time of the day. This is a read-only convenience property.' + example: '2022-01-02T00:00:00+00:00' + format: date readOnly: true - type: - - 'null' - - string - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 type: - 'null' - string required: - - children - - contentType - - position + - dayOffset + - dayResponsibles + - period type: object - ContentNode.jsonapi-read: + Day.jsonhal-read_Period.Camp_Period.Days: deprecated: false - description: |- - A piece of information that is part of a programme. ContentNodes may store content such as - one or multiple free text fields, or any other necessary data. Content nodes may also be used - to define layouts. For this purpose, a content node may offer so-called slots, into which other - content nodes may be inserted. In return, a content node may be nested inside a slot in a parent - container content node. This way, a tree of content nodes makes up a complete programme. + description: '' properties: - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object + dayOffset: + description: "The 0-based offset in days from the period's start date when this day starts." + example: '1' + readOnly: true + type: integer + dayResponsibles: + description: 'The list of people who have a whole-day responsibility on this day.' + example: '["/day_responsibles/1a2b3c4d"]' items: example: 'https://example.com/' format: iri-reference type: string readOnly: true type: array - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept + end: + description: 'The end date and time of the day. This is a read-only convenience property.' + example: '2022-01-03T00:00:00+00:00' + format: date readOnly: true - type: string - data: - description: 'Holds the actual data of the content node.' - example: - text: 'dummy text' - items: - type: string type: - - array - 'null' + - string id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 + number: + description: 'The 1-based cardinal number of the day in the period. Not unique within the camp.' + example: '2' + readOnly: true type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d + period: + description: 'The time period that this day belongs to.' + example: /periods/1a2b3c4d format: iri-reference + type: string + scheduleEntries: + description: "All scheduleEntries in this day's period which overlap with this day (using midnight as cutoff)." + example: '/schedule_entries?period=%2Fperiods%2F1a2b3c4d&start%5Bstrictly_before%5D=2022-01-03T00%3A00%3A00%2B00%3A00&end%5Bafter%5D=2022-01-02T00%3A00%3A00%2B00%3A00' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + start: + description: 'The start date and time of the day. This is a read-only convenience property.' + example: '2022-01-02T00:00:00+00:00' + format: date readOnly: true - type: - - 'null' - - string - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 type: - 'null' - string required: - - children - - contentType - - position + - dayOffset + - dayResponsibles + - period type: object - ContentNode.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: + Day.jsonld-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: deprecated: false description: '' properties: - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' + '@context': + oneOf: + - + additionalProperties: true + properties: + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] + type: string + required: + - '@vocab' + - hydra + type: object + - + type: string + readOnly: true + '@id': + readOnly: true + type: string + '@type': + readOnly: true + type: string + dayOffset: + description: "The 0-based offset in days from the period's start date when this day starts." + example: '1' + readOnly: true + type: integer + dayResponsibles: + description: 'The list of people who have a whole-day responsibility on this day.' + example: '["/day_responsibles/1a2b3c4d"]' items: example: 'https://example.com/' format: iri-reference type: string readOnly: true type: array - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept + end: + description: 'The end date and time of the day. This is a read-only convenience property.' + example: '2022-01-03T00:00:00+00:00' + format: date readOnly: true - type: string - data: - description: 'Holds the actual data of the content node.' - example: - text: 'dummy text' - items: - type: string type: - - array - 'null' + - string id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d - format: iri-reference - readOnly: true - type: - - 'null' - - string - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 + number: + description: 'The 1-based cardinal number of the day in the period. Not unique within the camp.' + example: '2' + readOnly: true + type: integer + period: + description: 'The time period that this day belongs to.' + example: /periods/1a2b3c4d + format: iri-reference + type: string + scheduleEntries: + description: "All scheduleEntries in this day's period which overlap with this day (using midnight as cutoff)." + example: '/schedule_entries?period=%2Fperiods%2F1a2b3c4d&start%5Bstrictly_before%5D=2022-01-03T00%3A00%3A00%2B00%3A00&end%5Bafter%5D=2022-01-02T00%3A00%3A00%2B00%3A00' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + start: + description: 'The start date and time of the day. This is a read-only convenience property.' + example: '2022-01-02T00:00:00+00:00' + format: date + readOnly: true type: - 'null' - string required: - - children - - contentType - - position + - dayOffset + - dayResponsibles + - period type: object - ContentNode.jsonapi-read_Category.PreferredContentTypes_Category.ContentNodes: + Day.jsonld-read_Day.DayResponsibles: deprecated: false - description: '' + description: |- + A day in a time period of a camp. This is represented as a reference to the time period + along with a number of days offset from the period's starting date. This is to make it + easier to move the whole periods to different dates. Days are created automatically when + creating or updating periods, and are not writable through the API directly. properties: - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string + '@context': + oneOf: + - + additionalProperties: true + properties: + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] + type: string + required: + - '@vocab' + - hydra + type: object + - + type: string + readOnly: true + '@id': readOnly: true - type: array - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept + '@type': readOnly: true type: string - data: - description: 'Holds the actual data of the content node.' - example: - text: 'dummy text' + dayOffset: + description: "The 0-based offset in days from the period's start date when this day starts." + example: '1' + readOnly: true + type: integer + dayResponsibles: items: - type: string + $ref: '#/components/schemas/DayResponsible.jsonld-read_Day.DayResponsibles' + readOnly: true + type: array + end: + description: 'The end date and time of the day. This is a read-only convenience property.' + example: '2022-01-03T00:00:00+00:00' + format: date + readOnly: true type: - - array - 'null' + - string id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 + number: + description: 'The 1-based cardinal number of the day in the period. Not unique within the camp.' + example: '2' + readOnly: true type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d + period: + description: 'The time period that this day belongs to.' + example: /periods/1a2b3c4d format: iri-reference + type: string + scheduleEntries: + description: "All scheduleEntries in this day's period which overlap with this day (using midnight as cutoff)." + example: '/schedule_entries?period=%2Fperiods%2F1a2b3c4d&start%5Bstrictly_before%5D=2022-01-03T00%3A00%3A00%2B00%3A00&end%5Bafter%5D=2022-01-02T00%3A00%3A00%2B00%3A00' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + start: + description: 'The start date and time of the day. This is a read-only convenience property.' + example: '2022-01-02T00:00:00+00:00' + format: date readOnly: true - type: - - 'null' - - string - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 type: - 'null' - string required: - - children - - contentType - - position + - dayOffset + - dayResponsibles + - period type: object - ContentNode.jsonhal-read: + Day.jsonld-read_Period.Camp_Period.Days: deprecated: false - description: |- - A piece of information that is part of a programme. ContentNodes may store content such as - one or multiple free text fields, or any other necessary data. Content nodes may also be used - to define layouts. For this purpose, a content node may offer so-called slots, into which other - content nodes may be inserted. In return, a content node may be nested inside a slot in a parent - container content node. This way, a tree of content nodes makes up a complete programme. + description: '' properties: - _links: - properties: - self: + '@context': + oneOf: + - + additionalProperties: true properties: - href: - format: iri-reference + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] type: string + required: + - '@vocab' + - hydra type: object - type: object - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' + - + type: string + readOnly: true + '@id': + readOnly: true + type: string + '@type': + readOnly: true + type: string + dayOffset: + description: "The 0-based offset in days from the period's start date when this day starts." + example: '1' + readOnly: true + type: integer + dayResponsibles: + description: 'The list of people who have a whole-day responsibility on this day.' + example: '["/day_responsibles/1a2b3c4d"]' items: example: 'https://example.com/' format: iri-reference type: string readOnly: true type: array - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept + end: + description: 'The end date and time of the day. This is a read-only convenience property.' + example: '2022-01-03T00:00:00+00:00' + format: date readOnly: true - type: string - data: - description: 'Holds the actual data of the content node.' - example: - text: 'dummy text' - items: - type: string type: - - array - 'null' + - string id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 + number: + description: 'The 1-based cardinal number of the day in the period. Not unique within the camp.' + example: '2' + readOnly: true type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d + period: + description: 'The time period that this day belongs to.' + example: /periods/1a2b3c4d format: iri-reference + type: string + scheduleEntries: + description: "All scheduleEntries in this day's period which overlap with this day (using midnight as cutoff)." + example: '/schedule_entries?period=%2Fperiods%2F1a2b3c4d&start%5Bstrictly_before%5D=2022-01-03T00%3A00%3A00%2B00%3A00&end%5Bafter%5D=2022-01-02T00%3A00%3A00%2B00%3A00' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + start: + description: 'The start date and time of the day. This is a read-only convenience property.' + example: '2022-01-02T00:00:00+00:00' + format: date readOnly: true - type: - - 'null' - - string - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 type: - 'null' - string required: - - children - - contentType - - position + - dayOffset + - dayResponsibles + - period type: object - ContentNode.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: + DayResponsible-read: + deprecated: false + description: 'A person that has some whole-day responsibility on a day in the camp.' + properties: + campCollaboration: + description: "The person that is responsible. Must belong to the same camp as the day's period." + example: /camp_collaborations/1a2b3c4d + format: iri-reference + type: string + day: + description: 'The day on which the person is responsible.' + example: /days/1a2b3c4d + format: iri-reference + type: string + id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string + required: + - campCollaboration + - day + type: object + DayResponsible-read_Day.DayResponsibles: deprecated: false description: '' + properties: + campCollaboration: + description: "The person that is responsible. Must belong to the same camp as the day's period." + example: /camp_collaborations/1a2b3c4d + format: iri-reference + type: string + day: + description: 'The day on which the person is responsible.' + example: /days/1a2b3c4d + format: iri-reference + type: string + id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string + required: + - campCollaboration + - day + type: object + DayResponsible-write: + deprecated: false + description: 'A person that has some whole-day responsibility on a day in the camp.' + properties: + campCollaboration: + description: "The person that is responsible. Must belong to the same camp as the day's period." + example: /camp_collaborations/1a2b3c4d + format: iri-reference + type: string + day: + description: 'The day on which the person is responsible.' + example: /days/1a2b3c4d + format: iri-reference + type: string + required: + - campCollaboration + - day + type: object + DayResponsible.jsonapi: + deprecated: false + description: 'A person that has some whole-day responsibility on a day in the camp.' + properties: + data: + properties: + attributes: + properties: + _id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string + type: object + id: + type: string + relationships: + properties: + campCollaboration: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + day: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + required: + - campCollaboration + - day + type: object + type: + type: string + required: + - id + - type + type: object + included: + description: 'Related resources requested via the "include" query parameter.' + externalDocs: + url: 'https://jsonapi.org/format/#fetching-includes' + items: + anyOf: + - + $ref: '#/components/schemas/Day.jsonapi' + - + $ref: '#/components/schemas/Day.jsonapi' + readOnly: true + type: array + type: object + DayResponsible.jsonhal-read: + deprecated: false + description: 'A person that has some whole-day responsibility on a day in the camp.' properties: _links: properties: @@ -12341,94 +11711,27 @@ components: type: string type: object type: object - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d + campCollaboration: + description: "The person that is responsible. Must belong to the same camp as the day's period." + example: /camp_collaborations/1a2b3c4d format: iri-reference type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept - readOnly: true + day: + description: 'The day on which the person is responsible.' + example: /days/1a2b3c4d + format: iri-reference type: string - data: - description: 'Holds the actual data of the content node.' - example: - text: 'dummy text' - items: - type: string - type: - - array - - 'null' id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d - format: iri-reference - readOnly: true - type: - - 'null' - - string - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string required: - - children - - contentType - - position + - campCollaboration + - day type: object - ContentNode.jsonhal-read_Category.PreferredContentTypes_Category.ContentNodes: + DayResponsible.jsonhal-read_Day.DayResponsibles: deprecated: false description: '' properties: @@ -12441,196 +11744,101 @@ components: type: string type: object type: object - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d + campCollaboration: + description: "The person that is responsible. Must belong to the same camp as the day's period." + example: /camp_collaborations/1a2b3c4d format: iri-reference type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept - readOnly: true + day: + description: 'The day on which the person is responsible.' + example: /days/1a2b3c4d + format: iri-reference type: string - data: - description: 'Holds the actual data of the content node.' - example: - text: 'dummy text' - items: - type: string - type: - - array - - 'null' id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d + required: + - campCollaboration + - day + type: object + DayResponsible.jsonhal-write: + deprecated: false + description: 'A person that has some whole-day responsibility on a day in the camp.' + properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object + campCollaboration: + description: "The person that is responsible. Must belong to the same camp as the day's period." + example: /camp_collaborations/1a2b3c4d format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d + type: string + day: + description: 'The day on which the person is responsible.' + example: /days/1a2b3c4d format: iri-reference - readOnly: true - type: - - 'null' - - string - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string + type: string required: - - children - - contentType - - position + - campCollaboration + - day type: object - ContentNode.jsonld-read: + DayResponsible.jsonld-read: deprecated: false - description: |- - A piece of information that is part of a programme. ContentNodes may store content such as - one or multiple free text fields, or any other necessary data. Content nodes may also be used - to define layouts. For this purpose, a content node may offer so-called slots, into which other - content nodes may be inserted. In return, a content node may be nested inside a slot in a parent - container content node. This way, a tree of content nodes makes up a complete programme. + description: 'A person that has some whole-day responsibility on a day in the camp.' properties: + '@context': + oneOf: + - + additionalProperties: true + properties: + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] + type: string + required: + - '@vocab' + - hydra + type: object + - + type: string + readOnly: true '@id': readOnly: true type: string '@type': readOnly: true type: string - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d + campCollaboration: + description: "The person that is responsible. Must belong to the same camp as the day's period." + example: /camp_collaborations/1a2b3c4d format: iri-reference type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept - readOnly: true + day: + description: 'The day on which the person is responsible.' + example: /days/1a2b3c4d + format: iri-reference type: string - data: - description: 'Holds the actual data of the content node.' - example: - text: 'dummy text' - items: - type: string - type: - - array - - 'null' id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d - format: iri-reference - readOnly: true - type: - - 'null' - - string - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string required: - - children - - contentType - - position + - campCollaboration + - day type: object - ContentNode.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: + DayResponsible.jsonld-read_Day.DayResponsibles: deprecated: false description: '' properties: @@ -12657,96 +11865,175 @@ components: '@type': readOnly: true type: string - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d + campCollaboration: + description: "The person that is responsible. Must belong to the same camp as the day's period." + example: /camp_collaborations/1a2b3c4d format: iri-reference type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept - readOnly: true + day: + description: 'The day on which the person is responsible.' + example: /days/1a2b3c4d + format: iri-reference type: string - data: - description: 'Holds the actual data of the content node.' - example: - text: 'dummy text' - items: - type: string - type: - - array - - 'null' id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d + required: + - campCollaboration + - day + type: object + DayResponsible.jsonld-write: + deprecated: false + description: 'A person that has some whole-day responsibility on a day in the camp.' + properties: + campCollaboration: + description: "The person that is responsible. Must belong to the same camp as the day's period." + example: /camp_collaborations/1a2b3c4d format: iri-reference - type: - - 'null' - - string - position: - default: -1 + type: string + day: + description: 'The day on which the person is responsible.' + example: /days/1a2b3c4d + format: iri-reference + type: string + required: + - campCollaboration + - day + type: object + Invitation-read: + deprecated: false + description: |- + An invitation for a person to collaborate in a camp. The person may or may not + already have an account. + properties: + campId: description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - root: + The id of the camp for which this invitation is valid. This is useful for + redirecting the user to the correct place after they accept. + example: 1a2b3c4d + type: string + campTitle: description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d - format: iri-reference - readOnly: true + The full title of the camp for which this invitation is valid. This should help + the user to decide whether to accept or reject the invitation. + example: 'Abteilungs-Sommerlager 2022' + type: string + userAlreadyInCamp: + description: |- + Indicates whether the logged in user is already collaborating in the camp, and + can therefore not accept the invitation. + type: + - boolean + - 'null' + userDisplayName: + description: |- + The display name of the user that is invited. May be null in case the user does + not already have an account. + example: 'Robert Baden-Powell' type: - 'null' - string - slot: + type: object + Invitation-write: + deprecated: false + description: |- + An invitation for a person to collaborate in a camp. The person may or may not + already have an account. + type: object + Invitation.jsonapi: + deprecated: false + description: |- + An invitation for a person to collaborate in a camp. The person may or may not + already have an account. + properties: + data: + properties: + attributes: + properties: + campId: + description: |- + The id of the camp for which this invitation is valid. This is useful for + redirecting the user to the correct place after they accept. + example: 1a2b3c4d + type: string + campTitle: + description: |- + The full title of the camp for which this invitation is valid. This should help + the user to decide whether to accept or reject the invitation. + example: 'Abteilungs-Sommerlager 2022' + type: string + userAlreadyInCamp: + description: |- + Indicates whether the logged in user is already collaborating in the camp, and + can therefore not accept the invitation. + type: [boolean, 'null'] + userDisplayName: + description: |- + The display name of the user that is invited. May be null in case the user does + not already have an account. + example: 'Robert Baden-Powell' + type: ['null', string] + type: object + id: + type: string + type: + type: string + required: + - id + - type + type: object + type: object + Invitation.jsonhal-read: + deprecated: false + description: |- + An invitation for a person to collaborate in a camp. The person may or may not + already have an account. + properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object + campId: description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 + The id of the camp for which this invitation is valid. This is useful for + redirecting the user to the correct place after they accept. + example: 1a2b3c4d + type: string + campTitle: + description: |- + The full title of the camp for which this invitation is valid. This should help + the user to decide whether to accept or reject the invitation. + example: 'Abteilungs-Sommerlager 2022' + type: string + userAlreadyInCamp: + description: |- + Indicates whether the logged in user is already collaborating in the camp, and + can therefore not accept the invitation. + type: + - boolean + - 'null' + userDisplayName: + description: |- + The display name of the user that is invited. May be null in case the user does + not already have an account. + example: 'Robert Baden-Powell' type: - 'null' - string - required: - - children - - contentType - - position type: object - ContentNode.jsonld-read_Category.PreferredContentTypes_Category.ContentNodes: + Invitation.jsonld-read: deprecated: false - description: '' + description: |- + An invitation for a person to collaborate in a camp. The person may or may not + already have an account. properties: '@context': oneOf: @@ -12771,249 +12058,197 @@ components: '@type': readOnly: true type: string - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - contentType: + campId: description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference + The id of the camp for which this invitation is valid. This is useful for + redirecting the user to the correct place after they accept. + example: 1a2b3c4d type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept - readOnly: true + campTitle: + description: |- + The full title of the camp for which this invitation is valid. This should help + the user to decide whether to accept or reject the invitation. + example: 'Abteilungs-Sommerlager 2022' type: string - data: - description: 'Holds the actual data of the content node.' - example: - text: 'dummy text' - items: - type: string + userAlreadyInCamp: + description: |- + Indicates whether the logged in user is already collaborating in the camp, and + can therefore not accept the invitation. + type: + - boolean + - 'null' + userDisplayName: + description: |- + The display name of the user that is invited. May be null in case the user does + not already have an account. + example: 'Robert Baden-Powell' type: - - array - 'null' + - string + type: object + MaterialItem-read: + deprecated: false + description: '' + properties: + article: + description: 'The name of the item that is required.' + example: Volleyball + maxLength: 64 + type: string id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - instanceName: + materialList: description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 + The list to which this item belongs. Lists are used to keep track of who is + responsible to prepare and bring the item to the camp. + example: /material_lists/1a2b3c4d + format: iri-reference + type: string + materialNode: + description: 'The content node to which this item belongs, if it does not belong to a period.' + example: /content_node/material_nodes/1a2b3c4d + format: iri-reference type: - 'null' - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d + period: + description: 'The period to which this item belongs, if it does not belong to a content node.' + example: /periods/1a2b3c4d format: iri-reference type: - 'null' - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d - format: iri-reference - readOnly: true + quantity: + description: 'The number of items or the amount in the unit of items that are required.' + example: 1.5 type: - 'null' - - string - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' + - number + unit: + description: 'An optional unit for measuring the amount of items required.' + example: kg maxLength: 32 type: - 'null' - string required: - - children - - contentType - - position + - article + - materialList type: object - ContentType-read: + MaterialItem-write: deprecated: false - description: |- - Defines a type of content that can be present in a content node tree. A content type - determines what data can be stored in content nodes of this type, as well as validation, - available slots and jsonConfig settings. + description: 'A physical item that is needed for carrying out a programme or camp.' properties: - active: - default: true - description: 'Whether this content type is still maintained and recommended for use in new camps.' - example: 'true' - readOnly: true - type: boolean - contentNodes: - description: 'API endpoint link for creating new entities of type entityClass.' - example: '/content_node/column_layouts?contentType=%2Fcontent_types%2F1a2b3c4d' - format: iri-reference - items: - type: string - readOnly: true - type: array - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true + article: + description: 'The name of the item that is required.' + example: Volleyball type: string - name: + materialList: description: |- - A name in UpperCamelCase of the content type. This value may be used as a technical - identifier of this content type, it is guaranteed to stay fixed. - example: SafetyConcept - maxLength: 32 - readOnly: true - type: string - required: - - active - - name - type: object - ContentType-read_Category.PreferredContentTypes_Category.ContentNodes: - deprecated: false - description: '' - properties: - active: - default: true - description: 'Whether this content type is still maintained and recommended for use in new camps.' - example: 'true' - readOnly: true - type: boolean - contentNodes: - description: 'API endpoint link for creating new entities of type entityClass.' - example: '/content_node/column_layouts?contentType=%2Fcontent_types%2F1a2b3c4d' + The list to which this item belongs. Lists are used to keep track of who is + responsible to prepare and bring the item to the camp. + example: /material_lists/1a2b3c4d format: iri-reference - items: - type: string - readOnly: true - type: array - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - name: - description: |- - A name in UpperCamelCase of the content type. This value may be used as a technical - identifier of this content type, it is guaranteed to stay fixed. - example: SafetyConcept - maxLength: 32 - readOnly: true type: string - required: - - active - - name - type: object - ContentType.jsonapi-read: - deprecated: false - description: |- - Defines a type of content that can be present in a content node tree. A content type - determines what data can be stored in content nodes of this type, as well as validation, - available slots and jsonConfig settings. - properties: - active: - default: true - description: 'Whether this content type is still maintained and recommended for use in new camps.' - example: 'true' - readOnly: true - type: boolean - contentNodes: - description: 'API endpoint link for creating new entities of type entityClass.' - example: '/content_node/column_layouts?contentType=%2Fcontent_types%2F1a2b3c4d' + materialNode: + description: 'The content node to which this item belongs, if it does not belong to a period.' + example: /content_node/material_nodes/1a2b3c4d format: iri-reference - items: - type: string - readOnly: true - type: array - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - name: - description: |- - A name in UpperCamelCase of the content type. This value may be used as a technical - identifier of this content type, it is guaranteed to stay fixed. - example: SafetyConcept - maxLength: 32 - readOnly: true - type: string - required: - - active - - name + type: + - 'null' + - string + period: + description: 'The period to which this item belongs, if it does not belong to a content node.' + example: /periods/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + quantity: + description: 'The number of items or the amount in the unit of items that are required.' + example: 1.5 + type: + - 'null' + - number + unit: + description: 'An optional unit for measuring the amount of items required.' + example: kg + type: + - 'null' + - string type: object - ContentType.jsonapi-read_Category.PreferredContentTypes_Category.ContentNodes: + MaterialItem.jsonapi: deprecated: false - description: '' + description: 'A physical item that is needed for carrying out a programme or camp.' properties: - active: - default: true - description: 'Whether this content type is still maintained and recommended for use in new camps.' - example: 'true' - readOnly: true - type: boolean - contentNodes: - description: 'API endpoint link for creating new entities of type entityClass.' - example: '/content_node/column_layouts?contentType=%2Fcontent_types%2F1a2b3c4d' - format: iri-reference + data: + properties: + attributes: + properties: + _id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string + article: + description: 'The name of the item that is required.' + example: Volleyball + maxLength: 64 + type: string + quantity: + description: 'The number of items or the amount in the unit of items that are required.' + example: 1.5 + type: ['null', number] + unit: + description: 'An optional unit for measuring the amount of items required.' + example: kg + maxLength: 32 + type: ['null', string] + required: + - article + type: object + id: + type: string + relationships: + properties: + materialList: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + materialNode: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + period: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + required: + - materialList + type: object + type: + type: string + required: + - id + - type + type: object + included: + description: 'Related resources requested via the "include" query parameter.' + externalDocs: + url: 'https://jsonapi.org/format/#fetching-includes' items: - type: string + anyOf: + - + $ref: '#/components/schemas/MaterialList.jsonapi' + - + $ref: '#/components/schemas/MaterialList.jsonapi' + - + $ref: '#/components/schemas/MaterialList.jsonapi' readOnly: true type: array - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - name: - description: |- - A name in UpperCamelCase of the content type. This value may be used as a technical - identifier of this content type, it is guaranteed to stay fixed. - example: SafetyConcept - maxLength: 32 - readOnly: true - type: string - required: - - active - - name type: object - ContentType.jsonhal-read: + MaterialItem.jsonhal-read: deprecated: false - description: |- - Defines a type of content that can be present in a content node tree. A content type - determines what data can be stored in content nodes of this type, as well as validation, - available slots and jsonConfig settings. + description: '' properties: _links: properties: @@ -13024,41 +12259,58 @@ components: type: string type: object type: object - active: - default: true - description: 'Whether this content type is still maintained and recommended for use in new camps.' - example: 'true' - readOnly: true - type: boolean - contentNodes: - description: 'API endpoint link for creating new entities of type entityClass.' - example: '/content_node/column_layouts?contentType=%2Fcontent_types%2F1a2b3c4d' - format: iri-reference - items: - type: string - readOnly: true - type: array + article: + description: 'The name of the item that is required.' + example: Volleyball + maxLength: 64 + type: string id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - name: + materialList: description: |- - A name in UpperCamelCase of the content type. This value may be used as a technical - identifier of this content type, it is guaranteed to stay fixed. - example: SafetyConcept - maxLength: 32 - readOnly: true + The list to which this item belongs. Lists are used to keep track of who is + responsible to prepare and bring the item to the camp. + example: /material_lists/1a2b3c4d + format: iri-reference type: string + materialNode: + description: 'The content node to which this item belongs, if it does not belong to a period.' + example: /content_node/material_nodes/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + period: + description: 'The period to which this item belongs, if it does not belong to a content node.' + example: /periods/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + quantity: + description: 'The number of items or the amount in the unit of items that are required.' + example: 1.5 + type: + - 'null' + - number + unit: + description: 'An optional unit for measuring the amount of items required.' + example: kg + maxLength: 32 + type: + - 'null' + - string required: - - active - - name + - article + - materialList type: object - ContentType.jsonhal-read_Category.PreferredContentTypes_Category.ContentNodes: + MaterialItem.jsonhal-write: deprecated: false - description: '' + description: 'A physical item that is needed for carrying out a programme or camp.' properties: _links: properties: @@ -13069,44 +12321,52 @@ components: type: string type: object type: object - active: - default: true - description: 'Whether this content type is still maintained and recommended for use in new camps.' - example: 'true' - readOnly: true - type: boolean - contentNodes: - description: 'API endpoint link for creating new entities of type entityClass.' - example: '/content_node/column_layouts?contentType=%2Fcontent_types%2F1a2b3c4d' - format: iri-reference - items: - type: string - readOnly: true - type: array - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true + article: + description: 'The name of the item that is required.' + example: Volleyball + maxLength: 64 type: string - name: + materialList: description: |- - A name in UpperCamelCase of the content type. This value may be used as a technical - identifier of this content type, it is guaranteed to stay fixed. - example: SafetyConcept - maxLength: 32 - readOnly: true + The list to which this item belongs. Lists are used to keep track of who is + responsible to prepare and bring the item to the camp. + example: /material_lists/1a2b3c4d + format: iri-reference type: string + materialNode: + description: 'The content node to which this item belongs, if it does not belong to a period.' + example: /content_node/material_nodes/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + period: + description: 'The period to which this item belongs, if it does not belong to a content node.' + example: /periods/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + quantity: + description: 'The number of items or the amount in the unit of items that are required.' + example: 1.5 + type: + - 'null' + - number + unit: + description: 'An optional unit for measuring the amount of items required.' + example: kg + maxLength: 32 + type: + - 'null' + - string required: - - active - - name + - article + - materialList type: object - ContentType.jsonld-read: + MaterialItem.jsonld-read: deprecated: false - description: |- - Defines a type of content that can be present in a content node tree. A content type - determines what data can be stored in content nodes of this type, as well as validation, - available slots and jsonConfig settings. + description: '' properties: '@context': oneOf: @@ -13131,128 +12391,117 @@ components: '@type': readOnly: true type: string - active: - default: true - description: 'Whether this content type is still maintained and recommended for use in new camps.' - example: 'true' - readOnly: true - type: boolean - contentNodes: - description: 'API endpoint link for creating new entities of type entityClass.' - example: '/content_node/column_layouts?contentType=%2Fcontent_types%2F1a2b3c4d' - format: iri-reference - items: - type: string - readOnly: true - type: array + article: + description: 'The name of the item that is required.' + example: Volleyball + maxLength: 64 + type: string id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - name: + materialList: description: |- - A name in UpperCamelCase of the content type. This value may be used as a technical - identifier of this content type, it is guaranteed to stay fixed. - example: SafetyConcept - maxLength: 32 - readOnly: true + The list to which this item belongs. Lists are used to keep track of who is + responsible to prepare and bring the item to the camp. + example: /material_lists/1a2b3c4d + format: iri-reference type: string + materialNode: + description: 'The content node to which this item belongs, if it does not belong to a period.' + example: /content_node/material_nodes/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + period: + description: 'The period to which this item belongs, if it does not belong to a content node.' + example: /periods/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + quantity: + description: 'The number of items or the amount in the unit of items that are required.' + example: 1.5 + type: + - 'null' + - number + unit: + description: 'An optional unit for measuring the amount of items required.' + example: kg + maxLength: 32 + type: + - 'null' + - string required: - - active - - name + - article + - materialList type: object - ContentType.jsonld-read_Category.PreferredContentTypes_Category.ContentNodes: + MaterialItem.jsonld-write: deprecated: false - description: '' + description: 'A physical item that is needed for carrying out a programme or camp.' properties: - '@context': - oneOf: - - - additionalProperties: true - properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] - type: string - required: - - '@vocab' - - hydra - type: object - - - type: string - readOnly: true - '@id': - readOnly: true - type: string - '@type': - readOnly: true + article: + description: 'The name of the item that is required.' + example: Volleyball + maxLength: 64 type: string - active: - default: true - description: 'Whether this content type is still maintained and recommended for use in new camps.' - example: 'true' - readOnly: true - type: boolean - contentNodes: - description: 'API endpoint link for creating new entities of type entityClass.' - example: '/content_node/column_layouts?contentType=%2Fcontent_types%2F1a2b3c4d' + materialList: + description: |- + The list to which this item belongs. Lists are used to keep track of who is + responsible to prepare and bring the item to the camp. + example: /material_lists/1a2b3c4d format: iri-reference - items: - type: string - readOnly: true - type: array - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true type: string - name: - description: |- - A name in UpperCamelCase of the content type. This value may be used as a technical - identifier of this content type, it is guaranteed to stay fixed. - example: SafetyConcept + materialNode: + description: 'The content node to which this item belongs, if it does not belong to a period.' + example: /content_node/material_nodes/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + period: + description: 'The period to which this item belongs, if it does not belong to a content node.' + example: /periods/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + quantity: + description: 'The number of items or the amount in the unit of items that are required.' + example: 1.5 + type: + - 'null' + - number + unit: + description: 'An optional unit for measuring the amount of items required.' + example: kg maxLength: 32 - readOnly: true - type: string + type: + - 'null' + - string required: - - active - - name - type: object - Credentials: - properties: - identifier: - example: test@example.com - type: string - password: - example: test - type: string + - article + - materialList type: object - Day-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: + MaterialList-read: deprecated: false - description: '' + description: |- + A list of material items that someone needs to bring to the camp. A material list + is automatically created for each person collaborating on the camp. properties: - dayOffset: - description: "The 0-based offset in days from the period's start date when this day starts." - example: '1' - readOnly: true - type: integer - dayResponsibles: - description: 'The list of people who have a whole-day responsibility on this day.' - example: '["/day_responsibles/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - end: - description: 'The end date and time of the day. This is a read-only convenience property.' - example: '2022-01-03T00:00:00+00:00' - format: date + camp: + description: 'The camp this material list belongs to.' + example: /camps/1a2b3c4d + format: iri-reference + type: string + campCollaboration: + description: 'The campCollaboration this material list belongs to.' + example: /camp_collaborations/1a2b3c4d + format: iri-reference readOnly: true type: - 'null' @@ -13263,60 +12512,156 @@ components: maxLength: 16 readOnly: true type: string - number: - description: 'The 1-based cardinal number of the day in the period. Not unique within the camp.' - example: '2' + itemCount: + example: 3 readOnly: true type: integer - period: - description: 'The time period that this day belongs to.' - example: /periods/1a2b3c4d - format: iri-reference - type: string - scheduleEntries: - description: "All scheduleEntries in this day's period which overlap with this day (using midnight as cutoff)." - example: '/schedule_entries?period=%2Fperiods%2F1a2b3c4d&start%5Bstrictly_before%5D=2022-01-03T00%3A00%3A00%2B00%3A00&end%5Bafter%5D=2022-01-02T00%3A00%3A00%2B00%3A00' + materialItems: + description: 'The items that are part of this list.' + example: '["/material_items/1a2b3c4d"]' items: example: 'https://example.com/' format: iri-reference type: string readOnly: true type: array - start: - description: 'The start date and time of the day. This is a read-only convenience property.' - example: '2022-01-02T00:00:00+00:00' - format: date - readOnly: true + name: + description: 'The human readable name of the material list.' + example: Lebensmittel + maxLength: 32 type: - 'null' - string required: - - dayOffset - - dayResponsibles - - period + - camp + - materialItems + - name type: object - Day-read_Day.DayResponsibles: + MaterialList-write: deprecated: false description: |- - A day in a time period of a camp. This is represented as a reference to the time period - along with a number of days offset from the period's starting date. This is to make it - easier to move the whole periods to different dates. Days are created automatically when - creating or updating periods, and are not writable through the API directly. + A list of material items that someone needs to bring to the camp. A material list + is automatically created for each person collaborating on the camp. properties: - dayOffset: - description: "The 0-based offset in days from the period's start date when this day starts." - example: '1' - readOnly: true - type: integer - dayResponsibles: + name: + description: 'The human readable name of the material list.' + example: Lebensmittel + maxLength: 32 + type: + - 'null' + - string + required: + - name + type: object + MaterialList-write_create: + deprecated: false + description: |- + A list of material items that someone needs to bring to the camp. A material list + is automatically created for each person collaborating on the camp. + properties: + camp: + description: 'The camp this material list belongs to.' + example: /camps/1a2b3c4d + format: iri-reference + type: string + name: + description: 'The human readable name of the material list.' + example: Lebensmittel + maxLength: 32 + type: + - 'null' + - string + required: + - camp + - name + type: object + MaterialList.jsonapi: + deprecated: false + description: |- + A list of material items that someone needs to bring to the camp. A material list + is automatically created for each person collaborating on the camp. + properties: + data: + properties: + attributes: + properties: + _id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string + itemCount: + example: 3 + readOnly: true + type: integer + name: + description: 'The human readable name of the material list.' + example: Lebensmittel + maxLength: 32 + type: ['null', string] + required: + - name + type: object + id: + type: string + relationships: + properties: + camp: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + campCollaboration: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + materialItems: + properties: { data: { items: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object }, type: array } } + required: + - camp + - materialItems + type: object + type: + type: string + required: + - id + - type + type: object + included: + description: 'Related resources requested via the "include" query parameter.' + externalDocs: + url: 'https://jsonapi.org/format/#fetching-includes' items: - $ref: '#/components/schemas/DayResponsible-read_Day.DayResponsibles' + anyOf: + - + $ref: '#/components/schemas/MaterialList.jsonapi' + - + $ref: '#/components/schemas/MaterialList.jsonapi' + - + $ref: '#/components/schemas/MaterialList.jsonapi' readOnly: true type: array - end: - description: 'The end date and time of the day. This is a read-only convenience property.' - example: '2022-01-03T00:00:00+00:00' - format: date + type: object + MaterialList.jsonhal-read: + deprecated: false + description: |- + A list of material items that someone needs to bring to the camp. A material list + is automatically created for each person collaborating on the camp. + properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object + camp: + description: 'The camp this material list belongs to.' + example: /camps/1a2b3c4d + format: iri-reference + type: string + campCollaboration: + description: 'The campCollaboration this material list belongs to.' + example: /camp_collaborations/1a2b3c4d + format: iri-reference readOnly: true type: - 'null' @@ -13327,60 +12672,100 @@ components: maxLength: 16 readOnly: true type: string - number: - description: 'The 1-based cardinal number of the day in the period. Not unique within the camp.' - example: '2' + itemCount: + example: 3 readOnly: true type: integer - period: - description: 'The time period that this day belongs to.' - example: /periods/1a2b3c4d - format: iri-reference - type: string - scheduleEntries: - description: "All scheduleEntries in this day's period which overlap with this day (using midnight as cutoff)." - example: '/schedule_entries?period=%2Fperiods%2F1a2b3c4d&start%5Bstrictly_before%5D=2022-01-03T00%3A00%3A00%2B00%3A00&end%5Bafter%5D=2022-01-02T00%3A00%3A00%2B00%3A00' + materialItems: + description: 'The items that are part of this list.' + example: '["/material_items/1a2b3c4d"]' items: example: 'https://example.com/' format: iri-reference type: string readOnly: true type: array - start: - description: 'The start date and time of the day. This is a read-only convenience property.' - example: '2022-01-02T00:00:00+00:00' - format: date - readOnly: true + name: + description: 'The human readable name of the material list.' + example: Lebensmittel + maxLength: 32 type: - 'null' - string required: - - dayOffset - - dayResponsibles - - period + - camp + - materialItems + - name type: object - Day-read_Period.Camp_Period.Days: + MaterialList.jsonhal-write_create: deprecated: false - description: '' + description: |- + A list of material items that someone needs to bring to the camp. A material list + is automatically created for each person collaborating on the camp. properties: - dayOffset: - description: "The 0-based offset in days from the period's start date when this day starts." - example: '1' + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object + camp: + description: 'The camp this material list belongs to.' + example: /camps/1a2b3c4d + format: iri-reference + type: string + name: + description: 'The human readable name of the material list.' + example: Lebensmittel + maxLength: 32 + type: + - 'null' + - string + required: + - camp + - name + type: object + MaterialList.jsonld-read: + deprecated: false + description: |- + A list of material items that someone needs to bring to the camp. A material list + is automatically created for each person collaborating on the camp. + properties: + '@context': + oneOf: + - + additionalProperties: true + properties: + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] + type: string + required: + - '@vocab' + - hydra + type: object + - + type: string readOnly: true - type: integer - dayResponsibles: - description: 'The list of people who have a whole-day responsibility on this day.' - example: '["/day_responsibles/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string + '@id': readOnly: true - type: array - end: - description: 'The end date and time of the day. This is a read-only convenience property.' - example: '2022-01-03T00:00:00+00:00' - format: date + type: string + '@type': + readOnly: true + type: string + camp: + description: 'The camp this material list belongs to.' + example: /camps/1a2b3c4d + format: iri-reference + type: string + campCollaboration: + description: 'The campCollaboration this material list belongs to.' + example: /camp_collaborations/1a2b3c4d + format: iri-reference readOnly: true type: - 'null' @@ -13391,310 +12776,362 @@ components: maxLength: 16 readOnly: true type: string - number: - description: 'The 1-based cardinal number of the day in the period. Not unique within the camp.' - example: '2' + itemCount: + example: 3 readOnly: true type: integer - period: - description: 'The time period that this day belongs to.' - example: /periods/1a2b3c4d - format: iri-reference - type: string - scheduleEntries: - description: "All scheduleEntries in this day's period which overlap with this day (using midnight as cutoff)." - example: '/schedule_entries?period=%2Fperiods%2F1a2b3c4d&start%5Bstrictly_before%5D=2022-01-03T00%3A00%3A00%2B00%3A00&end%5Bafter%5D=2022-01-02T00%3A00%3A00%2B00%3A00' + materialItems: + description: 'The items that are part of this list.' + example: '["/material_items/1a2b3c4d"]' items: example: 'https://example.com/' format: iri-reference type: string readOnly: true type: array - start: - description: 'The start date and time of the day. This is a read-only convenience property.' - example: '2022-01-02T00:00:00+00:00' - format: date - readOnly: true + name: + description: 'The human readable name of the material list.' + example: Lebensmittel + maxLength: 32 type: - 'null' - string required: - - dayOffset - - dayResponsibles - - period + - camp + - materialItems + - name + type: object + MaterialList.jsonld-write_create: + deprecated: false + description: |- + A list of material items that someone needs to bring to the camp. A material list + is automatically created for each person collaborating on the camp. + properties: + camp: + description: 'The camp this material list belongs to.' + example: /camps/1a2b3c4d + format: iri-reference + type: string + name: + description: 'The human readable name of the material list.' + example: Lebensmittel + maxLength: 32 + type: + - 'null' + - string + required: + - camp + - name type: object - Day.jsonapi-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: + MaterialNode-read: deprecated: false description: '' properties: - dayOffset: - description: "The 0-based offset in days from the period's start date when this day starts." - example: '1' - readOnly: true - type: integer - dayResponsibles: - description: 'The list of people who have a whole-day responsibility on this day.' - example: '["/day_responsibles/1a2b3c4d"]' + children: + description: 'All content nodes that are direct children of this content node.' + example: '["/content_nodes/1a2b3c4d"]' items: example: 'https://example.com/' format: iri-reference type: string readOnly: true type: array - end: - description: 'The end date and time of the day. This is a read-only convenience property.' - example: '2022-01-03T00:00:00+00:00' - format: date + contentType: + description: |- + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d + format: iri-reference + type: string + contentTypeName: + description: 'The name of the content type of this content node. Read-only, for convenience.' + example: SafetyConcept readOnly: true + type: string + data: + description: |- + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + items: + type: string type: + - array - 'null' - - string id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - number: - description: 'The 1-based cardinal number of the day in the period. Not unique within the camp.' - example: '2' - readOnly: true - type: integer - period: - description: 'The time period that this day belongs to.' - example: /periods/1a2b3c4d - format: iri-reference - type: string - scheduleEntries: - description: "All scheduleEntries in this day's period which overlap with this day (using midnight as cutoff)." - example: '/schedule_entries?period=%2Fperiods%2F1a2b3c4d&start%5Bstrictly_before%5D=2022-01-03T00%3A00%3A00%2B00%3A00&end%5Bafter%5D=2022-01-02T00%3A00%3A00%2B00%3A00' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - start: - description: 'The start date and time of the day. This is a read-only convenience property.' - example: '2022-01-02T00:00:00+00:00' - format: date - readOnly: true + instanceName: + description: |- + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 type: - 'null' - string - required: - - dayOffset - - dayResponsibles - - period - type: object - Day.jsonapi-read_Day.DayResponsibles: - deprecated: false - description: |- - A day in a time period of a camp. This is represented as a reference to the time period - along with a number of days offset from the period's starting date. This is to make it - easier to move the whole periods to different dates. Days are created automatically when - creating or updating periods, and are not writable through the API directly. - properties: - dayOffset: - description: "The 0-based offset in days from the period's start date when this day starts." - example: '1' - readOnly: true - type: integer - dayResponsibles: + materialItems: items: - $ref: '#/components/schemas/DayResponsible.jsonapi-read_Day.DayResponsibles' - readOnly: true + $ref: '#/components/schemas/MaterialItem-read' type: array - end: - description: 'The end date and time of the day. This is a read-only convenience property.' - example: '2022-01-03T00:00:00+00:00' - format: date - readOnly: true + parent: + description: |- + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d + format: iri-reference type: - 'null' - string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - number: - description: 'The 1-based cardinal number of the day in the period. Not unique within the camp.' - example: '2' - readOnly: true + position: + default: -1 + description: |- + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 type: integer - period: - description: 'The time period that this day belongs to.' - example: /periods/1a2b3c4d + root: + description: |- + The content node that is the root of the content node tree. Refers to itself in case this + content node is the root. + example: /content_nodes/1a2b3c4d format: iri-reference - type: string - scheduleEntries: - description: "All scheduleEntries in this day's period which overlap with this day (using midnight as cutoff)." - example: '/schedule_entries?period=%2Fperiods%2F1a2b3c4d&start%5Bstrictly_before%5D=2022-01-03T00%3A00%3A00%2B00%3A00&end%5Bafter%5D=2022-01-02T00%3A00%3A00%2B00%3A00' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - start: - description: 'The start date and time of the day. This is a read-only convenience property.' - example: '2022-01-02T00:00:00+00:00' - format: date readOnly: true type: - 'null' - string + slot: + description: |- + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 + type: + - 'null' + - string required: - - dayOffset - - dayResponsibles - - period + - children + - contentType + - materialItems + - position type: object - Day.jsonapi-read_Period.Camp_Period.Days: + MaterialNode-write_create: deprecated: false description: '' properties: - dayOffset: - description: "The 0-based offset in days from the period's start date when this day starts." - example: '1' - readOnly: true - type: integer - dayResponsibles: - description: 'The list of people who have a whole-day responsibility on this day.' - example: '["/day_responsibles/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - end: - description: 'The end date and time of the day. This is a read-only convenience property.' - example: '2022-01-03T00:00:00+00:00' - format: date - readOnly: true - type: - - 'null' - - string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - number: - description: 'The 1-based cardinal number of the day in the period. Not unique within the camp.' - example: '2' - readOnly: true - type: integer - period: - description: 'The time period that this day belongs to.' - example: /periods/1a2b3c4d + contentType: + description: |- + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d format: iri-reference type: string - scheduleEntries: - description: "All scheduleEntries in this day's period which overlap with this day (using midnight as cutoff)." - example: '/schedule_entries?period=%2Fperiods%2F1a2b3c4d&start%5Bstrictly_before%5D=2022-01-03T00%3A00%3A00%2B00%3A00&end%5Bafter%5D=2022-01-02T00%3A00%3A00%2B00%3A00' + data: + description: |- + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). items: - example: 'https://example.com/' - format: iri-reference type: string - readOnly: true - type: array - start: - description: 'The start date and time of the day. This is a read-only convenience property.' - example: '2022-01-02T00:00:00+00:00' - format: date - readOnly: true + type: + - array + - 'null' + instanceName: + description: |- + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 type: - 'null' - string - required: - - dayOffset - - dayResponsibles - - period + parent: + description: |- + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + position: + default: -1 + description: |- + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 + type: integer + slot: + description: |- + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 + type: + - 'null' + - string + required: + - contentType + - parent + - position type: object - Day.jsonhal-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: + MaterialNode-write_update: deprecated: false description: '' properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object - dayOffset: - description: "The 0-based offset in days from the period's start date when this day starts." - example: '1' - readOnly: true + data: + description: |- + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + items: + type: string + type: + - array + - 'null' + instanceName: + description: |- + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 + type: + - 'null' + - string + parent: + description: |- + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + position: + default: -1 + description: |- + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 type: integer - dayResponsibles: - description: 'The list of people who have a whole-day responsibility on this day.' - example: '["/day_responsibles/1a2b3c4d"]' + slot: + description: |- + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 + type: + - 'null' + - string + required: + - position + type: object + MaterialNode.jsonapi: + deprecated: false + description: '' + properties: + children: + description: 'All content nodes that are direct children of this content node.' + example: '["/content_nodes/1a2b3c4d"]' items: example: 'https://example.com/' format: iri-reference type: string readOnly: true type: array - end: - description: 'The end date and time of the day. This is a read-only convenience property.' - example: '2022-01-03T00:00:00+00:00' - format: date + contentType: + description: |- + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d + format: iri-reference + readOnly: true + type: string + contentTypeName: + description: 'The name of the content type of this content node. Read-only, for convenience.' + example: SafetyConcept readOnly: true + type: string + data: + description: |- + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + items: + type: string type: + - array - 'null' - - string id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - number: - description: 'The 1-based cardinal number of the day in the period. Not unique within the camp.' - example: '2' - readOnly: true - type: integer - period: - description: 'The time period that this day belongs to.' - example: /periods/1a2b3c4d - format: iri-reference - type: string - scheduleEntries: - description: "All scheduleEntries in this day's period which overlap with this day (using midnight as cutoff)." - example: '/schedule_entries?period=%2Fperiods%2F1a2b3c4d&start%5Bstrictly_before%5D=2022-01-03T00%3A00%3A00%2B00%3A00&end%5Bafter%5D=2022-01-02T00%3A00%3A00%2B00%3A00' + instanceName: + description: |- + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 + type: + - 'null' + - string + materialItems: items: - example: 'https://example.com/' - format: iri-reference - type: string + $ref: '#/components/schemas/MaterialItem.jsonapi' readOnly: true type: array - start: - description: 'The start date and time of the day. This is a read-only convenience property.' - example: '2022-01-02T00:00:00+00:00' - format: date + parent: + description: |- + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + position: + default: -1 + description: |- + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 + type: integer + root: + description: |- + The content node that is the root of the content node tree. Refers to itself in case this + content node is the root. + example: /content_nodes/1a2b3c4d + format: iri-reference readOnly: true type: - 'null' - string + slot: + description: |- + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 + type: + - 'null' + - string required: - - dayOffset - - dayResponsibles - - period + - children + - contentType + - materialItems + - position type: object - Day.jsonhal-read_Day.DayResponsibles: + MaterialNode.jsonhal-read: deprecated: false - description: |- - A day in a time period of a camp. This is represented as a reference to the time period - along with a number of days offset from the period's starting date. This is to make it - easier to move the whole periods to different dates. Days are created automatically when - creating or updating periods, and are not writable through the API directly. + description: '' properties: _links: properties: @@ -13705,63 +13142,99 @@ components: type: string type: object type: object - dayOffset: - description: "The 0-based offset in days from the period's start date when this day starts." - example: '1' - readOnly: true - type: integer - dayResponsibles: + children: + description: 'All content nodes that are direct children of this content node.' + example: '["/content_nodes/1a2b3c4d"]' items: - $ref: '#/components/schemas/DayResponsible.jsonhal-read_Day.DayResponsibles' + example: 'https://example.com/' + format: iri-reference + type: string readOnly: true type: array - end: - description: 'The end date and time of the day. This is a read-only convenience property.' - example: '2022-01-03T00:00:00+00:00' - format: date + contentType: + description: |- + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d + format: iri-reference + type: string + contentTypeName: + description: 'The name of the content type of this content node. Read-only, for convenience.' + example: SafetyConcept readOnly: true + type: string + data: + description: |- + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + items: + type: string type: + - array - 'null' - - string id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - number: - description: 'The 1-based cardinal number of the day in the period. Not unique within the camp.' - example: '2' - readOnly: true - type: integer - period: - description: 'The time period that this day belongs to.' - example: /periods/1a2b3c4d - format: iri-reference - type: string - scheduleEntries: - description: "All scheduleEntries in this day's period which overlap with this day (using midnight as cutoff)." - example: '/schedule_entries?period=%2Fperiods%2F1a2b3c4d&start%5Bstrictly_before%5D=2022-01-03T00%3A00%3A00%2B00%3A00&end%5Bafter%5D=2022-01-02T00%3A00%3A00%2B00%3A00' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true + instanceName: + description: |- + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 + type: + - 'null' + - string + materialItems: + items: + $ref: '#/components/schemas/MaterialItem.jsonhal-read' type: array - start: - description: 'The start date and time of the day. This is a read-only convenience property.' - example: '2022-01-02T00:00:00+00:00' - format: date + parent: + description: |- + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + position: + default: -1 + description: |- + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 + type: integer + root: + description: |- + The content node that is the root of the content node tree. Refers to itself in case this + content node is the root. + example: /content_nodes/1a2b3c4d + format: iri-reference readOnly: true type: - 'null' - string + slot: + description: |- + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 + type: + - 'null' + - string required: - - dayOffset - - dayResponsibles - - period + - children + - contentType + - materialItems + - position type: object - Day.jsonhal-read_Period.Camp_Period.Days: + MaterialNode.jsonhal-write_create: deprecated: false description: '' properties: @@ -13774,67 +13247,64 @@ components: type: string type: object type: object - dayOffset: - description: "The 0-based offset in days from the period's start date when this day starts." - example: '1' - readOnly: true - type: integer - dayResponsibles: - description: 'The list of people who have a whole-day responsibility on this day.' - example: '["/day_responsibles/1a2b3c4d"]' + contentType: + description: |- + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d + format: iri-reference + type: string + data: + description: |- + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). items: - example: 'https://example.com/' - format: iri-reference type: string - readOnly: true - type: array - end: - description: 'The end date and time of the day. This is a read-only convenience property.' - example: '2022-01-03T00:00:00+00:00' - format: date - readOnly: true + type: + - array + - 'null' + instanceName: + description: |- + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 type: - 'null' - string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - number: - description: 'The 1-based cardinal number of the day in the period. Not unique within the camp.' - example: '2' - readOnly: true - type: integer - period: - description: 'The time period that this day belongs to.' - example: /periods/1a2b3c4d + parent: + description: |- + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d format: iri-reference - type: string - scheduleEntries: - description: "All scheduleEntries in this day's period which overlap with this day (using midnight as cutoff)." - example: '/schedule_entries?period=%2Fperiods%2F1a2b3c4d&start%5Bstrictly_before%5D=2022-01-03T00%3A00%3A00%2B00%3A00&end%5Bafter%5D=2022-01-02T00%3A00%3A00%2B00%3A00' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - start: - description: 'The start date and time of the day. This is a read-only convenience property.' - example: '2022-01-02T00:00:00+00:00' - format: date - readOnly: true + type: + - 'null' + - string + position: + default: -1 + description: |- + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 + type: integer + slot: + description: |- + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 type: - 'null' - string required: - - dayOffset - - dayResponsibles - - period + - contentType + - parent + - position type: object - Day.jsonld-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: + MaterialNode.jsonld-read: deprecated: false description: '' properties: @@ -13861,406 +13331,480 @@ components: '@type': readOnly: true type: string - dayOffset: - description: "The 0-based offset in days from the period's start date when this day starts." - example: '1' - readOnly: true - type: integer - dayResponsibles: - description: 'The list of people who have a whole-day responsibility on this day.' - example: '["/day_responsibles/1a2b3c4d"]' + children: + description: 'All content nodes that are direct children of this content node.' + example: '["/content_nodes/1a2b3c4d"]' items: example: 'https://example.com/' format: iri-reference type: string readOnly: true type: array - end: - description: 'The end date and time of the day. This is a read-only convenience property.' - example: '2022-01-03T00:00:00+00:00' - format: date + contentType: + description: |- + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d + format: iri-reference + type: string + contentTypeName: + description: 'The name of the content type of this content node. Read-only, for convenience.' + example: SafetyConcept readOnly: true + type: string + data: + description: |- + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + items: + type: string type: + - array - 'null' - - string id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - number: - description: 'The 1-based cardinal number of the day in the period. Not unique within the camp.' - example: '2' - readOnly: true - type: integer - period: - description: 'The time period that this day belongs to.' - example: /periods/1a2b3c4d - format: iri-reference - type: string - scheduleEntries: - description: "All scheduleEntries in this day's period which overlap with this day (using midnight as cutoff)." - example: '/schedule_entries?period=%2Fperiods%2F1a2b3c4d&start%5Bstrictly_before%5D=2022-01-03T00%3A00%3A00%2B00%3A00&end%5Bafter%5D=2022-01-02T00%3A00%3A00%2B00%3A00' + instanceName: + description: |- + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 + type: + - 'null' + - string + materialItems: items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true + $ref: '#/components/schemas/MaterialItem.jsonld-read' type: array - start: - description: 'The start date and time of the day. This is a read-only convenience property.' - example: '2022-01-02T00:00:00+00:00' - format: date + parent: + description: |- + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + position: + default: -1 + description: |- + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 + type: integer + root: + description: |- + The content node that is the root of the content node tree. Refers to itself in case this + content node is the root. + example: /content_nodes/1a2b3c4d + format: iri-reference readOnly: true type: - 'null' - string - required: - - dayOffset - - dayResponsibles - - period - type: object - Day.jsonld-read_Day.DayResponsibles: - deprecated: false - description: |- - A day in a time period of a camp. This is represented as a reference to the time period - along with a number of days offset from the period's starting date. This is to make it - easier to move the whole periods to different dates. Days are created automatically when - creating or updating periods, and are not writable through the API directly. - properties: - '@context': - oneOf: - - - additionalProperties: true - properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] - type: string - required: - - '@vocab' - - hydra - type: object - - - type: string - readOnly: true - '@id': - readOnly: true - type: string - '@type': - readOnly: true - type: string - dayOffset: - description: "The 0-based offset in days from the period's start date when this day starts." + slot: + description: |- + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. example: '1' - readOnly: true - type: integer - dayResponsibles: - items: - $ref: '#/components/schemas/DayResponsible.jsonld-read_Day.DayResponsibles' - readOnly: true - type: array - end: - description: 'The end date and time of the day. This is a read-only convenience property.' - example: '2022-01-03T00:00:00+00:00' - format: date - readOnly: true + maxLength: 32 type: - 'null' - string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - number: - description: 'The 1-based cardinal number of the day in the period. Not unique within the camp.' - example: '2' - readOnly: true - type: integer - period: - description: 'The time period that this day belongs to.' - example: /periods/1a2b3c4d + required: + - children + - contentType + - materialItems + - position + type: object + MaterialNode.jsonld-write_create: + deprecated: false + description: '' + properties: + contentType: + description: |- + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d format: iri-reference type: string - scheduleEntries: - description: "All scheduleEntries in this day's period which overlap with this day (using midnight as cutoff)." - example: '/schedule_entries?period=%2Fperiods%2F1a2b3c4d&start%5Bstrictly_before%5D=2022-01-03T00%3A00%3A00%2B00%3A00&end%5Bafter%5D=2022-01-02T00%3A00%3A00%2B00%3A00' + data: + description: |- + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). items: - example: 'https://example.com/' - format: iri-reference type: string - readOnly: true - type: array - start: - description: 'The start date and time of the day. This is a read-only convenience property.' - example: '2022-01-02T00:00:00+00:00' - format: date - readOnly: true + type: + - array + - 'null' + instanceName: + description: |- + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 + type: + - 'null' + - string + parent: + description: |- + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + position: + default: -1 + description: |- + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 + type: integer + slot: + description: |- + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 type: - 'null' - string required: - - dayOffset - - dayResponsibles - - period + - contentType + - parent + - position type: object - Day.jsonld-read_Period.Camp_Period.Days: + MultiSelect-read: deprecated: false description: '' properties: - '@context': - oneOf: - - - additionalProperties: true - properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] - type: string - required: - - '@vocab' - - hydra - type: object - - - type: string - readOnly: true - '@id': - readOnly: true - type: string - '@type': - readOnly: true - type: string - dayOffset: - description: "The 0-based offset in days from the period's start date when this day starts." - example: '1' - readOnly: true - type: integer - dayResponsibles: - description: 'The list of people who have a whole-day responsibility on this day.' - example: '["/day_responsibles/1a2b3c4d"]' + children: + description: 'All content nodes that are direct children of this content node.' + example: '["/content_nodes/1a2b3c4d"]' items: example: 'https://example.com/' format: iri-reference type: string readOnly: true type: array - end: - description: 'The end date and time of the day. This is a read-only convenience property.' - example: '2022-01-03T00:00:00+00:00' - format: date + contentType: + description: |- + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d + format: iri-reference + type: string + contentTypeName: + description: 'The name of the content type of this content node. Read-only, for convenience.' + example: SafetyConcept readOnly: true + type: string + data: + description: |- + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + example: + options: + natureAndEnvironment: + checked: true + outdoorTechnique: + checked: false + items: + type: string type: + - array - 'null' - - string id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - number: - description: 'The 1-based cardinal number of the day in the period. Not unique within the camp.' - example: '2' - readOnly: true + instanceName: + description: |- + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 + type: + - 'null' + - string + parent: + description: |- + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + position: + default: -1 + description: |- + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 type: integer - period: - description: 'The time period that this day belongs to.' - example: /periods/1a2b3c4d + root: + description: |- + The content node that is the root of the content node tree. Refers to itself in case this + content node is the root. + example: /content_nodes/1a2b3c4d format: iri-reference - type: string - scheduleEntries: - description: "All scheduleEntries in this day's period which overlap with this day (using midnight as cutoff)." - example: '/schedule_entries?period=%2Fperiods%2F1a2b3c4d&start%5Bstrictly_before%5D=2022-01-03T00%3A00%3A00%2B00%3A00&end%5Bafter%5D=2022-01-02T00%3A00%3A00%2B00%3A00' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - start: - description: 'The start date and time of the day. This is a read-only convenience property.' - example: '2022-01-02T00:00:00+00:00' - format: date readOnly: true type: - 'null' - string + slot: + description: |- + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 + type: + - 'null' + - string required: - - dayOffset - - dayResponsibles - - period - type: object - DayResponsible-read: - deprecated: false - description: 'A person that has some whole-day responsibility on a day in the camp.' - properties: - campCollaboration: - description: "The person that is responsible. Must belong to the same camp as the day's period." - example: /camp_collaborations/1a2b3c4d - format: iri-reference - type: string - day: - description: 'The day on which the person is responsible.' - example: /days/1a2b3c4d - format: iri-reference - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - required: - - campCollaboration - - day + - children + - contentType + - position type: object - DayResponsible-read_Day.DayResponsibles: + MultiSelect-write_create: deprecated: false description: '' properties: - campCollaboration: - description: "The person that is responsible. Must belong to the same camp as the day's period." - example: /camp_collaborations/1a2b3c4d - format: iri-reference - type: string - day: - description: 'The day on which the person is responsible.' - example: /days/1a2b3c4d - format: iri-reference - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - required: - - campCollaboration - - day - type: object - DayResponsible-write: - deprecated: false - description: 'A person that has some whole-day responsibility on a day in the camp.' - properties: - campCollaboration: - description: "The person that is responsible. Must belong to the same camp as the day's period." - example: /camp_collaborations/1a2b3c4d + contentType: + description: |- + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d format: iri-reference type: string - day: - description: 'The day on which the person is responsible.' - example: /days/1a2b3c4d + data: + description: |- + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + example: + options: + natureAndEnvironment: + checked: true + outdoorTechnique: + checked: false + items: + type: string + type: + - array + - 'null' + instanceName: + description: |- + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 + type: + - 'null' + - string + parent: + description: |- + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d format: iri-reference - type: string + type: + - 'null' + - string + position: + default: -1 + description: |- + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 + type: integer + slot: + description: |- + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 + type: + - 'null' + - string required: - - campCollaboration - - day + - contentType + - parent + - position type: object - DayResponsible.jsonapi-read: + MultiSelect-write_update: deprecated: false - description: 'A person that has some whole-day responsibility on a day in the camp.' + description: '' properties: - campCollaboration: - description: "The person that is responsible. Must belong to the same camp as the day's period." - example: /camp_collaborations/1a2b3c4d - format: iri-reference - type: string - day: - description: 'The day on which the person is responsible.' - example: /days/1a2b3c4d + data: + description: |- + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + example: + options: + natureAndEnvironment: + checked: true + outdoorTechnique: + checked: false + items: + type: string + type: + - array + - 'null' + instanceName: + description: |- + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 + type: + - 'null' + - string + parent: + description: |- + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d format: iri-reference - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string + type: + - 'null' + - string + position: + default: -1 + description: |- + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 + type: integer + slot: + description: |- + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 + type: + - 'null' + - string required: - - campCollaboration - - day + - data + - position type: object - DayResponsible.jsonapi-read_Day.DayResponsibles: + MultiSelect.jsonapi: deprecated: false description: '' properties: - campCollaboration: - description: "The person that is responsible. Must belong to the same camp as the day's period." - example: /camp_collaborations/1a2b3c4d + children: + description: 'All content nodes that are direct children of this content node.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + contentType: + description: |- + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d format: iri-reference + readOnly: true type: string - day: - description: 'The day on which the person is responsible.' - example: /days/1a2b3c4d - format: iri-reference + contentTypeName: + description: 'The name of the content type of this content node. Read-only, for convenience.' + example: SafetyConcept + readOnly: true type: string + data: + description: |- + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + example: + options: + natureAndEnvironment: + checked: true + outdoorTechnique: + checked: false + items: + type: string + type: + - array + - 'null' id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - required: - - campCollaboration - - day - type: object - DayResponsible.jsonapi-write: - deprecated: false - description: 'A person that has some whole-day responsibility on a day in the camp.' - properties: - campCollaboration: - description: "The person that is responsible. Must belong to the same camp as the day's period." - example: /camp_collaborations/1a2b3c4d - format: iri-reference - type: string - day: - description: 'The day on which the person is responsible.' - example: /days/1a2b3c4d - format: iri-reference - type: string - required: - - campCollaboration - - day - type: object - DayResponsible.jsonhal-read: - deprecated: false - description: 'A person that has some whole-day responsibility on a day in the camp.' - properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object - campCollaboration: - description: "The person that is responsible. Must belong to the same camp as the day's period." - example: /camp_collaborations/1a2b3c4d + instanceName: + description: |- + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 + type: + - 'null' + - string + parent: + description: |- + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d format: iri-reference - type: string - day: - description: 'The day on which the person is responsible.' - example: /days/1a2b3c4d + type: + - 'null' + - string + position: + default: -1 + description: |- + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 + type: integer + root: + description: |- + The content node that is the root of the content node tree. Refers to itself in case this + content node is the root. + example: /content_nodes/1a2b3c4d format: iri-reference - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 readOnly: true - type: string + type: + - 'null' + - string + slot: + description: |- + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 + type: + - 'null' + - string required: - - campCollaboration - - day + - children + - contentType + - position type: object - DayResponsible.jsonhal-read_Day.DayResponsibles: + MultiSelect.jsonhal-read: deprecated: false description: '' properties: @@ -14273,29 +13817,102 @@ components: type: string type: object type: object - campCollaboration: - description: "The person that is responsible. Must belong to the same camp as the day's period." - example: /camp_collaborations/1a2b3c4d + children: + description: 'All content nodes that are direct children of this content node.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + contentType: + description: |- + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d format: iri-reference type: string - day: - description: 'The day on which the person is responsible.' - example: /days/1a2b3c4d - format: iri-reference + contentTypeName: + description: 'The name of the content type of this content node. Read-only, for convenience.' + example: SafetyConcept + readOnly: true type: string + data: + description: |- + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + example: + options: + natureAndEnvironment: + checked: true + outdoorTechnique: + checked: false + items: + type: string + type: + - array + - 'null' id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string + instanceName: + description: |- + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 + type: + - 'null' + - string + parent: + description: |- + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d + format: iri-reference + type: + - 'null' + - string + position: + default: -1 + description: |- + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 + type: integer + root: + description: |- + The content node that is the root of the content node tree. Refers to itself in case this + content node is the root. + example: /content_nodes/1a2b3c4d + format: iri-reference + readOnly: true + type: + - 'null' + - string + slot: + description: |- + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 + type: + - 'null' + - string required: - - campCollaboration - - day + - children + - contentType + - position type: object - DayResponsible.jsonhal-write: + MultiSelect.jsonhal-write_create: deprecated: false - description: 'A person that has some whole-day responsibility on a day in the camp.' + description: '' properties: _links: properties: @@ -14306,23 +13923,72 @@ components: type: string type: object type: object - campCollaboration: - description: "The person that is responsible. Must belong to the same camp as the day's period." - example: /camp_collaborations/1a2b3c4d + contentType: + description: |- + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d format: iri-reference type: string - day: - description: 'The day on which the person is responsible.' - example: /days/1a2b3c4d + data: + description: |- + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + example: + options: + natureAndEnvironment: + checked: true + outdoorTechnique: + checked: false + items: + type: string + type: + - array + - 'null' + instanceName: + description: |- + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 + type: + - 'null' + - string + parent: + description: |- + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d format: iri-reference - type: string + type: + - 'null' + - string + position: + default: -1 + description: |- + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 + type: integer + slot: + description: |- + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 + type: + - 'null' + - string required: - - campCollaboration - - day + - contentType + - parent + - position type: object - DayResponsible.jsonld-read: + MultiSelect.jsonld-read: deprecated: false - description: 'A person that has some whole-day responsibility on a day in the camp.' + description: '' properties: '@context': oneOf: @@ -14347,374 +14013,217 @@ components: '@type': readOnly: true type: string - campCollaboration: - description: "The person that is responsible. Must belong to the same camp as the day's period." - example: /camp_collaborations/1a2b3c4d - format: iri-reference - type: string - day: - description: 'The day on which the person is responsible.' - example: /days/1a2b3c4d - format: iri-reference - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - required: - - campCollaboration - - day - type: object - DayResponsible.jsonld-read_Day.DayResponsibles: - deprecated: false - description: '' - properties: - '@context': - oneOf: - - - additionalProperties: true - properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] - type: string - required: - - '@vocab' - - hydra - type: object - - - type: string - readOnly: true - '@id': - readOnly: true - type: string - '@type': + children: + description: 'All content nodes that are direct children of this content node.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string readOnly: true - type: string - campCollaboration: - description: "The person that is responsible. Must belong to the same camp as the day's period." - example: /camp_collaborations/1a2b3c4d + type: array + contentType: + description: |- + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d format: iri-reference type: string - day: - description: 'The day on which the person is responsible.' - example: /days/1a2b3c4d - format: iri-reference + contentTypeName: + description: 'The name of the content type of this content node. Read-only, for convenience.' + example: SafetyConcept + readOnly: true type: string + data: + description: |- + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + example: + options: + natureAndEnvironment: + checked: true + outdoorTechnique: + checked: false + items: + type: string + type: + - array + - 'null' id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - required: - - campCollaboration - - day - type: object - DayResponsible.jsonld-write: - deprecated: false - description: 'A person that has some whole-day responsibility on a day in the camp.' - properties: - campCollaboration: - description: "The person that is responsible. Must belong to the same camp as the day's period." - example: /camp_collaborations/1a2b3c4d - format: iri-reference - type: string - day: - description: 'The day on which the person is responsible.' - example: /days/1a2b3c4d - format: iri-reference - type: string - required: - - campCollaboration - - day - type: object - Invitation-read: - deprecated: false - description: |- - An invitation for a person to collaborate in a camp. The person may or may not - already have an account. - properties: - campId: - description: |- - The id of the camp for which this invitation is valid. This is useful for - redirecting the user to the correct place after they accept. - example: 1a2b3c4d - type: string - campTitle: - description: |- - The full title of the camp for which this invitation is valid. This should help - the user to decide whether to accept or reject the invitation. - example: 'Abteilungs-Sommerlager 2022' - type: string - userAlreadyInCamp: + instanceName: description: |- - Indicates whether the logged in user is already collaborating in the camp, and - can therefore not accept the invitation. + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 type: - - boolean - 'null' - userDisplayName: + - string + parent: description: |- - The display name of the user that is invited. May be null in case the user does - not already have an account. - example: 'Robert Baden-Powell' + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d + format: iri-reference type: - 'null' - string - type: object - Invitation-write: - deprecated: false - description: |- - An invitation for a person to collaborate in a camp. The person may or may not - already have an account. - type: object - Invitation.jsonapi-read: - deprecated: false - description: |- - An invitation for a person to collaborate in a camp. The person may or may not - already have an account. - properties: - campId: - description: |- - The id of the camp for which this invitation is valid. This is useful for - redirecting the user to the correct place after they accept. - example: 1a2b3c4d - type: string - campTitle: + position: + default: -1 description: |- - The full title of the camp for which this invitation is valid. This should help - the user to decide whether to accept or reject the invitation. - example: 'Abteilungs-Sommerlager 2022' - type: string - userAlreadyInCamp: + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 + type: integer + root: description: |- - Indicates whether the logged in user is already collaborating in the camp, and - can therefore not accept the invitation. + The content node that is the root of the content node tree. Refers to itself in case this + content node is the root. + example: /content_nodes/1a2b3c4d + format: iri-reference + readOnly: true type: - - boolean - 'null' - userDisplayName: + - string + slot: description: |- - The display name of the user that is invited. May be null in case the user does - not already have an account. - example: 'Robert Baden-Powell' + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 type: - 'null' - string + required: + - children + - contentType + - position type: object - Invitation.jsonapi-write: - deprecated: false - description: |- - An invitation for a person to collaborate in a camp. The person may or may not - already have an account. - type: object - Invitation.jsonhal-read: + MultiSelect.jsonld-write_create: deprecated: false - description: |- - An invitation for a person to collaborate in a camp. The person may or may not - already have an account. + description: '' properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object - campId: - description: |- - The id of the camp for which this invitation is valid. This is useful for - redirecting the user to the correct place after they accept. - example: 1a2b3c4d - type: string - campTitle: + contentType: description: |- - The full title of the camp for which this invitation is valid. This should help - the user to decide whether to accept or reject the invitation. - example: 'Abteilungs-Sommerlager 2022' + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d + format: iri-reference type: string - userAlreadyInCamp: + data: description: |- - Indicates whether the logged in user is already collaborating in the camp, and - can therefore not accept the invitation. + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + example: + options: + natureAndEnvironment: + checked: true + outdoorTechnique: + checked: false + items: + type: string type: - - boolean + - array - 'null' - userDisplayName: + instanceName: description: |- - The display name of the user that is invited. May be null in case the user does - not already have an account. - example: 'Robert Baden-Powell' + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 type: - 'null' - string - type: object - Invitation.jsonld-read: - deprecated: false - description: |- - An invitation for a person to collaborate in a camp. The person may or may not - already have an account. - properties: - '@context': - oneOf: - - - additionalProperties: true - properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] - type: string - required: - - '@vocab' - - hydra - type: object - - - type: string - readOnly: true - '@id': - readOnly: true - type: string - '@type': - readOnly: true - type: string - campId: - description: |- - The id of the camp for which this invitation is valid. This is useful for - redirecting the user to the correct place after they accept. - example: 1a2b3c4d - type: string - campTitle: - description: |- - The full title of the camp for which this invitation is valid. This should help - the user to decide whether to accept or reject the invitation. - example: 'Abteilungs-Sommerlager 2022' - type: string - userAlreadyInCamp: - description: |- - Indicates whether the logged in user is already collaborating in the camp, and - can therefore not accept the invitation. - type: - - boolean - - 'null' - userDisplayName: - description: |- - The display name of the user that is invited. May be null in case the user does - not already have an account. - example: 'Robert Baden-Powell' - type: - - 'null' - - string - type: object - MaterialItem-read: - deprecated: false - description: '' - properties: - article: - description: 'The name of the item that is required.' - example: Volleyball - maxLength: 64 - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - materialList: + parent: description: |- - The list to which this item belongs. Lists are used to keep track of who is - responsible to prepare and bring the item to the camp. - example: /material_lists/1a2b3c4d - format: iri-reference - type: string - materialNode: - description: 'The content node to which this item belongs, if it does not belong to a period.' - example: /content_node/material_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - period: - description: 'The period to which this item belongs, if it does not belong to a content node.' - example: /periods/1a2b3c4d + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d format: iri-reference type: - 'null' - string - quantity: - description: 'The number of items or the amount in the unit of items that are required.' - example: 1.5 - type: - - 'null' - - number - unit: - description: 'An optional unit for measuring the amount of items required.' - example: kg + position: + default: -1 + description: |- + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 + type: integer + slot: + description: |- + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' maxLength: 32 type: - 'null' - string required: - - article - - materialList + - contentType + - parent + - position type: object - MaterialItem-write: + Period-read: deprecated: false - description: 'A physical item that is needed for carrying out a programme or camp.' + description: |- + A time period in which the programme of a camp will take place. There may be multiple + periods in a camp, but they may not overlap. A period is made up of one or more full days. properties: - article: - description: 'The name of the item that is required.' - example: Volleyball - type: string - materialList: - description: |- - The list to which this item belongs. Lists are used to keep track of who is - responsible to prepare and bring the item to the camp. - example: /material_lists/1a2b3c4d + camp: + description: 'The camp that this time period belongs to. Cannot be changed once the period is created.' + example: /camps/1a2b3c4d format: iri-reference type: string - materialNode: - description: 'The content node to which this item belongs, if it does not belong to a period.' - example: /content_node/material_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - period: - description: 'The period to which this item belongs, if it does not belong to a content node.' - example: /periods/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - quantity: - description: 'The number of items or the amount in the unit of items that are required.' - example: 1.5 - type: - - 'null' - - number - unit: - description: 'An optional unit for measuring the amount of items required.' - example: kg + contentNodes: + description: 'All the content nodes used in some activity which is carried out (has a schedule entry) in this period.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + dayResponsibles: + description: 'A link to all the DayResponsibles in this period.' + example: '["/day_responsibles/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + days: + description: 'The days in this time period. These are generated automatically.' + example: '["/days?period=/periods/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + description: + description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' + example: Hauptlager + maxLength: 32 type: - 'null' - string - type: object - MaterialItem.jsonapi-read: - deprecated: false - description: '' - properties: - article: - description: 'The name of the item that is required.' - example: Volleyball - maxLength: 64 + end: + description: |- + The (inclusive) day at the end of which the period ends, as an ISO date string. Should + not be before "start". + example: '2022-01-08' + format: date type: string id: description: 'An internal, unique, randomly generated identifier of this entity.' @@ -14722,103 +14231,179 @@ components: maxLength: 16 readOnly: true type: string - materialList: + materialItems: description: |- - The list to which this item belongs. Lists are used to keep track of who is - responsible to prepare and bring the item to the camp. - example: /material_lists/1a2b3c4d - format: iri-reference + Material items that are assigned directly to the period, as opposed to individual + activities. + example: '["/material_items/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + scheduleEntries: + description: |- + All time slots for programme that are part of this time period. A schedule entry + may span over multiple days, but may not end later than the period. + example: '["/schedule_entries/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + start: + description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' + example: '2022-01-01' + format: date type: string - materialNode: - description: 'The content node to which this item belongs, if it does not belong to a period.' - example: /content_node/material_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - period: - description: 'The period to which this item belongs, if it does not belong to a content node.' - example: /periods/1a2b3c4d + required: + - camp + - days + - description + - end + - materialItems + - scheduleEntries + - start + type: object + Period-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: + deprecated: false + description: '' + properties: + camp: + description: 'The camp that this time period belongs to. Cannot be changed once the period is created.' + example: /camps/1a2b3c4d format: iri-reference - type: - - 'null' - - string - quantity: - description: 'The number of items or the amount in the unit of items that are required.' - example: 1.5 - type: - - 'null' - - number - unit: - description: 'An optional unit for measuring the amount of items required.' - example: kg + type: string + contentNodes: + description: 'All the content nodes used in some activity which is carried out (has a schedule entry) in this period.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + dayResponsibles: + description: 'A link to all the DayResponsibles in this period.' + example: '["/day_responsibles/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + days: + items: + $ref: '#/components/schemas/Day-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' + readOnly: true + type: array + description: + description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' + example: Hauptlager maxLength: 32 type: - 'null' - string + end: + description: |- + The (inclusive) day at the end of which the period ends, as an ISO date string. Should + not be before "start". + example: '2022-01-08' + format: date + type: string + id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string + materialItems: + description: |- + Material items that are assigned directly to the period, as opposed to individual + activities. + example: '["/material_items/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + scheduleEntries: + description: |- + All time slots for programme that are part of this time period. A schedule entry + may span over multiple days, but may not end later than the period. + example: '["/schedule_entries/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + start: + description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' + example: '2022-01-01' + format: date + type: string required: - - article - - materialList + - camp + - days + - description + - end + - materialItems + - scheduleEntries + - start type: object - MaterialItem.jsonapi-write: + Period-read_Period.Camp_Period.Days: deprecated: false - description: 'A physical item that is needed for carrying out a programme or camp.' + description: |- + A time period in which the programme of a camp will take place. There may be multiple + periods in a camp, but they may not overlap. A period is made up of one or more full days. properties: - article: - description: 'The name of the item that is required.' - example: Volleyball - type: string - materialList: - description: |- - The list to which this item belongs. Lists are used to keep track of who is - responsible to prepare and bring the item to the camp. - example: /material_lists/1a2b3c4d - format: iri-reference - type: string - materialNode: - description: 'The content node to which this item belongs, if it does not belong to a period.' - example: /content_node/material_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - period: - description: 'The period to which this item belongs, if it does not belong to a content node.' - example: /periods/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - quantity: - description: 'The number of items or the amount in the unit of items that are required.' - example: 1.5 - type: - - 'null' - - number - unit: - description: 'An optional unit for measuring the amount of items required.' - example: kg + camp: + anyOf: + - + $ref: '#/components/schemas/Camp-read_Period.Camp_Period.Days' + - + type: 'null' + readOnly: true + contentNodes: + description: 'All the content nodes used in some activity which is carried out (has a schedule entry) in this period.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + dayResponsibles: + description: 'A link to all the DayResponsibles in this period.' + example: '["/day_responsibles/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + days: + items: + $ref: '#/components/schemas/Day-read_Period.Camp_Period.Days' + readOnly: true + type: array + description: + description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' + example: Hauptlager + maxLength: 32 type: - 'null' - string - type: object - MaterialItem.jsonhal-read: - deprecated: false - description: '' - properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object - article: - description: 'The name of the item that is required.' - example: Volleyball - maxLength: 64 + end: + description: |- + The (inclusive) day at the end of which the period ends, as an ISO date string. Should + not be before "start". + example: '2022-01-08' + format: date type: string id: description: 'An internal, unique, randomly generated identifier of this entity.' @@ -14826,131 +14411,279 @@ components: maxLength: 16 readOnly: true type: string - materialList: + materialItems: description: |- - The list to which this item belongs. Lists are used to keep track of who is - responsible to prepare and bring the item to the camp. - example: /material_lists/1a2b3c4d - format: iri-reference + Material items that are assigned directly to the period, as opposed to individual + activities. + example: '["/material_items/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + scheduleEntries: + description: |- + All time slots for programme that are part of this time period. A schedule entry + may span over multiple days, but may not end later than the period. + example: '["/schedule_entries/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + start: + description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' + example: '2022-01-01' + format: date type: string - materialNode: - description: 'The content node to which this item belongs, if it does not belong to a period.' - example: /content_node/material_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - period: - description: 'The period to which this item belongs, if it does not belong to a content node.' - example: /periods/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - quantity: - description: 'The number of items or the amount in the unit of items that are required.' - example: 1.5 - type: - - 'null' - - number - unit: - description: 'An optional unit for measuring the amount of items required.' - example: kg + required: + - camp + - days + - description + - end + - materialItems + - scheduleEntries + - start + type: object + Period-write: + deprecated: false + description: |- + A time period in which the programme of a camp will take place. There may be multiple + periods in a camp, but they may not overlap. A period is made up of one or more full days. + properties: + description: + description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' + example: Hauptlager maxLength: 32 type: - 'null' - string + end: + description: |- + The (inclusive) day at the end of which the period ends, as an ISO date string. Should + not be before "start". + example: '2022-01-08' + format: date + type: string + moveScheduleEntries: + default: true + description: |- + If the start date of the period is changing, moveScheduleEntries defines what happens with the schedule + entries in the period. + example: true + type: boolean + start: + description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' + example: '2022-01-01' + format: date + type: string required: - - article - - materialList + - description + - end + - moveScheduleEntries + - start type: object - MaterialItem.jsonhal-write: + Period-write_create: deprecated: false - description: 'A physical item that is needed for carrying out a programme or camp.' + description: |- + A time period in which the programme of a camp will take place. There may be multiple + periods in a camp, but they may not overlap. A period is made up of one or more full days. properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object - article: - description: 'The name of the item that is required.' - example: Volleyball - maxLength: 64 - type: string - materialList: - description: |- - The list to which this item belongs. Lists are used to keep track of who is - responsible to prepare and bring the item to the camp. - example: /material_lists/1a2b3c4d + camp: + description: 'The camp that this time period belongs to. Cannot be changed once the period is created.' + example: /camps/1a2b3c4d format: iri-reference type: string - materialNode: - description: 'The content node to which this item belongs, if it does not belong to a period.' - example: /content_node/material_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - period: - description: 'The period to which this item belongs, if it does not belong to a content node.' - example: /periods/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - quantity: - description: 'The number of items or the amount in the unit of items that are required.' - example: 1.5 - type: - - 'null' - - number - unit: - description: 'An optional unit for measuring the amount of items required.' - example: kg + description: + description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' + example: Hauptlager maxLength: 32 type: - 'null' - string + end: + description: |- + The (inclusive) day at the end of which the period ends, as an ISO date string. Should + not be before "start". + example: '2022-01-08' + format: date + type: string + moveScheduleEntries: + default: true + description: |- + If the start date of the period is changing, moveScheduleEntries defines what happens with the schedule + entries in the period. + example: true + type: boolean + start: + description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' + example: '2022-01-01' + format: date + type: string required: - - article - - materialList + - camp + - description + - end + - moveScheduleEntries + - start type: object - MaterialItem.jsonld-read: + Period.jsonapi: deprecated: false - description: '' + description: |- + A time period in which the programme of a camp will take place. There may be multiple + periods in a camp, but they may not overlap. A period is made up of one or more full days. properties: - '@context': - oneOf: - - - additionalProperties: true + data: + properties: + attributes: properties: - '@vocab': + _id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] + description: + description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' + example: Hauptlager + maxLength: 32 + type: ['null', string] + end: + description: |- + The (inclusive) day at the end of which the period ends, as an ISO date string. Should + not be before "start". + example: '2022-01-08' + format: date + type: string + moveScheduleEntries: + default: true + description: |- + If the start date of the period is changing, moveScheduleEntries defines what happens with the schedule + entries in the period. + example: true + type: boolean + writeOnly: true + start: + description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' + example: '2022-01-01' + format: date type: string required: - - '@vocab' - - hydra + - description + - end + - moveScheduleEntries + - start type: object - - + id: type: string + relationships: + properties: + camp: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + contentNodes: + properties: { data: { items: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object }, type: array } } + dayResponsibles: + properties: { data: { items: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object }, type: array } } + days: + properties: { data: { items: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object }, type: array } } + materialItems: + properties: { data: { items: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object }, type: array } } + scheduleEntries: + properties: { data: { items: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object }, type: array } } + required: + - camp + - days + - materialItems + - scheduleEntries + type: object + type: + type: string + required: + - id + - type + type: object + included: + description: 'Related resources requested via the "include" query parameter.' + externalDocs: + url: 'https://jsonapi.org/format/#fetching-includes' + items: + anyOf: + - [] + - + $ref: '#/components/schemas/Day.jsonapi' + - + $ref: '#/components/schemas/Day.jsonapi' + - + $ref: '#/components/schemas/Day.jsonapi' + - + $ref: '#/components/schemas/Day.jsonapi' + - + $ref: '#/components/schemas/Day.jsonapi' readOnly: true - '@id': - readOnly: true + type: array + type: object + Period.jsonhal-read: + deprecated: false + description: |- + A time period in which the programme of a camp will take place. There may be multiple + periods in a camp, but they may not overlap. A period is made up of one or more full days. + properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object + camp: + description: 'The camp that this time period belongs to. Cannot be changed once the period is created.' + example: /camps/1a2b3c4d + format: iri-reference type: string - '@type': + contentNodes: + description: 'All the content nodes used in some activity which is carried out (has a schedule entry) in this period.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string readOnly: true - type: string - article: - description: 'The name of the item that is required.' - example: Volleyball - maxLength: 64 + type: array + dayResponsibles: + description: 'A link to all the DayResponsibles in this period.' + example: '["/day_responsibles/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + days: + description: 'The days in this time period. These are generated automatically.' + example: '["/days?period=/periods/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + description: + description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' + example: Hauptlager + maxLength: 32 + type: + - 'null' + - string + end: + description: |- + The (inclusive) day at the end of which the period ends, as an ISO date string. Should + not be before "start". + example: '2022-01-08' + format: date type: string id: description: 'An internal, unique, randomly generated identifier of this entity.' @@ -14958,122 +14691,107 @@ components: maxLength: 16 readOnly: true type: string - materialList: + materialItems: description: |- - The list to which this item belongs. Lists are used to keep track of who is - responsible to prepare and bring the item to the camp. - example: /material_lists/1a2b3c4d - format: iri-reference + Material items that are assigned directly to the period, as opposed to individual + activities. + example: '["/material_items/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + scheduleEntries: + description: |- + All time slots for programme that are part of this time period. A schedule entry + may span over multiple days, but may not end later than the period. + example: '["/schedule_entries/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + start: + description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' + example: '2022-01-01' + format: date type: string - materialNode: - description: 'The content node to which this item belongs, if it does not belong to a period.' - example: /content_node/material_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - period: - description: 'The period to which this item belongs, if it does not belong to a content node.' - example: /periods/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - quantity: - description: 'The number of items or the amount in the unit of items that are required.' - example: 1.5 - type: - - 'null' - - number - unit: - description: 'An optional unit for measuring the amount of items required.' - example: kg - maxLength: 32 - type: - - 'null' - - string - required: - - article - - materialList - type: object - MaterialItem.jsonld-write: - deprecated: false - description: 'A physical item that is needed for carrying out a programme or camp.' - properties: - article: - description: 'The name of the item that is required.' - example: Volleyball - maxLength: 64 - type: string - materialList: - description: |- - The list to which this item belongs. Lists are used to keep track of who is - responsible to prepare and bring the item to the camp. - example: /material_lists/1a2b3c4d - format: iri-reference - type: string - materialNode: - description: 'The content node to which this item belongs, if it does not belong to a period.' - example: /content_node/material_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - period: - description: 'The period to which this item belongs, if it does not belong to a content node.' - example: /periods/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - quantity: - description: 'The number of items or the amount in the unit of items that are required.' - example: 1.5 - type: - - 'null' - - number - unit: - description: 'An optional unit for measuring the amount of items required.' - example: kg - maxLength: 32 - type: - - 'null' - - string required: - - article - - materialList + - camp + - days + - description + - end + - materialItems + - scheduleEntries + - start type: object - MaterialList-read: + Period.jsonhal-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: deprecated: false - description: |- - A list of material items that someone needs to bring to the camp. A material list - is automatically created for each person collaborating on the camp. + description: '' properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object camp: - description: 'The camp this material list belongs to.' + description: 'The camp that this time period belongs to. Cannot be changed once the period is created.' example: /camps/1a2b3c4d format: iri-reference type: string - campCollaboration: - description: 'The campCollaboration this material list belongs to.' - example: /camp_collaborations/1a2b3c4d - format: iri-reference + contentNodes: + description: 'All the content nodes used in some activity which is carried out (has a schedule entry) in this period.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + dayResponsibles: + description: 'A link to all the DayResponsibles in this period.' + example: '["/day_responsibles/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + days: + items: + $ref: '#/components/schemas/Day.jsonhal-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' readOnly: true + type: array + description: + description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' + example: Hauptlager + maxLength: 32 type: - 'null' - string + end: + description: |- + The (inclusive) day at the end of which the period ends, as an ISO date string. Should + not be before "start". + example: '2022-01-08' + format: date + type: string id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - itemCount: - example: 3 - readOnly: true - type: integer materialItems: - description: 'The items that are part of this list.' + description: |- + Material items that are assigned directly to the period, as opposed to individual + activities. example: '["/material_items/1a2b3c4d"]' items: example: 'https://example.com/' @@ -15081,87 +14799,100 @@ components: type: string readOnly: true type: array - name: - description: 'The human readable name of the material list.' - example: Lebensmittel - maxLength: 32 - type: - - 'null' - - string + scheduleEntries: + description: |- + All time slots for programme that are part of this time period. A schedule entry + may span over multiple days, but may not end later than the period. + example: '["/schedule_entries/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + start: + description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' + example: '2022-01-01' + format: date + type: string required: - camp + - days + - description + - end - materialItems - - name - type: object - MaterialList-write: - deprecated: false - description: |- - A list of material items that someone needs to bring to the camp. A material list - is automatically created for each person collaborating on the camp. - properties: - name: - description: 'The human readable name of the material list.' - example: Lebensmittel - maxLength: 32 - type: - - 'null' - - string - required: - - name + - scheduleEntries + - start type: object - MaterialList-write_create: + Period.jsonhal-read_Period.Camp_Period.Days: deprecated: false description: |- - A list of material items that someone needs to bring to the camp. A material list - is automatically created for each person collaborating on the camp. + A time period in which the programme of a camp will take place. There may be multiple + periods in a camp, but they may not overlap. A period is made up of one or more full days. properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object camp: - description: 'The camp this material list belongs to.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - name: - description: 'The human readable name of the material list.' - example: Lebensmittel + anyOf: + - + $ref: '#/components/schemas/Camp.jsonhal-read_Period.Camp_Period.Days' + - + type: 'null' + readOnly: true + contentNodes: + description: 'All the content nodes used in some activity which is carried out (has a schedule entry) in this period.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + dayResponsibles: + description: 'A link to all the DayResponsibles in this period.' + example: '["/day_responsibles/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + days: + items: + $ref: '#/components/schemas/Day.jsonhal-read_Period.Camp_Period.Days' + readOnly: true + type: array + description: + description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' + example: Hauptlager maxLength: 32 type: - 'null' - string - required: - - camp - - name - type: object - MaterialList.jsonapi-read: - deprecated: false - description: |- - A list of material items that someone needs to bring to the camp. A material list - is automatically created for each person collaborating on the camp. - properties: - camp: - description: 'The camp this material list belongs to.' - example: /camps/1a2b3c4d - format: iri-reference + end: + description: |- + The (inclusive) day at the end of which the period ends, as an ISO date string. Should + not be before "start". + example: '2022-01-08' + format: date type: string - campCollaboration: - description: 'The campCollaboration this material list belongs to.' - example: /camp_collaborations/1a2b3c4d - format: iri-reference - readOnly: true - type: - - 'null' - - string id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - itemCount: - example: 3 - readOnly: true - type: integer materialItems: - description: 'The items that are part of this list.' + description: |- + Material items that are assigned directly to the period, as opposed to individual + activities. example: '["/material_items/1a2b3c4d"]' items: example: 'https://example.com/' @@ -15169,120 +14900,36 @@ components: type: string readOnly: true type: array - name: - description: 'The human readable name of the material list.' - example: Lebensmittel - maxLength: 32 - type: - - 'null' - - string - required: - - camp - - materialItems - - name - type: object - MaterialList.jsonapi-write: - deprecated: false - description: |- - A list of material items that someone needs to bring to the camp. A material list - is automatically created for each person collaborating on the camp. - properties: - name: - description: 'The human readable name of the material list.' - example: Lebensmittel - maxLength: 32 - type: - - 'null' - - string - required: - - name - type: object - MaterialList.jsonapi-write_create: - deprecated: false - description: |- - A list of material items that someone needs to bring to the camp. A material list - is automatically created for each person collaborating on the camp. - properties: - camp: - description: 'The camp this material list belongs to.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - name: - description: 'The human readable name of the material list.' - example: Lebensmittel - maxLength: 32 - type: - - 'null' - - string - required: - - camp - - name - type: object - MaterialList.jsonhal-read: - deprecated: false - description: |- - A list of material items that someone needs to bring to the camp. A material list - is automatically created for each person collaborating on the camp. - properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object - camp: - description: 'The camp this material list belongs to.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - campCollaboration: - description: 'The campCollaboration this material list belongs to.' - example: /camp_collaborations/1a2b3c4d - format: iri-reference - readOnly: true - type: - - 'null' - - string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - itemCount: - example: 3 - readOnly: true - type: integer - materialItems: - description: 'The items that are part of this list.' - example: '["/material_items/1a2b3c4d"]' + scheduleEntries: + description: |- + All time slots for programme that are part of this time period. A schedule entry + may span over multiple days, but may not end later than the period. + example: '["/schedule_entries/1a2b3c4d"]' items: example: 'https://example.com/' format: iri-reference type: string readOnly: true type: array - name: - description: 'The human readable name of the material list.' - example: Lebensmittel - maxLength: 32 - type: - - 'null' - - string + start: + description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' + example: '2022-01-01' + format: date + type: string required: - camp + - days + - description + - end - materialItems - - name + - scheduleEntries + - start type: object - MaterialList.jsonhal-write_create: + Period.jsonhal-write_create: deprecated: false description: |- - A list of material items that someone needs to bring to the camp. A material list - is automatically created for each person collaborating on the camp. + A time period in which the programme of a camp will take place. There may be multiple + periods in a camp, but they may not overlap. A period is made up of one or more full days. properties: _links: properties: @@ -15294,26 +14941,48 @@ components: type: object type: object camp: - description: 'The camp this material list belongs to.' + description: 'The camp that this time period belongs to. Cannot be changed once the period is created.' example: /camps/1a2b3c4d format: iri-reference type: string - name: - description: 'The human readable name of the material list.' - example: Lebensmittel + description: + description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' + example: Hauptlager maxLength: 32 type: - 'null' - string + end: + description: |- + The (inclusive) day at the end of which the period ends, as an ISO date string. Should + not be before "start". + example: '2022-01-08' + format: date + type: string + moveScheduleEntries: + default: true + description: |- + If the start date of the period is changing, moveScheduleEntries defines what happens with the schedule + entries in the period. + example: true + type: boolean + start: + description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' + example: '2022-01-01' + format: date + type: string required: - camp - - name + - description + - end + - moveScheduleEntries + - start type: object - MaterialList.jsonld-read: + Period.jsonld-read: deprecated: false description: |- - A list of material items that someone needs to bring to the camp. A material list - is automatically created for each person collaborating on the camp. + A time period in which the programme of a camp will take place. There may be multiple + periods in a camp, but they may not overlap. A period is made up of one or more full days. properties: '@context': oneOf: @@ -15339,30 +15008,61 @@ components: readOnly: true type: string camp: - description: 'The camp this material list belongs to.' + description: 'The camp that this time period belongs to. Cannot be changed once the period is created.' example: /camps/1a2b3c4d format: iri-reference type: string - campCollaboration: - description: 'The campCollaboration this material list belongs to.' - example: /camp_collaborations/1a2b3c4d - format: iri-reference + contentNodes: + description: 'All the content nodes used in some activity which is carried out (has a schedule entry) in this period.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + dayResponsibles: + description: 'A link to all the DayResponsibles in this period.' + example: '["/day_responsibles/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + days: + description: 'The days in this time period. These are generated automatically.' + example: '["/days?period=/periods/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string readOnly: true + type: array + description: + description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' + example: Hauptlager + maxLength: 32 type: - 'null' - string + end: + description: |- + The (inclusive) day at the end of which the period ends, as an ISO date string. Should + not be before "start". + example: '2022-01-08' + format: date + type: string id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - itemCount: - example: 3 - readOnly: true - type: integer materialItems: - description: 'The items that are part of this list.' + description: |- + Material items that are assigned directly to the period, as opposed to individual + activities. example: '["/material_items/1a2b3c4d"]' items: example: 'https://example.com/' @@ -15370,564 +15070,361 @@ components: type: string readOnly: true type: array - name: - description: 'The human readable name of the material list.' - example: Lebensmittel - maxLength: 32 - type: - - 'null' - - string - required: - - camp - - materialItems - - name - type: object - MaterialList.jsonld-write_create: - deprecated: false - description: |- - A list of material items that someone needs to bring to the camp. A material list - is automatically created for each person collaborating on the camp. - properties: - camp: - description: 'The camp this material list belongs to.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - name: - description: 'The human readable name of the material list.' - example: Lebensmittel - maxLength: 32 - type: - - 'null' - - string - required: - - camp - - name - type: object - MaterialNode-read: - deprecated: false - description: '' - properties: - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' + scheduleEntries: + description: |- + All time slots for programme that are part of this time period. A schedule entry + may span over multiple days, but may not end later than the period. + example: '["/schedule_entries/1a2b3c4d"]' items: example: 'https://example.com/' format: iri-reference type: string readOnly: true type: array - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference + start: + description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' + example: '2022-01-01' + format: date type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept + required: + - camp + - days + - description + - end + - materialItems + - scheduleEntries + - start + type: object + Period.jsonld-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: + deprecated: false + description: '' + properties: + '@context': + oneOf: + - + additionalProperties: true + properties: + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] + type: string + required: + - '@vocab' + - hydra + type: object + - + type: string + readOnly: true + '@id': readOnly: true type: string - data: - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). + '@type': + readOnly: true + type: string + camp: + description: 'The camp that this time period belongs to. Cannot be changed once the period is created.' + example: /camps/1a2b3c4d + format: iri-reference + type: string + contentNodes: + description: 'All the content nodes used in some activity which is carried out (has a schedule entry) in this period.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + dayResponsibles: + description: 'A link to all the DayResponsibles in this period.' + example: '["/day_responsibles/1a2b3c4d"]' items: + example: 'https://example.com/' + format: iri-reference type: string + readOnly: true + type: array + days: + items: + $ref: '#/components/schemas/Day.jsonld-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' + readOnly: true + type: array + description: + description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' + example: Hauptlager + maxLength: 32 type: - - array - 'null' + - string + end: + description: |- + The (inclusive) day at the end of which the period ends, as an ISO date string. Should + not be before "start". + example: '2022-01-08' + format: date + type: string id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string materialItems: + description: |- + Material items that are assigned directly to the period, as opposed to individual + activities. + example: '["/material_items/1a2b3c4d"]' items: - $ref: '#/components/schemas/MaterialItem-read' + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true type: array - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - root: + scheduleEntries: description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d - format: iri-reference + All time slots for programme that are part of this time period. A schedule entry + may span over multiple days, but may not end later than the period. + example: '["/schedule_entries/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string readOnly: true - type: - - 'null' - - string - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string + type: array + start: + description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' + example: '2022-01-01' + format: date + type: string required: - - children - - contentType + - camp + - days + - description + - end - materialItems - - position + - scheduleEntries + - start type: object - MaterialNode-write_create: + Period.jsonld-read_Period.Camp_Period.Days: deprecated: false - description: '' + description: |- + A time period in which the programme of a camp will take place. There may be multiple + periods in a camp, but they may not overlap. A period is made up of one or more full days. properties: - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference + '@context': + oneOf: + - + additionalProperties: true + properties: + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] + type: string + required: + - '@vocab' + - hydra + type: object + - + type: string + readOnly: true + '@id': + readOnly: true type: string - data: - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). + '@type': + readOnly: true + type: string + camp: + anyOf: + - + $ref: '#/components/schemas/Camp.jsonld-read_Period.Camp_Period.Days' + - + type: 'null' + readOnly: true + contentNodes: + description: 'All the content nodes used in some activity which is carried out (has a schedule entry) in this period.' + example: '["/content_nodes/1a2b3c4d"]' items: + example: 'https://example.com/' + format: iri-reference type: string - type: - - array - - 'null' - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm + readOnly: true + type: array + dayResponsibles: + description: 'A link to all the DayResponsibles in this period.' + example: '["/day_responsibles/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + days: + items: + $ref: '#/components/schemas/Day.jsonld-read_Period.Camp_Period.Days' + readOnly: true + type: array + description: + description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' + example: Hauptlager maxLength: 32 type: - 'null' - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 + end: description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - contentType - - parent - - position - type: object - MaterialNode-write_update: - deprecated: false - description: '' - properties: - data: - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - items: - type: string - type: - - array - - 'null' - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - position - type: object - MaterialNode.jsonapi-read: - deprecated: false - description: '' - properties: - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept - readOnly: true + The (inclusive) day at the end of which the period ends, as an ISO date string. Should + not be before "start". + example: '2022-01-08' + format: date type: string - data: - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - items: - type: string - type: - - array - - 'null' id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string materialItems: + description: |- + Material items that are assigned directly to the period, as opposed to individual + activities. + example: '["/material_items/1a2b3c4d"]' items: - $ref: '#/components/schemas/MaterialItem.jsonapi-read' + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true type: array - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - root: + scheduleEntries: description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d - format: iri-reference + All time slots for programme that are part of this time period. A schedule entry + may span over multiple days, but may not end later than the period. + example: '["/schedule_entries/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string readOnly: true - type: - - 'null' - - string - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string + type: array + start: + description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' + example: '2022-01-01' + format: date + type: string required: - - children - - contentType + - camp + - days + - description + - end - materialItems - - position + - scheduleEntries + - start type: object - MaterialNode.jsonapi-write_create: + Period.jsonld-write_create: deprecated: false - description: '' + description: |- + A time period in which the programme of a camp will take place. There may be multiple + periods in a camp, but they may not overlap. A period is made up of one or more full days. properties: - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d + camp: + description: 'The camp that this time period belongs to. Cannot be changed once the period is created.' + example: /camps/1a2b3c4d format: iri-reference type: string - data: - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - items: - type: string - type: - - array - - 'null' - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm + description: + description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' + example: Hauptlager maxLength: 32 type: - 'null' - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 + end: description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - slot: + The (inclusive) day at the end of which the period ends, as an ISO date string. Should + not be before "start". + example: '2022-01-08' + format: date + type: string + moveScheduleEntries: + default: true description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string + If the start date of the period is changing, moveScheduleEntries defines what happens with the schedule + entries in the period. + example: true + type: boolean + start: + description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' + example: '2022-01-01' + format: date + type: string required: - - contentType - - parent - - position - type: object - MaterialNode.jsonapi-write_update: - deprecated: false - description: '' + - camp + - description + - end + - moveScheduleEntries + - start + type: object + PersonalInvitation-read: + deprecated: false + description: 'An invitation for a person who already has an account to collaborate in a camp.' properties: - data: - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - items: - type: string - type: - - array - - 'null' - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 + campId: description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - slot: + The id of the camp for which this invitation is valid. This is useful for + redirecting the user to the correct place after they accept. + example: 1a2b3c4d + type: string + campTitle: description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - position + The full title of the camp for which this invitation is valid. This should help + the user to decide whether to accept or reject the invitation. + example: 'Abteilungs-Sommerlager 2022' + type: string + id: + example: 1a2b3c4d + type: string type: object - MaterialNode.jsonhal-read: + PersonalInvitation-write: deprecated: false - description: '' + description: 'An invitation for a person who already has an account to collaborate in a camp.' + type: object + PersonalInvitation.jsonapi: + deprecated: false + description: 'An invitation for a person who already has an account to collaborate in a camp.' properties: - _links: + data: properties: - self: + attributes: properties: - href: - format: iri-reference + _id: + example: 1a2b3c4d + type: string + campId: + description: |- + The id of the camp for which this invitation is valid. This is useful for + redirecting the user to the correct place after they accept. + example: 1a2b3c4d + type: string + campTitle: + description: |- + The full title of the camp for which this invitation is valid. This should help + the user to decide whether to accept or reject the invitation. + example: 'Abteilungs-Sommerlager 2022' type: string type: object + id: + type: string + type: + type: string + required: + - id + - type type: object - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept - readOnly: true - type: string - data: - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - items: - type: string - type: - - array - - 'null' - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - materialItems: - items: - $ref: '#/components/schemas/MaterialItem.jsonhal-read' - type: array - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d - format: iri-reference - readOnly: true - type: - - 'null' - - string - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - children - - contentType - - materialItems - - position type: object - MaterialNode.jsonhal-write_create: + PersonalInvitation.jsonhal-read: deprecated: false - description: '' + description: 'An invitation for a person who already has an account to collaborate in a camp.' properties: _links: properties: @@ -15938,66 +15435,25 @@ components: type: string type: object type: object - contentType: + campId: description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference + The id of the camp for which this invitation is valid. This is useful for + redirecting the user to the correct place after they accept. + example: 1a2b3c4d type: string - data: - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - items: - type: string - type: - - array - - 'null' - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - slot: + campTitle: description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - contentType - - parent - - position + The full title of the camp for which this invitation is valid. This should help + the user to decide whether to accept or reject the invitation. + example: 'Abteilungs-Sommerlager 2022' + type: string + id: + example: 1a2b3c4d + type: string type: object - MaterialNode.jsonld-read: + PersonalInvitation.jsonld-read: deprecated: false - description: '' + description: 'An invitation for a person who already has an account to collaborate in a camp.' properties: '@context': oneOf: @@ -16022,2829 +15478,23 @@ components: '@type': readOnly: true type: string - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept - readOnly: true - type: string - data: + campId: description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - items: - type: string - type: - - array - - 'null' - id: - description: 'An internal, unique, randomly generated identifier of this entity.' + The id of the camp for which this invitation is valid. This is useful for + redirecting the user to the correct place after they accept. example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - materialItems: - items: - $ref: '#/components/schemas/MaterialItem.jsonld-read' - type: array - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d - format: iri-reference - readOnly: true - type: - - 'null' - - string - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - children - - contentType - - materialItems - - position - type: object - MaterialNode.jsonld-write_create: - deprecated: false - description: '' - properties: - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference type: string - data: - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - items: - type: string - type: - - array - - 'null' - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - contentType - - parent - - position - type: object - MultiSelect-read: - deprecated: false - description: '' - properties: - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - contentType: + campTitle: description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept - readOnly: true + The full title of the camp for which this invitation is valid. This should help + the user to decide whether to accept or reject the invitation. + example: 'Abteilungs-Sommerlager 2022' type: string - data: - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - options: - natureAndEnvironment: - checked: true - outdoorTechnique: - checked: false - items: - type: string - type: - - array - - 'null' id: - description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d - maxLength: 16 - readOnly: true type: string - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d - format: iri-reference - readOnly: true - type: - - 'null' - - string - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - children - - contentType - - position type: object - MultiSelect-write_create: - deprecated: false - description: '' - properties: - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - data: - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - options: - natureAndEnvironment: - checked: true - outdoorTechnique: - checked: false - items: - type: string - type: - - array - - 'null' - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - contentType - - parent - - position - type: object - MultiSelect-write_update: - deprecated: false - description: '' - properties: - data: - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - options: - natureAndEnvironment: - checked: true - outdoorTechnique: - checked: false - items: - type: string - type: - - array - - 'null' - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - data - - position - type: object - MultiSelect.jsonapi-read: - deprecated: false - description: '' - properties: - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept - readOnly: true - type: string - data: - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - options: - natureAndEnvironment: - checked: true - outdoorTechnique: - checked: false - items: - type: string - type: - - array - - 'null' - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d - format: iri-reference - readOnly: true - type: - - 'null' - - string - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - children - - contentType - - position - type: object - MultiSelect.jsonapi-write_create: - deprecated: false - description: '' - properties: - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - data: - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - options: - natureAndEnvironment: - checked: true - outdoorTechnique: - checked: false - items: - type: string - type: - - array - - 'null' - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - contentType - - parent - - position - type: object - MultiSelect.jsonapi-write_update: - deprecated: false - description: '' - properties: - data: - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - options: - natureAndEnvironment: - checked: true - outdoorTechnique: - checked: false - items: - type: string - type: - - array - - 'null' - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - data - - position - type: object - MultiSelect.jsonhal-read: - deprecated: false - description: '' - properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept - readOnly: true - type: string - data: - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - options: - natureAndEnvironment: - checked: true - outdoorTechnique: - checked: false - items: - type: string - type: - - array - - 'null' - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d - format: iri-reference - readOnly: true - type: - - 'null' - - string - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - children - - contentType - - position - type: object - MultiSelect.jsonhal-write_create: - deprecated: false - description: '' - properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - data: - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - options: - natureAndEnvironment: - checked: true - outdoorTechnique: - checked: false - items: - type: string - type: - - array - - 'null' - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - contentType - - parent - - position - type: object - MultiSelect.jsonld-read: - deprecated: false - description: '' - properties: - '@context': - oneOf: - - - additionalProperties: true - properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] - type: string - required: - - '@vocab' - - hydra - type: object - - - type: string - readOnly: true - '@id': - readOnly: true - type: string - '@type': - readOnly: true - type: string - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept - readOnly: true - type: string - data: - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - options: - natureAndEnvironment: - checked: true - outdoorTechnique: - checked: false - items: - type: string - type: - - array - - 'null' - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d - format: iri-reference - readOnly: true - type: - - 'null' - - string - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - children - - contentType - - position - type: object - MultiSelect.jsonld-write_create: - deprecated: false - description: '' - properties: - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - data: - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - options: - natureAndEnvironment: - checked: true - outdoorTechnique: - checked: false - items: - type: string - type: - - array - - 'null' - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - contentType - - parent - - position - type: object - Period-read: - deprecated: false - description: |- - A time period in which the programme of a camp will take place. There may be multiple - periods in a camp, but they may not overlap. A period is made up of one or more full days. - properties: - camp: - description: 'The camp that this time period belongs to. Cannot be changed once the period is created.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - contentNodes: - description: 'All the content nodes used in some activity which is carried out (has a schedule entry) in this period.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - dayResponsibles: - description: 'A link to all the DayResponsibles in this period.' - example: '["/day_responsibles/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - days: - description: 'The days in this time period. These are generated automatically.' - example: '["/days?period=/periods/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - description: - description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' - example: Hauptlager - maxLength: 32 - type: - - 'null' - - string - end: - description: |- - The (inclusive) day at the end of which the period ends, as an ISO date string. Should - not be before "start". - example: '2022-01-08' - format: date - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - materialItems: - description: |- - Material items that are assigned directly to the period, as opposed to individual - activities. - example: '["/material_items/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - scheduleEntries: - description: |- - All time slots for programme that are part of this time period. A schedule entry - may span over multiple days, but may not end later than the period. - example: '["/schedule_entries/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - start: - description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' - example: '2022-01-01' - format: date - type: string - required: - - camp - - days - - description - - end - - materialItems - - scheduleEntries - - start - type: object - Period-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: - deprecated: false - description: '' - properties: - camp: - description: 'The camp that this time period belongs to. Cannot be changed once the period is created.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - contentNodes: - description: 'All the content nodes used in some activity which is carried out (has a schedule entry) in this period.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - dayResponsibles: - description: 'A link to all the DayResponsibles in this period.' - example: '["/day_responsibles/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - days: - items: - $ref: '#/components/schemas/Day-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' - readOnly: true - type: array - description: - description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' - example: Hauptlager - maxLength: 32 - type: - - 'null' - - string - end: - description: |- - The (inclusive) day at the end of which the period ends, as an ISO date string. Should - not be before "start". - example: '2022-01-08' - format: date - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - materialItems: - description: |- - Material items that are assigned directly to the period, as opposed to individual - activities. - example: '["/material_items/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - scheduleEntries: - description: |- - All time slots for programme that are part of this time period. A schedule entry - may span over multiple days, but may not end later than the period. - example: '["/schedule_entries/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - start: - description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' - example: '2022-01-01' - format: date - type: string - required: - - camp - - days - - description - - end - - materialItems - - scheduleEntries - - start - type: object - Period-read_Period.Camp_Period.Days: - deprecated: false - description: |- - A time period in which the programme of a camp will take place. There may be multiple - periods in a camp, but they may not overlap. A period is made up of one or more full days. - properties: - camp: - anyOf: - - - $ref: '#/components/schemas/Camp-read_Period.Camp_Period.Days' - - - type: 'null' - readOnly: true - contentNodes: - description: 'All the content nodes used in some activity which is carried out (has a schedule entry) in this period.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - dayResponsibles: - description: 'A link to all the DayResponsibles in this period.' - example: '["/day_responsibles/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - days: - items: - $ref: '#/components/schemas/Day-read_Period.Camp_Period.Days' - readOnly: true - type: array - description: - description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' - example: Hauptlager - maxLength: 32 - type: - - 'null' - - string - end: - description: |- - The (inclusive) day at the end of which the period ends, as an ISO date string. Should - not be before "start". - example: '2022-01-08' - format: date - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - materialItems: - description: |- - Material items that are assigned directly to the period, as opposed to individual - activities. - example: '["/material_items/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - scheduleEntries: - description: |- - All time slots for programme that are part of this time period. A schedule entry - may span over multiple days, but may not end later than the period. - example: '["/schedule_entries/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - start: - description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' - example: '2022-01-01' - format: date - type: string - required: - - camp - - days - - description - - end - - materialItems - - scheduleEntries - - start - type: object - Period-write: - deprecated: false - description: |- - A time period in which the programme of a camp will take place. There may be multiple - periods in a camp, but they may not overlap. A period is made up of one or more full days. - properties: - description: - description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' - example: Hauptlager - maxLength: 32 - type: - - 'null' - - string - end: - description: |- - The (inclusive) day at the end of which the period ends, as an ISO date string. Should - not be before "start". - example: '2022-01-08' - format: date - type: string - moveScheduleEntries: - default: true - description: |- - If the start date of the period is changing, moveScheduleEntries defines what happens with the schedule - entries in the period. - example: true - type: boolean - start: - description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' - example: '2022-01-01' - format: date - type: string - required: - - description - - end - - moveScheduleEntries - - start - type: object - Period-write_create: - deprecated: false - description: |- - A time period in which the programme of a camp will take place. There may be multiple - periods in a camp, but they may not overlap. A period is made up of one or more full days. - properties: - camp: - description: 'The camp that this time period belongs to. Cannot be changed once the period is created.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - description: - description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' - example: Hauptlager - maxLength: 32 - type: - - 'null' - - string - end: - description: |- - The (inclusive) day at the end of which the period ends, as an ISO date string. Should - not be before "start". - example: '2022-01-08' - format: date - type: string - moveScheduleEntries: - default: true - description: |- - If the start date of the period is changing, moveScheduleEntries defines what happens with the schedule - entries in the period. - example: true - type: boolean - start: - description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' - example: '2022-01-01' - format: date - type: string - required: - - camp - - description - - end - - moveScheduleEntries - - start - type: object - Period.jsonapi-read: - deprecated: false - description: |- - A time period in which the programme of a camp will take place. There may be multiple - periods in a camp, but they may not overlap. A period is made up of one or more full days. - properties: - camp: - description: 'The camp that this time period belongs to. Cannot be changed once the period is created.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - contentNodes: - description: 'All the content nodes used in some activity which is carried out (has a schedule entry) in this period.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - dayResponsibles: - description: 'A link to all the DayResponsibles in this period.' - example: '["/day_responsibles/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - days: - description: 'The days in this time period. These are generated automatically.' - example: '["/days?period=/periods/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - description: - description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' - example: Hauptlager - maxLength: 32 - type: - - 'null' - - string - end: - description: |- - The (inclusive) day at the end of which the period ends, as an ISO date string. Should - not be before "start". - example: '2022-01-08' - format: date - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - materialItems: - description: |- - Material items that are assigned directly to the period, as opposed to individual - activities. - example: '["/material_items/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - scheduleEntries: - description: |- - All time slots for programme that are part of this time period. A schedule entry - may span over multiple days, but may not end later than the period. - example: '["/schedule_entries/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - start: - description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' - example: '2022-01-01' - format: date - type: string - required: - - camp - - days - - description - - end - - materialItems - - scheduleEntries - - start - type: object - Period.jsonapi-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: - deprecated: false - description: '' - properties: - camp: - description: 'The camp that this time period belongs to. Cannot be changed once the period is created.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - contentNodes: - description: 'All the content nodes used in some activity which is carried out (has a schedule entry) in this period.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - dayResponsibles: - description: 'A link to all the DayResponsibles in this period.' - example: '["/day_responsibles/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - days: - items: - $ref: '#/components/schemas/Day.jsonapi-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' - readOnly: true - type: array - description: - description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' - example: Hauptlager - maxLength: 32 - type: - - 'null' - - string - end: - description: |- - The (inclusive) day at the end of which the period ends, as an ISO date string. Should - not be before "start". - example: '2022-01-08' - format: date - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - materialItems: - description: |- - Material items that are assigned directly to the period, as opposed to individual - activities. - example: '["/material_items/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - scheduleEntries: - description: |- - All time slots for programme that are part of this time period. A schedule entry - may span over multiple days, but may not end later than the period. - example: '["/schedule_entries/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - start: - description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' - example: '2022-01-01' - format: date - type: string - required: - - camp - - days - - description - - end - - materialItems - - scheduleEntries - - start - type: object - Period.jsonapi-read_Period.Camp_Period.Days: - deprecated: false - description: |- - A time period in which the programme of a camp will take place. There may be multiple - periods in a camp, but they may not overlap. A period is made up of one or more full days. - properties: - camp: - anyOf: - - - $ref: '#/components/schemas/Camp.jsonapi-read_Period.Camp_Period.Days' - - - type: 'null' - readOnly: true - contentNodes: - description: 'All the content nodes used in some activity which is carried out (has a schedule entry) in this period.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - dayResponsibles: - description: 'A link to all the DayResponsibles in this period.' - example: '["/day_responsibles/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - days: - items: - $ref: '#/components/schemas/Day.jsonapi-read_Period.Camp_Period.Days' - readOnly: true - type: array - description: - description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' - example: Hauptlager - maxLength: 32 - type: - - 'null' - - string - end: - description: |- - The (inclusive) day at the end of which the period ends, as an ISO date string. Should - not be before "start". - example: '2022-01-08' - format: date - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - materialItems: - description: |- - Material items that are assigned directly to the period, as opposed to individual - activities. - example: '["/material_items/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - scheduleEntries: - description: |- - All time slots for programme that are part of this time period. A schedule entry - may span over multiple days, but may not end later than the period. - example: '["/schedule_entries/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - start: - description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' - example: '2022-01-01' - format: date - type: string - required: - - camp - - days - - description - - end - - materialItems - - scheduleEntries - - start - type: object - Period.jsonapi-write: - deprecated: false - description: |- - A time period in which the programme of a camp will take place. There may be multiple - periods in a camp, but they may not overlap. A period is made up of one or more full days. - properties: - description: - description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' - example: Hauptlager - maxLength: 32 - type: - - 'null' - - string - end: - description: |- - The (inclusive) day at the end of which the period ends, as an ISO date string. Should - not be before "start". - example: '2022-01-08' - format: date - type: string - moveScheduleEntries: - default: true - description: |- - If the start date of the period is changing, moveScheduleEntries defines what happens with the schedule - entries in the period. - example: true - type: boolean - start: - description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' - example: '2022-01-01' - format: date - type: string - required: - - description - - end - - moveScheduleEntries - - start - type: object - Period.jsonapi-write_create: - deprecated: false - description: |- - A time period in which the programme of a camp will take place. There may be multiple - periods in a camp, but they may not overlap. A period is made up of one or more full days. - properties: - camp: - description: 'The camp that this time period belongs to. Cannot be changed once the period is created.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - description: - description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' - example: Hauptlager - maxLength: 32 - type: - - 'null' - - string - end: - description: |- - The (inclusive) day at the end of which the period ends, as an ISO date string. Should - not be before "start". - example: '2022-01-08' - format: date - type: string - moveScheduleEntries: - default: true - description: |- - If the start date of the period is changing, moveScheduleEntries defines what happens with the schedule - entries in the period. - example: true - type: boolean - start: - description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' - example: '2022-01-01' - format: date - type: string - required: - - camp - - description - - end - - moveScheduleEntries - - start - type: object - Period.jsonhal-read: - deprecated: false - description: |- - A time period in which the programme of a camp will take place. There may be multiple - periods in a camp, but they may not overlap. A period is made up of one or more full days. - properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object - camp: - description: 'The camp that this time period belongs to. Cannot be changed once the period is created.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - contentNodes: - description: 'All the content nodes used in some activity which is carried out (has a schedule entry) in this period.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - dayResponsibles: - description: 'A link to all the DayResponsibles in this period.' - example: '["/day_responsibles/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - days: - description: 'The days in this time period. These are generated automatically.' - example: '["/days?period=/periods/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - description: - description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' - example: Hauptlager - maxLength: 32 - type: - - 'null' - - string - end: - description: |- - The (inclusive) day at the end of which the period ends, as an ISO date string. Should - not be before "start". - example: '2022-01-08' - format: date - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - materialItems: - description: |- - Material items that are assigned directly to the period, as opposed to individual - activities. - example: '["/material_items/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - scheduleEntries: - description: |- - All time slots for programme that are part of this time period. A schedule entry - may span over multiple days, but may not end later than the period. - example: '["/schedule_entries/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - start: - description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' - example: '2022-01-01' - format: date - type: string - required: - - camp - - days - - description - - end - - materialItems - - scheduleEntries - - start - type: object - Period.jsonhal-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: - deprecated: false - description: '' - properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object - camp: - description: 'The camp that this time period belongs to. Cannot be changed once the period is created.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - contentNodes: - description: 'All the content nodes used in some activity which is carried out (has a schedule entry) in this period.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - dayResponsibles: - description: 'A link to all the DayResponsibles in this period.' - example: '["/day_responsibles/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - days: - items: - $ref: '#/components/schemas/Day.jsonhal-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' - readOnly: true - type: array - description: - description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' - example: Hauptlager - maxLength: 32 - type: - - 'null' - - string - end: - description: |- - The (inclusive) day at the end of which the period ends, as an ISO date string. Should - not be before "start". - example: '2022-01-08' - format: date - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - materialItems: - description: |- - Material items that are assigned directly to the period, as opposed to individual - activities. - example: '["/material_items/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - scheduleEntries: - description: |- - All time slots for programme that are part of this time period. A schedule entry - may span over multiple days, but may not end later than the period. - example: '["/schedule_entries/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - start: - description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' - example: '2022-01-01' - format: date - type: string - required: - - camp - - days - - description - - end - - materialItems - - scheduleEntries - - start - type: object - Period.jsonhal-read_Period.Camp_Period.Days: - deprecated: false - description: |- - A time period in which the programme of a camp will take place. There may be multiple - periods in a camp, but they may not overlap. A period is made up of one or more full days. - properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object - camp: - anyOf: - - - $ref: '#/components/schemas/Camp.jsonhal-read_Period.Camp_Period.Days' - - - type: 'null' - readOnly: true - contentNodes: - description: 'All the content nodes used in some activity which is carried out (has a schedule entry) in this period.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - dayResponsibles: - description: 'A link to all the DayResponsibles in this period.' - example: '["/day_responsibles/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - days: - items: - $ref: '#/components/schemas/Day.jsonhal-read_Period.Camp_Period.Days' - readOnly: true - type: array - description: - description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' - example: Hauptlager - maxLength: 32 - type: - - 'null' - - string - end: - description: |- - The (inclusive) day at the end of which the period ends, as an ISO date string. Should - not be before "start". - example: '2022-01-08' - format: date - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - materialItems: - description: |- - Material items that are assigned directly to the period, as opposed to individual - activities. - example: '["/material_items/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - scheduleEntries: - description: |- - All time slots for programme that are part of this time period. A schedule entry - may span over multiple days, but may not end later than the period. - example: '["/schedule_entries/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - start: - description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' - example: '2022-01-01' - format: date - type: string - required: - - camp - - days - - description - - end - - materialItems - - scheduleEntries - - start - type: object - Period.jsonhal-write_create: - deprecated: false - description: |- - A time period in which the programme of a camp will take place. There may be multiple - periods in a camp, but they may not overlap. A period is made up of one or more full days. - properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object - camp: - description: 'The camp that this time period belongs to. Cannot be changed once the period is created.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - description: - description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' - example: Hauptlager - maxLength: 32 - type: - - 'null' - - string - end: - description: |- - The (inclusive) day at the end of which the period ends, as an ISO date string. Should - not be before "start". - example: '2022-01-08' - format: date - type: string - moveScheduleEntries: - default: true - description: |- - If the start date of the period is changing, moveScheduleEntries defines what happens with the schedule - entries in the period. - example: true - type: boolean - start: - description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' - example: '2022-01-01' - format: date - type: string - required: - - camp - - description - - end - - moveScheduleEntries - - start - type: object - Period.jsonld-read: - deprecated: false - description: |- - A time period in which the programme of a camp will take place. There may be multiple - periods in a camp, but they may not overlap. A period is made up of one or more full days. - properties: - '@context': - oneOf: - - - additionalProperties: true - properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] - type: string - required: - - '@vocab' - - hydra - type: object - - - type: string - readOnly: true - '@id': - readOnly: true - type: string - '@type': - readOnly: true - type: string - camp: - description: 'The camp that this time period belongs to. Cannot be changed once the period is created.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - contentNodes: - description: 'All the content nodes used in some activity which is carried out (has a schedule entry) in this period.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - dayResponsibles: - description: 'A link to all the DayResponsibles in this period.' - example: '["/day_responsibles/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - days: - description: 'The days in this time period. These are generated automatically.' - example: '["/days?period=/periods/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - description: - description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' - example: Hauptlager - maxLength: 32 - type: - - 'null' - - string - end: - description: |- - The (inclusive) day at the end of which the period ends, as an ISO date string. Should - not be before "start". - example: '2022-01-08' - format: date - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - materialItems: - description: |- - Material items that are assigned directly to the period, as opposed to individual - activities. - example: '["/material_items/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - scheduleEntries: - description: |- - All time slots for programme that are part of this time period. A schedule entry - may span over multiple days, but may not end later than the period. - example: '["/schedule_entries/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - start: - description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' - example: '2022-01-01' - format: date - type: string - required: - - camp - - days - - description - - end - - materialItems - - scheduleEntries - - start - type: object - Period.jsonld-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: - deprecated: false - description: '' - properties: - '@context': - oneOf: - - - additionalProperties: true - properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] - type: string - required: - - '@vocab' - - hydra - type: object - - - type: string - readOnly: true - '@id': - readOnly: true - type: string - '@type': - readOnly: true - type: string - camp: - description: 'The camp that this time period belongs to. Cannot be changed once the period is created.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - contentNodes: - description: 'All the content nodes used in some activity which is carried out (has a schedule entry) in this period.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - dayResponsibles: - description: 'A link to all the DayResponsibles in this period.' - example: '["/day_responsibles/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - days: - items: - $ref: '#/components/schemas/Day.jsonld-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' - readOnly: true - type: array - description: - description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' - example: Hauptlager - maxLength: 32 - type: - - 'null' - - string - end: - description: |- - The (inclusive) day at the end of which the period ends, as an ISO date string. Should - not be before "start". - example: '2022-01-08' - format: date - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - materialItems: - description: |- - Material items that are assigned directly to the period, as opposed to individual - activities. - example: '["/material_items/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - scheduleEntries: - description: |- - All time slots for programme that are part of this time period. A schedule entry - may span over multiple days, but may not end later than the period. - example: '["/schedule_entries/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - start: - description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' - example: '2022-01-01' - format: date - type: string - required: - - camp - - days - - description - - end - - materialItems - - scheduleEntries - - start - type: object - Period.jsonld-read_Period.Camp_Period.Days: - deprecated: false - description: |- - A time period in which the programme of a camp will take place. There may be multiple - periods in a camp, but they may not overlap. A period is made up of one or more full days. - properties: - '@context': - oneOf: - - - additionalProperties: true - properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] - type: string - required: - - '@vocab' - - hydra - type: object - - - type: string - readOnly: true - '@id': - readOnly: true - type: string - '@type': - readOnly: true - type: string - camp: - anyOf: - - - $ref: '#/components/schemas/Camp.jsonld-read_Period.Camp_Period.Days' - - - type: 'null' - readOnly: true - contentNodes: - description: 'All the content nodes used in some activity which is carried out (has a schedule entry) in this period.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - dayResponsibles: - description: 'A link to all the DayResponsibles in this period.' - example: '["/day_responsibles/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - days: - items: - $ref: '#/components/schemas/Day.jsonld-read_Period.Camp_Period.Days' - readOnly: true - type: array - description: - description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' - example: Hauptlager - maxLength: 32 - type: - - 'null' - - string - end: - description: |- - The (inclusive) day at the end of which the period ends, as an ISO date string. Should - not be before "start". - example: '2022-01-08' - format: date - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - materialItems: - description: |- - Material items that are assigned directly to the period, as opposed to individual - activities. - example: '["/material_items/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - scheduleEntries: - description: |- - All time slots for programme that are part of this time period. A schedule entry - may span over multiple days, but may not end later than the period. - example: '["/schedule_entries/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - start: - description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' - example: '2022-01-01' - format: date - type: string - required: - - camp - - days - - description - - end - - materialItems - - scheduleEntries - - start - type: object - Period.jsonld-write_create: - deprecated: false - description: |- - A time period in which the programme of a camp will take place. There may be multiple - periods in a camp, but they may not overlap. A period is made up of one or more full days. - properties: - camp: - description: 'The camp that this time period belongs to. Cannot be changed once the period is created.' - example: /camps/1a2b3c4d - format: iri-reference - type: string - description: - description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.' - example: Hauptlager - maxLength: 32 - type: - - 'null' - - string - end: - description: |- - The (inclusive) day at the end of which the period ends, as an ISO date string. Should - not be before "start". - example: '2022-01-08' - format: date - type: string - moveScheduleEntries: - default: true - description: |- - If the start date of the period is changing, moveScheduleEntries defines what happens with the schedule - entries in the period. - example: true - type: boolean - start: - description: 'The day on which the period starts, as an ISO date string. Should not be after "end".' - example: '2022-01-01' - format: date - type: string - required: - - camp - - description - - end - - moveScheduleEntries - - start - type: object - PersonalInvitation-read: - deprecated: false - description: 'An invitation for a person who already has an account to collaborate in a camp.' - properties: - campId: - description: |- - The id of the camp for which this invitation is valid. This is useful for - redirecting the user to the correct place after they accept. - example: 1a2b3c4d - type: string - campTitle: - description: |- - The full title of the camp for which this invitation is valid. This should help - the user to decide whether to accept or reject the invitation. - example: 'Abteilungs-Sommerlager 2022' - type: string - id: - example: 1a2b3c4d - type: string - type: object - PersonalInvitation-write: - deprecated: false - description: 'An invitation for a person who already has an account to collaborate in a camp.' - type: object - PersonalInvitation.jsonapi-read: - deprecated: false - description: 'An invitation for a person who already has an account to collaborate in a camp.' - properties: - campId: - description: |- - The id of the camp for which this invitation is valid. This is useful for - redirecting the user to the correct place after they accept. - example: 1a2b3c4d - type: string - campTitle: - description: |- - The full title of the camp for which this invitation is valid. This should help - the user to decide whether to accept or reject the invitation. - example: 'Abteilungs-Sommerlager 2022' - type: string - id: - example: 1a2b3c4d - type: string - type: object - PersonalInvitation.jsonapi-write: - deprecated: false - description: 'An invitation for a person who already has an account to collaborate in a camp.' - type: object - PersonalInvitation.jsonhal-read: - deprecated: false - description: 'An invitation for a person who already has an account to collaborate in a camp.' - properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object - campId: - description: |- - The id of the camp for which this invitation is valid. This is useful for - redirecting the user to the correct place after they accept. - example: 1a2b3c4d - type: string - campTitle: - description: |- - The full title of the camp for which this invitation is valid. This should help - the user to decide whether to accept or reject the invitation. - example: 'Abteilungs-Sommerlager 2022' - type: string - id: - example: 1a2b3c4d - type: string - type: object - PersonalInvitation.jsonld-read: - deprecated: false - description: 'An invitation for a person who already has an account to collaborate in a camp.' - properties: - '@context': - oneOf: - - - additionalProperties: true - properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] - type: string - required: - - '@vocab' - - hydra - type: object - - - type: string - readOnly: true - '@id': - readOnly: true - type: string - '@type': - readOnly: true - type: string - campId: - description: |- - The id of the camp for which this invitation is valid. This is useful for - redirecting the user to the correct place after they accept. - example: 1a2b3c4d - type: string - campTitle: - description: |- - The full title of the camp for which this invitation is valid. This should help - the user to decide whether to accept or reject the invitation. - example: 'Abteilungs-Sommerlager 2022' - type: string - id: - example: 1a2b3c4d - type: string - type: object - Profile-read: - deprecated: false - description: |- - The profile of a person using eCamp. - The properties available to related eCamp users are here. - Related means that they were or are collaborators in the same camp. - properties: - email: - description: 'Unique email of the user.' - example: bi-pi@example.com - externalDocs: - url: 'https://schema.org/email' - format: email - maxLength: 64 - type: string - firstname: - description: "The user's (optional) first name." - example: Robert - maxLength: 64 - type: - - 'null' - - string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - language: - description: 'The optional preferred language of the user, as an ICU language code.' - enum: - - de - - de-CH-scout - - en - - en-CH-scout - - fr - - fr-CH-scout - - it - - it-CH-scout - - rm - - rm-CH-scout - example: en - maxLength: 20 - type: - - 'null' - - string - legalName: - description: |- - The legal name of the user, for printing on legally relevant - documents. Falls back to the nickname if not complete. - example: 'Robert Baden-Powell' - readOnly: true - type: - - 'null' - - string - nickname: - description: "The user's (optional) nickname or scout name." - example: Bi-Pi - maxLength: 32 - type: - - 'null' - - string - surname: - description: "The user's (optional) last name." - example: Baden-Powell - maxLength: 64 - type: - - 'null' - - string - user: - example: /users/1a2b3c4d - format: iri-reference - readOnly: true - type: - - 'null' - - string - required: - - email - type: object - Profile-read_User.create: - deprecated: false - description: '' - properties: - email: - description: 'Unique email of the user.' - example: bi-pi@example.com - externalDocs: - url: 'https://schema.org/email' - format: email - maxLength: 64 - type: string - firstname: - description: "The user's (optional) first name." - example: Robert - maxLength: 64 - type: - - 'null' - - string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - language: - description: 'The optional preferred language of the user, as an ICU language code.' - enum: - - de - - de-CH-scout - - en - - en-CH-scout - - fr - - fr-CH-scout - - it - - it-CH-scout - - rm - - rm-CH-scout - example: en - maxLength: 20 - type: - - 'null' - - string - legalName: - description: |- - The legal name of the user, for printing on legally relevant - documents. Falls back to the nickname if not complete. - example: 'Robert Baden-Powell' - readOnly: true - type: - - 'null' - - string - nickname: - description: "The user's (optional) nickname or scout name." - example: Bi-Pi - maxLength: 32 - type: - - 'null' - - string - surname: - description: "The user's (optional) last name." - example: Baden-Powell - maxLength: 64 - type: - - 'null' - - string - user: - example: /users/1a2b3c4d - format: iri-reference - readOnly: true - type: - - 'null' - - string - required: - - email - type: object - Profile-write_create: - deprecated: false - description: |- - The profile of a person using eCamp. - The properties available to related eCamp users are here. - Related means that they were or are collaborators in the same camp. - properties: - email: - description: 'Unique email of the user.' - example: bi-pi@example.com - externalDocs: - url: 'https://schema.org/email' - format: email - maxLength: 64 - type: string - firstname: - description: "The user's (optional) first name." - example: Robert - maxLength: 64 - type: - - 'null' - - string - language: - description: 'The optional preferred language of the user, as an ICU language code.' - enum: - - de - - de-CH-scout - - en - - en-CH-scout - - fr - - fr-CH-scout - - it - - it-CH-scout - - rm - - rm-CH-scout - example: en - maxLength: 20 - type: - - 'null' - - string - newEmail: - description: 'New email.' - example: bi-pi@example.com - externalDocs: - url: 'https://schema.org/email' - format: email - type: - - 'null' - - string - nickname: - description: "The user's (optional) nickname or scout name." - example: Bi-Pi - maxLength: 32 - type: - - 'null' - - string - surname: - description: "The user's (optional) last name." - example: Baden-Powell - maxLength: 64 - type: - - 'null' - - string - required: - - email - type: object - Profile-write_update: - deprecated: false - description: |- - The profile of a person using eCamp. - The properties available to related eCamp users are here. - Related means that they were or are collaborators in the same camp. - properties: - firstname: - description: "The user's (optional) first name." - example: Robert - maxLength: 64 - type: - - 'null' - - string - language: - description: 'The optional preferred language of the user, as an ICU language code.' - enum: - - de - - de-CH-scout - - en - - en-CH-scout - - fr - - fr-CH-scout - - it - - it-CH-scout - - rm - - rm-CH-scout - example: en - maxLength: 20 - type: - - 'null' - - string - newEmail: - description: 'New email.' - example: bi-pi@example.com - externalDocs: - url: 'https://schema.org/email' - format: email - type: - - 'null' - - string - nickname: - description: "The user's (optional) nickname or scout name." - example: Bi-Pi - maxLength: 32 - type: - - 'null' - - string - surname: - description: "The user's (optional) last name." - example: Baden-Powell - maxLength: 64 - type: - - 'null' - - string - untrustedEmailKey: - description: 'User input for email verification.' - type: - - 'null' - - string - writeOnly: true - type: object - Profile.jsonapi-read: + Profile-read: deprecated: false description: |- The profile of a person using eCamp. @@ -18923,7 +15573,7 @@ components: required: - email type: object - Profile.jsonapi-read_User.create: + Profile-read_User.create: deprecated: false description: '' properties: @@ -18999,7 +15649,7 @@ components: required: - email type: object - Profile.jsonapi-write_create: + Profile-write_create: deprecated: false description: |- The profile of a person using eCamp. @@ -19065,7 +15715,7 @@ components: required: - email type: object - Profile.jsonapi-write_update: + Profile-write_update: deprecated: false description: |- The profile of a person using eCamp. @@ -19127,6 +15777,97 @@ components: - string writeOnly: true type: object + Profile.jsonapi: + deprecated: false + description: |- + The profile of a person using eCamp. + The properties available to related eCamp users are here. + Related means that they were or are collaborators in the same camp. + properties: + data: + properties: + attributes: + properties: + _id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string + email: + description: 'Unique email of the user.' + example: bi-pi@example.com + externalDocs: { url: 'https://schema.org/email' } + format: email + maxLength: 64 + readOnly: true + type: string + firstname: + description: "The user's (optional) first name." + example: Robert + maxLength: 64 + type: ['null', string] + language: + description: 'The optional preferred language of the user, as an ICU language code.' + enum: [de, de-CH-scout, en, en-CH-scout, fr, fr-CH-scout, it, it-CH-scout, rm, rm-CH-scout] + example: en + maxLength: 20 + type: ['null', string] + legalName: + description: |- + The legal name of the user, for printing on legally relevant + documents. Falls back to the nickname if not complete. + example: 'Robert Baden-Powell' + readOnly: true + type: ['null', string] + newEmail: + description: 'New email.' + example: bi-pi@example.com + externalDocs: { url: 'https://schema.org/email' } + format: email + type: ['null', string] + writeOnly: true + nickname: + description: "The user's (optional) nickname or scout name." + example: Bi-Pi + maxLength: 32 + type: ['null', string] + surname: + description: "The user's (optional) last name." + example: Baden-Powell + maxLength: 64 + type: ['null', string] + untrustedEmailKey: + description: 'User input for email verification.' + type: ['null', string] + writeOnly: true + required: + - email + type: object + id: + type: string + relationships: + properties: + user: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + type: object + type: + type: string + required: + - id + - type + type: object + included: + description: 'Related resources requested via the "include" query parameter.' + externalDocs: + url: 'https://jsonapi.org/format/#fetching-includes' + items: + anyOf: + - + $ref: '#/components/schemas/Profile.jsonapi' + readOnly: true + type: array + type: object Profile.jsonhal-read: deprecated: false description: |- @@ -19704,59 +16445,33 @@ components: deprecated: false description: '' properties: - email: - type: - - 'null' - - string - id: - description: "$id: base64_encode($email . '#' . $resetKey)." - readOnly: true - type: - - 'null' - - string - password: - maxLength: 128 - minLength: 12 - type: - - 'null' - - string - writeOnly: true - recaptchaToken: - type: - - 'null' - - string - writeOnly: true - type: object - ResetPassword.jsonapi-create: - deprecated: false - description: '' - properties: - email: - type: - - 'null' - - string - recaptchaToken: - type: - - 'null' - - string - writeOnly: true - type: object - ResetPassword.jsonapi-update: - deprecated: false - description: '' - properties: - password: - maxLength: 128 - minLength: 12 - type: - - 'null' - - string - writeOnly: true - recaptchaToken: - type: - - 'null' - - string - writeOnly: true + data: + properties: + attributes: + properties: + _id: + description: "$id: base64_encode($email . '#' . $resetKey)." + readOnly: true + type: ['null', string] + email: + type: ['null', string] + password: + maxLength: 128 + minLength: 12 + type: ['null', string] + writeOnly: true + recaptchaToken: + type: ['null', string] + writeOnly: true + type: object + id: + type: string + type: + type: string + required: + - id + - type + type: object type: object ResetPassword.jsonhal: deprecated: false @@ -19839,282 +16554,49 @@ components: type: string readOnly: true '@id': - readOnly: true - type: string - '@type': - readOnly: true - type: string - email: - type: - - 'null' - - string - id: - description: "$id: base64_encode($email . '#' . $resetKey)." - readOnly: true - type: - - 'null' - - string - password: - maxLength: 128 - minLength: 12 - type: - - 'null' - - string - writeOnly: true - recaptchaToken: - type: - - 'null' - - string - writeOnly: true - type: object - ResetPassword.jsonld-create: - deprecated: false - description: '' - properties: - email: - type: - - 'null' - - string - recaptchaToken: - type: - - 'null' - - string - writeOnly: true - type: object - ResponsiveLayout-read: - deprecated: false - description: '' - properties: - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept - readOnly: true - type: string - data: - default: '{"items":[{"slot":"main"},{"slot":"aside-top"},{"slot":"aside-bottom"}]}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - items: - - - slot: aside-bottom - - - slot: aside-top - - - slot: main - items: - type: string - type: - - array - - 'null' - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d - format: iri-reference - readOnly: true - type: - - 'null' - - string - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - children - - contentType - - data - - position - type: object - ResponsiveLayout-write_create: - deprecated: false - description: '' - properties: - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - data: - default: '{"items":[{"slot":"main"},{"slot":"aside-top"},{"slot":"aside-bottom"}]}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - items: - - - slot: aside-bottom - - - slot: aside-top - - - slot: main - items: - type: string + readOnly: true + type: string + '@type': + readOnly: true + type: string + email: type: - - array - 'null' - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 + - string + id: + description: "$id: base64_encode($email . '#' . $resetKey)." + readOnly: true type: - 'null' - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference + password: + maxLength: 128 + minLength: 12 type: - 'null' - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 + writeOnly: true + recaptchaToken: type: - 'null' - string - required: - - contentType - - data - - parent - - position + writeOnly: true type: object - ResponsiveLayout-write_update: + ResetPassword.jsonld-create: deprecated: false description: '' properties: - data: - default: '{"items":[{"slot":"main"},{"slot":"aside-top"},{"slot":"aside-bottom"}]}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - items: - - - slot: aside-bottom - - - slot: aside-top - - - slot: main - items: - type: string - type: - - array - - 'null' - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference + email: type: - 'null' - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 + recaptchaToken: type: - 'null' - string - required: - - data - - position + writeOnly: true type: object - ResponsiveLayout.jsonapi-read: + ResponsiveLayout-read: deprecated: false description: '' properties: @@ -20215,160 +16697,10 @@ components: - data - position type: object - ResponsiveLayout.jsonapi-write_create: - deprecated: false - description: '' - properties: - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - data: - default: '{"items":[{"slot":"main"},{"slot":"aside-top"},{"slot":"aside-bottom"}]}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - items: - - - slot: aside-bottom - - - slot: aside-top - - - slot: main - items: - type: string - type: - - array - - 'null' - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - contentType - - data - - parent - - position - type: object - ResponsiveLayout.jsonapi-write_update: - deprecated: false - description: '' - properties: - data: - default: '{"items":[{"slot":"main"},{"slot":"aside-top"},{"slot":"aside-bottom"}]}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - items: - - - slot: aside-bottom - - - slot: aside-top - - - slot: main - items: - type: string - type: - - array - - 'null' - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - data - - position - type: object - ResponsiveLayout.jsonhal-read: + ResponsiveLayout-write_create: deprecated: false - description: '' - properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array + description: '' + properties: contentType: description: |- Defines the type of this content node. There is a fixed list of types that are implemented @@ -20377,11 +16709,6 @@ components: example: /content_types/1a2b3c4d format: iri-reference type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept - readOnly: true - type: string data: default: '{"items":[{"slot":"main"},{"slot":"aside-top"},{"slot":"aside-bottom"}]}' description: |- @@ -20400,12 +16727,6 @@ components: type: - array - 'null' - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string instanceName: description: |- An optional name for this content node. This is useful when planning e.g. an alternative @@ -20432,16 +16753,6 @@ components: same parent. The API does not guarantee the uniqueness of parent+slot+position. example: -1 type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d - format: iri-reference - readOnly: true - type: - - 'null' - - string slot: description: |- The name of the slot in the parent in which this content node resides. The valid slot names @@ -20452,32 +16763,15 @@ components: - 'null' - string required: - - children - contentType - data + - parent - position type: object - ResponsiveLayout.jsonhal-write_create: + ResponsiveLayout-write_update: deprecated: false description: '' properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string data: default: '{"items":[{"slot":"main"},{"slot":"aside-top"},{"slot":"aside-bottom"}]}' description: |- @@ -20532,38 +16826,13 @@ components: - 'null' - string required: - - contentType - data - - parent - position type: object - ResponsiveLayout.jsonld-read: + ResponsiveLayout.jsonapi: deprecated: false description: '' properties: - '@context': - oneOf: - - - additionalProperties: true - properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] - type: string - required: - - '@vocab' - - hydra - type: object - - - type: string - readOnly: true - '@id': - readOnly: true - type: string - '@type': - readOnly: true - type: string children: description: 'All content nodes that are direct children of this content node.' example: '["/content_nodes/1a2b3c4d"]' @@ -20580,6 +16849,7 @@ components: in a content node. The content type may not be changed once the content node is created. example: /content_types/1a2b3c4d format: iri-reference + readOnly: true type: string contentTypeName: description: 'The name of the content type of this content node. Read-only, for convenience.' @@ -20661,10 +16931,28 @@ components: - data - position type: object - ResponsiveLayout.jsonld-write_create: + ResponsiveLayout.jsonhal-read: deprecated: false description: '' properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object + children: + description: 'All content nodes that are direct children of this content node.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array contentType: description: |- Defines the type of this content node. There is a fixed list of types that are implemented @@ -20673,6 +16961,11 @@ components: example: /content_types/1a2b3c4d format: iri-reference type: string + contentTypeName: + description: 'The name of the content type of this content node. Read-only, for convenience.' + example: SafetyConcept + readOnly: true + type: string data: default: '{"items":[{"slot":"main"},{"slot":"aside-top"},{"slot":"aside-bottom"}]}' description: |- @@ -20690,509 +16983,340 @@ components: type: string type: - array - - 'null' - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - contentType - - data - - parent - - position - type: object - ScheduleEntry-read: - deprecated: false - description: |- - A calendar event in a period of the camp, at which some activity will take place. The start time - is specified as an offset in minutes from the period's start time. - properties: - activity: - description: |- - The activity that will take place at the time defined by this schedule entry. Can not be changed - once the schedule entry is created. - example: /activities/1a2b3c4d - format: iri-reference - type: string - day: - description: 'The day on which this schedule entry starts.' - example: /days/1a2b3c4d - format: iri-reference - readOnly: true - type: - - 'null' - - string - dayNumber: - description: 'The day number of the day on which this schedule entry starts.' - example: '1' - readOnly: true - type: integer - end: - description: 'End date and time of the schedule entry.' - example: '2022-01-02T01:30:00+00:00' - format: date-time - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - readOnly: true - type: string - left: - description: |- - When rendering a period in a calendar view: Specifies how far offset the rendered calendar event - should be from the left border of the day column, as a fractional amount of the width of the whole - day. This is useful to arrange multiple overlapping schedule entries such that all of them are - visible. Should be a decimal number between 0 and 1, and left+width should not exceed 1, but the - API currently does not enforce this. - example: 0.6 - type: - - 'null' - - number - number: - description: |- - Uniquely identifies this schedule entry in the period. This uses the day number, followed - by a period, followed by the cardinal number of the schedule entry in the numbering scheme - defined by the activity's category. - example: 1.b - readOnly: true - type: string - period: - description: 'The time period which this schedule entry is part of. Must belong to the same camp as the activity.' - example: /periods/1a2b3c4d - format: iri-reference - type: string - scheduleEntryNumber: - description: |- - The cardinal number of this schedule entry, when chronologically ordering all - schedule entries WITH THE SAME NUMBERING STYLE that start on the same day. I.e. if - the schedule entry is the second entry with roman numbering on a given day, its - number will be 2. - example: '2' - readOnly: true - type: integer - start: - description: 'Start date and time of the schedule entry.' - example: '2022-01-02T00:00:00+00:00' - format: date-time - type: string - width: - default: 1 - description: |- - When rendering a period in a calendar view: Specifies how wide the rendered calendar event should - be, as a fractional amount of the width of the whole day. This is useful to arrange multiple - overlapping schedule entries such that all of them are visible. Should be a decimal number - between 0 and 1, and left+width should not exceed 1, but the API currently does not enforce this. - example: 0.4 - type: - - 'null' - - number - required: - - end - - start - type: object - ScheduleEntry-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: - deprecated: false - description: '' - properties: - activity: - description: |- - The activity that will take place at the time defined by this schedule entry. Can not be changed - once the schedule entry is created. - example: /activities/1a2b3c4d - format: iri-reference - type: string - day: - description: 'The day on which this schedule entry starts.' - example: /days/1a2b3c4d - format: iri-reference - readOnly: true - type: - - 'null' - - string - dayNumber: - description: 'The day number of the day on which this schedule entry starts.' - example: '1' - readOnly: true - type: integer - end: - description: 'End date and time of the schedule entry.' - example: '2022-01-02T01:30:00+00:00' - format: date-time - type: string + - 'null' id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - left: + instanceName: description: |- - When rendering a period in a calendar view: Specifies how far offset the rendered calendar event - should be from the left border of the day column, as a fractional amount of the width of the whole - day. This is useful to arrange multiple overlapping schedule entries such that all of them are - visible. Should be a decimal number between 0 and 1, and left+width should not exceed 1, but the - API currently does not enforce this. - example: 0.6 + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 type: - 'null' - - number - number: + - string + parent: description: |- - Uniquely identifies this schedule entry in the period. This uses the day number, followed - by a period, followed by the cardinal number of the schedule entry in the numbering scheme - defined by the activity's category. - example: 1.b - readOnly: true - type: string - period: - description: 'The time period which this schedule entry is part of. Must belong to the same camp as the activity.' - example: /periods/1a2b3c4d + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d format: iri-reference - type: string - scheduleEntryNumber: + type: + - 'null' + - string + position: + default: -1 description: |- - The cardinal number of this schedule entry, when chronologically ordering all - schedule entries WITH THE SAME NUMBERING STYLE that start on the same day. I.e. if - the schedule entry is the second entry with roman numbering on a given day, its - number will be 2. - example: '2' - readOnly: true + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 type: integer - start: - description: 'Start date and time of the schedule entry.' - example: '2022-01-02T00:00:00+00:00' - format: date-time - type: string - width: - default: 1 + root: description: |- - When rendering a period in a calendar view: Specifies how wide the rendered calendar event should - be, as a fractional amount of the width of the whole day. This is useful to arrange multiple - overlapping schedule entries such that all of them are visible. Should be a decimal number - between 0 and 1, and left+width should not exceed 1, but the API currently does not enforce this. - example: 0.4 + The content node that is the root of the content node tree. Refers to itself in case this + content node is the root. + example: /content_nodes/1a2b3c4d + format: iri-reference + readOnly: true type: - 'null' - - number + - string + slot: + description: |- + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 + type: + - 'null' + - string required: - - activity - - end - - start + - children + - contentType + - data + - position type: object - ScheduleEntry-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: + ResponsiveLayout.jsonhal-write_create: deprecated: false description: '' properties: - activity: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object + contentType: description: |- - The activity that will take place at the time defined by this schedule entry. Can not be changed - once the schedule entry is created. - example: /activities/1a2b3c4d + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d format: iri-reference type: string - day: - description: 'The day on which this schedule entry starts.' - example: /days/1a2b3c4d - format: iri-reference - readOnly: true + data: + default: '{"items":[{"slot":"main"},{"slot":"aside-top"},{"slot":"aside-bottom"}]}' + description: |- + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + example: + items: + - + slot: aside-bottom + - + slot: aside-top + - + slot: main + items: + type: string type: + - array - 'null' - - string - dayNumber: - description: 'The day number of the day on which this schedule entry starts.' - example: '1' - readOnly: true - type: integer - end: - description: 'End date and time of the schedule entry.' - example: '2022-01-02T01:30:00+00:00' - format: date-time - type: string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - left: + instanceName: description: |- - When rendering a period in a calendar view: Specifies how far offset the rendered calendar event - should be from the left border of the day column, as a fractional amount of the width of the whole - day. This is useful to arrange multiple overlapping schedule entries such that all of them are - visible. Should be a decimal number between 0 and 1, and left+width should not exceed 1, but the - API currently does not enforce this. - example: 0.6 + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 type: - 'null' - - number - number: + - string + parent: description: |- - Uniquely identifies this schedule entry in the period. This uses the day number, followed - by a period, followed by the cardinal number of the schedule entry in the numbering scheme - defined by the activity's category. - example: 1.b - readOnly: true - type: string - period: - description: 'The time period which this schedule entry is part of. Must belong to the same camp as the activity.' - example: /periods/1a2b3c4d + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d format: iri-reference - type: string - scheduleEntryNumber: + type: + - 'null' + - string + position: + default: -1 description: |- - The cardinal number of this schedule entry, when chronologically ordering all - schedule entries WITH THE SAME NUMBERING STYLE that start on the same day. I.e. if - the schedule entry is the second entry with roman numbering on a given day, its - number will be 2. - example: '2' - readOnly: true + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 type: integer - start: - description: 'Start date and time of the schedule entry.' - example: '2022-01-02T00:00:00+00:00' - format: date-time - type: string - width: - default: 1 + slot: description: |- - When rendering a period in a calendar view: Specifies how wide the rendered calendar event should - be, as a fractional amount of the width of the whole day. This is useful to arrange multiple - overlapping schedule entries such that all of them are visible. Should be a decimal number - between 0 and 1, and left+width should not exceed 1, but the API currently does not enforce this. - example: 0.4 + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 type: - 'null' - - number + - string required: - - activity - - end - - start + - contentType + - data + - parent + - position type: object - ScheduleEntry-read_ScheduleEntry.Activity: + ResponsiveLayout.jsonld-read: deprecated: false - description: |- - A calendar event in a period of the camp, at which some activity will take place. The start time - is specified as an offset in minutes from the period's start time. + description: '' properties: - activity: - anyOf: + '@context': + oneOf: - - $ref: '#/components/schemas/Activity-read_ScheduleEntry.Activity' + additionalProperties: true + properties: + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] + type: string + required: + - '@vocab' + - hydra + type: object - - type: 'null' + type: string readOnly: true - day: - description: 'The day on which this schedule entry starts.' - example: /days/1a2b3c4d + '@id': + readOnly: true + type: string + '@type': + readOnly: true + type: string + children: + description: 'All content nodes that are direct children of this content node.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + contentType: + description: |- + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d format: iri-reference + type: string + contentTypeName: + description: 'The name of the content type of this content node. Read-only, for convenience.' + example: SafetyConcept readOnly: true + type: string + data: + default: '{"items":[{"slot":"main"},{"slot":"aside-top"},{"slot":"aside-bottom"}]}' + description: |- + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + example: + items: + - + slot: aside-bottom + - + slot: aside-top + - + slot: main + items: + type: string type: + - array - 'null' - - string - dayNumber: - description: 'The day number of the day on which this schedule entry starts.' - example: '1' - readOnly: true - type: integer - end: - description: 'End date and time of the schedule entry.' - example: '2022-01-02T01:30:00+00:00' - format: date-time - type: string id: description: 'An internal, unique, randomly generated identifier of this entity.' example: 1a2b3c4d maxLength: 16 readOnly: true type: string - left: + instanceName: description: |- - When rendering a period in a calendar view: Specifies how far offset the rendered calendar event - should be from the left border of the day column, as a fractional amount of the width of the whole - day. This is useful to arrange multiple overlapping schedule entries such that all of them are - visible. Should be a decimal number between 0 and 1, and left+width should not exceed 1, but the - API currently does not enforce this. - example: 0.6 + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 type: - 'null' - - number - number: + - string + parent: description: |- - Uniquely identifies this schedule entry in the period. This uses the day number, followed - by a period, followed by the cardinal number of the schedule entry in the numbering scheme - defined by the activity's category. - example: 1.b - readOnly: true - type: string - period: - description: 'The time period which this schedule entry is part of. Must belong to the same camp as the activity.' - example: /periods/1a2b3c4d + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d format: iri-reference - type: string - scheduleEntryNumber: + type: + - 'null' + - string + position: + default: -1 description: |- - The cardinal number of this schedule entry, when chronologically ordering all - schedule entries WITH THE SAME NUMBERING STYLE that start on the same day. I.e. if - the schedule entry is the second entry with roman numbering on a given day, its - number will be 2. - example: '2' - readOnly: true + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 type: integer - start: - description: 'Start date and time of the schedule entry.' - example: '2022-01-02T00:00:00+00:00' - format: date-time - type: string - width: - default: 1 + root: description: |- - When rendering a period in a calendar view: Specifies how wide the rendered calendar event should - be, as a fractional amount of the width of the whole day. This is useful to arrange multiple - overlapping schedule entries such that all of them are visible. Should be a decimal number - between 0 and 1, and left+width should not exceed 1, but the API currently does not enforce this. - example: 0.4 + The content node that is the root of the content node tree. Refers to itself in case this + content node is the root. + example: /content_nodes/1a2b3c4d + format: iri-reference + readOnly: true type: - 'null' - - number + - string + slot: + description: |- + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 + type: + - 'null' + - string required: - - activity - - end - - start + - children + - contentType + - data + - position type: object - ScheduleEntry-write: + ResponsiveLayout.jsonld-write_create: deprecated: false - description: |- - A calendar event in a period of the camp, at which some activity will take place. The start time - is specified as an offset in minutes from the period's start time. + description: '' properties: - end: - description: 'End date and time of the schedule entry.' - example: '2022-01-02T01:30:00+00:00' - format: date-time + contentType: + description: |- + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d + format: iri-reference type: string - left: + data: + default: '{"items":[{"slot":"main"},{"slot":"aside-top"},{"slot":"aside-bottom"}]}' description: |- - When rendering a period in a calendar view: Specifies how far offset the rendered calendar event - should be from the left border of the day column, as a fractional amount of the width of the whole - day. This is useful to arrange multiple overlapping schedule entries such that all of them are - visible. Should be a decimal number between 0 and 1, and left+width should not exceed 1, but the - API currently does not enforce this. - example: 0.6 + Holds the actual data of the content node + (overridden from abstract class in order to add specific validation). + example: + items: + - + slot: aside-bottom + - + slot: aside-top + - + slot: main + items: + type: string type: + - array - 'null' - - number - period: - description: 'The time period which this schedule entry is part of. Must belong to the same camp as the activity.' - example: /periods/1a2b3c4d - format: iri-reference - type: string - start: - description: 'Start date and time of the schedule entry.' - example: '2022-01-02T00:00:00+00:00' - format: date-time - type: string - width: - default: 1 + instanceName: description: |- - When rendering a period in a calendar view: Specifies how wide the rendered calendar event should - be, as a fractional amount of the width of the whole day. This is useful to arrange multiple - overlapping schedule entries such that all of them are visible. Should be a decimal number - between 0 and 1, and left+width should not exceed 1, but the API currently does not enforce this. - example: 0.4 + An optional name for this content node. This is useful when planning e.g. an alternative + version of the programme suited for bad weather, in addition to the normal version. + example: Schlechtwetterprogramm + maxLength: 32 type: - 'null' - - number - required: - - end - - start - type: object - ScheduleEntry-write_create: - deprecated: false - description: |- - A calendar event in a period of the camp, at which some activity will take place. The start time - is specified as an offset in minutes from the period's start time. - properties: - activity: + - string + parent: description: |- - The activity that will take place at the time defined by this schedule entry. Can not be changed - once the schedule entry is created. - example: /activities/1a2b3c4d + The parent to which this content node belongs. Is null in case this content node is the + root of a content node tree. For non-root content nodes, the parent can be changed, as long + as the new parent is in the same camp as the old one. + example: /content_nodes/1a2b3c4d format: iri-reference - type: string - end: - description: 'End date and time of the schedule entry.' - example: '2022-01-02T01:30:00+00:00' - format: date-time - type: string - left: - description: |- - When rendering a period in a calendar view: Specifies how far offset the rendered calendar event - should be from the left border of the day column, as a fractional amount of the width of the whole - day. This is useful to arrange multiple overlapping schedule entries such that all of them are - visible. Should be a decimal number between 0 and 1, and left+width should not exceed 1, but the - API currently does not enforce this. - example: 0.6 type: - 'null' - - number - period: - description: 'The time period which this schedule entry is part of. Must belong to the same camp as the activity.' - example: /periods/1a2b3c4d - format: iri-reference - type: string - start: - description: 'Start date and time of the schedule entry.' - example: '2022-01-02T00:00:00+00:00' - format: date-time - type: string - width: - default: 1 + - string + position: + default: -1 description: |- - When rendering a period in a calendar view: Specifies how wide the rendered calendar event should - be, as a fractional amount of the width of the whole day. This is useful to arrange multiple - overlapping schedule entries such that all of them are visible. Should be a decimal number - between 0 and 1, and left+width should not exceed 1, but the API currently does not enforce this. - example: 0.4 + A whole number used for ordering multiple content nodes that are in the same slot of the + same parent. The API does not guarantee the uniqueness of parent+slot+position. + example: -1 + type: integer + slot: + description: |- + The name of the slot in the parent in which this content node resides. The valid slot names + are defined by the content type of the parent. + example: '1' + maxLength: 32 type: - 'null' - - number + - string required: - - activity - - end - - start + - contentType + - data + - parent + - position type: object - ScheduleEntry.jsonapi-read: + ScheduleEntry-read: deprecated: false description: |- A calendar event in a period of the camp, at which some activity will take place. The start time @@ -21281,7 +17405,7 @@ components: - end - start type: object - ScheduleEntry.jsonapi-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: + ScheduleEntry-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries: deprecated: false description: '' properties: @@ -21370,7 +17494,7 @@ components: - end - start type: object - ScheduleEntry.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: + ScheduleEntry-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes: deprecated: false description: '' properties: @@ -21459,7 +17583,7 @@ components: - end - start type: object - ScheduleEntry.jsonapi-read_ScheduleEntry.Activity: + ScheduleEntry-read_ScheduleEntry.Activity: deprecated: false description: |- A calendar event in a period of the camp, at which some activity will take place. The start time @@ -21468,7 +17592,7 @@ components: activity: anyOf: - - $ref: '#/components/schemas/Activity.jsonapi-read_ScheduleEntry.Activity' + $ref: '#/components/schemas/Activity-read_ScheduleEntry.Activity' - type: 'null' readOnly: true @@ -21550,7 +17674,7 @@ components: - end - start type: object - ScheduleEntry.jsonapi-write: + ScheduleEntry-write: deprecated: false description: |- A calendar event in a period of the camp, at which some activity will take place. The start time @@ -21597,7 +17721,7 @@ components: - end - start type: object - ScheduleEntry.jsonapi-write_create: + ScheduleEntry-write_create: deprecated: false description: |- A calendar event in a period of the camp, at which some activity will take place. The start time @@ -21652,6 +17776,110 @@ components: - end - start type: object + ScheduleEntry.jsonapi: + deprecated: false + description: |- + A calendar event in a period of the camp, at which some activity will take place. The start time + is specified as an offset in minutes from the period's start time. + properties: + data: + properties: + attributes: + properties: + _id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string + dayNumber: + description: 'The day number of the day on which this schedule entry starts.' + example: '1' + readOnly: true + type: integer + end: + description: 'End date and time of the schedule entry.' + example: '2022-01-02T01:30:00+00:00' + format: date-time + type: string + left: + description: |- + When rendering a period in a calendar view: Specifies how far offset the rendered calendar event + should be from the left border of the day column, as a fractional amount of the width of the whole + day. This is useful to arrange multiple overlapping schedule entries such that all of them are + visible. Should be a decimal number between 0 and 1, and left+width should not exceed 1, but the + API currently does not enforce this. + example: 0.6 + type: ['null', number] + number: + description: |- + Uniquely identifies this schedule entry in the period. This uses the day number, followed + by a period, followed by the cardinal number of the schedule entry in the numbering scheme + defined by the activity's category. + example: 1.b + readOnly: true + type: string + scheduleEntryNumber: + description: |- + The cardinal number of this schedule entry, when chronologically ordering all + schedule entries WITH THE SAME NUMBERING STYLE that start on the same day. I.e. if + the schedule entry is the second entry with roman numbering on a given day, its + number will be 2. + example: '2' + readOnly: true + type: integer + start: + description: 'Start date and time of the schedule entry.' + example: '2022-01-02T00:00:00+00:00' + format: date-time + type: string + width: + default: 1 + description: |- + When rendering a period in a calendar view: Specifies how wide the rendered calendar event should + be, as a fractional amount of the width of the whole day. This is useful to arrange multiple + overlapping schedule entries such that all of them are visible. Should be a decimal number + between 0 and 1, and left+width should not exceed 1, but the API currently does not enforce this. + example: 0.4 + type: ['null', number] + required: + - end + - start + type: object + id: + type: string + relationships: + properties: + activity: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + day: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + period: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + required: + - activity + type: object + type: + type: string + required: + - id + - type + type: object + included: + description: 'Related resources requested via the "include" query parameter.' + externalDocs: + url: 'https://jsonapi.org/format/#fetching-includes' + items: + anyOf: + - + $ref: '#/components/schemas/Period.jsonapi' + - + $ref: '#/components/schemas/Period.jsonapi' + - + $ref: '#/components/schemas/Period.jsonapi' + readOnly: true + type: array + type: object ScheduleEntry.jsonhal-read: deprecated: false description: |- @@ -22583,254 +18811,39 @@ components: When rendering a period in a calendar view: Specifies how far offset the rendered calendar event should be from the left border of the day column, as a fractional amount of the width of the whole day. This is useful to arrange multiple overlapping schedule entries such that all of them are - visible. Should be a decimal number between 0 and 1, and left+width should not exceed 1, but the - API currently does not enforce this. - example: 0.6 - type: - - 'null' - - number - period: - description: 'The time period which this schedule entry is part of. Must belong to the same camp as the activity.' - example: /periods/1a2b3c4d - format: iri-reference - type: string - start: - description: 'Start date and time of the schedule entry.' - example: '2022-01-02T00:00:00+00:00' - format: date-time - type: string - width: - default: 1 - description: |- - When rendering a period in a calendar view: Specifies how wide the rendered calendar event should - be, as a fractional amount of the width of the whole day. This is useful to arrange multiple - overlapping schedule entries such that all of them are visible. Should be a decimal number - between 0 and 1, and left+width should not exceed 1, but the API currently does not enforce this. - example: 0.4 - type: - - 'null' - - number - required: - - activity - - end - - start - type: object - SingleText-read: - deprecated: false - description: '' - properties: - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept - readOnly: true - type: string - data: - default: '{"html":""}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - html: 'my example text' - items: - type: string - type: - - array - - 'null' - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d - format: iri-reference - readOnly: true - type: - - 'null' - - string - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - children - - contentType - - data - - position - type: object - SingleText-write_create: - deprecated: false - description: '' - properties: - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - data: - default: '{"html":""}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - html: 'my example text' - items: - type: string - type: - - array - - 'null' - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - contentType - - data - - parent - - position - type: object - SingleText-write_update: - deprecated: false - description: '' - properties: - data: - default: '{"html":""}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - html: 'my example text' - items: - type: string - type: - - array - - 'null' - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference + visible. Should be a decimal number between 0 and 1, and left+width should not exceed 1, but the + API currently does not enforce this. + example: 0.6 type: - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - slot: + - number + period: + description: 'The time period which this schedule entry is part of. Must belong to the same camp as the activity.' + example: /periods/1a2b3c4d + format: iri-reference + type: string + start: + description: 'Start date and time of the schedule entry.' + example: '2022-01-02T00:00:00+00:00' + format: date-time + type: string + width: + default: 1 description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 + When rendering a period in a calendar view: Specifies how wide the rendered calendar event should + be, as a fractional amount of the width of the whole day. This is useful to arrange multiple + overlapping schedule entries such that all of them are visible. Should be a decimal number + between 0 and 1, and left+width should not exceed 1, but the API currently does not enforce this. + example: 0.4 type: - 'null' - - string + - number required: - - data - - position + - activity + - end + - start type: object - SingleText.jsonapi-read: + SingleText-read: deprecated: false description: '' properties: @@ -22925,7 +18938,7 @@ components: - data - position type: object - SingleText.jsonapi-write_create: + SingleText-write_create: deprecated: false description: '' properties: @@ -22990,7 +19003,7 @@ components: - parent - position type: object - SingleText.jsonapi-write_update: + SingleText-write_update: deprecated: false description: '' properties: @@ -23045,19 +19058,10 @@ components: - data - position type: object - SingleText.jsonhal-read: + SingleText.jsonapi: deprecated: false description: '' properties: - _links: - properties: - self: - properties: - href: - format: iri-reference - type: string - type: object - type: object children: description: 'All content nodes that are direct children of this content node.' example: '["/content_nodes/1a2b3c4d"]' @@ -23074,6 +19078,7 @@ components: in a content node. The content type may not be changed once the content node is created. example: /content_types/1a2b3c4d format: iri-reference + readOnly: true type: string contentTypeName: description: 'The name of the content type of this content node. Read-only, for convenience.' @@ -23149,7 +19154,7 @@ components: - data - position type: object - SingleText.jsonhal-write_create: + SingleText.jsonhal-read: deprecated: false description: '' properties: @@ -23162,94 +19167,6 @@ components: type: string type: object type: object - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string - data: - default: '{"html":""}' - description: |- - Holds the actual data of the content node - (overridden from abstract class in order to add specific validation). - example: - html: 'my example text' - items: - type: string - type: - - array - - 'null' - instanceName: - description: |- - An optional name for this content node. This is useful when planning e.g. an alternative - version of the programme suited for bad weather, in addition to the normal version. - example: Schlechtwetterprogramm - maxLength: 32 - type: - - 'null' - - string - parent: - description: |- - The parent to which this content node belongs. Is null in case this content node is the - root of a content node tree. For non-root content nodes, the parent can be changed, as long - as the new parent is in the same camp as the old one. - example: /content_nodes/1a2b3c4d - format: iri-reference - type: - - 'null' - - string - position: - default: -1 - description: |- - A whole number used for ordering multiple content nodes that are in the same slot of the - same parent. The API does not guarantee the uniqueness of parent+slot+position. - example: -1 - type: integer - slot: - description: |- - The name of the slot in the parent in which this content node resides. The valid slot names - are defined by the content type of the parent. - example: '1' - maxLength: 32 - type: - - 'null' - - string - required: - - contentType - - data - - parent - - position - type: object - SingleText.jsonld-read: - deprecated: false - description: '' - properties: - '@context': - oneOf: - - - additionalProperties: true - properties: - '@vocab': - type: string - hydra: - enum: ['http://www.w3.org/ns/hydra/core#'] - type: string - required: - - '@vocab' - - hydra - type: object - - - type: string - readOnly: true - '@id': - readOnly: true - type: string - '@type': - readOnly: true - type: string children: description: 'All content nodes that are direct children of this content node.' example: '["/content_nodes/1a2b3c4d"]' @@ -23341,10 +19258,19 @@ components: - data - position type: object - SingleText.jsonld-write_create: + SingleText.jsonhal-write_create: deprecated: false description: '' properties: + _links: + properties: + self: + properties: + href: + format: iri-reference + type: string + type: object + type: object contentType: description: |- Defines the type of this content node. There is a fixed list of types that are implemented @@ -23406,10 +19332,33 @@ components: - parent - position type: object - Storyboard-read: + SingleText.jsonld-read: deprecated: false description: '' properties: + '@context': + oneOf: + - + additionalProperties: true + properties: + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] + type: string + required: + - '@vocab' + - hydra + type: object + - + type: string + readOnly: true + '@id': + readOnly: true + type: string + '@type': + readOnly: true + type: string children: description: 'All content nodes that are direct children of this content node.' example: '["/content_nodes/1a2b3c4d"]' @@ -23433,16 +19382,12 @@ components: readOnly: true type: string data: + default: '{"html":""}' description: |- Holds the actual data of the content node (overridden from abstract class in order to add specific validation). example: - sections: - 186b7ff2-7470-4de4-8783-082c2c189fcd: - column1: '' - column2Html: '' - column3: '' - position: 0 + html: 'my example text' items: type: string type: @@ -23502,9 +19447,10 @@ components: required: - children - contentType + - data - position type: object - Storyboard-write_create: + SingleText.jsonld-write_create: deprecated: false description: '' properties: @@ -23517,16 +19463,12 @@ components: format: iri-reference type: string data: + default: '{"html":""}' description: |- Holds the actual data of the content node (overridden from abstract class in order to add specific validation). example: - sections: - 186b7ff2-7470-4de4-8783-082c2c189fcd: - column1: '' - column2Html: '' - column3: '' - position: 0 + html: 'my example text' items: type: string type: @@ -23569,13 +19511,36 @@ components: - string required: - contentType + - data - parent - position type: object - Storyboard-write_update: + Storyboard-read: deprecated: false description: '' properties: + children: + description: 'All content nodes that are direct children of this content node.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + contentType: + description: |- + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d + format: iri-reference + type: string + contentTypeName: + description: 'The name of the content type of this content node. Read-only, for convenience.' + example: SafetyConcept + readOnly: true + type: string data: description: |- Holds the actual data of the content node @@ -23592,6 +19557,12 @@ components: type: - array - 'null' + id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string instanceName: description: |- An optional name for this content node. This is useful when planning e.g. an alternative @@ -23618,6 +19589,16 @@ components: same parent. The API does not guarantee the uniqueness of parent+slot+position. example: -1 type: integer + root: + description: |- + The content node that is the root of the content node tree. Refers to itself in case this + content node is the root. + example: /content_nodes/1a2b3c4d + format: iri-reference + readOnly: true + type: + - 'null' + - string slot: description: |- The name of the slot in the parent in which this content node resides. The valid slot names @@ -23628,22 +19609,14 @@ components: - 'null' - string required: - - data + - children + - contentType - position type: object - Storyboard.jsonapi-read: - deprecated: false - description: '' - properties: - children: - description: 'All content nodes that are direct children of this content node.' - example: '["/content_nodes/1a2b3c4d"]' - items: - example: 'https://example.com/' - format: iri-reference - type: string - readOnly: true - type: array + Storyboard-write_create: + deprecated: false + description: '' + properties: contentType: description: |- Defines the type of this content node. There is a fixed list of types that are implemented @@ -23652,11 +19625,6 @@ components: example: /content_types/1a2b3c4d format: iri-reference type: string - contentTypeName: - description: 'The name of the content type of this content node. Read-only, for convenience.' - example: SafetyConcept - readOnly: true - type: string data: description: |- Holds the actual data of the content node @@ -23673,12 +19641,6 @@ components: type: - array - 'null' - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string instanceName: description: |- An optional name for this content node. This is useful when planning e.g. an alternative @@ -23705,16 +19667,6 @@ components: same parent. The API does not guarantee the uniqueness of parent+slot+position. example: -1 type: integer - root: - description: |- - The content node that is the root of the content node tree. Refers to itself in case this - content node is the root. - example: /content_nodes/1a2b3c4d - format: iri-reference - readOnly: true - type: - - 'null' - - string slot: description: |- The name of the slot in the parent in which this content node resides. The valid slot names @@ -23725,22 +19677,14 @@ components: - 'null' - string required: - - children - contentType + - parent - position type: object - Storyboard.jsonapi-write_create: + Storyboard-write_update: deprecated: false description: '' properties: - contentType: - description: |- - Defines the type of this content node. There is a fixed list of types that are implemented - in eCamp. Depending on the type, different content data and different slots may be allowed - in a content node. The content type may not be changed once the content node is created. - example: /content_types/1a2b3c4d - format: iri-reference - type: string data: description: |- Holds the actual data of the content node @@ -23793,14 +19737,36 @@ components: - 'null' - string required: - - contentType - - parent + - data - position type: object - Storyboard.jsonapi-write_update: + Storyboard.jsonapi: deprecated: false description: '' properties: + children: + description: 'All content nodes that are direct children of this content node.' + example: '["/content_nodes/1a2b3c4d"]' + items: + example: 'https://example.com/' + format: iri-reference + type: string + readOnly: true + type: array + contentType: + description: |- + Defines the type of this content node. There is a fixed list of types that are implemented + in eCamp. Depending on the type, different content data and different slots may be allowed + in a content node. The content type may not be changed once the content node is created. + example: /content_types/1a2b3c4d + format: iri-reference + readOnly: true + type: string + contentTypeName: + description: 'The name of the content type of this content node. Read-only, for convenience.' + example: SafetyConcept + readOnly: true + type: string data: description: |- Holds the actual data of the content node @@ -23817,6 +19783,12 @@ components: type: - array - 'null' + id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string instanceName: description: |- An optional name for this content node. This is useful when planning e.g. an alternative @@ -23843,6 +19815,16 @@ components: same parent. The API does not guarantee the uniqueness of parent+slot+position. example: -1 type: integer + root: + description: |- + The content node that is the root of the content node tree. Refers to itself in case this + content node is the root. + example: /content_nodes/1a2b3c4d + format: iri-reference + readOnly: true + type: + - 'null' + - string slot: description: |- The name of the slot in the parent in which this content node resides. The valid slot names @@ -23853,7 +19835,8 @@ components: - 'null' - string required: - - data + - children + - contentType - position type: object Storyboard.jsonhal-read: @@ -24405,181 +20388,69 @@ components: - password - profile type: object - User.jsonapi-activate: - deprecated: false - description: |- - A person using eCamp. - The properties available for all other eCamp users are here. - properties: - activationKey: - description: 'User-Input for activation.' - type: - - 'null' - - string - writeOnly: true - type: object - User.jsonapi-read: - deprecated: false - description: |- - A person using eCamp. - The properties available for all other eCamp users are here. - properties: - displayName: - description: 'A displayable name of the user.' - example: 'Robert Baden-Powell' - readOnly: true - type: - - 'null' - - string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - profile: - example: - email: bi-pi@example.com - firstname: Robert - language: en - nickname: Bi-Pi - surname: Baden-Powell - format: iri-reference - type: string - type: object - User.jsonapi-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User: - deprecated: false - description: '' - properties: - displayName: - description: 'A displayable name of the user.' - example: 'Robert Baden-Powell' - readOnly: true - type: - - 'null' - - string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - profile: - example: - email: bi-pi@example.com - firstname: Robert - language: en - nickname: Bi-Pi - surname: Baden-Powell - format: iri-reference - type: string - type: object - User.jsonapi-read_CampCollaboration.Camp_CampCollaboration.User: - deprecated: false - description: '' - properties: - displayName: - description: 'A displayable name of the user.' - example: 'Robert Baden-Powell' - readOnly: true - type: - - 'null' - - string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - profile: - example: - email: bi-pi@example.com - firstname: Robert - language: en - nickname: Bi-Pi - surname: Baden-Powell - format: iri-reference - type: string - type: object - User.jsonapi-read_User.create: + User.jsonapi: deprecated: false description: |- A person using eCamp. The properties available for all other eCamp users are here. properties: - displayName: - description: 'A displayable name of the user.' - example: 'Robert Baden-Powell' - readOnly: true - type: - - 'null' - - string - id: - description: 'An internal, unique, randomly generated identifier of this entity.' - example: 1a2b3c4d - maxLength: 16 - readOnly: true - type: string - profile: - $ref: '#/components/schemas/Profile.jsonapi-read_User.create' + data: + properties: + attributes: + properties: + _id: + description: 'An internal, unique, randomly generated identifier of this entity.' + example: 1a2b3c4d + maxLength: 16 + readOnly: true + type: string + activationKey: + description: 'User-Input for activation.' + type: ['null', string] + writeOnly: true + displayName: + description: 'A displayable name of the user.' + example: 'Robert Baden-Powell' + readOnly: true + type: ['null', string] + password: + description: |- + A new password for this user. At least 12 characters, as is explicitly recommended by OWASP: + https://github.com/OWASP/ASVS/blob/master/4.0/en/0x11-V2-Authentication.md#v21-password-security + 2.1.1: Verify that user set passwords are at least 12 characters in length (after multiple spaces are combined). + example: learning-by-doing-101 + maxLength: 128 + minLength: 12 + type: ['null', string] + writeOnly: true + recaptchaToken: + description: 'ReCaptchaToken used on Register-View.' + type: ['null', string] + writeOnly: true + type: object + id: + type: string + relationships: + properties: + profile: + properties: { data: { properties: { id: { format: iri-reference, type: string }, type: { type: string } }, type: object } } + type: object + type: + type: string + required: + - id + - type + type: object + included: + description: 'Related resources requested via the "include" query parameter.' + externalDocs: + url: 'https://jsonapi.org/format/#fetching-includes' + items: + anyOf: + - + $ref: '#/components/schemas/Profile.jsonapi' readOnly: true - required: - - profile - type: object - User.jsonapi-write: - deprecated: false - description: |- - A person using eCamp. - The properties available for all other eCamp users are here. - properties: - password: - description: |- - A new password for this user. At least 12 characters, as is explicitly recommended by OWASP: - https://github.com/OWASP/ASVS/blob/master/4.0/en/0x11-V2-Authentication.md#v21-password-security - 2.1.1: Verify that user set passwords are at least 12 characters in length (after multiple spaces are combined). - example: learning-by-doing-101 - maxLength: 128 - minLength: 12 - type: - - 'null' - - string - writeOnly: true - type: object - User.jsonapi-write_create: - deprecated: false - description: |- - A person using eCamp. - The properties available for all other eCamp users are here. - properties: - password: - description: |- - A new password for this user. At least 12 characters, as is explicitly recommended by OWASP: - https://github.com/OWASP/ASVS/blob/master/4.0/en/0x11-V2-Authentication.md#v21-password-security - 2.1.1: Verify that user set passwords are at least 12 characters in length (after multiple spaces are combined). - example: learning-by-doing-101 - maxLength: 128 - minLength: 12 - type: - - 'null' - - string - writeOnly: true - profile: - $ref: '#/components/schemas/Profile.jsonapi-write_create' - example: - email: bi-pi@example.com - firstname: Robert - language: en - nickname: Bi-Pi - surname: Baden-Powell - recaptchaToken: - description: 'ReCaptchaToken used on Register-View.' - type: - - 'null' - - string - writeOnly: true - required: - - password - - profile + type: array type: object User.jsonhal-read: deprecated: false @@ -25081,7 +20952,7 @@ paths: application/vnd.api+json: schema: items: - $ref: '#/components/schemas/Activity.jsonapi-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' + $ref: '#/components/schemas/Activity.jsonapi' type: array text/html: schema: @@ -25111,7 +20982,7 @@ paths: $ref: '#/components/schemas/Activity.jsonld-write_create' application/vnd.api+json: schema: - $ref: '#/components/schemas/Activity.jsonapi-write_create' + $ref: '#/components/schemas/Activity.jsonapi' text/html: schema: $ref: '#/components/schemas/Activity-write_create' @@ -25131,7 +21002,7 @@ paths: $ref: '#/components/schemas/Activity.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' application/vnd.api+json: schema: - $ref: '#/components/schemas/Activity.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' + $ref: '#/components/schemas/Activity.jsonapi' text/html: schema: $ref: '#/components/schemas/Activity-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' @@ -25201,7 +21072,7 @@ paths: $ref: '#/components/schemas/Activity.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' application/vnd.api+json: schema: - $ref: '#/components/schemas/Activity.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' + $ref: '#/components/schemas/Activity.jsonapi' text/html: schema: $ref: '#/components/schemas/Activity-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' @@ -25236,7 +21107,7 @@ paths: $ref: '#/components/schemas/Activity-write' application/vnd.api+json: schema: - $ref: '#/components/schemas/Activity.jsonapi-write' + $ref: '#/components/schemas/Activity.jsonapi' description: 'The updated Activity resource' required: true responses: @@ -25253,7 +21124,7 @@ paths: $ref: '#/components/schemas/Activity.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' application/vnd.api+json: schema: - $ref: '#/components/schemas/Activity.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' + $ref: '#/components/schemas/Activity.jsonapi' text/html: schema: $ref: '#/components/schemas/Activity-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' @@ -25332,7 +21203,7 @@ paths: application/vnd.api+json: schema: items: - $ref: '#/components/schemas/ActivityProgressLabel.jsonapi-read' + $ref: '#/components/schemas/ActivityProgressLabel.jsonapi' type: array text/html: schema: @@ -25362,7 +21233,7 @@ paths: $ref: '#/components/schemas/ActivityProgressLabel.jsonld-write_create' application/vnd.api+json: schema: - $ref: '#/components/schemas/ActivityProgressLabel.jsonapi-write_create' + $ref: '#/components/schemas/ActivityProgressLabel.jsonapi' text/html: schema: $ref: '#/components/schemas/ActivityProgressLabel-write_create' @@ -25382,7 +21253,7 @@ paths: $ref: '#/components/schemas/ActivityProgressLabel.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/ActivityProgressLabel.jsonapi-read' + $ref: '#/components/schemas/ActivityProgressLabel.jsonapi' text/html: schema: $ref: '#/components/schemas/ActivityProgressLabel-read' @@ -25452,7 +21323,7 @@ paths: $ref: '#/components/schemas/ActivityProgressLabel.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/ActivityProgressLabel.jsonapi-read' + $ref: '#/components/schemas/ActivityProgressLabel.jsonapi' text/html: schema: $ref: '#/components/schemas/ActivityProgressLabel-read' @@ -25487,7 +21358,7 @@ paths: $ref: '#/components/schemas/ActivityProgressLabel-write' application/vnd.api+json: schema: - $ref: '#/components/schemas/ActivityProgressLabel.jsonapi-write' + $ref: '#/components/schemas/ActivityProgressLabel.jsonapi' description: 'The updated ActivityProgressLabel resource' required: true responses: @@ -25504,7 +21375,7 @@ paths: $ref: '#/components/schemas/ActivityProgressLabel.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/ActivityProgressLabel.jsonapi-read' + $ref: '#/components/schemas/ActivityProgressLabel.jsonapi' text/html: schema: $ref: '#/components/schemas/ActivityProgressLabel-read' @@ -25609,7 +21480,7 @@ paths: application/vnd.api+json: schema: items: - $ref: '#/components/schemas/ActivityResponsible.jsonapi-read' + $ref: '#/components/schemas/ActivityResponsible.jsonapi' type: array text/html: schema: @@ -25639,7 +21510,7 @@ paths: $ref: '#/components/schemas/ActivityResponsible.jsonld-write' application/vnd.api+json: schema: - $ref: '#/components/schemas/ActivityResponsible.jsonapi-write' + $ref: '#/components/schemas/ActivityResponsible.jsonapi' text/html: schema: $ref: '#/components/schemas/ActivityResponsible-write' @@ -25659,7 +21530,7 @@ paths: $ref: '#/components/schemas/ActivityResponsible.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/ActivityResponsible.jsonapi-read' + $ref: '#/components/schemas/ActivityResponsible.jsonapi' text/html: schema: $ref: '#/components/schemas/ActivityResponsible-read' @@ -25729,7 +21600,7 @@ paths: $ref: '#/components/schemas/ActivityResponsible.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/ActivityResponsible.jsonapi-read' + $ref: '#/components/schemas/ActivityResponsible.jsonapi' text/html: schema: $ref: '#/components/schemas/ActivityResponsible-read' @@ -25856,7 +21727,7 @@ paths: $ref: '#/components/schemas/ResetPassword.jsonld-create' application/vnd.api+json: schema: - $ref: '#/components/schemas/ResetPassword.jsonapi-create' + $ref: '#/components/schemas/ResetPassword.jsonapi' text/html: schema: $ref: '#/components/schemas/ResetPassword-create' @@ -25951,7 +21822,7 @@ paths: $ref: '#/components/schemas/ResetPassword-update' application/vnd.api+json: schema: - $ref: '#/components/schemas/ResetPassword.jsonapi-update' + $ref: '#/components/schemas/ResetPassword.jsonapi' description: 'The updated ResetPassword resource' required: true responses: @@ -26109,7 +21980,7 @@ paths: application/vnd.api+json: schema: items: - $ref: '#/components/schemas/CampCollaboration.jsonapi-read_CampCollaboration.Camp_CampCollaboration.User' + $ref: '#/components/schemas/CampCollaboration.jsonapi' type: array text/html: schema: @@ -26139,7 +22010,7 @@ paths: $ref: '#/components/schemas/CampCollaboration.jsonld-write_create' application/vnd.api+json: schema: - $ref: '#/components/schemas/CampCollaboration.jsonapi-write_create' + $ref: '#/components/schemas/CampCollaboration.jsonapi' text/html: schema: $ref: '#/components/schemas/CampCollaboration-write_create' @@ -26159,7 +22030,7 @@ paths: $ref: '#/components/schemas/CampCollaboration.jsonld-read_CampCollaboration.Camp_CampCollaboration.User' application/vnd.api+json: schema: - $ref: '#/components/schemas/CampCollaboration.jsonapi-read_CampCollaboration.Camp_CampCollaboration.User' + $ref: '#/components/schemas/CampCollaboration.jsonapi' text/html: schema: $ref: '#/components/schemas/CampCollaboration-read_CampCollaboration.Camp_CampCollaboration.User' @@ -26229,7 +22100,7 @@ paths: $ref: '#/components/schemas/CampCollaboration.jsonld-read_CampCollaboration.Camp_CampCollaboration.User' application/vnd.api+json: schema: - $ref: '#/components/schemas/CampCollaboration.jsonapi-read_CampCollaboration.Camp_CampCollaboration.User' + $ref: '#/components/schemas/CampCollaboration.jsonapi' text/html: schema: $ref: '#/components/schemas/CampCollaboration-read_CampCollaboration.Camp_CampCollaboration.User' @@ -26264,7 +22135,7 @@ paths: $ref: '#/components/schemas/CampCollaboration-write_update' application/vnd.api+json: schema: - $ref: '#/components/schemas/CampCollaboration.jsonapi-write_update' + $ref: '#/components/schemas/CampCollaboration.jsonapi' description: 'The updated CampCollaboration resource' required: true responses: @@ -26281,7 +22152,7 @@ paths: $ref: '#/components/schemas/CampCollaboration.jsonld-read_CampCollaboration.Camp_CampCollaboration.User' application/vnd.api+json: schema: - $ref: '#/components/schemas/CampCollaboration.jsonapi-read_CampCollaboration.Camp_CampCollaboration.User' + $ref: '#/components/schemas/CampCollaboration.jsonapi' text/html: schema: $ref: '#/components/schemas/CampCollaboration-read_CampCollaboration.Camp_CampCollaboration.User' @@ -26322,7 +22193,7 @@ paths: $ref: '#/components/schemas/CampCollaboration-resend_invitation' application/vnd.api+json: schema: - $ref: '#/components/schemas/CampCollaboration.jsonapi-resend_invitation' + $ref: '#/components/schemas/CampCollaboration.jsonapi' description: 'The updated CampCollaboration resource' required: true responses: @@ -26339,7 +22210,7 @@ paths: $ref: '#/components/schemas/CampCollaboration.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/CampCollaboration.jsonapi-read' + $ref: '#/components/schemas/CampCollaboration.jsonapi' text/html: schema: $ref: '#/components/schemas/CampCollaboration-read' @@ -26418,7 +22289,7 @@ paths: application/vnd.api+json: schema: items: - $ref: '#/components/schemas/Camp.jsonapi-read' + $ref: '#/components/schemas/Camp.jsonapi' type: array text/html: schema: @@ -26448,7 +22319,7 @@ paths: $ref: '#/components/schemas/Camp.jsonld-write_create' application/vnd.api+json: schema: - $ref: '#/components/schemas/Camp.jsonapi-write_create' + $ref: '#/components/schemas/Camp.jsonapi' text/html: schema: $ref: '#/components/schemas/Camp-write_create' @@ -26468,7 +22339,7 @@ paths: $ref: '#/components/schemas/Camp.jsonld-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' application/vnd.api+json: schema: - $ref: '#/components/schemas/Camp.jsonapi-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' + $ref: '#/components/schemas/Camp.jsonapi' text/html: schema: $ref: '#/components/schemas/Camp-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' @@ -26538,7 +22409,7 @@ paths: $ref: '#/components/schemas/Camp.jsonld-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' application/vnd.api+json: schema: - $ref: '#/components/schemas/Camp.jsonapi-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' + $ref: '#/components/schemas/Camp.jsonapi' text/html: schema: $ref: '#/components/schemas/Camp-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' @@ -26573,7 +22444,7 @@ paths: $ref: '#/components/schemas/Camp-write_update' application/vnd.api+json: schema: - $ref: '#/components/schemas/Camp.jsonapi-write_update' + $ref: '#/components/schemas/Camp.jsonapi' description: 'The updated Camp resource' required: true responses: @@ -26590,7 +22461,7 @@ paths: $ref: '#/components/schemas/Camp.jsonld-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' application/vnd.api+json: schema: - $ref: '#/components/schemas/Camp.jsonapi-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' + $ref: '#/components/schemas/Camp.jsonapi' text/html: schema: $ref: '#/components/schemas/Camp-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' @@ -26669,7 +22540,7 @@ paths: application/vnd.api+json: schema: items: - $ref: '#/components/schemas/Category.jsonapi-read' + $ref: '#/components/schemas/Category.jsonapi' type: array text/html: schema: @@ -26699,7 +22570,7 @@ paths: $ref: '#/components/schemas/Category.jsonld-write_create' application/vnd.api+json: schema: - $ref: '#/components/schemas/Category.jsonapi-write_create' + $ref: '#/components/schemas/Category.jsonapi' text/html: schema: $ref: '#/components/schemas/Category-write_create' @@ -26719,7 +22590,7 @@ paths: $ref: '#/components/schemas/Category.jsonld-read_Category.PreferredContentTypes_Category.ContentNodes' application/vnd.api+json: schema: - $ref: '#/components/schemas/Category.jsonapi-read_Category.PreferredContentTypes_Category.ContentNodes' + $ref: '#/components/schemas/Category.jsonapi' text/html: schema: $ref: '#/components/schemas/Category-read_Category.PreferredContentTypes_Category.ContentNodes' @@ -26789,7 +22660,7 @@ paths: $ref: '#/components/schemas/Category.jsonld-read_Category.PreferredContentTypes_Category.ContentNodes' application/vnd.api+json: schema: - $ref: '#/components/schemas/Category.jsonapi-read_Category.PreferredContentTypes_Category.ContentNodes' + $ref: '#/components/schemas/Category.jsonapi' text/html: schema: $ref: '#/components/schemas/Category-read_Category.PreferredContentTypes_Category.ContentNodes' @@ -26824,7 +22695,7 @@ paths: $ref: '#/components/schemas/Category-write_update' application/vnd.api+json: schema: - $ref: '#/components/schemas/Category.jsonapi-write_update' + $ref: '#/components/schemas/Category.jsonapi' description: 'The updated Category resource' required: true responses: @@ -26841,7 +22712,7 @@ paths: $ref: '#/components/schemas/Category.jsonld-read_Category.PreferredContentTypes_Category.ContentNodes' application/vnd.api+json: schema: - $ref: '#/components/schemas/Category.jsonapi-read_Category.PreferredContentTypes_Category.ContentNodes' + $ref: '#/components/schemas/Category.jsonapi' text/html: schema: $ref: '#/components/schemas/Category-read_Category.PreferredContentTypes_Category.ContentNodes' @@ -26958,7 +22829,7 @@ paths: application/vnd.api+json: schema: items: - $ref: '#/components/schemas/ColumnLayout.jsonapi-read' + $ref: '#/components/schemas/ColumnLayout.jsonapi' type: array text/html: schema: @@ -26988,7 +22859,7 @@ paths: $ref: '#/components/schemas/ColumnLayout.jsonld-write_create' application/vnd.api+json: schema: - $ref: '#/components/schemas/ColumnLayout.jsonapi-write_create' + $ref: '#/components/schemas/ColumnLayout.jsonapi' text/html: schema: $ref: '#/components/schemas/ColumnLayout-write_create' @@ -27008,7 +22879,7 @@ paths: $ref: '#/components/schemas/ColumnLayout.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/ColumnLayout.jsonapi-read' + $ref: '#/components/schemas/ColumnLayout.jsonapi' text/html: schema: $ref: '#/components/schemas/ColumnLayout-read' @@ -27078,7 +22949,7 @@ paths: $ref: '#/components/schemas/ColumnLayout.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/ColumnLayout.jsonapi-read' + $ref: '#/components/schemas/ColumnLayout.jsonapi' text/html: schema: $ref: '#/components/schemas/ColumnLayout-read' @@ -27113,7 +22984,7 @@ paths: $ref: '#/components/schemas/ColumnLayout-write_update' application/vnd.api+json: schema: - $ref: '#/components/schemas/ColumnLayout.jsonapi-write_update' + $ref: '#/components/schemas/ColumnLayout.jsonapi' description: 'The updated ColumnLayout resource' required: true responses: @@ -27130,7 +23001,7 @@ paths: $ref: '#/components/schemas/ColumnLayout.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/ColumnLayout.jsonapi-read' + $ref: '#/components/schemas/ColumnLayout.jsonapi' text/html: schema: $ref: '#/components/schemas/ColumnLayout-read' @@ -27247,7 +23118,7 @@ paths: application/vnd.api+json: schema: items: - $ref: '#/components/schemas/MaterialNode.jsonapi-read' + $ref: '#/components/schemas/MaterialNode.jsonapi' type: array text/html: schema: @@ -27277,7 +23148,7 @@ paths: $ref: '#/components/schemas/MaterialNode.jsonld-write_create' application/vnd.api+json: schema: - $ref: '#/components/schemas/MaterialNode.jsonapi-write_create' + $ref: '#/components/schemas/MaterialNode.jsonapi' text/html: schema: $ref: '#/components/schemas/MaterialNode-write_create' @@ -27297,7 +23168,7 @@ paths: $ref: '#/components/schemas/MaterialNode.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/MaterialNode.jsonapi-read' + $ref: '#/components/schemas/MaterialNode.jsonapi' text/html: schema: $ref: '#/components/schemas/MaterialNode-read' @@ -27367,7 +23238,7 @@ paths: $ref: '#/components/schemas/MaterialNode.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/MaterialNode.jsonapi-read' + $ref: '#/components/schemas/MaterialNode.jsonapi' text/html: schema: $ref: '#/components/schemas/MaterialNode-read' @@ -27402,7 +23273,7 @@ paths: $ref: '#/components/schemas/MaterialNode-write_update' application/vnd.api+json: schema: - $ref: '#/components/schemas/MaterialNode.jsonapi-write_update' + $ref: '#/components/schemas/MaterialNode.jsonapi' description: 'The updated MaterialNode resource' required: true responses: @@ -27419,7 +23290,7 @@ paths: $ref: '#/components/schemas/MaterialNode.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/MaterialNode.jsonapi-read' + $ref: '#/components/schemas/MaterialNode.jsonapi' text/html: schema: $ref: '#/components/schemas/MaterialNode-read' @@ -27536,7 +23407,7 @@ paths: application/vnd.api+json: schema: items: - $ref: '#/components/schemas/MultiSelect.jsonapi-read' + $ref: '#/components/schemas/MultiSelect.jsonapi' type: array text/html: schema: @@ -27566,7 +23437,7 @@ paths: $ref: '#/components/schemas/MultiSelect.jsonld-write_create' application/vnd.api+json: schema: - $ref: '#/components/schemas/MultiSelect.jsonapi-write_create' + $ref: '#/components/schemas/MultiSelect.jsonapi' text/html: schema: $ref: '#/components/schemas/MultiSelect-write_create' @@ -27586,7 +23457,7 @@ paths: $ref: '#/components/schemas/MultiSelect.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/MultiSelect.jsonapi-read' + $ref: '#/components/schemas/MultiSelect.jsonapi' text/html: schema: $ref: '#/components/schemas/MultiSelect-read' @@ -27656,7 +23527,7 @@ paths: $ref: '#/components/schemas/MultiSelect.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/MultiSelect.jsonapi-read' + $ref: '#/components/schemas/MultiSelect.jsonapi' text/html: schema: $ref: '#/components/schemas/MultiSelect-read' @@ -27691,7 +23562,7 @@ paths: $ref: '#/components/schemas/MultiSelect-write_update' application/vnd.api+json: schema: - $ref: '#/components/schemas/MultiSelect.jsonapi-write_update' + $ref: '#/components/schemas/MultiSelect.jsonapi' description: 'The updated MultiSelect resource' required: true responses: @@ -27708,7 +23579,7 @@ paths: $ref: '#/components/schemas/MultiSelect.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/MultiSelect.jsonapi-read' + $ref: '#/components/schemas/MultiSelect.jsonapi' text/html: schema: $ref: '#/components/schemas/MultiSelect-read' @@ -27825,7 +23696,7 @@ paths: application/vnd.api+json: schema: items: - $ref: '#/components/schemas/ResponsiveLayout.jsonapi-read' + $ref: '#/components/schemas/ResponsiveLayout.jsonapi' type: array text/html: schema: @@ -27855,7 +23726,7 @@ paths: $ref: '#/components/schemas/ResponsiveLayout.jsonld-write_create' application/vnd.api+json: schema: - $ref: '#/components/schemas/ResponsiveLayout.jsonapi-write_create' + $ref: '#/components/schemas/ResponsiveLayout.jsonapi' text/html: schema: $ref: '#/components/schemas/ResponsiveLayout-write_create' @@ -27875,7 +23746,7 @@ paths: $ref: '#/components/schemas/ResponsiveLayout.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/ResponsiveLayout.jsonapi-read' + $ref: '#/components/schemas/ResponsiveLayout.jsonapi' text/html: schema: $ref: '#/components/schemas/ResponsiveLayout-read' @@ -27945,7 +23816,7 @@ paths: $ref: '#/components/schemas/ResponsiveLayout.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/ResponsiveLayout.jsonapi-read' + $ref: '#/components/schemas/ResponsiveLayout.jsonapi' text/html: schema: $ref: '#/components/schemas/ResponsiveLayout-read' @@ -27980,7 +23851,7 @@ paths: $ref: '#/components/schemas/ResponsiveLayout-write_update' application/vnd.api+json: schema: - $ref: '#/components/schemas/ResponsiveLayout.jsonapi-write_update' + $ref: '#/components/schemas/ResponsiveLayout.jsonapi' description: 'The updated ResponsiveLayout resource' required: true responses: @@ -27997,7 +23868,7 @@ paths: $ref: '#/components/schemas/ResponsiveLayout.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/ResponsiveLayout.jsonapi-read' + $ref: '#/components/schemas/ResponsiveLayout.jsonapi' text/html: schema: $ref: '#/components/schemas/ResponsiveLayout-read' @@ -28114,7 +23985,7 @@ paths: application/vnd.api+json: schema: items: - $ref: '#/components/schemas/SingleText.jsonapi-read' + $ref: '#/components/schemas/SingleText.jsonapi' type: array text/html: schema: @@ -28144,7 +24015,7 @@ paths: $ref: '#/components/schemas/SingleText.jsonld-write_create' application/vnd.api+json: schema: - $ref: '#/components/schemas/SingleText.jsonapi-write_create' + $ref: '#/components/schemas/SingleText.jsonapi' text/html: schema: $ref: '#/components/schemas/SingleText-write_create' @@ -28164,7 +24035,7 @@ paths: $ref: '#/components/schemas/SingleText.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/SingleText.jsonapi-read' + $ref: '#/components/schemas/SingleText.jsonapi' text/html: schema: $ref: '#/components/schemas/SingleText-read' @@ -28234,7 +24105,7 @@ paths: $ref: '#/components/schemas/SingleText.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/SingleText.jsonapi-read' + $ref: '#/components/schemas/SingleText.jsonapi' text/html: schema: $ref: '#/components/schemas/SingleText-read' @@ -28269,7 +24140,7 @@ paths: $ref: '#/components/schemas/SingleText-write_update' application/vnd.api+json: schema: - $ref: '#/components/schemas/SingleText.jsonapi-write_update' + $ref: '#/components/schemas/SingleText.jsonapi' description: 'The updated SingleText resource' required: true responses: @@ -28286,7 +24157,7 @@ paths: $ref: '#/components/schemas/SingleText.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/SingleText.jsonapi-read' + $ref: '#/components/schemas/SingleText.jsonapi' text/html: schema: $ref: '#/components/schemas/SingleText-read' @@ -28403,7 +24274,7 @@ paths: application/vnd.api+json: schema: items: - $ref: '#/components/schemas/Storyboard.jsonapi-read' + $ref: '#/components/schemas/Storyboard.jsonapi' type: array text/html: schema: @@ -28433,7 +24304,7 @@ paths: $ref: '#/components/schemas/Storyboard.jsonld-write_create' application/vnd.api+json: schema: - $ref: '#/components/schemas/Storyboard.jsonapi-write_create' + $ref: '#/components/schemas/Storyboard.jsonapi' text/html: schema: $ref: '#/components/schemas/Storyboard-write_create' @@ -28453,7 +24324,7 @@ paths: $ref: '#/components/schemas/Storyboard.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/Storyboard.jsonapi-read' + $ref: '#/components/schemas/Storyboard.jsonapi' text/html: schema: $ref: '#/components/schemas/Storyboard-read' @@ -28523,7 +24394,7 @@ paths: $ref: '#/components/schemas/Storyboard.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/Storyboard.jsonapi-read' + $ref: '#/components/schemas/Storyboard.jsonapi' text/html: schema: $ref: '#/components/schemas/Storyboard-read' @@ -28558,7 +24429,7 @@ paths: $ref: '#/components/schemas/Storyboard-write_update' application/vnd.api+json: schema: - $ref: '#/components/schemas/Storyboard.jsonapi-write_update' + $ref: '#/components/schemas/Storyboard.jsonapi' description: 'The updated Storyboard resource' required: true responses: @@ -28575,7 +24446,7 @@ paths: $ref: '#/components/schemas/Storyboard.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/Storyboard.jsonapi-read' + $ref: '#/components/schemas/Storyboard.jsonapi' text/html: schema: $ref: '#/components/schemas/Storyboard-read' @@ -28692,7 +24563,7 @@ paths: application/vnd.api+json: schema: items: - $ref: '#/components/schemas/ContentNode.jsonapi-read' + $ref: '#/components/schemas/ContentNode.jsonapi' type: array text/html: schema: @@ -28768,7 +24639,7 @@ paths: application/vnd.api+json: schema: items: - $ref: '#/components/schemas/ContentType.jsonapi-read' + $ref: '#/components/schemas/ContentType.jsonapi' type: array text/html: schema: @@ -28812,7 +24683,7 @@ paths: $ref: '#/components/schemas/ContentType.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/ContentType.jsonapi-read' + $ref: '#/components/schemas/ContentType.jsonapi' text/html: schema: $ref: '#/components/schemas/ContentType-read' @@ -28913,7 +24784,7 @@ paths: application/vnd.api+json: schema: items: - $ref: '#/components/schemas/DayResponsible.jsonapi-read' + $ref: '#/components/schemas/DayResponsible.jsonapi' type: array text/html: schema: @@ -28943,7 +24814,7 @@ paths: $ref: '#/components/schemas/DayResponsible.jsonld-write' application/vnd.api+json: schema: - $ref: '#/components/schemas/DayResponsible.jsonapi-write' + $ref: '#/components/schemas/DayResponsible.jsonapi' text/html: schema: $ref: '#/components/schemas/DayResponsible-write' @@ -28963,7 +24834,7 @@ paths: $ref: '#/components/schemas/DayResponsible.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/DayResponsible.jsonapi-read' + $ref: '#/components/schemas/DayResponsible.jsonapi' text/html: schema: $ref: '#/components/schemas/DayResponsible-read' @@ -29033,7 +24904,7 @@ paths: $ref: '#/components/schemas/DayResponsible.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/DayResponsible.jsonapi-read' + $ref: '#/components/schemas/DayResponsible.jsonapi' text/html: schema: $ref: '#/components/schemas/DayResponsible-read' @@ -29134,7 +25005,7 @@ paths: application/vnd.api+json: schema: items: - $ref: '#/components/schemas/Day.jsonapi-read_Day.DayResponsibles' + $ref: '#/components/schemas/Day.jsonapi' type: array text/html: schema: @@ -29178,7 +25049,7 @@ paths: $ref: '#/components/schemas/Day.jsonld-read_Day.DayResponsibles' application/vnd.api+json: schema: - $ref: '#/components/schemas/Day.jsonapi-read_Day.DayResponsibles' + $ref: '#/components/schemas/Day.jsonapi' text/html: schema: $ref: '#/components/schemas/Day-read_Day.DayResponsibles' @@ -29215,7 +25086,7 @@ paths: $ref: '#/components/schemas/Invitation-write' application/vnd.api+json: schema: - $ref: '#/components/schemas/Invitation.jsonapi-write' + $ref: '#/components/schemas/Invitation.jsonapi' description: 'The updated Invitation resource' required: true responses: @@ -29232,7 +25103,7 @@ paths: $ref: '#/components/schemas/Invitation.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/Invitation.jsonapi-read' + $ref: '#/components/schemas/Invitation.jsonapi' text/html: schema: $ref: '#/components/schemas/Invitation-read' @@ -29279,7 +25150,7 @@ paths: $ref: '#/components/schemas/Invitation.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/Invitation.jsonapi-read' + $ref: '#/components/schemas/Invitation.jsonapi' text/html: schema: $ref: '#/components/schemas/Invitation-read' @@ -29316,7 +25187,7 @@ paths: $ref: '#/components/schemas/Invitation-write' application/vnd.api+json: schema: - $ref: '#/components/schemas/Invitation.jsonapi-write' + $ref: '#/components/schemas/Invitation.jsonapi' description: 'The updated Invitation resource' required: true responses: @@ -29333,7 +25204,7 @@ paths: $ref: '#/components/schemas/Invitation.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/Invitation.jsonapi-read' + $ref: '#/components/schemas/Invitation.jsonapi' text/html: schema: $ref: '#/components/schemas/Invitation-read' @@ -29450,7 +25321,7 @@ paths: application/vnd.api+json: schema: items: - $ref: '#/components/schemas/MaterialItem.jsonapi-read' + $ref: '#/components/schemas/MaterialItem.jsonapi' type: array text/html: schema: @@ -29480,7 +25351,7 @@ paths: $ref: '#/components/schemas/MaterialItem.jsonld-write' application/vnd.api+json: schema: - $ref: '#/components/schemas/MaterialItem.jsonapi-write' + $ref: '#/components/schemas/MaterialItem.jsonapi' text/html: schema: $ref: '#/components/schemas/MaterialItem-write' @@ -29500,7 +25371,7 @@ paths: $ref: '#/components/schemas/MaterialItem.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/MaterialItem.jsonapi-read' + $ref: '#/components/schemas/MaterialItem.jsonapi' text/html: schema: $ref: '#/components/schemas/MaterialItem-read' @@ -29570,7 +25441,7 @@ paths: $ref: '#/components/schemas/MaterialItem.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/MaterialItem.jsonapi-read' + $ref: '#/components/schemas/MaterialItem.jsonapi' text/html: schema: $ref: '#/components/schemas/MaterialItem-read' @@ -29605,7 +25476,7 @@ paths: $ref: '#/components/schemas/MaterialItem-write' application/vnd.api+json: schema: - $ref: '#/components/schemas/MaterialItem.jsonapi-write' + $ref: '#/components/schemas/MaterialItem.jsonapi' description: 'The updated MaterialItem resource' required: true responses: @@ -29622,7 +25493,7 @@ paths: $ref: '#/components/schemas/MaterialItem.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/MaterialItem.jsonapi-read' + $ref: '#/components/schemas/MaterialItem.jsonapi' text/html: schema: $ref: '#/components/schemas/MaterialItem-read' @@ -29701,7 +25572,7 @@ paths: application/vnd.api+json: schema: items: - $ref: '#/components/schemas/MaterialList.jsonapi-read' + $ref: '#/components/schemas/MaterialList.jsonapi' type: array text/html: schema: @@ -29731,7 +25602,7 @@ paths: $ref: '#/components/schemas/MaterialList.jsonld-write_create' application/vnd.api+json: schema: - $ref: '#/components/schemas/MaterialList.jsonapi-write_create' + $ref: '#/components/schemas/MaterialList.jsonapi' text/html: schema: $ref: '#/components/schemas/MaterialList-write_create' @@ -29751,7 +25622,7 @@ paths: $ref: '#/components/schemas/MaterialList.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/MaterialList.jsonapi-read' + $ref: '#/components/schemas/MaterialList.jsonapi' text/html: schema: $ref: '#/components/schemas/MaterialList-read' @@ -29821,7 +25692,7 @@ paths: $ref: '#/components/schemas/MaterialList.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/MaterialList.jsonapi-read' + $ref: '#/components/schemas/MaterialList.jsonapi' text/html: schema: $ref: '#/components/schemas/MaterialList-read' @@ -29856,7 +25727,7 @@ paths: $ref: '#/components/schemas/MaterialList-write' application/vnd.api+json: schema: - $ref: '#/components/schemas/MaterialList.jsonapi-write' + $ref: '#/components/schemas/MaterialList.jsonapi' description: 'The updated MaterialList resource' required: true responses: @@ -29873,7 +25744,7 @@ paths: $ref: '#/components/schemas/MaterialList.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/MaterialList.jsonapi-read' + $ref: '#/components/schemas/MaterialList.jsonapi' text/html: schema: $ref: '#/components/schemas/MaterialList-read' @@ -29952,7 +25823,7 @@ paths: application/vnd.api+json: schema: items: - $ref: '#/components/schemas/Period.jsonapi-read' + $ref: '#/components/schemas/Period.jsonapi' type: array text/html: schema: @@ -29982,7 +25853,7 @@ paths: $ref: '#/components/schemas/Period.jsonld-write_create' application/vnd.api+json: schema: - $ref: '#/components/schemas/Period.jsonapi-write_create' + $ref: '#/components/schemas/Period.jsonapi' text/html: schema: $ref: '#/components/schemas/Period-write_create' @@ -30002,7 +25873,7 @@ paths: $ref: '#/components/schemas/Period.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/Period.jsonapi-read' + $ref: '#/components/schemas/Period.jsonapi' text/html: schema: $ref: '#/components/schemas/Period-read' @@ -30072,7 +25943,7 @@ paths: $ref: '#/components/schemas/Period.jsonld-read_Period.Camp_Period.Days' application/vnd.api+json: schema: - $ref: '#/components/schemas/Period.jsonapi-read_Period.Camp_Period.Days' + $ref: '#/components/schemas/Period.jsonapi' text/html: schema: $ref: '#/components/schemas/Period-read_Period.Camp_Period.Days' @@ -30107,7 +25978,7 @@ paths: $ref: '#/components/schemas/Period-write' application/vnd.api+json: schema: - $ref: '#/components/schemas/Period.jsonapi-write' + $ref: '#/components/schemas/Period.jsonapi' description: 'The updated Period resource' required: true responses: @@ -30124,7 +25995,7 @@ paths: $ref: '#/components/schemas/Period.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/Period.jsonapi-read' + $ref: '#/components/schemas/Period.jsonapi' text/html: schema: $ref: '#/components/schemas/Period-read' @@ -30177,7 +26048,7 @@ paths: application/vnd.api+json: schema: items: - $ref: '#/components/schemas/PersonalInvitation.jsonapi-read' + $ref: '#/components/schemas/PersonalInvitation.jsonapi' type: array text/html: schema: @@ -30221,7 +26092,7 @@ paths: $ref: '#/components/schemas/PersonalInvitation.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/PersonalInvitation.jsonapi-read' + $ref: '#/components/schemas/PersonalInvitation.jsonapi' text/html: schema: $ref: '#/components/schemas/PersonalInvitation-read' @@ -30258,7 +26129,7 @@ paths: $ref: '#/components/schemas/PersonalInvitation-write' application/vnd.api+json: schema: - $ref: '#/components/schemas/PersonalInvitation.jsonapi-write' + $ref: '#/components/schemas/PersonalInvitation.jsonapi' description: 'The updated PersonalInvitation resource' required: true responses: @@ -30275,7 +26146,7 @@ paths: $ref: '#/components/schemas/PersonalInvitation.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/PersonalInvitation.jsonapi-read' + $ref: '#/components/schemas/PersonalInvitation.jsonapi' text/html: schema: $ref: '#/components/schemas/PersonalInvitation-read' @@ -30316,7 +26187,7 @@ paths: $ref: '#/components/schemas/PersonalInvitation-write' application/vnd.api+json: schema: - $ref: '#/components/schemas/PersonalInvitation.jsonapi-write' + $ref: '#/components/schemas/PersonalInvitation.jsonapi' description: 'The updated PersonalInvitation resource' required: true responses: @@ -30333,7 +26204,7 @@ paths: $ref: '#/components/schemas/PersonalInvitation.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/PersonalInvitation.jsonapi-read' + $ref: '#/components/schemas/PersonalInvitation.jsonapi' text/html: schema: $ref: '#/components/schemas/PersonalInvitation-read' @@ -30412,7 +26283,7 @@ paths: application/vnd.api+json: schema: items: - $ref: '#/components/schemas/Profile.jsonapi-read' + $ref: '#/components/schemas/Profile.jsonapi' type: array text/html: schema: @@ -30456,7 +26327,7 @@ paths: $ref: '#/components/schemas/Profile.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/Profile.jsonapi-read' + $ref: '#/components/schemas/Profile.jsonapi' text/html: schema: $ref: '#/components/schemas/Profile-read' @@ -30491,7 +26362,7 @@ paths: $ref: '#/components/schemas/Profile-write_update' application/vnd.api+json: schema: - $ref: '#/components/schemas/Profile.jsonapi-write_update' + $ref: '#/components/schemas/Profile.jsonapi' description: 'The updated Profile resource' required: true responses: @@ -30508,7 +26379,7 @@ paths: $ref: '#/components/schemas/Profile.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/Profile.jsonapi-read' + $ref: '#/components/schemas/Profile.jsonapi' text/html: schema: $ref: '#/components/schemas/Profile-read' @@ -30709,7 +26580,7 @@ paths: application/vnd.api+json: schema: items: - $ref: '#/components/schemas/ScheduleEntry.jsonapi-read' + $ref: '#/components/schemas/ScheduleEntry.jsonapi' type: array text/html: schema: @@ -30739,7 +26610,7 @@ paths: $ref: '#/components/schemas/ScheduleEntry.jsonld-write_create' application/vnd.api+json: schema: - $ref: '#/components/schemas/ScheduleEntry.jsonapi-write_create' + $ref: '#/components/schemas/ScheduleEntry.jsonapi' text/html: schema: $ref: '#/components/schemas/ScheduleEntry-write_create' @@ -30759,7 +26630,7 @@ paths: $ref: '#/components/schemas/ScheduleEntry.jsonld-read_ScheduleEntry.Activity' application/vnd.api+json: schema: - $ref: '#/components/schemas/ScheduleEntry.jsonapi-read_ScheduleEntry.Activity' + $ref: '#/components/schemas/ScheduleEntry.jsonapi' text/html: schema: $ref: '#/components/schemas/ScheduleEntry-read_ScheduleEntry.Activity' @@ -30829,7 +26700,7 @@ paths: $ref: '#/components/schemas/ScheduleEntry.jsonld-read_ScheduleEntry.Activity' application/vnd.api+json: schema: - $ref: '#/components/schemas/ScheduleEntry.jsonapi-read_ScheduleEntry.Activity' + $ref: '#/components/schemas/ScheduleEntry.jsonapi' text/html: schema: $ref: '#/components/schemas/ScheduleEntry-read_ScheduleEntry.Activity' @@ -30864,7 +26735,7 @@ paths: $ref: '#/components/schemas/ScheduleEntry-write' application/vnd.api+json: schema: - $ref: '#/components/schemas/ScheduleEntry.jsonapi-write' + $ref: '#/components/schemas/ScheduleEntry.jsonapi' description: 'The updated ScheduleEntry resource' required: true responses: @@ -30881,7 +26752,7 @@ paths: $ref: '#/components/schemas/ScheduleEntry.jsonld-read_ScheduleEntry.Activity' application/vnd.api+json: schema: - $ref: '#/components/schemas/ScheduleEntry.jsonapi-read_ScheduleEntry.Activity' + $ref: '#/components/schemas/ScheduleEntry.jsonapi' text/html: schema: $ref: '#/components/schemas/ScheduleEntry-read_ScheduleEntry.Activity' @@ -30934,7 +26805,7 @@ paths: application/vnd.api+json: schema: items: - $ref: '#/components/schemas/User.jsonapi-read' + $ref: '#/components/schemas/User.jsonapi' type: array text/html: schema: @@ -30964,7 +26835,7 @@ paths: $ref: '#/components/schemas/User.jsonld-write_create' application/vnd.api+json: schema: - $ref: '#/components/schemas/User.jsonapi-write_create' + $ref: '#/components/schemas/User.jsonapi' text/html: schema: $ref: '#/components/schemas/User-write_create' @@ -30984,7 +26855,7 @@ paths: $ref: '#/components/schemas/User.jsonld-read_User.create' application/vnd.api+json: schema: - $ref: '#/components/schemas/User.jsonapi-read_User.create' + $ref: '#/components/schemas/User.jsonapi' text/html: schema: $ref: '#/components/schemas/User-read_User.create' @@ -31054,7 +26925,7 @@ paths: $ref: '#/components/schemas/User.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/User.jsonapi-read' + $ref: '#/components/schemas/User.jsonapi' text/html: schema: $ref: '#/components/schemas/User-read' @@ -31089,7 +26960,7 @@ paths: $ref: '#/components/schemas/User-write' application/vnd.api+json: schema: - $ref: '#/components/schemas/User.jsonapi-write' + $ref: '#/components/schemas/User.jsonapi' description: 'The updated User resource' required: true responses: @@ -31106,7 +26977,7 @@ paths: $ref: '#/components/schemas/User.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/User.jsonapi-read' + $ref: '#/components/schemas/User.jsonapi' text/html: schema: $ref: '#/components/schemas/User-read' @@ -31147,7 +27018,7 @@ paths: $ref: '#/components/schemas/User-activate' application/vnd.api+json: schema: - $ref: '#/components/schemas/User.jsonapi-activate' + $ref: '#/components/schemas/User.jsonapi' description: 'The updated User resource' required: true responses: @@ -31164,7 +27035,7 @@ paths: $ref: '#/components/schemas/User.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/User.jsonapi-read' + $ref: '#/components/schemas/User.jsonapi' text/html: schema: $ref: '#/components/schemas/User-read' @@ -31185,3 +27056,4 @@ servers: description: '' url: / tags: [] +webhooks: [] From 5914be91313fee92c2e8121c5d66a80a6e413400 Mon Sep 17 00:00:00 2001 From: Urban Suppiger Date: Tue, 30 Apr 2024 19:07:27 +0200 Subject: [PATCH 4/5] fix ResetPassword response; fix phpstan --- .../Normalizer/RelatedCollectionLinkNormalizer.php | 4 ++-- api/src/State/ResetPasswordCreateProcessor.php | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/api/src/Serializer/Normalizer/RelatedCollectionLinkNormalizer.php b/api/src/Serializer/Normalizer/RelatedCollectionLinkNormalizer.php index ad9cace4ad..4462d48ad0 100644 --- a/api/src/Serializer/Normalizer/RelatedCollectionLinkNormalizer.php +++ b/api/src/Serializer/Normalizer/RelatedCollectionLinkNormalizer.php @@ -2,7 +2,7 @@ namespace App\Serializer\Normalizer; -use ApiPlatform\Api\FilterInterface; +use ApiPlatform\Doctrine\Common\Filter\SearchFilterInterface; use ApiPlatform\Doctrine\Common\PropertyHelperTrait; use ApiPlatform\Doctrine\Orm\Filter\SearchFilter; use ApiPlatform\Exception\ResourceClassNotFoundException; @@ -239,7 +239,7 @@ private function exactSearchFilterExists(string $resourceClass, mixed $propertyN $filterIds = OperationHelper::findOneByType($resourceMetadataCollection, GetCollection::class)?->getFilters() ?? []; return 0 < count(array_filter($filterIds, function ($filterId) use ($resourceClass, $propertyName) { - /** @var FilterInterface $filter */ + /** @var SearchFilterInterface $filter */ $filter = $this->filterLocator->get($filterId); if (!$filter instanceof SearchFilter) { return false; diff --git a/api/src/State/ResetPasswordCreateProcessor.php b/api/src/State/ResetPasswordCreateProcessor.php index e7f43e7356..ffabb57e39 100644 --- a/api/src/State/ResetPasswordCreateProcessor.php +++ b/api/src/State/ResetPasswordCreateProcessor.php @@ -15,7 +15,7 @@ use Symfony\Component\PasswordHasher\PasswordHasherInterface; /** - * @implements ProcessorInterface + * @implements ProcessorInterface */ class ResetPasswordCreateProcessor implements ProcessorInterface { public function __construct( @@ -29,7 +29,7 @@ public function __construct( /** * @param ResetPassword $data */ - public function process($data, Operation $operation, array $uriVariables = [], array $context = []): ResetPassword { + public function process($data, Operation $operation, array $uriVariables = [], array $context = []): null { $resp = $this->reCaptcha->verify($data->recaptchaToken); if (!$resp->isSuccess()) { throw new HttpException(422, 'ReCaptcha failed'); @@ -38,7 +38,7 @@ public function process($data, Operation $operation, array $uriVariables = [], a $user = $this->userRepository->loadUserByIdentifier($data->email); if (null == $user) { - return $data; + return null; } $resetKey = IdGenerator::generateRandomHexString(64); @@ -49,7 +49,7 @@ public function process($data, Operation $operation, array $uriVariables = [], a $this->mailService->sendPasswordResetLink($user, $data); - return $data; + return null; } private function getResetKeyHasher(): PasswordHasherInterface { From 8ecbf4a75597e473711712b1578247de61189172 Mon Sep 17 00:00:00 2001 From: Urban Suppiger Date: Tue, 30 Apr 2024 19:54:25 +0200 Subject: [PATCH 5/5] fix ResetPasswordCreateProcessorTest --- api/tests/State/ResetPasswordCreateProcessorTest.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/api/tests/State/ResetPasswordCreateProcessorTest.php b/api/tests/State/ResetPasswordCreateProcessorTest.php index d63d26cc9c..bfc2e65d83 100644 --- a/api/tests/State/ResetPasswordCreateProcessorTest.php +++ b/api/tests/State/ResetPasswordCreateProcessorTest.php @@ -96,6 +96,8 @@ public function testCreateWithUnknownEmailDoesNotCreateResetKey() { $this->resetPassword->email = self::EMAIL; $data = $this->processor->process($this->resetPassword, new Post()); + + self::assertThat($data, self::isNull()); } public function testCreateWithKnowneMailCreatesResetKey() { @@ -124,6 +126,6 @@ public function testCreateWithKnowneMailCreatesResetKey() { $this->resetPassword->email = self::EMAIL; $data = $this->processor->process($this->resetPassword, new Post()); - self::assertThat($data->id, self::logicalNot(self::isNull())); + self::assertThat($data, self::isNull()); } }