From 88ca5e4bcd98190a10ca6a0f24eb5332747bb225 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sat, 23 Mar 2024 10:27:12 +0000
Subject: [PATCH 01/12] chore(deps): update dependency autoprefixer to v10.4.19
---
frontend/package-lock.json | 10 +++++-----
frontend/package.json | 2 +-
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index fe7911f133..1045c82ac9 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -81,7 +81,7 @@
"@vue/babel-preset-app": "5.0.8",
"@vue/eslint-config-prettier": "9.0.0",
"@vue/test-utils": "1.3.6",
- "autoprefixer": "10.4.18",
+ "autoprefixer": "10.4.19",
"babel-plugin-require-context-hook": "1.0.0",
"eslint": "8.57.0",
"eslint-config-prettier": "9.1.0",
@@ -4914,9 +4914,9 @@
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
"node_modules/autoprefixer": {
- "version": "10.4.18",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz",
- "integrity": "sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==",
+ "version": "10.4.19",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz",
+ "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==",
"dev": true,
"funding": [
{
@@ -4934,7 +4934,7 @@
],
"dependencies": {
"browserslist": "^4.23.0",
- "caniuse-lite": "^1.0.30001591",
+ "caniuse-lite": "^1.0.30001599",
"fraction.js": "^4.3.7",
"normalize-range": "^0.1.2",
"picocolors": "^1.0.0",
diff --git a/frontend/package.json b/frontend/package.json
index 3735d6b12e..456259fd4a 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -93,7 +93,7 @@
"@vue/babel-preset-app": "5.0.8",
"@vue/eslint-config-prettier": "9.0.0",
"@vue/test-utils": "1.3.6",
- "autoprefixer": "10.4.18",
+ "autoprefixer": "10.4.19",
"babel-plugin-require-context-hook": "1.0.0",
"eslint": "8.57.0",
"eslint-config-prettier": "9.1.0",
From 5b13d395deb00129c4a58d0630672841392db6e2 Mon Sep 17 00:00:00 2001
From: Carlo Beltrame
Date: Tue, 26 Mar 2024 02:46:42 +0100
Subject: [PATCH 02/12] Autofocus and autoselect title of new activity
---
frontend/src/components/program/DialogActivityCreate.vue | 4 ++--
frontend/src/components/program/DialogActivityForm.vue | 6 ++++++
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/frontend/src/components/program/DialogActivityCreate.vue b/frontend/src/components/program/DialogActivityCreate.vue
index 4eb8ea8a49..a154044ed2 100644
--- a/frontend/src/components/program/DialogActivityCreate.vue
+++ b/frontend/src/components/program/DialogActivityCreate.vue
@@ -71,7 +71,7 @@
-
+
@@ -68,6 +70,10 @@ export default {
type: Function,
required: true,
},
+ autoselectTitle: {
+ type: Boolean,
+ default: false,
+ },
},
data() {
return {
From 7ed14965effe2ec754e7e7776437af3a3f34805e Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 29 Mar 2024 16:41:44 +0000
Subject: [PATCH 03/12] fix(deps): update dependency api-platform/core to
v3.2.19
---
api/composer.json | 2 +-
api/composer.lock | 14 +++++++-------
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/api/composer.json b/api/composer.json
index f4900994bd..d3b5d76be8 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.17",
+ "api-platform/core": "3.2.19",
"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 fb4a70ea86..d20050eae7 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": "d46f26ac9f99b73b2aadf77efa442a93",
+ "content-hash": "a631326f9b5e341df6cb2c8e66464a7e",
"packages": [
{
"name": "api-platform/core",
- "version": "v3.2.17",
+ "version": "v3.2.19",
"source": {
"type": "git",
"url": "https://github.com/api-platform/core.git",
- "reference": "1cc114b93e95bdce5b48be46f84c1e11446a8d2f"
+ "reference": "53a45d7d19e3298b653631531fe6f59ccdb04fbb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/api-platform/core/zipball/1cc114b93e95bdce5b48be46f84c1e11446a8d2f",
- "reference": "1cc114b93e95bdce5b48be46f84c1e11446a8d2f",
+ "url": "https://api.github.com/repos/api-platform/core/zipball/53a45d7d19e3298b653631531fe6f59ccdb04fbb",
+ "reference": "53a45d7d19e3298b653631531fe6f59ccdb04fbb",
"shasum": ""
},
"require": {
@@ -168,9 +168,9 @@
],
"support": {
"issues": "https://github.com/api-platform/core/issues",
- "source": "https://github.com/api-platform/core/tree/v3.2.17"
+ "source": "https://github.com/api-platform/core/tree/v3.2.19"
},
- "time": "2024-03-15T15:26:20+00:00"
+ "time": "2024-03-29T16:15:14+00:00"
},
{
"name": "behat/transliterator",
From ceae49dde124c491e83651e20046b79a8fad30ce Mon Sep 17 00:00:00 2001
From: Urban Suppiger
Date: Sat, 30 Mar 2024 09:02:29 +0100
Subject: [PATCH 04/12] update test snapshots (OpenAPI spec)
---
...est__testOpenApiSpecMatchesSnapshot__1.yml | 21364 ++++++++++------
1 file changed, 13855 insertions(+), 7509 deletions(-)
diff --git a/api/tests/Api/SnapshotTests/__snapshots__/ResponseSnapshotTest__testOpenApiSpecMatchesSnapshot__1.yml b/api/tests/Api/SnapshotTests/__snapshots__/ResponseSnapshotTest__testOpenApiSpecMatchesSnapshot__1.yml
index 8fbf21b48c..60be7ed441 100644
--- a/api/tests/Api/SnapshotTests/__snapshots__/ResponseSnapshotTest__testOpenApiSpecMatchesSnapshot__1.yml
+++ b/api/tests/Api/SnapshotTests/__snapshots__/ResponseSnapshotTest__testOpenApiSpecMatchesSnapshot__1.yml
@@ -402,19 +402,10 @@ components:
- scheduleEntries
- title
type: object
- Activity.jsonhal-read:
+ Activity.jsonapi-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:
@@ -464,7 +455,7 @@ components:
- 'null'
- string
rootContentNode:
- $ref: '#/components/schemas/ColumnLayout.jsonhal-read'
+ $ref: '#/components/schemas/ColumnLayout.jsonapi-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.
@@ -494,22 +485,13 @@ components:
- scheduleEntries
- title
type: object
- Activity.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries:
+ Activity.jsonapi-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.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries'
+ $ref: '#/components/schemas/ActivityResponsible.jsonapi-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries'
readOnly: true
type: array
camp:
@@ -548,12 +530,12 @@ components:
progressLabel:
anyOf:
-
- $ref: '#/components/schemas/ActivityProgressLabel.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries'
+ $ref: '#/components/schemas/ActivityProgressLabel.jsonapi-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.jsonapi-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.
@@ -561,7 +543,7 @@ components:
readOnly: true
scheduleEntries:
items:
- $ref: '#/components/schemas/ScheduleEntry.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries'
+ $ref: '#/components/schemas/ScheduleEntry.jsonapi-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries'
readOnly: true
type: array
title:
@@ -576,22 +558,13 @@ components:
- scheduleEntries
- title
type: object
- Activity.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes:
+ Activity.jsonapi-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.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes'
+ $ref: '#/components/schemas/ActivityResponsible.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes'
readOnly: true
type: array
camp:
@@ -603,7 +576,7 @@ components:
category:
anyOf:
-
- $ref: '#/components/schemas/Category.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes'
+ $ref: '#/components/schemas/Category.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes'
-
type: 'null'
readOnly: true
@@ -630,12 +603,12 @@ components:
progressLabel:
anyOf:
-
- $ref: '#/components/schemas/ActivityProgressLabel.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes'
+ $ref: '#/components/schemas/ActivityProgressLabel.jsonapi-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.jsonapi-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.
@@ -643,7 +616,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.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes'
readOnly: true
type: array
title:
@@ -658,7 +631,7 @@ components:
- scheduleEntries
- title
type: object
- Activity.jsonhal-read_ScheduleEntry.Activity:
+ Activity.jsonapi-read_ScheduleEntry.Activity:
deprecated: false
description: ''
properties:
@@ -711,7 +684,7 @@ components:
- 'null'
- string
rootContentNode:
- $ref: '#/components/schemas/ColumnLayout.jsonhal-read_ScheduleEntry.Activity'
+ $ref: '#/components/schemas/ColumnLayout.jsonapi-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.
@@ -741,19 +714,43 @@ components:
- scheduleEntries
- title
type: object
- Activity.jsonhal-write_create:
+ 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:
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
@@ -788,7 +785,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.jsonapi-write_create'
minItems: 1
type: array
title:
@@ -802,33 +799,19 @@ components:
- scheduleEntries
- title
type: object
- Activity.jsonld-read:
+ Activity.jsonhal-read:
deprecated: false
description: 'A piece of programme that will be carried out once or multiple times in a camp.'
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
+ type: object
activityResponsibles:
description: 'The list of people that are responsible for planning or carrying out this activity.'
items:
@@ -878,7 +861,7 @@ components:
- 'null'
- string
rootContentNode:
- $ref: '#/components/schemas/ColumnLayout.jsonld-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.
@@ -908,19 +891,22 @@ components:
- scheduleEntries
- title
type: object
- Activity.jsonld-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:
- '@id':
- readOnly: true
- type: string
- '@type':
- readOnly: true
- type: string
+ _links:
+ properties:
+ self:
+ properties:
+ href:
+ format: iri-reference
+ type: string
+ type: object
+ type: object
activityResponsibles:
items:
- $ref: '#/components/schemas/ActivityResponsible.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries'
+ $ref: '#/components/schemas/ActivityResponsible.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries'
readOnly: true
type: array
camp:
@@ -959,12 +945,12 @@ components:
progressLabel:
anyOf:
-
- $ref: '#/components/schemas/ActivityProgressLabel.jsonld-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.jsonld-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.
@@ -972,7 +958,7 @@ components:
readOnly: true
scheduleEntries:
items:
- $ref: '#/components/schemas/ScheduleEntry.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries'
+ $ref: '#/components/schemas/ScheduleEntry.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries'
readOnly: true
type: array
title:
@@ -987,36 +973,22 @@ components:
- scheduleEntries
- title
type: object
- Activity.jsonld-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:
- '@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
+ type: object
activityResponsibles:
items:
- $ref: '#/components/schemas/ActivityResponsible.jsonld-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:
@@ -1028,7 +1000,7 @@ components:
category:
anyOf:
-
- $ref: '#/components/schemas/Category.jsonld-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
@@ -1055,12 +1027,12 @@ components:
progressLabel:
anyOf:
-
- $ref: '#/components/schemas/ActivityProgressLabel.jsonld-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.jsonld-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.
@@ -1068,7 +1040,7 @@ components:
readOnly: true
scheduleEntries:
items:
- $ref: '#/components/schemas/ScheduleEntry.jsonld-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:
@@ -1083,33 +1055,19 @@ components:
- scheduleEntries
- title
type: object
- Activity.jsonld-read_ScheduleEntry.Activity:
+ Activity.jsonhal-read_ScheduleEntry.Activity:
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
+ type: object
activityResponsibles:
description: 'The list of people that are responsible for planning or carrying out this activity.'
items:
@@ -1159,7 +1117,7 @@ components:
- 'null'
- string
rootContentNode:
- $ref: '#/components/schemas/ColumnLayout.jsonld-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.
@@ -1189,10 +1147,19 @@ components:
- scheduleEntries
- title
type: object
- Activity.jsonld-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
@@ -1227,7 +1194,7 @@ components:
period: /periods/1a2b3c4a
start: '2023-05-01T15:00:00+00:00'
items:
- $ref: '#/components/schemas/ScheduleEntry.jsonld-write_create'
+ $ref: '#/components/schemas/ScheduleEntry.jsonhal-write_create'
minItems: 1
type: array
title:
@@ -1241,204 +1208,450 @@ components:
- scheduleEntries
- title
type: object
- ActivityProgressLabel-read:
+ Activity.jsonld-read:
deprecated: false
- description: |-
- Progress labels in a camp.
- To each activity one label can be assigned.
+ description: 'A piece of programme that will be carried out once or multiple times in a camp.'
properties:
- camp:
- description: 'The camp to which this label belongs.'
- example: /camps/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
- id:
- description: 'An internal, unique, randomly generated identifier of this entity.'
- example: 1a2b3c4d
- maxLength: 16
+ '@type':
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-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries:
- deprecated: false
- description: ''
- properties:
+ 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 label belongs.'
+ 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
- position:
- default: -1
- example: -1
- type: integer
+ 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
title:
- example: Planned
+ description: 'The title of this activity that is shown in the picasso.'
+ example: Sportolympiade
maxLength: 32
type: string
required:
- - camp
- - position
+ - activityResponsibles
+ - category
+ - location
+ - scheduleEntries
- title
type: object
- ActivityProgressLabel-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes:
+ Activity.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries:
deprecated: false
- description: ''
+ description: 'A piece of programme that will be carried out once or multiple times in a camp.'
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 label belongs.'
+ 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
- position:
- default: -1
- example: -1
- type: integer
- title:
- example: Planned
- maxLength: 32
- type: string
- required:
- - camp
- - 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:
- 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
+ location:
+ description: "The physical location where this activity's programme will be carried out."
+ example: Spielwiese
+ maxLength: 64
type: string
- position:
- default: -1
- example: -1
- type: integer
+ 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
title:
- example: Planned
+ description: 'The title of this activity that is shown in the picasso.'
+ example: Sportolympiade
maxLength: 32
type: string
required:
- - camp
- - position
+ - activityResponsibles
+ - category
+ - location
+ - scheduleEntries
- title
type: object
- ActivityProgressLabel.jsonhal-read:
+ Activity.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes:
deprecated: false
- description: |-
- Progress labels in a camp.
- To each activity one label can be assigned.
+ 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.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes'
+ readOnly: true
+ type: array
camp:
- description: 'The camp to which this label belongs.'
+ description: 'The camp to which this activity 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
- position:
- default: -1
- example: -1
- type: integer
+ 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
title:
- example: Planned
+ description: 'The title of this activity that is shown in the picasso.'
+ example: Sportolympiade
maxLength: 32
type: string
required:
- - camp
- - position
+ - activityResponsibles
+ - category
+ - location
+ - scheduleEntries
- title
type: object
- ActivityProgressLabel.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries:
+ Activity.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
+ 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 label belongs.'
+ 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
- position:
- default: -1
- example: -1
- type: integer
+ 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
title:
- example: Planned
+ description: 'The title of this activity that is shown in the picasso.'
+ example: Sportolympiade
maxLength: 32
type: string
required:
- - camp
- - position
+ - activityResponsibles
+ - category
+ - location
+ - scheduleEntries
- title
type: object
- ActivityProgressLabel.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes:
+ Activity.jsonld-write_create:
deprecated: false
- description: ''
+ 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
+ copyActivitySource:
+ description: 'Copy Contents from this Source-Activity.'
+ example: /activities/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
+ title:
+ description: 'The title of this activity that is shown in the picasso.'
+ example: Sportolympiade
+ maxLength: 32
+ type: string
+ required:
+ - category
+ - location
+ - scheduleEntries
+ - title
+ type: object
+ ActivityProgressLabel-read:
+ 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.'
@@ -1464,26 +1677,21 @@ components:
- position
- title
type: object
- ActivityProgressLabel.jsonhal-write_create:
+ ActivityProgressLabel-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
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
@@ -1497,35 +1705,10 @@ components:
- position
- title
type: object
- ActivityProgressLabel.jsonld-read:
+ ActivityProgressLabel-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes:
deprecated: false
- description: |-
- Progress labels in a camp.
- To each activity one label can be assigned.
+ 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
@@ -1550,33 +1733,54 @@ components:
- position
- title
type: object
- ActivityProgressLabel.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries:
+ 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
+ position:
+ default: -1
+ example: -1
+ type: integer
+ title:
+ example: Planned
+ maxLength: 32
type: string
- '@type':
- readOnly: true
+ required:
+ - position
+ - title
+ type: object
+ ActivityProgressLabel-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
+ ActivityProgressLabel.jsonapi-read:
+ 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
@@ -1601,33 +1805,38 @@ components:
- position
- title
type: object
- ActivityProgressLabel.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes:
+ ActivityProgressLabel.jsonapi-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
+ camp:
+ description: 'The camp to which this label belongs.'
+ example: /camps/1a2b3c4d
+ format: iri-reference
type: string
- '@type':
+ 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.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes:
+ deprecated: false
+ description: ''
+ properties:
camp:
description: 'The camp to which this label belongs.'
example: /camps/1a2b3c4d
@@ -1652,7 +1861,25 @@ components:
- position
- title
type: object
- ActivityProgressLabel.jsonld-write_create:
+ 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:
deprecated: false
description: |-
Progress labels in a camp.
@@ -1676,18 +1903,24 @@ components:
- position
- title
type: object
- ActivityResponsible-read:
+ ActivityProgressLabel.jsonhal-read:
deprecated: false
- description: 'A person that is responsible for planning or carrying out an activity.'
+ description: |-
+ Progress labels in a camp.
+ To each activity one label can be assigned.
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
+ _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
format: iri-reference
type: string
id:
@@ -1696,22 +1929,35 @@ components:
maxLength: 16
readOnly: true
type: string
+ position:
+ default: -1
+ example: -1
+ type: integer
+ title:
+ example: Planned
+ maxLength: 32
+ type: string
required:
- - activity
- - campCollaboration
+ - camp
+ - position
+ - title
type: object
- ActivityResponsible-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries:
+ ActivityProgressLabel.jsonhal-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
+ _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
format: iri-reference
type: string
id:
@@ -1720,22 +1966,35 @@ components:
maxLength: 16
readOnly: true
type: string
+ position:
+ default: -1
+ example: -1
+ type: integer
+ title:
+ example: Planned
+ maxLength: 32
+ type: string
required:
- - activity
- - campCollaboration
+ - camp
+ - position
+ - title
type: object
- ActivityResponsible-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:
- 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
+ _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
format: iri-reference
type: string
id:
@@ -1744,31 +2003,24 @@ components:
maxLength: 16
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
+ position:
+ default: -1
+ example: -1
+ type: integer
+ title:
+ example: Planned
+ maxLength: 32
type: string
required:
- - activity
- - campCollaboration
+ - camp
+ - position
+ - title
type: object
- ActivityResponsible.jsonhal-read:
+ ActivityProgressLabel.jsonhal-write_create:
deprecated: false
- description: 'A person that is responsible for planning or carrying out an activity.'
+ description: |-
+ Progress labels in a camp.
+ To each activity one label can be assigned.
properties:
_links:
properties:
@@ -1779,62 +2031,56 @@ components:
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
+ 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
+ position:
+ default: -1
+ example: -1
+ type: integer
+ title:
+ example: Planned
+ maxLength: 32
type: string
required:
- - activity
- - campCollaboration
+ - camp
+ - position
+ - title
type: object
- ActivityResponsible.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries:
+ ActivityProgressLabel.jsonld-read:
deprecated: false
- description: ''
+ description: |-
+ Progress labels in a camp.
+ To each activity one label can be assigned.
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
+ '@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
- required:
- - activity
- - campCollaboration
- type: object
- ActivityResponsible.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes:
- deprecated: false
- description: ''
- properties:
- activity:
- description: 'The activity that the person is responsible for.'
- example: /activities/1a2b3c4d
- format: iri-reference
+ '@type':
+ readOnly: true
type: string
- campCollaboration:
- description: 'The person that is responsible. Must be a collaborator in the same camp as the activity.'
- example: /camp_collaborations/1a2b3c4d
+ camp:
+ description: 'The camp to which this label belongs.'
+ example: /camps/1a2b3c4d
format: iri-reference
type: string
id:
@@ -1843,40 +2089,22 @@ components:
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
+ position:
+ default: -1
+ example: -1
+ type: integer
+ title:
+ example: Planned
+ maxLength: 32
type: string
required:
- - activity
- - campCollaboration
+ - camp
+ - position
+ - title
type: object
- ActivityResponsible.jsonld-read:
+ ActivityProgressLabel.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries:
deprecated: false
- description: 'A person that is responsible for planning or carrying out an activity.'
+ description: ''
properties:
'@context':
oneOf:
@@ -1901,14 +2129,9 @@ components:
'@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
+ camp:
+ description: 'The camp to which this label belongs.'
+ example: /camps/1a2b3c4d
format: iri-reference
type: string
id:
@@ -1917,11 +2140,20 @@ components:
maxLength: 16
readOnly: true
type: string
+ position:
+ default: -1
+ example: -1
+ type: integer
+ title:
+ example: Planned
+ maxLength: 32
+ type: string
required:
- - activity
- - campCollaboration
+ - camp
+ - position
+ - title
type: object
- ActivityResponsible.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries:
+ ActivityProgressLabel.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes:
deprecated: false
description: ''
properties:
@@ -1948,6 +2180,58 @@ 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
@@ -1968,33 +2252,34 @@ components:
- activity
- campCollaboration
type: object
- ActivityResponsible.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes:
+ ActivityResponsible-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
+ activity:
+ description: 'The activity that the person is responsible for.'
+ example: /activities/1a2b3c4d
+ format: iri-reference
type: string
- '@type':
+ 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-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes:
+ deprecated: false
+ description: ''
+ properties:
activity:
description: 'The activity that the person is responsible for.'
example: /activities/1a2b3c4d
@@ -2015,7 +2300,7 @@ components:
- activity
- campCollaboration
type: object
- ActivityResponsible.jsonld-write:
+ ActivityResponsible-write:
deprecated: false
description: 'A person that is responsible for planning or carrying out an activity.'
properties:
@@ -2033,25 +2318,3766 @@ components:
- activity
- campCollaboration
type: object
- Camp-read:
+ ActivityResponsible.jsonapi-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 person that is responsible for planning or carrying out an activity.'
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.'
+ 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.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
+ 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.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes:
+ 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
+ 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.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
+ 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.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries:
+ 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: |-
+ 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/'
+ 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
+ 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
+ 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:
+ - activities
+ - campCollaborations
+ - categories
+ - materialLists
+ - name
+ - periods
+ - printYSLogoOnPicasso
+ - progressLabels
+ - title
+ type: object
+ Camp-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:
+ 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.'
+ 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:
+ 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
+ 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:
+ - activities
+ - campCollaborations
+ - categories
+ - materialLists
+ - name
+ - periods
+ - printYSLogoOnPicasso
+ - progressLabels
+ - title
+ type: object
+ Camp-read_CampCollaboration.Camp_CampCollaboration.User:
+ deprecated: false
+ description: ''
+ 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
+ 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.'
+ 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:
+ 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
+ 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:
+ - activities
+ - campCollaborations
+ - categories
+ - materialLists
+ - name
+ - periods
+ - printYSLogoOnPicasso
+ - progressLabels
+ - title
+ type: object
+ Camp-read_Period.Camp_Period.Days:
+ deprecated: false
+ description: ''
+ 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
+ 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.'
+ 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:
+ 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
+ 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:
+ - activities
+ - campCollaborations
+ - categories
+ - materialLists
+ - name
+ - periods
+ - printYSLogoOnPicasso
+ - progressLabels
+ - title
+ type: object
+ Camp-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-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
+ 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:
+ 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: |-
+ 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/'
+ 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
+ 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
+ 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:
+ - activities
+ - campCollaborations
+ - categories
+ - materialLists
+ - name
+ - periods
+ - printYSLogoOnPicasso
+ - progressLabels
+ - title
+ type: object
+ Camp.jsonapi-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:
+ 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.jsonapi-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.'
+ 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:
+ 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
+ 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.jsonapi-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:
+ - activities
+ - campCollaborations
+ - categories
+ - materialLists
+ - name
+ - periods
+ - printYSLogoOnPicasso
+ - progressLabels
+ - title
+ type: object
+ Camp.jsonapi-read_CampCollaboration.Camp_CampCollaboration.User:
+ deprecated: false
+ description: ''
+ 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
+ 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.'
+ 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:
+ 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
+ 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:
+ - activities
+ - campCollaborations
+ - categories
+ - materialLists
+ - name
+ - periods
+ - printYSLogoOnPicasso
+ - progressLabels
+ - title
+ type: object
+ Camp.jsonapi-read_Period.Camp_Period.Days:
+ deprecated: false
+ description: ''
+ 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
+ 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.'
+ 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:
+ 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
+ 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:
+ - activities
+ - campCollaborations
+ - categories
+ - materialLists
+ - name
+ - periods
+ - printYSLogoOnPicasso
+ - progressLabels
+ - title
+ type: object
+ Camp.jsonapi-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.jsonapi-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
+ Camp.jsonapi-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.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
+ 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/'
+ 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
+ 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
+ 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:
+ - activities
+ - campCollaborations
+ - categories
+ - materialLists
+ - name
+ - periods
+ - printYSLogoOnPicasso
+ - progressLabels
+ - title
+ type: object
+ 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
+ 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.jsonhal-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.'
+ 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:
+ 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
+ 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.jsonhal-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:
+ - activities
+ - campCollaborations
+ - categories
+ - materialLists
+ - name
+ - periods
+ - printYSLogoOnPicasso
+ - progressLabels
+ - title
+ type: object
+ 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
+ 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/'
+ 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
+ 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
+ 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:
+ - activities
+ - campCollaborations
+ - categories
+ - materialLists
+ - name
+ - periods
+ - printYSLogoOnPicasso
+ - progressLabels
+ - title
+ type: object
+ 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
+ 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/'
+ 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
+ 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
+ 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:
+ - activities
+ - campCollaborations
+ - categories
+ - materialLists
+ - name
+ - periods
+ - printYSLogoOnPicasso
+ - progressLabels
+ - title
+ type: object
+ 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
+ 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.jsonhal-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
+ 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:
+ '@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
+ 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/'
+ 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
+ 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
+ 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:
+ - activities
+ - campCollaborations
+ - categories
+ - materialLists
+ - name
+ - periods
+ - printYSLogoOnPicasso
+ - progressLabels
+ - title
+ type: object
+ 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:
+ '@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
+ 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.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"]'
+ 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.'
+ 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:
+ 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
+ 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
+ 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-read_CampCollaboration.Camp_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
+ 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:
@@ -2227,12 +6253,33 @@ components:
- progressLabels
- title
type: object
- Camp-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User:
+ Camp.jsonld-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:
+ '@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
activities:
description: |-
All the programme that will be carried out during the camp. An activity may be carried out
@@ -2273,12 +6320,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.'
@@ -2367,9 +6412,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.'
@@ -2413,95 +6465,401 @@ components:
- name
- periods
- printYSLogoOnPicasso
- - progressLabels
+ - 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
- Camp-read_CampCollaboration.Camp_CampCollaboration.User:
+ CampCollaboration-read:
deprecated: false
- description: ''
+ description: 'A user participating in some way in the planning or realization of a camp.'
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
+ 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'
+ 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
+ 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:
- 'null'
- string
- addressZipcode:
- description: 'The zipcode of the location of the camp.'
- example: '1234'
+ 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_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User'
+ -
+ type: 'null'
+ readOnly: true
+ required:
+ - camp
+ - role
+ - status
+ type: object
+ CampCollaboration-read_CampCollaboration.Camp_CampCollaboration.User:
+ deprecated: false
+ description: 'A user participating in some way in the planning or realization of a camp.'
+ properties:
+ camp:
+ anyOf:
+ -
+ $ref: '#/components/schemas/Camp-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
- 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
+ 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
- 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
+ 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
- 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
+ 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:
+ 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 person that created the camp. This value never changes, even when the person
- leaves the camp.
- example: 'https://example.com/'
+ 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-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
- readOnly: true
type: string
id:
description: 'An internal, unique, randomly generated identifier of this entity.'
@@ -2509,1311 +6867,1539 @@ 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:
- -
- 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
+ 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-read_Period.Camp_Period.Days:
+ CampCollaboration.jsonapi-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User:
deprecated: false
description: ''
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
- 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
+ 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
- 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: 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
- creator:
+ role:
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
+ 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.jsonapi-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User'
+ -
+ type: 'null'
+ readOnly: true
+ required:
+ - camp
+ - role
+ - status
+ type: object
+ CampCollaboration.jsonapi-read_CampCollaboration.Camp_CampCollaboration.User:
+ deprecated: false
+ description: 'A user participating in some way in the planning or realization of a camp.'
+ 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
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.jsonapi-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
- 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-write_create:
+ CampCollaboration.jsonapi-resend_invitation:
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.'
+ type: object
+ CampCollaboration.jsonapi-write_create:
+ deprecated: false
+ description: 'A user participating in some way in the planning or realization of a camp.'
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.'
+ 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:
- - '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
+ 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
- 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
+ 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
- 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
- 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
+ required:
+ - camp
+ - role
+ type: object
+ CampCollaboration.jsonapi-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
- 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
+ - role
+ - status
type: object
- Camp-write_update:
+ CampCollaboration.jsonhal-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:
- addressCity:
- description: 'The name of the town where the camp will take place.'
- example: Hintertüpfingen
+ _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
+ 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
- addressName:
- description: 'A textual description of the location of the camp.'
- example: 'Wiese hinter der alten Mühle'
+ 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
+ required:
+ - camp
+ - role
+ - status
+ type: object
+ CampCollaboration.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 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:
- '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.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
- addressZipcode:
- description: 'The zipcode of the location of the camp.'
- example: '1234'
+ 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.jsonhal-read_CampCollaboration.Camp_CampCollaboration.User'
+ -
+ type: 'null'
+ readOnly: true
+ 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
+ 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
- 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
+ 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
- motto:
- description: "The thematic topic (if any) of the camp's programme and storyline."
- example: Piraten
+ required:
+ - camp
+ - role
+ type: object
+ CampCollaboration.jsonld-read:
+ 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: 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
+ 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
- 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:
+ 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
- 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
+ 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
+ '@id':
+ readOnly: true
type: string
- trainingAdvisorName:
- description: 'The name of the training advisor who is in charge of the course.'
- example: 'Albert Anderegg'
- maxLength: 64
+ '@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
+ 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_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User'
+ -
+ type: 'null'
+ readOnly: true
required:
- - name
- - printYSLogoOnPicasso
- - title
+ - camp
+ - role
+ - status
type: object
- Camp.jsonhal-read:
+ CampCollaboration.jsonld-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:
- _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
- 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
+ -
+ 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
+ '@id':
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
+ type: string
+ '@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
- isPrototype:
- description: 'Whether this camp may serve as a template for creating other camps.'
- example: true
+ 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
- type: boolean
- kind:
- description: 'Rough categorization of the camp (house, tent, traveling, summer, autumn).'
- example: Zeltlager
- maxLength: 64
+ 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
- materialLists:
+ role:
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"]'
+ 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
+ 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
- motto:
- description: "The thematic topic (if any) of the camp's programme and storyline."
- example: Piraten
- maxLength: 128
- type:
- - 'null'
- - string
+ id:
+ description: 'An internal, unique, randomly generated identifier of this entity.'
+ example: 1a2b3c4d
+ maxLength: 16
+ readOnly: true
+ type: string
name:
- description: 'A short name for the camp.'
- example: 'SoLa 2022'
+ description: 'The full name of the category.'
+ example: Lagersport
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'
+ 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
- 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'
+ rootContentNode:
+ $ref: '#/components/schemas/ColumnLayout-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
+ required:
+ - camp
+ - color
+ - name
+ - numberingStyle
+ - preferredContentTypes
+ - short
+ type: object
+ Category-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.'
+ example: '["/content_nodes/1a2b3c4d"]'
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"]'
+ 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:
+ 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
- readOnly: true
type: array
- title:
- description: 'The full title of the camp.'
- example: 'Abteilungs-Sommerlager 2022'
- maxLength: 32
+ 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
- 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
+ - camp
+ - color
- name
- - periods
- - printYSLogoOnPicasso
- - progressLabels
- - title
+ - numberingStyle
+ - preferredContentTypes
+ - short
type: object
- Camp.jsonhal-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User:
+ Category-read_Category.PreferredContentTypes_Category.ContentNodes:
deprecated: false
description: |-
- The main entity that eCamp is designed to manage. Contains programme which may be
- distributed across multiple time periods.
+ 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
- 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.jsonhal-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"]'
+ 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
- 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.'
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:
- 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'
+ description: 'The full name of the category.'
+ example: Lagersport
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:
- items:
- $ref: '#/components/schemas/Period.jsonhal-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'
+ 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:
- example: 'https://example.com/'
- format: iri-reference
- type: string
+ $ref: '#/components/schemas/ContentType-read_Category.PreferredContentTypes_Category.ContentNodes'
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
+ 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
- type: array
- title:
- description: 'The full title of the camp.'
- example: 'Abteilungs-Sommerlager 2022'
- maxLength: 32
+ 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
- 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
+ - camp
+ - color
- name
- - periods
- - printYSLogoOnPicasso
- - progressLabels
- - title
+ - numberingStyle
+ - preferredContentTypes
+ - short
type: object
- Camp.jsonhal-read_CampCollaboration.Camp_CampCollaboration.User:
+ Category-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:
- activities:
+ 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
+ name:
+ description: 'The full name of the category.'
+ example: Lagersport
+ maxLength: 32
+ type: string
+ numberingStyle:
+ default: '1'
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'
+ 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
- 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:
+ 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_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
+ 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
- categories:
- description: 'Types of programme, such as sports activities or meal times.'
- example: '["/categories/1a2b3c4d"]'
+ 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
+ - 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"]'
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.'
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:
- 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'
+ description: 'The full name of the category.'
+ example: Lagersport
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:
- 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'
+ 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
- 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
+ rootContentNode:
+ $ref: '#/components/schemas/ColumnLayout.jsonapi-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
- type: array
- title:
- description: 'The full title of the camp.'
- example: 'Abteilungs-Sommerlager 2022'
- maxLength: 32
+ 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
- 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
+ - camp
+ - color
- name
- - periods
- - printYSLogoOnPicasso
- - progressLabels
- - title
+ - numberingStyle
+ - preferredContentTypes
+ - short
type: object
- Camp.jsonhal-read_Period.Camp_Period.Days:
+ Category.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes:
deprecated: false
description: ''
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
- 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:
+ 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
- categories:
- description: 'Types of programme, such as sports activities or meal times.'
- example: '["/categories/1a2b3c4d"]'
+ 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:
+ 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
- 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:
+ rootContentNode:
+ $ref: '#/components/schemas/ColumnLayout.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes'
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
+ 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.jsonapi-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.
+ 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"]'
+ 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
- isPrototype:
- description: 'Whether this camp may serve as a template for creating other camps.'
- example: true
+ 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.jsonapi-read_Category.PreferredContentTypes_Category.ContentNodes'
readOnly: true
- type: boolean
- kind:
- description: 'Rough categorization of the camp (house, tent, traveling, summer, autumn).'
- example: Zeltlager
- maxLength: 64
- type:
- - 'null'
- - string
- materialLists:
+ type: array
+ rootContentNode:
+ $ref: '#/components/schemas/ColumnLayout.jsonapi-read_Category.PreferredContentTypes_Category.ContentNodes'
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"]'
+ 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.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
+ 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
- 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
+ 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_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: 'A short name for the camp.'
- example: 'SoLa 2022'
+ description: 'The full name of the category.'
+ example: Lagersport
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:
- 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"]'
+ 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
- readOnly: true
type: array
- title:
- description: 'The full title of the camp.'
- example: 'Abteilungs-Sommerlager 2022'
- maxLength: 32
+ 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
- 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
+ - color
- name
- - periods
- - printYSLogoOnPicasso
- - progressLabels
- - title
+ - numberingStyle
+ - preferredContentTypes
+ - short
type: object
- Camp.jsonhal-write_create:
+ Category.jsonhal-read:
deprecated: false
description: |-
- The main entity that eCamp is designed to manage. Contains programme which may be
- distributed across multiple time periods.
+ 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:
@@ -3824,344 +8410,335 @@ components:
type: string
type: object
type: object
- 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.'
+ 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:
- - '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
+ 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: 'A short name for the camp.'
- example: 'SoLa 2022'
+ description: 'The full name of the category.'
+ example: Lagersport
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'
+ 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:
- $ref: '#/components/schemas/Period.jsonhal-write_create'
- minItems: 1
+ 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
- title:
- description: 'The full title of the camp.'
- example: 'Abteilungs-Sommerlager 2022'
- maxLength: 32
+ 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
- trainingAdvisorName:
- description: 'The name of the training advisor who is in charge of the course.'
- example: 'Albert Anderegg'
- maxLength: 64
- type:
- - 'null'
- - string
required:
+ - camp
+ - color
- name
- - periods
- - printYSLogoOnPicasso
- - title
+ - numberingStyle
+ - preferredContentTypes
+ - short
type: object
- Camp.jsonld-read:
+ Category.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes:
deprecated: false
- description: |-
- The main entity that eCamp is designed to manage. Contains programme which may be
- distributed across multiple time periods.
- properties:
- '@context':
- oneOf:
- -
- additionalProperties: true
+ description: ''
+ properties:
+ _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: 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
- '@type':
- readOnly: true
+ 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
- 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'
+ 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
- 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:
+ 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:
+ 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
- categories:
- description: 'Types of programme, such as sports activities or meal times.'
- example: '["/categories/1a2b3c4d"]'
+ 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
+ required:
+ - camp
+ - color
+ - name
+ - numberingStyle
+ - preferredContentTypes
+ - short
+ type: object
+ Category.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.
+ 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"]'
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.'
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:
+ name:
+ description: 'The full name of the category.'
+ example: Lagersport
+ maxLength: 32
+ type: string
+ numberingStyle:
+ default: '1'
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"]'
+ 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:
- example: 'https://example.com/'
- format: iri-reference
- type: string
+ $ref: '#/components/schemas/ContentType.jsonhal-read_Category.PreferredContentTypes_Category.ContentNodes'
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
+ 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
+ required:
+ - camp
+ - color
+ - name
+ - numberingStyle
+ - preferredContentTypes
+ - short
+ type: object
+ Category.jsonhal-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:
+ _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
name:
- description: 'A short name for the camp.'
- example: 'SoLa 2022'
+ description: 'The full name of the category.'
+ example: Lagersport
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:
- 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"]'
+ 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
- readOnly: true
type: array
- title:
- description: 'The full title of the camp.'
- example: 'Abteilungs-Sommerlager 2022'
- maxLength: 32
+ 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
- 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
+ - camp
+ - color
- name
- - periods
- - printYSLogoOnPicasso
- - progressLabels
- - title
+ - numberingStyle
+ - preferredContentTypes
+ - short
type: object
- Camp.jsonld-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User:
+ Category.jsonld-read:
deprecated: false
description: |-
- The main entity that eCamp is designed to manage. Contains programme which may be
- distributed across multiple time periods.
+ 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:
@@ -4182,194 +8759,86 @@ components:
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:
- 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"]'
- 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.'
- 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:
- 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
- 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'
+ type: string
+ '@type':
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'
+ 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
- progressLabels:
- description: 'All the progress labels within this camp.'
- example: '["/progress_labels/1a2b3c4d"]'
+ 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:
+ 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
- readOnly: true
type: array
- title:
- description: 'The full title of the camp.'
- example: 'Abteilungs-Sommerlager 2022'
- maxLength: 32
+ 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
- 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
+ - camp
+ - color
- name
- - periods
- - printYSLogoOnPicasso
- - progressLabels
- - title
+ - numberingStyle
+ - preferredContentTypes
+ - short
type: object
- Camp.jsonld-read_CampCollaboration.Camp_CampCollaboration.User:
+ Category.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes:
deprecated: false
description: ''
properties:
@@ -4396,197 +8865,88 @@ 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
- 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"]'
+ 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
- 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.'
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:
- 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'
+ description: 'The full name of the category.'
+ example: Lagersport
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:
- 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'
+ 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
- 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
+ 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
- type: array
- title:
- description: 'The full title of the camp.'
- example: 'Abteilungs-Sommerlager 2022'
- maxLength: 32
+ 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
- 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
+ - camp
+ - color
- name
- - periods
- - printYSLogoOnPicasso
- - progressLabels
- - title
+ - numberingStyle
+ - preferredContentTypes
+ - short
type: object
- Camp.jsonld-read_Period.Camp_Period.Days:
+ Category.jsonld-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:
'@context':
oneOf:
@@ -4611,1153 +8971,957 @@ 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
- 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"]'
+ 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
- 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.'
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:
+ name:
+ description: 'The full name of the category.'
+ example: Lagersport
+ maxLength: 32
+ type: string
+ numberingStyle:
+ default: '1'
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"]'
+ 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:
- example: 'https://example.com/'
- format: iri-reference
- type: string
+ $ref: '#/components/schemas/ContentType.jsonld-read_Category.PreferredContentTypes_Category.ContentNodes'
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
+ 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
name:
- description: 'A short name for the camp.'
- example: 'SoLa 2022'
+ description: 'The full name of the category.'
+ example: Lagersport
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'
+ 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
- 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'
+ 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.'
+ example: '["/content_nodes/1a2b3c4d"]'
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
+ 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: 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
+ 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'
- - string
- addressZipcode:
- description: 'The zipcode of the location of the camp.'
- example: '1234'
- maxLength: 128
+ 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
- campPrototype:
- description: 'The prototype camp that will be used as a template to create this camp.'
- example: /camps/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:
- '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
+ 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
- courseKind:
- description: 'The official name for the type of this course.'
- example: 'PBS AG 123-23'
- maxLength: 64
+ 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
- courseNumber:
- description: 'The official course number, identifying this course.'
- example: 'PBS AG 123-23'
- maxLength: 64
+ 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
+ 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'
- - string
- kind:
- description: 'Rough categorization of the camp (house, tent, traveling, summer, autumn).'
- example: Zeltlager
- maxLength: 64
+ 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
- motto:
- description: "The thematic topic (if any) of the camp's programme and storyline."
- example: Piraten
- maxLength: 128
+ 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
- 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
+ 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
- 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'
+ 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: 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
+ - children
+ - contentType
+ - data
+ - position
type: object
- CampCollaboration-read:
+ ColumnLayout-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.'
- example: /camps/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
+ 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
- inviteEmail:
+ instanceName:
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
+ 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
- role:
+ parent:
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
+ 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
- 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
+ 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
- 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:
+ slot:
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_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User'
- -
- type: 'null'
- readOnly: true
+ 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
- - role
- - status
+ - children
+ - contentType
+ - data
+ - position
type: object
- CampCollaboration-read_CampCollaboration.Camp_CampCollaboration.User:
+ ColumnLayout-read_Category.PreferredContentTypes_Category.ContentNodes:
deprecated: false
- description: 'A user participating in some way in the planning or realization of a camp.'
+ description: ''
properties:
- camp:
- anyOf:
- -
- $ref: '#/components/schemas/Camp-read_CampCollaboration.Camp_CampCollaboration.User'
- -
- type: 'null'
+ 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: '{"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
- inviteEmail:
+ instanceName:
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
+ 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
- role:
+ parent:
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
+ 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
- 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:
+ position:
+ 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.
- 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
+ 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:
- - 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:
+ slot:
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
+ 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:
- - role
- - status
+ - children
+ - contentType
+ - data
+ - position
type: object
- CampCollaboration.jsonhal-read:
+ ColumnLayout-read_ScheduleEntry.Activity:
deprecated: false
- description: 'A user participating in some way in the planning or realization of a camp.'
+ description: ''
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
+ 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: '{"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
- inviteEmail:
+ instanceName:
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
+ 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
- role:
+ parent:
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
+ 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
- - role
- - status
+ - children
+ - contentType
+ - data
+ - position
type: object
- CampCollaboration.jsonhal-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User:
+ ColumnLayout-write_create:
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
+ 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
- id:
- description: 'An internal, unique, randomly generated identifier of this entity.'
- example: 1a2b3c4d
- maxLength: 16
- readOnly: true
- type: string
- inviteEmail:
+ data:
+ default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}'
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
+ 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'
- - string
- role:
+ instanceName:
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.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:
+ 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 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
+ 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
- role:
+ position:
+ 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.
- 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.jsonhal-read_CampCollaboration.Camp_CampCollaboration.User'
- -
- type: 'null'
- 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
+ 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
- - role
- - status
+ - contentType
+ - data
+ - parent
+ - position
type: object
- CampCollaboration.jsonhal-write_create:
+ ColumnLayout-write_update:
deprecated: false
- description: 'A user participating in some way in the planning or realization of a camp.'
+ description: ''
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
- inviteEmail:
+ data:
+ default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}'
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
+ 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
- role:
+ parent:
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
+ 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:
- - camp
- - role
+ - data
+ - position
type: object
- CampCollaboration.jsonld-read:
+ ColumnLayout.jsonapi-read:
deprecated: false
- description: 'A user participating in some way in the planning or realization of 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':
+ 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
- '@type':
+ contentTypeName:
+ description: 'The name of the content type of this content node. Read-only, for convenience.'
+ example: SafetyConcept
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
+ 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
- inviteEmail:
+ instanceName:
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
+ 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
- role:
+ parent:
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
+ 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
- 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
- '@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
+ 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
- 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:
+ slot:
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_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User'
- -
- type: 'null'
- readOnly: true
+ 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
- - role
- - status
+ - children
+ - contentType
+ - data
+ - position
type: object
- CampCollaboration.jsonld-read_CampCollaboration.Camp_CampCollaboration.User:
+ ColumnLayout.jsonapi-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries:
deprecated: false
- description: 'A user participating in some way in the planning or realization of 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':
+ 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
- '@type':
+ contentTypeName:
+ description: 'The name of the content type of this content node. Read-only, for convenience.'
+ example: SafetyConcept
readOnly: true
type: string
- camp:
- anyOf:
- -
- $ref: '#/components/schemas/Camp.jsonld-read_CampCollaboration.Camp_CampCollaboration.User'
- -
- type: 'null'
- readOnly: true
+ 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
- inviteEmail:
+ instanceName:
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
+ 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
- role:
+ parent:
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
+ 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
- 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:
+ position:
+ 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.
- 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
+ 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
- - role
+ - children
+ - contentType
+ - data
+ - position
type: object
- Category-read:
+ ColumnLayout.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.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/'
@@ -5765,78 +9929,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
+ 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-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-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes:
+ ColumnLayout.jsonapi-read_Category.PreferredContentTypes_Category.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/'
@@ -5844,82 +10027,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
+ 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-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-read_Category.PreferredContentTypes_Category.ContentNodes:
+ ColumnLayout.jsonapi-read_ScheduleEntry.Activity:
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/'
@@ -5927,204 +10125,232 @@ 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:
- items:
- $ref: '#/components/schemas/ContentType-read_Category.PreferredContentTypes_Category.ContentNodes'
- readOnly: true
- type: array
- rootContentNode:
- $ref: '#/components/schemas/ColumnLayout-read_Category.PreferredContentTypes_Category.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-write_create:
+ ColumnLayout.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.
+ description: ''
properties:
- 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
- name:
- description: 'The full name of the category.'
- example: Lagersport
- maxLength: 32
- type: string
- numberingStyle:
- default: '1'
+ data:
+ default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}'
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"]'
+ 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
- type: array
- short:
+ type:
+ - array
+ - 'null'
+ instanceName:
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
+ 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:
- - camp
- - color
- - name
- - numberingStyle
- - preferredContentTypes
- - short
+ - contentType
+ - data
+ - parent
+ - position
type: object
- Category-write_update:
+ ColumnLayout.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.
+ description: ''
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'
+ data:
+ default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}'
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"]'
+ 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
- type: array
- short:
+ type:
+ - array
+ - 'null'
+ instanceName:
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
+ 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:
- - color
- - name
- - numberingStyle
- - preferredContentTypes
- - short
+ - data
+ - position
type: object
- Category.jsonhal-read:
+ 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:
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.'
+ 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/'
@@ -6132,78 +10358,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.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.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries:
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.'
+ _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/'
@@ -6211,68 +10465,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
+ 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_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.jsonhal-read_Category.PreferredContentTypes_Category.ContentNodes:
+ ColumnLayout.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.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:
_links:
properties:
@@ -6283,19 +10563,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/'
@@ -6303,65 +10572,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
+ 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:
- 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'
+ 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-write_create:
+ 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:
_links:
properties:
@@ -6372,103 +10670,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
- 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
+ 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
+ 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.jsonld-read:
+ ColumnLayout.jsonhal-read_ScheduleEntry.Activity:
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.'
+ type: object
+ children:
+ description: 'All content nodes that are direct children of this content node.'
example: '["/content_nodes/1a2b3c4d"]'
items:
example: 'https://example.com/'
@@ -6476,62 +10786,169 @@ 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
+ 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: 1
+ maxLength: 32
+ type:
+ - 'null'
+ - string
+ required:
+ - children
+ - contentType
+ - data
+ - position
+ type: object
+ ColumnLayout.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
- preferredContentTypes:
- description: 'The content types that are most likely to be useful for planning programme of this category.'
- example: '["/content_types/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
- type: array
- rootContentNode:
- $ref: '#/components/schemas/ColumnLayout.jsonld-read'
+ type:
+ - array
+ - 'null'
+ instanceName:
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.
+ 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
- readOnly: true
- short:
+ format: iri-reference
+ type:
+ - 'null'
+ - string
+ position:
+ default: -1
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
+ 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:
- - camp
- - color
- - name
- - numberingStyle
- - preferredContentTypes
- - short
+ - contentType
+ - data
+ - parent
+ - position
type: object
- Category.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes:
+ ColumnLayout.jsonld-read:
deprecated: false
description: ''
properties:
@@ -6558,19 +10975,8 @@ components:
'@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.'
+ children:
+ description: 'All content nodes that are direct children of this content node.'
example: '["/content_nodes/1a2b3c4d"]'
items:
example: 'https://example.com/'
@@ -6578,68 +10984,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
+ 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.jsonld-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:
'@context':
oneOf:
@@ -6664,19 +11096,8 @@ components:
'@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.'
+ children:
+ description: 'All content nodes that are direct children of this content node.'
example: '["/content_nodes/1a2b3c4d"]'
items:
example: 'https://example.com/'
@@ -6684,123 +11105,118 @@ 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.jsonld-read_Category.PreferredContentTypes_Category.ContentNodes'
- readOnly: true
- type: array
- rootContentNode:
- $ref: '#/components/schemas/ColumnLayout.jsonld-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.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
- name:
- description: 'The full name of the category.'
- example: Lagersport
- maxLength: 32
- type: string
- numberingStyle:
- default: '1'
+ 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: |-
- 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:
+ 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: |-
- 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
- ColumnLayout-read:
+ ColumnLayout.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
children:
description: 'All content nodes that are direct children of this content node.'
example: '["/content_nodes/1a2b3c4d"]'
@@ -6895,10 +11311,33 @@ components:
- data
- position
type: object
- ColumnLayout-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries:
+ 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"]'
@@ -6993,10 +11432,33 @@ components:
- data
- position
type: object
- ColumnLayout-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes:
+ 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"]'
@@ -7091,9 +11553,82 @@ components:
- data
- position
type: object
- ColumnLayout-read_Category.PreferredContentTypes_Category.ContentNodes:
+ 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
+ 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:
+ 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
+ ContentNode-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.
properties:
children:
description: 'All content nodes that are direct children of this content node.'
@@ -7118,15 +11653,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:
@@ -7186,10 +11715,9 @@ components:
required:
- children
- contentType
- - data
- position
type: object
- ColumnLayout-read_ScheduleEntry.Activity:
+ ContentNode-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes:
deprecated: false
description: ''
properties:
@@ -7216,15 +11744,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:
@@ -7284,13 +11806,21 @@ components:
required:
- children
- contentType
- - data
- position
type: object
- ColumnLayout-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
@@ -7299,21 +11829,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
@@ -7340,6 +11875,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
@@ -7350,30 +11895,56 @@ components:
- 'null'
- string
required:
+ - children
- contentType
- - data
- - parent
- position
type: object
- ColumnLayout-write_update:
+ ContentNode.jsonapi-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:
- data:
- default: '{"columns":[{"slot":"1","width":6},{"slot":"2","width":6}]}'
+ 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: |-
- Holds the actual data of the content node
- (overridden from abstract class in order to add specific validation).
+ 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.'
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
@@ -7400,6 +11971,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
@@ -7410,22 +11991,14 @@ components:
- 'null'
- string
required:
- - data
+ - children
+ - contentType
- position
type: object
- ColumnLayout.jsonhal-read:
+ ContentNode.jsonapi-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
children:
description: 'All content nodes that are direct children of this content node.'
example: '["/content_nodes/1a2b3c4d"]'
@@ -7449,15 +12022,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:
@@ -7517,10 +12084,9 @@ components:
required:
- children
- contentType
- - data
- position
type: object
- ColumnLayout.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries:
+ ContentNode.jsonapi-read_Category.PreferredContentTypes_Category.ContentNodes:
deprecated: false
description: ''
properties:
@@ -7547,15 +12113,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:
@@ -7615,13 +12175,26 @@ components:
required:
- children
- contentType
- - data
- position
type: object
- ColumnLayout.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes:
+ 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:
+ 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"]'
@@ -7645,15 +12218,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:
@@ -7713,13 +12280,21 @@ components:
required:
- children
- contentType
- - data
- position
type: object
- ColumnLayout.jsonhal-read_Category.PreferredContentTypes_Category.ContentNodes:
+ ContentNode.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
children:
description: 'All content nodes that are direct children of this content node.'
example: '["/content_nodes/1a2b3c4d"]'
@@ -7743,15 +12318,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:
@@ -7811,13 +12380,21 @@ components:
required:
- children
- contentType
- - data
- position
type: object
- ColumnLayout.jsonhal-read_ScheduleEntry.Activity:
+ ContentNode.jsonhal-read_Category.PreferredContentTypes_Category.ContentNodes:
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"]'
@@ -7841,15 +12418,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:
@@ -7909,22 +12480,32 @@ components:
required:
- children
- contentType
- - data
- position
type: object
- ColumnLayout.jsonhal-write_create:
+ 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"]'
+ 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
@@ -7933,21 +12514,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
@@ -7974,6 +12560,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
@@ -7984,12 +12580,11 @@ components:
- 'null'
- string
required:
+ - children
- contentType
- - data
- - parent
- position
type: object
- ColumnLayout.jsonld-read:
+ ContentNode.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes:
deprecated: false
description: ''
properties:
@@ -8037,17 +12632,11 @@ components:
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).
+ type: string
+ data:
+ description: 'Holds the actual data of the content node.'
example:
- columns:
- -
- slot: '1'
- width: 12
+ text: 'dummy text'
items:
type: string
type:
@@ -8107,10 +12696,9 @@ components:
required:
- children
- contentType
- - data
- position
type: object
- ColumnLayout.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries:
+ ContentNode.jsonld-read_Category.PreferredContentTypes_Category.ContentNodes:
deprecated: false
description: ''
properties:
@@ -8160,15 +12748,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:
@@ -8213,27 +12795,272 @@ components:
example: /content_nodes/1a2b3c4d
format: iri-reference
readOnly: true
- type:
- - 'null'
- - string
- slot:
+ 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
+ ContentType-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'
+ 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-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:
+ 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'
+ 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_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:
+ 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.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
+ 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_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: 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:
@@ -8258,101 +13085,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
+ 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_Category.PreferredContentTypes_Category.ContentNodes:
+ ContentType.jsonld-read_Category.PreferredContentTypes_Category.ContentNodes:
deprecated: false
description: ''
properties:
@@ -8379,575 +13144,511 @@ 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:
- 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:
+ 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
- required:
- - children
- - contentType
- - data
- - position
- type: object
- 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
+ required:
+ - active
+ - name
+ type: object
+ Credentials:
+ properties:
+ identifier:
+ example: test@example.com
type: string
- children:
- description: 'All content nodes that are direct children of this content node.'
- example: '["/content_nodes/1a2b3c4d"]'
+ password:
+ example: test
+ type: string
+ type: object
+ Day-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User:
+ 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
- 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:
- 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'
+ - 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
+ 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
- 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
+ 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
- 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
+ dayResponsibles:
+ items:
+ $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:
- '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
+ 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
type:
- 'null'
- string
required:
- - children
- - contentType
- - data
- - position
+ - dayOffset
+ - dayResponsibles
+ - period
type: object
- ColumnLayout.jsonld-write_create:
+ Day-read_Period.Camp_Period.Days:
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
+ 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
- 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
+ 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
- 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
+ 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
- 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
+ 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:
- - contentType
- - data
- - parent
- - position
+ - dayOffset
+ - dayResponsibles
+ - period
type: object
- ContentNode-read:
+ Day.jsonapi-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User:
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
+ 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
- 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
+ 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
- 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
+ dayResponsibles:
+ items:
+ $ref: '#/components/schemas/DayResponsible.jsonapi-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:
- '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
+ 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
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-read_Period.Camp_Period.Days:
deprecated: false
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_Category.PreferredContentTypes_Category.ContentNodes:
+ 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.jsonhal-read:
+ Day.jsonhal-read_Day.DayResponsibles:
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.
+ 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:
_links:
properties:
@@ -8958,378 +13659,310 @@ components:
type: string
type: object
type: object
- 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:
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.jsonhal-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes:
+ Day.jsonhal-read_Period.Camp_Period.Days:
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.jsonhal-read_Category.PreferredContentTypes_Category.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
+ 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.jsonld-read:
+ Day.jsonld-read_Day.DayResponsibles:
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.
+ 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
- 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:
items:
- example: 'https://example.com/'
- format: iri-reference
- type: string
+ $ref: '#/components/schemas/DayResponsible.jsonld-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.jsonld-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes:
+ Day.jsonld-read_Period.Camp_Period.Days:
deprecated: false
description: ''
properties:
@@ -9356,288 +13989,267 @@ components:
'@type':
readOnly: true
type: string
- 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
+ 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
format: iri-reference
type: string
- contentTypeName:
- description: 'The name of the content type of this content node. Read-only, for convenience.'
- example: SafetyConcept
+ 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:
+ - 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
+ 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
- data:
- description: 'Holds the actual data of the content node.'
- example:
- text: 'dummy text'
- items:
- type: string
- type:
- - array
- - 'null'
+ 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-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
- 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_Category.PreferredContentTypes_Category.ContentNodes:
+ DayResponsible.jsonapi-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':
- 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.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:
- - '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
- ContentType-read:
+ DayResponsible.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: 'A person that has some whole-day responsibility on a day in the 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'
+ _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
- items:
- type: string
- readOnly: true
- type: array
+ 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
- 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
+ - campCollaboration
+ - day
type: object
- ContentType-read_Category.PreferredContentTypes_Category.ContentNodes:
+ DayResponsible.jsonhal-read_Day.DayResponsibles:
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'
+ _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
- items:
- type: string
- readOnly: true
- type: array
+ 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
- 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
+ - campCollaboration
+ - day
type: object
- ContentType.jsonhal-read:
+ DayResponsible.jsonhal-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 person that has some whole-day responsibility on a day in the camp.'
properties:
_links:
properties:
@@ -9648,80 +14260,70 @@ 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'
+ 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
- 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
+ day:
+ description: 'The day on which the person is responsible.'
+ example: /days/1a2b3c4d
+ format: iri-reference
type: string
required:
- - active
- - name
+ - campCollaboration
+ - day
type: object
- ContentType.jsonhal-read_Category.PreferredContentTypes_Category.ContentNodes:
+ DayResponsible.jsonld-read:
deprecated: false
- description: ''
+ description: 'A person that has some whole-day responsibility on a day in the camp.'
properties:
- active:
- default: true
- description: 'Whether this content type is still maintained and recommended for use in new camps.'
- example: 'true'
+ '@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: 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
+ '@id':
readOnly: true
- type: array
+ type: string
+ '@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
- 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
+ - campCollaboration
+ - day
type: object
- ContentType.jsonld-read:
+ DayResponsible.jsonld-read_Day.DayResponsibles:
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:
@@ -9746,41 +14348,172 @@ 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'
+ 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
- items:
- type: string
- readOnly: true
- type: array
+ 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
+ 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:
+ 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
+ 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:
+ 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
+ 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:
+ 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 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
- name:
+ campTitle:
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 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
- required:
- - active
- - name
+ 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
- ContentType.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:
@@ -9805,615 +14538,343 @@ 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
- id:
- description: 'An internal, unique, randomly generated identifier of this entity.'
- example: 1a2b3c4d
- maxLength: 16
- readOnly: true
- type: string
- name:
+ campId:
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
- 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:
- 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
- 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:
- - 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:
- $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:
- - 'null'
- - string
- 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
- 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
+ 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
- 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
+ userAlreadyInCamp:
+ description: |-
+ Indicates whether the logged in user is already collaborating in the camp, and
+ can therefore not accept the invitation.
type:
- - 'null'
- - string
- required:
- - dayOffset
- - dayResponsibles
- - period
- type: object
- Day-read_Period.Camp_Period.Days:
- 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
+ - 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
- number:
- description: 'The 1-based cardinal number of the day in the period. Not unique within the camp.'
- example: '2'
- readOnly: true
- type: integer
+ 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 time period that this day belongs to.'
+ description: 'The period to which this item belongs, if it does not belong to a content node.'
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
+ 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:
- - dayOffset
- - dayResponsibles
- - period
+ - article
+ - materialList
type: object
- Day.jsonhal-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User:
+ MaterialItem-write:
deprecated: false
- description: ''
+ description: 'A physical item that is needed for carrying out a programme or 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
- readOnly: true
+ 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
- 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.'
+ description: 'The period to which this item belongs, if it does not belong to a content node.'
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:
- - dayOffset
- - dayResponsibles
- - period
- type: object
- Day.jsonhal-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:
- _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:
- $ref: '#/components/schemas/DayResponsible.jsonhal-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
+ 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
+ MaterialItem.jsonapi-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
- 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
+ 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
- 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
+ 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
- required:
- - dayOffset
- - dayResponsibles
- - period
- type: object
- Day.jsonhal-read_Period.Camp_Period.Days:
- 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
+ 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
- id:
- description: 'An internal, unique, randomly generated identifier of this entity.'
- example: 1a2b3c4d
- maxLength: 16
- readOnly: true
+ required:
+ - article
+ - materialList
+ type: object
+ MaterialItem.jsonapi-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
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
+ 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 time period that this day belongs to.'
+ description: 'The period to which this item belongs, if it does not belong to a content node.'
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:
- - dayOffset
- - dayResponsibles
- - period
+ 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
- Day.jsonld-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User:
+ MaterialItem.jsonhal-read:
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: object
+ article:
+ description: 'The name of the item that is required.'
+ example: Volleyball
+ maxLength: 64
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
- 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
+ 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 time period that this day belongs to.'
+ description: 'The period to which this item belongs, if it does not belong to a content node.'
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
+ 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:
- - dayOffset
- - dayResponsibles
- - period
+ - article
+ - materialList
type: object
- Day.jsonld-read_Day.DayResponsibles:
+ MaterialItem.jsonhal-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.
+ description: 'A physical item that is needed for carrying out a programme or camp.'
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
- 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:
- $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:
- - 'null'
- - string
- id:
- description: 'An internal, unique, randomly generated identifier of this entity.'
- example: 1a2b3c4d
- maxLength: 16
- readOnly: true
+ type: object
+ article:
+ description: 'The name of the item that is required.'
+ example: Volleyball
+ maxLength: 64
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
+ 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 time period that this day belongs to.'
+ description: 'The period to which this item belongs, if it does not belong to a content node.'
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
+ 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:
- - dayOffset
- - dayResponsibles
- - period
+ - article
+ - materialList
type: object
- Day.jsonld-read_Period.Camp_Period.Days:
+ MaterialItem.jsonld-read:
deprecated: false
description: ''
properties:
@@ -10440,373 +14901,342 @@ 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"]'
- 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
+ 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
- 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
+ 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
- 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
+ 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
- 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
- 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
+ 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: string
- id:
- description: 'An internal, unique, randomly generated identifier of this entity.'
- example: 1a2b3c4d
- maxLength: 16
- readOnly: true
- type: string
+ 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:
- - campCollaboration
- - day
+ - article
+ - materialList
type: object
- DayResponsible-write:
+ MaterialItem.jsonld-write:
deprecated: false
- description: 'A person that has some whole-day responsibility on a day in the camp.'
+ description: 'A physical item that is needed for carrying out a programme or 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
+ article:
+ description: 'The name of the item that is required.'
+ example: Volleyball
+ maxLength: 64
type: string
- day:
- description: 'The day on which the person is responsible.'
- example: /days/1a2b3c4d
+ 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
- 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
+ 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: string
- day:
- description: 'The day on which the person is responsible.'
- example: /days/1a2b3c4d
+ 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: string
- id:
- description: 'An internal, unique, randomly generated identifier of this entity.'
- example: 1a2b3c4d
- maxLength: 16
- readOnly: true
- type: string
+ 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:
- - campCollaboration
- - day
+ - article
+ - materialList
type: object
- DayResponsible.jsonhal-read_Day.DayResponsibles:
+ 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:
- campCollaboration:
- description: "The person that is responsible. Must belong to the same camp as the day's period."
- example: /camp_collaborations/1a2b3c4d
+ camp:
+ description: 'The camp this material list belongs to.'
+ example: /camps/1a2b3c4d
format: iri-reference
type: string
- day:
- description: 'The day on which the person is responsible.'
- example: /days/1a2b3c4d
+ campCollaboration:
+ description: 'The campCollaboration this material list belongs to.'
+ example: /camp_collaborations/1a2b3c4d
format: iri-reference
- type: string
+ 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"]'
+ 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
required:
- - campCollaboration
- - day
+ - camp
+ - materialItems
+ - name
type: object
- DayResponsible.jsonhal-write:
+ MaterialList-write:
deprecated: false
- description: 'A person that has some whole-day responsibility on a day in the camp.'
+ 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
- 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
+ name:
+ description: 'The human readable name of the material list.'
+ example: Lebensmittel
+ maxLength: 32
+ type:
+ - 'null'
+ - string
required:
- - campCollaboration
- - day
+ - name
type: object
- DayResponsible.jsonld-read:
+ MaterialList-write_create:
deprecated: false
- description: 'A person that has some whole-day responsibility on a day in the camp.'
+ 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
- '@id':
- readOnly: true
- type: string
- '@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
+ camp:
+ description: 'The camp this material list belongs to.'
+ 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
+ name:
+ description: 'The human readable name of the material list.'
+ example: Lebensmittel
+ maxLength: 32
+ type:
+ - 'null'
+ - string
required:
- - campCollaboration
- - day
+ - camp
+ - name
type: object
- DayResponsible.jsonld-read_Day.DayResponsibles:
+ MaterialList.jsonapi-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:
- '@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 this material list belongs to.'
+ example: /camps/1a2b3c4d
+ format: iri-reference
type: string
campCollaboration:
- description: "The person that is responsible. Must belong to the same camp as the day's period."
+ description: 'The campCollaboration this material list belongs to.'
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
+ 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"]'
+ 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
required:
- - campCollaboration
- - day
+ - camp
+ - materialItems
+ - name
type: object
- DayResponsible.jsonld-write:
+ MaterialList.jsonapi-write:
deprecated: false
- description: 'A person that has some whole-day responsibility on a day in the camp.'
+ 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:
- 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
+ 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:
- - campCollaboration
- - day
+ - camp
+ - name
type: object
- Invitation-read:
+ MaterialList.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.
+ 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:
- 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'
+ _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
- userAlreadyInCamp:
- description: |-
- Indicates whether the logged in user is already collaborating in the camp, and
- can therefore not accept the invitation.
+ campCollaboration:
+ description: 'The campCollaboration this material list belongs to.'
+ example: /camp_collaborations/1a2b3c4d
+ format: iri-reference
+ readOnly: true
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'
+ - 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"]'
+ 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
+ required:
+ - camp
+ - materialItems
+ - name
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.jsonhal-read:
+ MaterialList.jsonhal-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.
+ 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:
@@ -10817,39 +15247,27 @@ components:
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'
+ camp:
+ description: 'The camp this material list belongs to.'
+ example: /camps/1a2b3c4d
+ format: iri-reference
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'
+ name:
+ description: 'The human readable name of the material list.'
+ example: Lebensmittel
+ maxLength: 32
type:
- 'null'
- string
+ required:
+ - camp
+ - name
type: object
- Invitation.jsonld-read:
+ MaterialList.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.
+ 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:
@@ -10874,463 +15292,491 @@ components:
'@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'
+ camp:
+ description: 'The camp this material list belongs to.'
+ example: /camps/1a2b3c4d
+ format: iri-reference
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'
+ campCollaboration:
+ description: 'The campCollaboration this material list belongs to.'
+ example: /camp_collaborations/1a2b3c4d
+ format: iri-reference
+ readOnly: true
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:
- 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
+ itemCount:
+ example: 3
+ readOnly: true
+ type: integer
+ 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
+ name:
+ description: 'The human readable name of the material list.'
+ example: Lebensmittel
maxLength: 32
type:
- 'null'
- string
required:
- - article
- - materialList
+ - camp
+ - materialItems
+ - name
type: object
- MaterialItem-write:
+ MaterialList.jsonld-write_create:
deprecated: false
- description: 'A physical item that is needed for carrying out a programme or camp.'
+ 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:
- 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 this material list belongs to.'
+ 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
+ name:
+ description: 'The human readable name of the material list.'
+ example: Lebensmittel
+ maxLength: 32
type:
- 'null'
- string
+ required:
+ - camp
+ - name
type: object
- MaterialItem.jsonhal-read:
+ MaterialNode-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
+ 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
- materialList:
+ instanceName:
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
+ 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
- period:
- description: 'The period to which this item belongs, if it does not belong to a content node.'
- example: /periods/1a2b3c4d
+ materialItems:
+ items:
+ $ref: '#/components/schemas/MaterialItem-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
- quantity:
- description: 'The number of items or the amount in the unit of items that are required.'
- example: 1.5
+ 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'
- - number
- unit:
- description: 'An optional unit for measuring the amount of items required.'
- example: kg
+ - 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:
- - article
- - materialList
+ - children
+ - contentType
+ - materialItems
+ - position
type: object
- MaterialItem.jsonhal-write:
+ MaterialNode-write_create:
deprecated: false
- description: 'A physical item that is needed for carrying out a programme or camp.'
+ 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
- type: string
- materialList:
+ contentType:
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
+ 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
- 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
+ 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
- period:
- description: 'The period to which this item belongs, if it does not belong to a content node.'
- example: /periods/1a2b3c4d
- format: iri-reference
+ 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
- quantity:
- description: 'The number of items or the amount in the unit of items that are required.'
- example: 1.5
+ 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'
- - number
- unit:
- description: 'An optional unit for measuring the amount of items required.'
- example: kg
+ - 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:
- - article
- - materialList
+ - contentType
+ - parent
+ - position
type: object
- MaterialItem.jsonld-read:
+ MaterialNode-write_update:
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':
+ 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
- '@type':
+ contentTypeName:
+ description: 'The name of the content type of this content node. Read-only, for convenience.'
+ example: SafetyConcept
readOnly: true
type: string
- article:
- description: 'The name of the item that is required.'
- example: Volleyball
- maxLength: 64
- 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
- materialList:
+ instanceName:
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
+ 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
- period:
- description: 'The period to which this item belongs, if it does not belong to a content node.'
- example: /periods/1a2b3c4d
+ materialItems:
+ items:
+ $ref: '#/components/schemas/MaterialItem.jsonapi-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
- quantity:
- description: 'The number of items or the amount in the unit of items that are required.'
- example: 1.5
+ 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'
- - number
- unit:
- description: 'An optional unit for measuring the amount of items required.'
- example: kg
+ - 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:
- - article
- - materialList
+ - children
+ - contentType
+ - materialItems
+ - position
type: object
- MaterialItem.jsonld-write:
+ MaterialNode.jsonapi-write_create:
deprecated: false
- description: 'A physical item that is needed for carrying out a programme or camp.'
+ description: ''
properties:
- article:
- description: 'The name of the item that is required.'
- example: Volleyball
- maxLength: 64
- type: string
- materialList:
+ contentType:
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
+ 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
- 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
+ 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'
- - number
- unit:
- description: 'An optional unit for measuring the amount of items required.'
- example: kg
+ 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:
- - article
- - materialList
- type: object
- MaterialList-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
- type: string
- campCollaboration:
- description: 'The campCollaboration this material list belongs to.'
- example: /camp_collaborations/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
- 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
+ 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
- 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
- name:
- description: 'The human readable name of the material list.'
- example: Lebensmittel
+ 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
- - materialItems
- - name
+ - contentType
+ - parent
+ - position
type: object
- MaterialList-write:
+ MaterialNode.jsonapi-write_update:
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:
- name:
- description: 'The human readable name of the material list.'
- example: Lebensmittel
+ 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
- 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
+ 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:
- - camp
- - name
+ - position
type: object
- MaterialList.jsonhal-read:
+ MaterialNode.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.
+ description: ''
properties:
_links:
properties:
@@ -11341,55 +15787,101 @@ components:
type: string
type: object
type: object
- camp:
- description: 'The camp this material list belongs to.'
- example: /camps/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
- campCollaboration:
- description: 'The campCollaboration this material list belongs to.'
- example: /camp_collaborations/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).
+ 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
- itemCount:
- example: 3
- readOnly: true
- type: integer
+ 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: 'The items that are part of this list.'
- example: '["/material_items/1a2b3c4d"]'
items:
- example: 'https://example.com/'
- format: iri-reference
- type: string
- readOnly: true
+ $ref: '#/components/schemas/MaterialItem.jsonhal-read'
type: array
- name:
- description: 'The human readable name of the material list.'
- example: Lebensmittel
+ 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
+ - children
+ - contentType
- materialItems
- - name
+ - position
type: object
- MaterialList.jsonhal-write_create:
+ MaterialNode.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.
+ description: ''
properties:
_links:
properties:
@@ -11400,121 +15892,90 @@ components:
type: string
type: object
type: object
- camp:
- description: 'The camp this material list belongs to.'
- 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
- name:
- description: 'The human readable name of the material list.'
- example: Lebensmittel
+ 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
- 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
- '@id':
- readOnly: true
- 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
+ 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
- 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
+ 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
- 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
- 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
+ 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
- - name
+ - contentType
+ - parent
+ - position
type: object
- MaterialNode-read:
+ MaterialNode.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"]'
@@ -11563,7 +16024,7 @@ components:
- string
materialItems:
items:
- $ref: '#/components/schemas/MaterialItem-read'
+ $ref: '#/components/schemas/MaterialItem.jsonld-read'
type: array
parent:
description: |-
@@ -11607,7 +16068,7 @@ components:
- materialItems
- position
type: object
- MaterialNode-write_create:
+ MaterialNode.jsonld-write_create:
deprecated: false
description: ''
properties:
@@ -11668,19 +16129,53 @@ components:
- parent
- position
type: object
- MaterialNode-write_update:
+ 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:
+ 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
@@ -11707,6 +16202,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
@@ -11717,30 +16222,14 @@ components:
- 'null'
- string
required:
+ - children
+ - contentType
- position
type: object
- MaterialNode.jsonhal-read:
+ MultiSelect-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
contentType:
description: |-
Defines the type of this content node. There is a fixed list of types that are implemented
@@ -11749,26 +16238,21 @@ 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
(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
@@ -11778,10 +16262,6 @@ components:
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
@@ -11799,16 +16279,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
@@ -11819,36 +16289,24 @@ components:
- 'null'
- string
required:
- - children
- contentType
- - materialItems
+ - parent
- position
type: object
- MaterialNode.jsonhal-write_create:
+ MultiSelect-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:
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:
@@ -11890,37 +16348,13 @@ components:
- 'null'
- string
required:
- - contentType
- - parent
+ - data
- position
type: object
- MaterialNode.jsonld-read:
+ MultiSelect.jsonapi-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"]'
@@ -11947,6 +16381,12 @@ components:
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:
@@ -11967,10 +16407,6 @@ components:
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
@@ -12010,10 +16446,9 @@ components:
required:
- children
- contentType
- - materialItems
- position
type: object
- MaterialNode.jsonld-write_create:
+ MultiSelect.jsonapi-write_create:
deprecated: false
description: ''
properties:
@@ -12029,6 +16464,12 @@ components:
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:
@@ -12074,32 +16515,10 @@ components:
- parent
- position
type: object
- MultiSelect-read:
+ MultiSelect.jsonapi-write_update:
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
@@ -12115,12 +16534,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
@@ -12147,16 +16560,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
@@ -12167,14 +16570,31 @@ components:
- 'null'
- string
required:
- - children
- - contentType
+ - data
- position
type: object
- MultiSelect-write_create:
+ 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
@@ -12183,6 +16603,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:
description: |-
Holds the actual data of the content node
@@ -12198,6 +16623,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
@@ -12224,6 +16655,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
@@ -12234,14 +16675,31 @@ components:
- 'null'
- string
required:
+ - children
- contentType
- - parent
- position
type: object
- MultiSelect-write_update:
+ 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
@@ -12293,22 +16751,37 @@ components:
- 'null'
- string
required:
- - data
+ - contentType
+ - parent
- position
type: object
- MultiSelect.jsonhal-read:
+ MultiSelect.jsonld-read:
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"]'
@@ -12402,19 +16875,10 @@ components:
- contentType
- position
type: object
- MultiSelect.jsonhal-write_create:
+ MultiSelect.jsonld-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
@@ -12466,47 +16930,215 @@ components:
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
+ 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:
- - contentType
- - parent
- - position
+ - camp
+ - days
+ - description
+ - end
+ - materialItems
+ - scheduleEntries
+ - start
type: object
- MultiSelect.jsonld-read:
+ Period-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:
- '@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_Period.Camp_Period.Days'
-
- type: string
- readOnly: true
- '@id':
- readOnly: true
- type: string
- '@type':
+ type: 'null'
readOnly: true
- type: string
- children:
- description: 'All content nodes that are direct children of this content node.'
+ 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/'
@@ -12514,158 +17146,159 @@ 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:
- 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
+ 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:
- - 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
- 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:
+ materialItems:
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
+ 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:
- - 'null'
- - string
- slot:
+ type: array
+ scheduleEntries:
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
+ 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:
- - children
- - contentType
- - position
+ - camp
+ - days
+ - description
+ - end
+ - materialItems
+ - scheduleEntries
+ - start
type: object
- MultiSelect.jsonld-write_create:
+ Period-write:
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
- 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
+ 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:
+ end:
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
+ 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
- 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
+ - camp
+ - description
+ - end
+ - moveScheduleEntries
+ - start
type: object
- Period-read:
+ Period.jsonapi-read:
deprecated: false
description: |-
A time period in which the programme of a camp will take place. There may be multiple
@@ -12759,7 +17392,7 @@ components:
- scheduleEntries
- start
type: object
- Period-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User:
+ Period.jsonapi-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User:
deprecated: false
description: ''
properties:
@@ -12788,7 +17421,7 @@ components:
type: array
days:
items:
- $ref: '#/components/schemas/Day-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User'
+ $ref: '#/components/schemas/Day.jsonapi-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User'
readOnly: true
type: array
description:
@@ -12847,7 +17480,7 @@ components:
- scheduleEntries
- start
type: object
- Period-read_Period.Camp_Period.Days:
+ 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
@@ -12856,7 +17489,7 @@ components:
camp:
anyOf:
-
- $ref: '#/components/schemas/Camp-read_Period.Camp_Period.Days'
+ $ref: '#/components/schemas/Camp.jsonapi-read_Period.Camp_Period.Days'
-
type: 'null'
readOnly: true
@@ -12880,7 +17513,7 @@ components:
type: array
days:
items:
- $ref: '#/components/schemas/Day-read_Period.Camp_Period.Days'
+ $ref: '#/components/schemas/Day.jsonapi-read_Period.Camp_Period.Days'
readOnly: true
type: array
description:
@@ -12939,7 +17572,7 @@ components:
- scheduleEntries
- start
type: object
- Period-write:
+ Period.jsonapi-write:
deprecated: false
description: |-
A time period in which the programme of a camp will take place. There may be multiple
@@ -12977,7 +17610,7 @@ components:
- moveScheduleEntries
- start
type: object
- Period-write_create:
+ Period.jsonapi-write_create:
deprecated: false
description: |-
A time period in which the programme of a camp will take place. There may be multiple
@@ -13128,6 +17761,15 @@ components:
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
@@ -13660,100 +18302,383 @@ components:
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
+ 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
+ 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
- materialItems:
+ 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: |-
- 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
+ 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: 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
+ 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: 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
+ type:
+ - 'null'
+ - string
required:
- - camp
- - days
- - description
- - end
- - materialItems
- - scheduleEntries
- - start
+ - email
type: object
- Period.jsonld-write_create:
+ Profile-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.
+ 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:
- camp:
- description: 'The camp that this time period belongs to. Cannot be changed once the period is created.'
- example: /camps/1a2b3c4d
- format: iri-reference
+ email:
+ description: 'Unique email of the user.'
+ example: bi-pi@example.com
+ externalDocs:
+ url: 'https://schema.org/email'
+ format: email
+ maxLength: 64
type: string
- description:
- description: 'A free text name for the period. Useful to distinguish multiple periods in the same camp.'
- example: Hauptlager
+ 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
- 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
+ surname:
+ description: "The user's (optional) last name."
+ example: Baden-Powell
+ maxLength: 64
+ type:
+ - 'null'
+ - string
required:
- - camp
- - description
- - end
- - moveScheduleEntries
- - start
+ - email
type: object
- Profile-read:
+ 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:
deprecated: false
description: |-
The profile of a person using eCamp.
@@ -13832,7 +18757,7 @@ components:
required:
- email
type: object
- Profile-read_User.create:
+ Profile.jsonapi-read_User.create:
deprecated: false
description: ''
properties:
@@ -13908,7 +18833,7 @@ components:
required:
- email
type: object
- Profile-write_create:
+ Profile.jsonapi-write_create:
deprecated: false
description: |-
The profile of a person using eCamp.
@@ -13974,7 +18899,7 @@ components:
required:
- email
type: object
- Profile-write_update:
+ Profile.jsonapi-write_update:
deprecated: false
description: |-
The profile of a person using eCamp.
@@ -14128,6 +19053,15 @@ components:
deprecated: false
description: ''
properties:
+ _links:
+ properties:
+ self:
+ properties:
+ href:
+ format: iri-reference
+ type: string
+ type: object
+ type: object
email:
description: 'Unique email of the user.'
example: bi-pi@example.com
@@ -14207,6 +19141,15 @@ components:
The properties available to related eCamp users are here.
Related means that they were or are collaborators in the same camp.
properties:
+ _links:
+ properties:
+ self:
+ properties:
+ href:
+ format: iri-reference
+ type: string
+ type: object
+ type: object
email:
description: 'Unique email of the user.'
example: bi-pi@example.com
@@ -14507,217 +19450,750 @@ components:
type:
- 'null'
- string
- newEmail:
- description: 'New email.'
- example: bi-pi@example.com
- externalDocs:
- url: 'https://schema.org/email'
- format: email
+ 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
+ ResetPassword:
+ 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-create:
+ deprecated: false
+ description: ''
+ properties:
+ email:
+ type:
+ - 'null'
+ - string
+ recaptchaToken:
+ type:
+ - 'null'
+ - string
+ writeOnly: true
+ type: object
+ ResetPassword-update:
+ deprecated: false
+ description: ''
+ properties:
+ password:
+ maxLength: 128
+ minLength: 12
+ type:
+ - 'null'
+ - string
+ writeOnly: true
+ recaptchaToken:
+ type:
+ - 'null'
+ - string
+ writeOnly: true
+ type: object
+ ResetPassword.jsonapi:
+ 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
+ type: object
+ ResetPassword.jsonhal:
+ deprecated: false
+ description: ''
+ properties:
+ _links:
+ properties:
+ self:
+ properties:
+ href:
+ format: iri-reference
+ type: string
+ type: object
+ type: object
+ 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.jsonhal-create:
+ deprecated: false
+ description: ''
+ properties:
+ _links:
+ properties:
+ self:
+ properties:
+ href:
+ format: iri-reference
+ type: string
+ type: object
+ type: object
+ email:
+ type:
+ - 'null'
+ - string
+ recaptchaToken:
+ type:
+ - 'null'
+ - string
+ writeOnly: true
+ type: object
+ ResetPassword.jsonld:
+ 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
+ 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
- nickname:
- description: "The user's (optional) nickname or scout name."
- example: Bi-Pi
- maxLength: 32
+ writeOnly: true
+ type: object
+ ResetPassword.jsonld-create:
+ deprecated: false
+ description: ''
+ properties:
+ email:
type:
- 'null'
- string
- surname:
- description: "The user's (optional) last name."
- example: Baden-Powell
- maxLength: 64
+ recaptchaToken:
type:
- 'null'
- string
- required:
- - email
+ writeOnly: true
type: object
- ResetPassword:
+ ResponsiveLayout-read:
deprecated: false
description: ''
properties:
- email:
+ 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
id:
- description: "$id: base64_encode($email . '#' . $resetKey)."
+ 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
- password:
- maxLength: 128
- minLength: 12
+ 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
- writeOnly: true
- recaptchaToken:
+ 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
- writeOnly: true
+ 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
- ResetPassword-create:
+ ResponsiveLayout-write_create:
deprecated: false
description: ''
properties:
- email:
+ 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
- recaptchaToken:
+ 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
- writeOnly: 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
+ 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
- ResetPassword-update:
+ ResponsiveLayout-write_update:
deprecated: false
description: ''
properties:
- password:
- maxLength: 128
- minLength: 12
+ 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
- writeOnly: true
- recaptchaToken:
+ 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
- writeOnly: 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
+ 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
- ResetPassword.jsonhal:
+ ResponsiveLayout.jsonapi-read:
deprecated: false
description: ''
- properties:
- _links:
- properties:
- self:
- properties:
- href:
- format: iri-reference
- type: string
- type: object
- type: object
- email:
+ 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'
- - string
id:
- description: "$id: base64_encode($email . '#' . $resetKey)."
+ 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
- password:
- maxLength: 128
- minLength: 12
- type:
- - 'null'
- - string
- writeOnly: true
- recaptchaToken:
+ 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
- writeOnly: true
- type: object
- ResetPassword.jsonhal-create:
- deprecated: false
- description: ''
- properties:
- _links:
- properties:
- self:
- properties:
- href:
- format: iri-reference
- type: string
- type: object
- type: object
- email:
+ 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
- recaptchaToken:
+ 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
- writeOnly: true
+ required:
+ - children
+ - contentType
+ - data
+ - position
type: object
- ResetPassword.jsonld:
+ ResponsiveLayout.jsonapi-write_create:
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
+ 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
- email:
+ 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
- id:
- description: "$id: base64_encode($email . '#' . $resetKey)."
- 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
- password:
- maxLength: 128
- minLength: 12
+ 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
- writeOnly: true
- recaptchaToken:
+ 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
- writeOnly: true
+ required:
+ - contentType
+ - data
+ - parent
+ - position
type: object
- ResetPassword.jsonld-create:
+ ResponsiveLayout.jsonapi-write_update:
deprecated: false
description: ''
properties:
- email:
+ 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
- recaptchaToken:
+ 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
- writeOnly: 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
+ 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-read:
+ 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"]'
@@ -14815,10 +20291,19 @@ components:
- data
- position
type: object
- ResponsiveLayout-write_create:
+ ResponsiveLayout.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
@@ -14886,10 +20371,55 @@ components:
- parent
- position
type: object
- ResponsiveLayout-write_update:
+ ResponsiveLayout.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:
default: '{"items":[{"slot":"main"},{"slot":"aside-top"},{"slot":"aside-bottom"}]}'
description: |-
@@ -14908,6 +20438,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
@@ -14934,6 +20470,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
@@ -14944,31 +20490,15 @@ components:
- 'null'
- string
required:
+ - children
+ - contentType
- data
- position
type: object
- ResponsiveLayout.jsonhal-read:
+ ResponsiveLayout.jsonld-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
contentType:
description: |-
Defines the type of this content node. There is a fixed list of types that are implemented
@@ -14977,11 +20507,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: |-
@@ -14998,341 +20523,510 @@ components:
items:
type: string
type:
- - array
+ - 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
id:
description: 'An internal, unique, randomly generated identifier of this entity.'
example: 1a2b3c4d
maxLength: 16
readOnly: true
type: string
- instanceName:
+ left:
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
+ 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'
- - string
- parent:
+ - number
+ number:
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
+ 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:
- - '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:
+ type: string
+ scheduleEntryNumber:
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
+ 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:
- - 'null'
- - string
- slot:
+ 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: |-
- 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:
- - children
- - contentType
- - data
- - position
+ - activity
+ - end
+ - start
type: object
- ResponsiveLayout.jsonhal-write_create:
+ ScheduleEntry-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
- contentType:
+ activity:
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
+ 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
- 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
+ day:
+ description: 'The day on which this schedule entry starts.'
+ example: /days/1a2b3c4d
+ format: iri-reference
+ readOnly: true
type:
- - array
- 'null'
- instanceName:
+ - 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:
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
+ 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'
- - string
- parent:
+ - number
+ number:
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
+ 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:
- - 'null'
- - string
- position:
- default: -1
+ type: string
+ scheduleEntryNumber:
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
+ 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
- slot:
+ 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:
- - contentType
- - data
- - parent
- - position
- type: object
- ResponsiveLayout.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
+ - activity
+ - end
+ - start
+ type: object
+ 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
+ is specified as an offset in minutes from the period's start time.
+ properties:
+ activity:
+ anyOf:
+ -
+ $ref: '#/components/schemas/Activity-read_ScheduleEntry.Activity'
+ -
+ type: 'null'
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
+ day:
+ description: 'The day on which this schedule entry starts.'
+ example: /days/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
- instanceName:
+ left:
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
+ 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'
- - string
- parent:
+ - number
+ number:
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
+ 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:
- - '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:
+ type: string
+ scheduleEntryNumber:
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
+ 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:
- - 'null'
- - string
- slot:
+ 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: |-
- 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:
- - children
- - contentType
- - data
- - position
+ - activity
+ - end
+ - start
type: object
- ResponsiveLayout.jsonld-write_create:
+ ScheduleEntry-write:
deprecated: false
- description: ''
+ 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:
- 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
+ end:
+ description: 'End date and time of the schedule entry.'
+ example: '2022-01-02T01:30:00+00:00'
+ format: date-time
type: string
- data:
- default: '{"items":[{"slot":"main"},{"slot":"aside-top"},{"slot":"aside-bottom"}]}'
+ left:
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
+ 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:
- - array
- 'null'
- instanceName:
+ - 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: |-
- 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
+ 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
- parent:
+ - 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:
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
+ 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
+ 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'
- - 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:
- - contentType
- - data
- - parent
- - position
+ - activity
+ - end
+ - start
type: object
- ScheduleEntry-read:
+ ScheduleEntry.jsonapi-read:
deprecated: false
description: |-
A calendar event in a period of the camp, at which some activity will take place. The start time
@@ -15421,7 +21115,7 @@ components:
- end
- start
type: object
- ScheduleEntry-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries:
+ ScheduleEntry.jsonapi-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries:
deprecated: false
description: ''
properties:
@@ -15510,7 +21204,7 @@ components:
- end
- start
type: object
- ScheduleEntry-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes:
+ ScheduleEntry.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes:
deprecated: false
description: ''
properties:
@@ -15599,7 +21293,7 @@ components:
- end
- start
type: object
- ScheduleEntry-read_ScheduleEntry.Activity:
+ ScheduleEntry.jsonapi-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
@@ -15608,7 +21302,7 @@ components:
activity:
anyOf:
-
- $ref: '#/components/schemas/Activity-read_ScheduleEntry.Activity'
+ $ref: '#/components/schemas/Activity.jsonapi-read_ScheduleEntry.Activity'
-
type: 'null'
readOnly: true
@@ -15690,7 +21384,7 @@ components:
- end
- start
type: object
- ScheduleEntry-write:
+ ScheduleEntry.jsonapi-write:
deprecated: false
description: |-
A calendar event in a period of the camp, at which some activity will take place. The start time
@@ -15737,7 +21431,7 @@ components:
- end
- start
type: object
- ScheduleEntry-write_create:
+ ScheduleEntry.jsonapi-write_create:
deprecated: false
description: |-
A calendar event in a period of the camp, at which some activity will take place. The start time
@@ -15894,6 +21588,15 @@ components:
deprecated: false
description: ''
properties:
+ _links:
+ properties:
+ self:
+ properties:
+ href:
+ format: iri-reference
+ type: string
+ type: object
+ type: object
activity:
description: |-
The activity that will take place at the time defined by this schedule entry. Can not be changed
@@ -15983,6 +21686,15 @@ components:
deprecated: false
description: ''
properties:
+ _links:
+ properties:
+ self:
+ properties:
+ href:
+ format: iri-reference
+ type: string
+ type: object
+ type: object
activity:
description: |-
The activity that will take place at the time defined by this schedule entry. Can not be changed
@@ -16724,20 +22436,235 @@ components:
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
+ 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
+ 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'
- - number
+ - string
required:
- - activity
- - end
- - start
+ - data
+ - position
type: object
- SingleText-read:
+ SingleText.jsonapi-read:
deprecated: false
description: ''
properties:
@@ -16832,7 +22759,7 @@ components:
- data
- position
type: object
- SingleText-write_create:
+ SingleText.jsonapi-write_create:
deprecated: false
description: ''
properties:
@@ -16897,7 +22824,7 @@ components:
- parent
- position
type: object
- SingleText-write_update:
+ SingleText.jsonapi-write_update:
deprecated: false
description: ''
properties:
@@ -17174,29 +23101,271 @@ 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
+ 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.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:
+ 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
+ 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
+ (overridden from abstract class in order to add specific validation).
+ example:
+ sections:
+ 186b7ff2-7470-4de4-8783-082c2c189fcd:
+ column1: ''
+ column2Html: ''
+ column3: ''
+ position: 0
+ 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
+ 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
+ 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'
+ sections:
+ 186b7ff2-7470-4de4-8783-082c2c189fcd:
+ column1: ''
+ column2Html: ''
+ column3: ''
+ position: 0
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
@@ -17223,16 +23392,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
@@ -17243,30 +23402,25 @@ components:
- 'null'
- string
required:
- - children
- contentType
- - data
+ - parent
- position
type: object
- SingleText.jsonld-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:
- 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'
+ sections:
+ 186b7ff2-7470-4de4-8783-082c2c189fcd:
+ column1: ''
+ column2Html: ''
+ column3: ''
+ position: 0
items:
type: string
type:
@@ -17308,12 +23462,10 @@ components:
- 'null'
- string
required:
- - contentType
- data
- - parent
- position
type: object
- Storyboard-read:
+ Storyboard.jsonapi-read:
deprecated: false
description: ''
properties:
@@ -17411,7 +23563,7 @@ components:
- contentType
- position
type: object
- Storyboard-write_create:
+ Storyboard.jsonapi-write_create:
deprecated: false
description: ''
properties:
@@ -17479,7 +23631,7 @@ components:
- parent
- position
type: object
- Storyboard-write_update:
+ Storyboard.jsonapi-write_update:
deprecated: false
description: ''
properties:
@@ -17839,79 +23991,255 @@ components:
- 'null'
- string
required:
- - children
- - contentType
- - position
+ - children
+ - contentType
+ - position
+ type: object
+ Storyboard.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:
+ sections:
+ 186b7ff2-7470-4de4-8783-082c2c189fcd:
+ column1: ''
+ column2Html: ''
+ column3: ''
+ position: 0
+ 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
+ User-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-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-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-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-read_User.create:
+ 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-read_User.create'
+ readOnly: true
+ required:
+ - profile
type: object
- Storyboard.jsonld-write_create:
+ User-write:
deprecated: false
- description: ''
+ description: |-
+ A person using eCamp.
+ The properties available for all other eCamp users are here.
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:
- sections:
- 186b7ff2-7470-4de4-8783-082c2c189fcd:
- column1: ''
- column2Html: ''
- column3: ''
- position: 0
- items:
- type: string
- type:
- - array
- - 'null'
- instanceName:
+ password:
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
+ 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
- parent:
+ writeOnly: true
+ type: object
+ User-write_create:
+ deprecated: false
+ description: |-
+ A person using eCamp.
+ The properties available for all other eCamp users are here.
+ properties:
+ password:
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
+ 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
- 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
+ profile:
+ $ref: '#/components/schemas/Profile-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:
- - contentType
- - parent
- - position
+ - password
+ - profile
type: object
- User-activate:
+ User.jsonapi-activate:
deprecated: false
description: |-
A person using eCamp.
@@ -17924,7 +24252,7 @@ components:
- string
writeOnly: true
type: object
- User-read:
+ User.jsonapi-read:
deprecated: false
description: |-
A person using eCamp.
@@ -17953,7 +24281,7 @@ components:
format: iri-reference
type: string
type: object
- User-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User:
+ User.jsonapi-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User:
deprecated: false
description: ''
properties:
@@ -17980,7 +24308,7 @@ components:
format: iri-reference
type: string
type: object
- User-read_CampCollaboration.Camp_CampCollaboration.User:
+ User.jsonapi-read_CampCollaboration.Camp_CampCollaboration.User:
deprecated: false
description: ''
properties:
@@ -18007,7 +24335,7 @@ components:
format: iri-reference
type: string
type: object
- User-read_User.create:
+ User.jsonapi-read_User.create:
deprecated: false
description: |-
A person using eCamp.
@@ -18027,12 +24355,12 @@ components:
readOnly: true
type: string
profile:
- $ref: '#/components/schemas/Profile-read_User.create'
+ $ref: '#/components/schemas/Profile.jsonapi-read_User.create'
readOnly: true
required:
- profile
type: object
- User-write:
+ User.jsonapi-write:
deprecated: false
description: |-
A person using eCamp.
@@ -18051,7 +24379,7 @@ components:
- string
writeOnly: true
type: object
- User-write_create:
+ User.jsonapi-write_create:
deprecated: false
description: |-
A person using eCamp.
@@ -18070,7 +24398,7 @@ components:
- string
writeOnly: true
profile:
- $ref: '#/components/schemas/Profile-write_create'
+ $ref: '#/components/schemas/Profile.jsonapi-write_create'
example:
email: bi-pi@example.com
firstname: Robert
@@ -18129,6 +24457,15 @@ components:
deprecated: false
description: ''
properties:
+ _links:
+ properties:
+ self:
+ properties:
+ href:
+ format: iri-reference
+ type: string
+ type: object
+ type: object
displayName:
description: 'A displayable name of the user.'
example: 'Robert Baden-Powell'
@@ -18156,6 +24493,15 @@ components:
deprecated: false
description: ''
properties:
+ _links:
+ properties:
+ self:
+ properties:
+ href:
+ format: iri-reference
+ type: string
+ type: object
+ type: object
displayName:
description: 'A displayable name of the user.'
example: 'Robert Baden-Powell'
@@ -18543,7 +24889,7 @@ paths:
application/hal+json:
schema:
properties:
- _embedded: { items: { $ref: '#/components/schemas/Activity.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' }, type: array }
+ _embedded: { anyOf: [{ properties: { item: { items: { $ref: '#/components/schemas/Activity.jsonhal-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' }, type: array } }, type: object }, { type: object }] }
_links: { properties: { first: { properties: { href: { format: iri-reference, type: string } }, type: object }, last: { properties: { href: { format: iri-reference, type: string } }, type: object }, next: { properties: { href: { format: iri-reference, type: string } }, type: object }, previous: { properties: { href: { format: iri-reference, type: string } }, type: object }, self: { properties: { href: { format: iri-reference, type: string } }, type: object } }, type: object }
itemsPerPage: { minimum: 0, type: integer }
totalItems: { minimum: 0, type: integer }
@@ -18569,7 +24915,7 @@ paths:
application/vnd.api+json:
schema:
items:
- $ref: '#/components/schemas/Activity-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries'
+ $ref: '#/components/schemas/Activity.jsonapi-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries'
type: array
text/html:
schema:
@@ -18599,7 +24945,7 @@ paths:
$ref: '#/components/schemas/Activity.jsonld-write_create'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Activity-write_create'
+ $ref: '#/components/schemas/Activity.jsonapi-write_create'
text/html:
schema:
$ref: '#/components/schemas/Activity-write_create'
@@ -18619,7 +24965,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-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes'
+ $ref: '#/components/schemas/Activity.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes'
text/html:
schema:
$ref: '#/components/schemas/Activity-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes'
@@ -18689,7 +25035,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-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes'
+ $ref: '#/components/schemas/Activity.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes'
text/html:
schema:
$ref: '#/components/schemas/Activity-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes'
@@ -18724,7 +25070,7 @@ paths:
$ref: '#/components/schemas/Activity-write'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Activity-write'
+ $ref: '#/components/schemas/Activity.jsonapi-write'
description: 'The updated Activity resource'
required: true
responses:
@@ -18741,7 +25087,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-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes'
+ $ref: '#/components/schemas/Activity.jsonapi-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes'
text/html:
schema:
$ref: '#/components/schemas/Activity-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes'
@@ -18794,7 +25140,7 @@ paths:
application/hal+json:
schema:
properties:
- _embedded: { items: { $ref: '#/components/schemas/ActivityProgressLabel.jsonhal-read' }, type: array }
+ _embedded: { anyOf: [{ properties: { item: { items: { $ref: '#/components/schemas/ActivityProgressLabel.jsonhal-read' }, type: array } }, type: object }, { type: object }] }
_links: { properties: { first: { properties: { href: { format: iri-reference, type: string } }, type: object }, last: { properties: { href: { format: iri-reference, type: string } }, type: object }, next: { properties: { href: { format: iri-reference, type: string } }, type: object }, previous: { properties: { href: { format: iri-reference, type: string } }, type: object }, self: { properties: { href: { format: iri-reference, type: string } }, type: object } }, type: object }
itemsPerPage: { minimum: 0, type: integer }
totalItems: { minimum: 0, type: integer }
@@ -18820,7 +25166,7 @@ paths:
application/vnd.api+json:
schema:
items:
- $ref: '#/components/schemas/ActivityProgressLabel-read'
+ $ref: '#/components/schemas/ActivityProgressLabel.jsonapi-read'
type: array
text/html:
schema:
@@ -18850,7 +25196,7 @@ paths:
$ref: '#/components/schemas/ActivityProgressLabel.jsonld-write_create'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ActivityProgressLabel-write_create'
+ $ref: '#/components/schemas/ActivityProgressLabel.jsonapi-write_create'
text/html:
schema:
$ref: '#/components/schemas/ActivityProgressLabel-write_create'
@@ -18870,7 +25216,7 @@ paths:
$ref: '#/components/schemas/ActivityProgressLabel.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ActivityProgressLabel-read'
+ $ref: '#/components/schemas/ActivityProgressLabel.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/ActivityProgressLabel-read'
@@ -18940,7 +25286,7 @@ paths:
$ref: '#/components/schemas/ActivityProgressLabel.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ActivityProgressLabel-read'
+ $ref: '#/components/schemas/ActivityProgressLabel.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/ActivityProgressLabel-read'
@@ -18975,7 +25321,7 @@ paths:
$ref: '#/components/schemas/ActivityProgressLabel-write'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ActivityProgressLabel-write'
+ $ref: '#/components/schemas/ActivityProgressLabel.jsonapi-write'
description: 'The updated ActivityProgressLabel resource'
required: true
responses:
@@ -18992,7 +25338,7 @@ paths:
$ref: '#/components/schemas/ActivityProgressLabel.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ActivityProgressLabel-read'
+ $ref: '#/components/schemas/ActivityProgressLabel.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/ActivityProgressLabel-read'
@@ -19071,7 +25417,7 @@ paths:
application/hal+json:
schema:
properties:
- _embedded: { items: { $ref: '#/components/schemas/ActivityResponsible.jsonhal-read' }, type: array }
+ _embedded: { anyOf: [{ properties: { item: { items: { $ref: '#/components/schemas/ActivityResponsible.jsonhal-read' }, type: array } }, type: object }, { type: object }] }
_links: { properties: { first: { properties: { href: { format: iri-reference, type: string } }, type: object }, last: { properties: { href: { format: iri-reference, type: string } }, type: object }, next: { properties: { href: { format: iri-reference, type: string } }, type: object }, previous: { properties: { href: { format: iri-reference, type: string } }, type: object }, self: { properties: { href: { format: iri-reference, type: string } }, type: object } }, type: object }
itemsPerPage: { minimum: 0, type: integer }
totalItems: { minimum: 0, type: integer }
@@ -19097,7 +25443,7 @@ paths:
application/vnd.api+json:
schema:
items:
- $ref: '#/components/schemas/ActivityResponsible-read'
+ $ref: '#/components/schemas/ActivityResponsible.jsonapi-read'
type: array
text/html:
schema:
@@ -19127,7 +25473,7 @@ paths:
$ref: '#/components/schemas/ActivityResponsible.jsonld-write'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ActivityResponsible-write'
+ $ref: '#/components/schemas/ActivityResponsible.jsonapi-write'
text/html:
schema:
$ref: '#/components/schemas/ActivityResponsible-write'
@@ -19147,7 +25493,7 @@ paths:
$ref: '#/components/schemas/ActivityResponsible.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ActivityResponsible-read'
+ $ref: '#/components/schemas/ActivityResponsible.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/ActivityResponsible-read'
@@ -19217,7 +25563,7 @@ paths:
$ref: '#/components/schemas/ActivityResponsible.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ActivityResponsible-read'
+ $ref: '#/components/schemas/ActivityResponsible.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/ActivityResponsible-read'
@@ -19344,7 +25690,7 @@ paths:
$ref: '#/components/schemas/ResetPassword.jsonld-create'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ResetPassword-create'
+ $ref: '#/components/schemas/ResetPassword.jsonapi-create'
text/html:
schema:
$ref: '#/components/schemas/ResetPassword-create'
@@ -19404,7 +25750,7 @@ paths:
$ref: '#/components/schemas/ResetPassword.jsonld'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ResetPassword'
+ $ref: '#/components/schemas/ResetPassword.jsonapi'
text/html:
schema:
$ref: '#/components/schemas/ResetPassword'
@@ -19439,7 +25785,7 @@ paths:
$ref: '#/components/schemas/ResetPassword-update'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ResetPassword-update'
+ $ref: '#/components/schemas/ResetPassword.jsonapi-update'
description: 'The updated ResetPassword resource'
required: true
responses:
@@ -19456,7 +25802,7 @@ paths:
$ref: '#/components/schemas/ResetPassword.jsonld'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ResetPassword'
+ $ref: '#/components/schemas/ResetPassword.jsonapi'
text/html:
schema:
$ref: '#/components/schemas/ResetPassword'
@@ -19571,7 +25917,7 @@ paths:
application/hal+json:
schema:
properties:
- _embedded: { items: { $ref: '#/components/schemas/CampCollaboration.jsonhal-read_CampCollaboration.Camp_CampCollaboration.User' }, type: array }
+ _embedded: { anyOf: [{ properties: { item: { items: { $ref: '#/components/schemas/CampCollaboration.jsonhal-read_CampCollaboration.Camp_CampCollaboration.User' }, type: array } }, type: object }, { type: object }] }
_links: { properties: { first: { properties: { href: { format: iri-reference, type: string } }, type: object }, last: { properties: { href: { format: iri-reference, type: string } }, type: object }, next: { properties: { href: { format: iri-reference, type: string } }, type: object }, previous: { properties: { href: { format: iri-reference, type: string } }, type: object }, self: { properties: { href: { format: iri-reference, type: string } }, type: object } }, type: object }
itemsPerPage: { minimum: 0, type: integer }
totalItems: { minimum: 0, type: integer }
@@ -19597,7 +25943,7 @@ paths:
application/vnd.api+json:
schema:
items:
- $ref: '#/components/schemas/CampCollaboration-read_CampCollaboration.Camp_CampCollaboration.User'
+ $ref: '#/components/schemas/CampCollaboration.jsonapi-read_CampCollaboration.Camp_CampCollaboration.User'
type: array
text/html:
schema:
@@ -19627,7 +25973,7 @@ paths:
$ref: '#/components/schemas/CampCollaboration.jsonld-write_create'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/CampCollaboration-write_create'
+ $ref: '#/components/schemas/CampCollaboration.jsonapi-write_create'
text/html:
schema:
$ref: '#/components/schemas/CampCollaboration-write_create'
@@ -19647,7 +25993,7 @@ paths:
$ref: '#/components/schemas/CampCollaboration.jsonld-read_CampCollaboration.Camp_CampCollaboration.User'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/CampCollaboration-read_CampCollaboration.Camp_CampCollaboration.User'
+ $ref: '#/components/schemas/CampCollaboration.jsonapi-read_CampCollaboration.Camp_CampCollaboration.User'
text/html:
schema:
$ref: '#/components/schemas/CampCollaboration-read_CampCollaboration.Camp_CampCollaboration.User'
@@ -19717,7 +26063,7 @@ paths:
$ref: '#/components/schemas/CampCollaboration.jsonld-read_CampCollaboration.Camp_CampCollaboration.User'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/CampCollaboration-read_CampCollaboration.Camp_CampCollaboration.User'
+ $ref: '#/components/schemas/CampCollaboration.jsonapi-read_CampCollaboration.Camp_CampCollaboration.User'
text/html:
schema:
$ref: '#/components/schemas/CampCollaboration-read_CampCollaboration.Camp_CampCollaboration.User'
@@ -19752,7 +26098,7 @@ paths:
$ref: '#/components/schemas/CampCollaboration-write_update'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/CampCollaboration-write_update'
+ $ref: '#/components/schemas/CampCollaboration.jsonapi-write_update'
description: 'The updated CampCollaboration resource'
required: true
responses:
@@ -19769,7 +26115,7 @@ paths:
$ref: '#/components/schemas/CampCollaboration.jsonld-read_CampCollaboration.Camp_CampCollaboration.User'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/CampCollaboration-read_CampCollaboration.Camp_CampCollaboration.User'
+ $ref: '#/components/schemas/CampCollaboration.jsonapi-read_CampCollaboration.Camp_CampCollaboration.User'
text/html:
schema:
$ref: '#/components/schemas/CampCollaboration-read_CampCollaboration.Camp_CampCollaboration.User'
@@ -19810,7 +26156,7 @@ paths:
$ref: '#/components/schemas/CampCollaboration-resend_invitation'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/CampCollaboration-resend_invitation'
+ $ref: '#/components/schemas/CampCollaboration.jsonapi-resend_invitation'
description: 'The updated CampCollaboration resource'
required: true
responses:
@@ -19827,7 +26173,7 @@ paths:
$ref: '#/components/schemas/CampCollaboration.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/CampCollaboration-read'
+ $ref: '#/components/schemas/CampCollaboration.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/CampCollaboration-read'
@@ -19880,7 +26226,7 @@ paths:
application/hal+json:
schema:
properties:
- _embedded: { items: { $ref: '#/components/schemas/Camp.jsonhal-read' }, type: array }
+ _embedded: { anyOf: [{ properties: { item: { items: { $ref: '#/components/schemas/Camp.jsonhal-read' }, type: array } }, type: object }, { type: object }] }
_links: { properties: { first: { properties: { href: { format: iri-reference, type: string } }, type: object }, last: { properties: { href: { format: iri-reference, type: string } }, type: object }, next: { properties: { href: { format: iri-reference, type: string } }, type: object }, previous: { properties: { href: { format: iri-reference, type: string } }, type: object }, self: { properties: { href: { format: iri-reference, type: string } }, type: object } }, type: object }
itemsPerPage: { minimum: 0, type: integer }
totalItems: { minimum: 0, type: integer }
@@ -19906,7 +26252,7 @@ paths:
application/vnd.api+json:
schema:
items:
- $ref: '#/components/schemas/Camp-read'
+ $ref: '#/components/schemas/Camp.jsonapi-read'
type: array
text/html:
schema:
@@ -19936,7 +26282,7 @@ paths:
$ref: '#/components/schemas/Camp.jsonld-write_create'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Camp-write_create'
+ $ref: '#/components/schemas/Camp.jsonapi-write_create'
text/html:
schema:
$ref: '#/components/schemas/Camp-write_create'
@@ -19956,7 +26302,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-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User'
+ $ref: '#/components/schemas/Camp.jsonapi-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User'
text/html:
schema:
$ref: '#/components/schemas/Camp-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User'
@@ -20026,7 +26372,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-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User'
+ $ref: '#/components/schemas/Camp.jsonapi-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User'
text/html:
schema:
$ref: '#/components/schemas/Camp-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User'
@@ -20061,7 +26407,7 @@ paths:
$ref: '#/components/schemas/Camp-write_update'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Camp-write_update'
+ $ref: '#/components/schemas/Camp.jsonapi-write_update'
description: 'The updated Camp resource'
required: true
responses:
@@ -20078,7 +26424,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-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User'
+ $ref: '#/components/schemas/Camp.jsonapi-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User'
text/html:
schema:
$ref: '#/components/schemas/Camp-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User'
@@ -20131,7 +26477,7 @@ paths:
application/hal+json:
schema:
properties:
- _embedded: { items: { $ref: '#/components/schemas/Category.jsonhal-read' }, type: array }
+ _embedded: { anyOf: [{ properties: { item: { items: { $ref: '#/components/schemas/Category.jsonhal-read' }, type: array } }, type: object }, { type: object }] }
_links: { properties: { first: { properties: { href: { format: iri-reference, type: string } }, type: object }, last: { properties: { href: { format: iri-reference, type: string } }, type: object }, next: { properties: { href: { format: iri-reference, type: string } }, type: object }, previous: { properties: { href: { format: iri-reference, type: string } }, type: object }, self: { properties: { href: { format: iri-reference, type: string } }, type: object } }, type: object }
itemsPerPage: { minimum: 0, type: integer }
totalItems: { minimum: 0, type: integer }
@@ -20157,7 +26503,7 @@ paths:
application/vnd.api+json:
schema:
items:
- $ref: '#/components/schemas/Category-read'
+ $ref: '#/components/schemas/Category.jsonapi-read'
type: array
text/html:
schema:
@@ -20187,7 +26533,7 @@ paths:
$ref: '#/components/schemas/Category.jsonld-write_create'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Category-write_create'
+ $ref: '#/components/schemas/Category.jsonapi-write_create'
text/html:
schema:
$ref: '#/components/schemas/Category-write_create'
@@ -20207,7 +26553,7 @@ paths:
$ref: '#/components/schemas/Category.jsonld-read_Category.PreferredContentTypes_Category.ContentNodes'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Category-read_Category.PreferredContentTypes_Category.ContentNodes'
+ $ref: '#/components/schemas/Category.jsonapi-read_Category.PreferredContentTypes_Category.ContentNodes'
text/html:
schema:
$ref: '#/components/schemas/Category-read_Category.PreferredContentTypes_Category.ContentNodes'
@@ -20277,7 +26623,7 @@ paths:
$ref: '#/components/schemas/Category.jsonld-read_Category.PreferredContentTypes_Category.ContentNodes'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Category-read_Category.PreferredContentTypes_Category.ContentNodes'
+ $ref: '#/components/schemas/Category.jsonapi-read_Category.PreferredContentTypes_Category.ContentNodes'
text/html:
schema:
$ref: '#/components/schemas/Category-read_Category.PreferredContentTypes_Category.ContentNodes'
@@ -20312,7 +26658,7 @@ paths:
$ref: '#/components/schemas/Category-write_update'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Category-write_update'
+ $ref: '#/components/schemas/Category.jsonapi-write_update'
description: 'The updated Category resource'
required: true
responses:
@@ -20329,7 +26675,7 @@ paths:
$ref: '#/components/schemas/Category.jsonld-read_Category.PreferredContentTypes_Category.ContentNodes'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Category-read_Category.PreferredContentTypes_Category.ContentNodes'
+ $ref: '#/components/schemas/Category.jsonapi-read_Category.PreferredContentTypes_Category.ContentNodes'
text/html:
schema:
$ref: '#/components/schemas/Category-read_Category.PreferredContentTypes_Category.ContentNodes'
@@ -20420,7 +26766,7 @@ paths:
application/hal+json:
schema:
properties:
- _embedded: { items: { $ref: '#/components/schemas/ColumnLayout.jsonhal-read' }, type: array }
+ _embedded: { anyOf: [{ properties: { item: { items: { $ref: '#/components/schemas/ColumnLayout.jsonhal-read' }, type: array } }, type: object }, { type: object }] }
_links: { properties: { first: { properties: { href: { format: iri-reference, type: string } }, type: object }, last: { properties: { href: { format: iri-reference, type: string } }, type: object }, next: { properties: { href: { format: iri-reference, type: string } }, type: object }, previous: { properties: { href: { format: iri-reference, type: string } }, type: object }, self: { properties: { href: { format: iri-reference, type: string } }, type: object } }, type: object }
itemsPerPage: { minimum: 0, type: integer }
totalItems: { minimum: 0, type: integer }
@@ -20446,7 +26792,7 @@ paths:
application/vnd.api+json:
schema:
items:
- $ref: '#/components/schemas/ColumnLayout-read'
+ $ref: '#/components/schemas/ColumnLayout.jsonapi-read'
type: array
text/html:
schema:
@@ -20476,7 +26822,7 @@ paths:
$ref: '#/components/schemas/ColumnLayout.jsonld-write_create'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ColumnLayout-write_create'
+ $ref: '#/components/schemas/ColumnLayout.jsonapi-write_create'
text/html:
schema:
$ref: '#/components/schemas/ColumnLayout-write_create'
@@ -20496,7 +26842,7 @@ paths:
$ref: '#/components/schemas/ColumnLayout.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ColumnLayout-read'
+ $ref: '#/components/schemas/ColumnLayout.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/ColumnLayout-read'
@@ -20566,7 +26912,7 @@ paths:
$ref: '#/components/schemas/ColumnLayout.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ColumnLayout-read'
+ $ref: '#/components/schemas/ColumnLayout.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/ColumnLayout-read'
@@ -20601,7 +26947,7 @@ paths:
$ref: '#/components/schemas/ColumnLayout-write_update'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ColumnLayout-write_update'
+ $ref: '#/components/schemas/ColumnLayout.jsonapi-write_update'
description: 'The updated ColumnLayout resource'
required: true
responses:
@@ -20618,7 +26964,7 @@ paths:
$ref: '#/components/schemas/ColumnLayout.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ColumnLayout-read'
+ $ref: '#/components/schemas/ColumnLayout.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/ColumnLayout-read'
@@ -20709,7 +27055,7 @@ paths:
application/hal+json:
schema:
properties:
- _embedded: { items: { $ref: '#/components/schemas/MaterialNode.jsonhal-read' }, type: array }
+ _embedded: { anyOf: [{ properties: { item: { items: { $ref: '#/components/schemas/MaterialNode.jsonhal-read' }, type: array } }, type: object }, { type: object }] }
_links: { properties: { first: { properties: { href: { format: iri-reference, type: string } }, type: object }, last: { properties: { href: { format: iri-reference, type: string } }, type: object }, next: { properties: { href: { format: iri-reference, type: string } }, type: object }, previous: { properties: { href: { format: iri-reference, type: string } }, type: object }, self: { properties: { href: { format: iri-reference, type: string } }, type: object } }, type: object }
itemsPerPage: { minimum: 0, type: integer }
totalItems: { minimum: 0, type: integer }
@@ -20735,7 +27081,7 @@ paths:
application/vnd.api+json:
schema:
items:
- $ref: '#/components/schemas/MaterialNode-read'
+ $ref: '#/components/schemas/MaterialNode.jsonapi-read'
type: array
text/html:
schema:
@@ -20765,7 +27111,7 @@ paths:
$ref: '#/components/schemas/MaterialNode.jsonld-write_create'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/MaterialNode-write_create'
+ $ref: '#/components/schemas/MaterialNode.jsonapi-write_create'
text/html:
schema:
$ref: '#/components/schemas/MaterialNode-write_create'
@@ -20785,7 +27131,7 @@ paths:
$ref: '#/components/schemas/MaterialNode.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/MaterialNode-read'
+ $ref: '#/components/schemas/MaterialNode.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/MaterialNode-read'
@@ -20855,7 +27201,7 @@ paths:
$ref: '#/components/schemas/MaterialNode.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/MaterialNode-read'
+ $ref: '#/components/schemas/MaterialNode.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/MaterialNode-read'
@@ -20890,7 +27236,7 @@ paths:
$ref: '#/components/schemas/MaterialNode-write_update'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/MaterialNode-write_update'
+ $ref: '#/components/schemas/MaterialNode.jsonapi-write_update'
description: 'The updated MaterialNode resource'
required: true
responses:
@@ -20907,7 +27253,7 @@ paths:
$ref: '#/components/schemas/MaterialNode.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/MaterialNode-read'
+ $ref: '#/components/schemas/MaterialNode.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/MaterialNode-read'
@@ -20998,7 +27344,7 @@ paths:
application/hal+json:
schema:
properties:
- _embedded: { items: { $ref: '#/components/schemas/MultiSelect.jsonhal-read' }, type: array }
+ _embedded: { anyOf: [{ properties: { item: { items: { $ref: '#/components/schemas/MultiSelect.jsonhal-read' }, type: array } }, type: object }, { type: object }] }
_links: { properties: { first: { properties: { href: { format: iri-reference, type: string } }, type: object }, last: { properties: { href: { format: iri-reference, type: string } }, type: object }, next: { properties: { href: { format: iri-reference, type: string } }, type: object }, previous: { properties: { href: { format: iri-reference, type: string } }, type: object }, self: { properties: { href: { format: iri-reference, type: string } }, type: object } }, type: object }
itemsPerPage: { minimum: 0, type: integer }
totalItems: { minimum: 0, type: integer }
@@ -21024,7 +27370,7 @@ paths:
application/vnd.api+json:
schema:
items:
- $ref: '#/components/schemas/MultiSelect-read'
+ $ref: '#/components/schemas/MultiSelect.jsonapi-read'
type: array
text/html:
schema:
@@ -21054,7 +27400,7 @@ paths:
$ref: '#/components/schemas/MultiSelect.jsonld-write_create'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/MultiSelect-write_create'
+ $ref: '#/components/schemas/MultiSelect.jsonapi-write_create'
text/html:
schema:
$ref: '#/components/schemas/MultiSelect-write_create'
@@ -21074,7 +27420,7 @@ paths:
$ref: '#/components/schemas/MultiSelect.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/MultiSelect-read'
+ $ref: '#/components/schemas/MultiSelect.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/MultiSelect-read'
@@ -21144,7 +27490,7 @@ paths:
$ref: '#/components/schemas/MultiSelect.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/MultiSelect-read'
+ $ref: '#/components/schemas/MultiSelect.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/MultiSelect-read'
@@ -21179,7 +27525,7 @@ paths:
$ref: '#/components/schemas/MultiSelect-write_update'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/MultiSelect-write_update'
+ $ref: '#/components/schemas/MultiSelect.jsonapi-write_update'
description: 'The updated MultiSelect resource'
required: true
responses:
@@ -21196,7 +27542,7 @@ paths:
$ref: '#/components/schemas/MultiSelect.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/MultiSelect-read'
+ $ref: '#/components/schemas/MultiSelect.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/MultiSelect-read'
@@ -21287,7 +27633,7 @@ paths:
application/hal+json:
schema:
properties:
- _embedded: { items: { $ref: '#/components/schemas/ResponsiveLayout.jsonhal-read' }, type: array }
+ _embedded: { anyOf: [{ properties: { item: { items: { $ref: '#/components/schemas/ResponsiveLayout.jsonhal-read' }, type: array } }, type: object }, { type: object }] }
_links: { properties: { first: { properties: { href: { format: iri-reference, type: string } }, type: object }, last: { properties: { href: { format: iri-reference, type: string } }, type: object }, next: { properties: { href: { format: iri-reference, type: string } }, type: object }, previous: { properties: { href: { format: iri-reference, type: string } }, type: object }, self: { properties: { href: { format: iri-reference, type: string } }, type: object } }, type: object }
itemsPerPage: { minimum: 0, type: integer }
totalItems: { minimum: 0, type: integer }
@@ -21313,7 +27659,7 @@ paths:
application/vnd.api+json:
schema:
items:
- $ref: '#/components/schemas/ResponsiveLayout-read'
+ $ref: '#/components/schemas/ResponsiveLayout.jsonapi-read'
type: array
text/html:
schema:
@@ -21343,7 +27689,7 @@ paths:
$ref: '#/components/schemas/ResponsiveLayout.jsonld-write_create'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ResponsiveLayout-write_create'
+ $ref: '#/components/schemas/ResponsiveLayout.jsonapi-write_create'
text/html:
schema:
$ref: '#/components/schemas/ResponsiveLayout-write_create'
@@ -21363,7 +27709,7 @@ paths:
$ref: '#/components/schemas/ResponsiveLayout.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ResponsiveLayout-read'
+ $ref: '#/components/schemas/ResponsiveLayout.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/ResponsiveLayout-read'
@@ -21433,7 +27779,7 @@ paths:
$ref: '#/components/schemas/ResponsiveLayout.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ResponsiveLayout-read'
+ $ref: '#/components/schemas/ResponsiveLayout.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/ResponsiveLayout-read'
@@ -21468,7 +27814,7 @@ paths:
$ref: '#/components/schemas/ResponsiveLayout-write_update'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ResponsiveLayout-write_update'
+ $ref: '#/components/schemas/ResponsiveLayout.jsonapi-write_update'
description: 'The updated ResponsiveLayout resource'
required: true
responses:
@@ -21485,7 +27831,7 @@ paths:
$ref: '#/components/schemas/ResponsiveLayout.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ResponsiveLayout-read'
+ $ref: '#/components/schemas/ResponsiveLayout.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/ResponsiveLayout-read'
@@ -21576,7 +27922,7 @@ paths:
application/hal+json:
schema:
properties:
- _embedded: { items: { $ref: '#/components/schemas/SingleText.jsonhal-read' }, type: array }
+ _embedded: { anyOf: [{ properties: { item: { items: { $ref: '#/components/schemas/SingleText.jsonhal-read' }, type: array } }, type: object }, { type: object }] }
_links: { properties: { first: { properties: { href: { format: iri-reference, type: string } }, type: object }, last: { properties: { href: { format: iri-reference, type: string } }, type: object }, next: { properties: { href: { format: iri-reference, type: string } }, type: object }, previous: { properties: { href: { format: iri-reference, type: string } }, type: object }, self: { properties: { href: { format: iri-reference, type: string } }, type: object } }, type: object }
itemsPerPage: { minimum: 0, type: integer }
totalItems: { minimum: 0, type: integer }
@@ -21602,7 +27948,7 @@ paths:
application/vnd.api+json:
schema:
items:
- $ref: '#/components/schemas/SingleText-read'
+ $ref: '#/components/schemas/SingleText.jsonapi-read'
type: array
text/html:
schema:
@@ -21632,7 +27978,7 @@ paths:
$ref: '#/components/schemas/SingleText.jsonld-write_create'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/SingleText-write_create'
+ $ref: '#/components/schemas/SingleText.jsonapi-write_create'
text/html:
schema:
$ref: '#/components/schemas/SingleText-write_create'
@@ -21652,7 +27998,7 @@ paths:
$ref: '#/components/schemas/SingleText.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/SingleText-read'
+ $ref: '#/components/schemas/SingleText.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/SingleText-read'
@@ -21722,7 +28068,7 @@ paths:
$ref: '#/components/schemas/SingleText.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/SingleText-read'
+ $ref: '#/components/schemas/SingleText.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/SingleText-read'
@@ -21757,7 +28103,7 @@ paths:
$ref: '#/components/schemas/SingleText-write_update'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/SingleText-write_update'
+ $ref: '#/components/schemas/SingleText.jsonapi-write_update'
description: 'The updated SingleText resource'
required: true
responses:
@@ -21774,7 +28120,7 @@ paths:
$ref: '#/components/schemas/SingleText.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/SingleText-read'
+ $ref: '#/components/schemas/SingleText.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/SingleText-read'
@@ -21865,7 +28211,7 @@ paths:
application/hal+json:
schema:
properties:
- _embedded: { items: { $ref: '#/components/schemas/Storyboard.jsonhal-read' }, type: array }
+ _embedded: { anyOf: [{ properties: { item: { items: { $ref: '#/components/schemas/Storyboard.jsonhal-read' }, type: array } }, type: object }, { type: object }] }
_links: { properties: { first: { properties: { href: { format: iri-reference, type: string } }, type: object }, last: { properties: { href: { format: iri-reference, type: string } }, type: object }, next: { properties: { href: { format: iri-reference, type: string } }, type: object }, previous: { properties: { href: { format: iri-reference, type: string } }, type: object }, self: { properties: { href: { format: iri-reference, type: string } }, type: object } }, type: object }
itemsPerPage: { minimum: 0, type: integer }
totalItems: { minimum: 0, type: integer }
@@ -21891,7 +28237,7 @@ paths:
application/vnd.api+json:
schema:
items:
- $ref: '#/components/schemas/Storyboard-read'
+ $ref: '#/components/schemas/Storyboard.jsonapi-read'
type: array
text/html:
schema:
@@ -21921,7 +28267,7 @@ paths:
$ref: '#/components/schemas/Storyboard.jsonld-write_create'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Storyboard-write_create'
+ $ref: '#/components/schemas/Storyboard.jsonapi-write_create'
text/html:
schema:
$ref: '#/components/schemas/Storyboard-write_create'
@@ -21941,7 +28287,7 @@ paths:
$ref: '#/components/schemas/Storyboard.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Storyboard-read'
+ $ref: '#/components/schemas/Storyboard.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/Storyboard-read'
@@ -22011,7 +28357,7 @@ paths:
$ref: '#/components/schemas/Storyboard.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Storyboard-read'
+ $ref: '#/components/schemas/Storyboard.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/Storyboard-read'
@@ -22046,7 +28392,7 @@ paths:
$ref: '#/components/schemas/Storyboard-write_update'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Storyboard-write_update'
+ $ref: '#/components/schemas/Storyboard.jsonapi-write_update'
description: 'The updated Storyboard resource'
required: true
responses:
@@ -22063,7 +28409,7 @@ paths:
$ref: '#/components/schemas/Storyboard.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Storyboard-read'
+ $ref: '#/components/schemas/Storyboard.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/Storyboard-read'
@@ -22154,7 +28500,7 @@ paths:
application/hal+json:
schema:
properties:
- _embedded: { items: { $ref: '#/components/schemas/ContentNode.jsonhal-read' }, type: array }
+ _embedded: { anyOf: [{ properties: { item: { items: { $ref: '#/components/schemas/ContentNode.jsonhal-read' }, type: array } }, type: object }, { type: object }] }
_links: { properties: { first: { properties: { href: { format: iri-reference, type: string } }, type: object }, last: { properties: { href: { format: iri-reference, type: string } }, type: object }, next: { properties: { href: { format: iri-reference, type: string } }, type: object }, previous: { properties: { href: { format: iri-reference, type: string } }, type: object }, self: { properties: { href: { format: iri-reference, type: string } }, type: object } }, type: object }
itemsPerPage: { minimum: 0, type: integer }
totalItems: { minimum: 0, type: integer }
@@ -22180,7 +28526,7 @@ paths:
application/vnd.api+json:
schema:
items:
- $ref: '#/components/schemas/ContentNode-read'
+ $ref: '#/components/schemas/ContentNode.jsonapi-read'
type: array
text/html:
schema:
@@ -22230,7 +28576,7 @@ paths:
application/hal+json:
schema:
properties:
- _embedded: { items: { $ref: '#/components/schemas/ContentType.jsonhal-read' }, type: array }
+ _embedded: { anyOf: [{ properties: { item: { items: { $ref: '#/components/schemas/ContentType.jsonhal-read' }, type: array } }, type: object }, { type: object }] }
_links: { properties: { first: { properties: { href: { format: iri-reference, type: string } }, type: object }, last: { properties: { href: { format: iri-reference, type: string } }, type: object }, next: { properties: { href: { format: iri-reference, type: string } }, type: object }, previous: { properties: { href: { format: iri-reference, type: string } }, type: object }, self: { properties: { href: { format: iri-reference, type: string } }, type: object } }, type: object }
itemsPerPage: { minimum: 0, type: integer }
totalItems: { minimum: 0, type: integer }
@@ -22256,7 +28602,7 @@ paths:
application/vnd.api+json:
schema:
items:
- $ref: '#/components/schemas/ContentType-read'
+ $ref: '#/components/schemas/ContentType.jsonapi-read'
type: array
text/html:
schema:
@@ -22300,7 +28646,7 @@ paths:
$ref: '#/components/schemas/ContentType.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ContentType-read'
+ $ref: '#/components/schemas/ContentType.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/ContentType-read'
@@ -22375,7 +28721,7 @@ paths:
application/hal+json:
schema:
properties:
- _embedded: { items: { $ref: '#/components/schemas/DayResponsible.jsonhal-read' }, type: array }
+ _embedded: { anyOf: [{ properties: { item: { items: { $ref: '#/components/schemas/DayResponsible.jsonhal-read' }, type: array } }, type: object }, { type: object }] }
_links: { properties: { first: { properties: { href: { format: iri-reference, type: string } }, type: object }, last: { properties: { href: { format: iri-reference, type: string } }, type: object }, next: { properties: { href: { format: iri-reference, type: string } }, type: object }, previous: { properties: { href: { format: iri-reference, type: string } }, type: object }, self: { properties: { href: { format: iri-reference, type: string } }, type: object } }, type: object }
itemsPerPage: { minimum: 0, type: integer }
totalItems: { minimum: 0, type: integer }
@@ -22401,7 +28747,7 @@ paths:
application/vnd.api+json:
schema:
items:
- $ref: '#/components/schemas/DayResponsible-read'
+ $ref: '#/components/schemas/DayResponsible.jsonapi-read'
type: array
text/html:
schema:
@@ -22431,7 +28777,7 @@ paths:
$ref: '#/components/schemas/DayResponsible.jsonld-write'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/DayResponsible-write'
+ $ref: '#/components/schemas/DayResponsible.jsonapi-write'
text/html:
schema:
$ref: '#/components/schemas/DayResponsible-write'
@@ -22451,7 +28797,7 @@ paths:
$ref: '#/components/schemas/DayResponsible.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/DayResponsible-read'
+ $ref: '#/components/schemas/DayResponsible.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/DayResponsible-read'
@@ -22521,7 +28867,7 @@ paths:
$ref: '#/components/schemas/DayResponsible.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/DayResponsible-read'
+ $ref: '#/components/schemas/DayResponsible.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/DayResponsible-read'
@@ -22596,7 +28942,7 @@ paths:
application/hal+json:
schema:
properties:
- _embedded: { items: { $ref: '#/components/schemas/Day.jsonhal-read_Day.DayResponsibles' }, type: array }
+ _embedded: { anyOf: [{ properties: { item: { items: { $ref: '#/components/schemas/Day.jsonhal-read_Day.DayResponsibles' }, type: array } }, type: object }, { type: object }] }
_links: { properties: { first: { properties: { href: { format: iri-reference, type: string } }, type: object }, last: { properties: { href: { format: iri-reference, type: string } }, type: object }, next: { properties: { href: { format: iri-reference, type: string } }, type: object }, previous: { properties: { href: { format: iri-reference, type: string } }, type: object }, self: { properties: { href: { format: iri-reference, type: string } }, type: object } }, type: object }
itemsPerPage: { minimum: 0, type: integer }
totalItems: { minimum: 0, type: integer }
@@ -22622,7 +28968,7 @@ paths:
application/vnd.api+json:
schema:
items:
- $ref: '#/components/schemas/Day-read_Day.DayResponsibles'
+ $ref: '#/components/schemas/Day.jsonapi-read_Day.DayResponsibles'
type: array
text/html:
schema:
@@ -22666,7 +29012,7 @@ paths:
$ref: '#/components/schemas/Day.jsonld-read_Day.DayResponsibles'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Day-read_Day.DayResponsibles'
+ $ref: '#/components/schemas/Day.jsonapi-read_Day.DayResponsibles'
text/html:
schema:
$ref: '#/components/schemas/Day-read_Day.DayResponsibles'
@@ -22703,7 +29049,7 @@ paths:
$ref: '#/components/schemas/Invitation-write'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Invitation-write'
+ $ref: '#/components/schemas/Invitation.jsonapi-write'
description: 'The updated Invitation resource'
required: true
responses:
@@ -22720,7 +29066,7 @@ paths:
$ref: '#/components/schemas/Invitation.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Invitation-read'
+ $ref: '#/components/schemas/Invitation.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/Invitation-read'
@@ -22767,7 +29113,7 @@ paths:
$ref: '#/components/schemas/Invitation.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Invitation-read'
+ $ref: '#/components/schemas/Invitation.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/Invitation-read'
@@ -22804,7 +29150,7 @@ paths:
$ref: '#/components/schemas/Invitation-write'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Invitation-write'
+ $ref: '#/components/schemas/Invitation.jsonapi-write'
description: 'The updated Invitation resource'
required: true
responses:
@@ -22821,7 +29167,7 @@ paths:
$ref: '#/components/schemas/Invitation.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Invitation-read'
+ $ref: '#/components/schemas/Invitation.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/Invitation-read'
@@ -22912,7 +29258,7 @@ paths:
application/hal+json:
schema:
properties:
- _embedded: { items: { $ref: '#/components/schemas/MaterialItem.jsonhal-read' }, type: array }
+ _embedded: { anyOf: [{ properties: { item: { items: { $ref: '#/components/schemas/MaterialItem.jsonhal-read' }, type: array } }, type: object }, { type: object }] }
_links: { properties: { first: { properties: { href: { format: iri-reference, type: string } }, type: object }, last: { properties: { href: { format: iri-reference, type: string } }, type: object }, next: { properties: { href: { format: iri-reference, type: string } }, type: object }, previous: { properties: { href: { format: iri-reference, type: string } }, type: object }, self: { properties: { href: { format: iri-reference, type: string } }, type: object } }, type: object }
itemsPerPage: { minimum: 0, type: integer }
totalItems: { minimum: 0, type: integer }
@@ -22938,7 +29284,7 @@ paths:
application/vnd.api+json:
schema:
items:
- $ref: '#/components/schemas/MaterialItem-read'
+ $ref: '#/components/schemas/MaterialItem.jsonapi-read'
type: array
text/html:
schema:
@@ -22968,7 +29314,7 @@ paths:
$ref: '#/components/schemas/MaterialItem.jsonld-write'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/MaterialItem-write'
+ $ref: '#/components/schemas/MaterialItem.jsonapi-write'
text/html:
schema:
$ref: '#/components/schemas/MaterialItem-write'
@@ -22988,7 +29334,7 @@ paths:
$ref: '#/components/schemas/MaterialItem.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/MaterialItem-read'
+ $ref: '#/components/schemas/MaterialItem.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/MaterialItem-read'
@@ -23058,7 +29404,7 @@ paths:
$ref: '#/components/schemas/MaterialItem.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/MaterialItem-read'
+ $ref: '#/components/schemas/MaterialItem.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/MaterialItem-read'
@@ -23093,7 +29439,7 @@ paths:
$ref: '#/components/schemas/MaterialItem-write'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/MaterialItem-write'
+ $ref: '#/components/schemas/MaterialItem.jsonapi-write'
description: 'The updated MaterialItem resource'
required: true
responses:
@@ -23110,7 +29456,7 @@ paths:
$ref: '#/components/schemas/MaterialItem.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/MaterialItem-read'
+ $ref: '#/components/schemas/MaterialItem.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/MaterialItem-read'
@@ -23163,7 +29509,7 @@ paths:
application/hal+json:
schema:
properties:
- _embedded: { items: { $ref: '#/components/schemas/MaterialList.jsonhal-read' }, type: array }
+ _embedded: { anyOf: [{ properties: { item: { items: { $ref: '#/components/schemas/MaterialList.jsonhal-read' }, type: array } }, type: object }, { type: object }] }
_links: { properties: { first: { properties: { href: { format: iri-reference, type: string } }, type: object }, last: { properties: { href: { format: iri-reference, type: string } }, type: object }, next: { properties: { href: { format: iri-reference, type: string } }, type: object }, previous: { properties: { href: { format: iri-reference, type: string } }, type: object }, self: { properties: { href: { format: iri-reference, type: string } }, type: object } }, type: object }
itemsPerPage: { minimum: 0, type: integer }
totalItems: { minimum: 0, type: integer }
@@ -23189,7 +29535,7 @@ paths:
application/vnd.api+json:
schema:
items:
- $ref: '#/components/schemas/MaterialList-read'
+ $ref: '#/components/schemas/MaterialList.jsonapi-read'
type: array
text/html:
schema:
@@ -23219,7 +29565,7 @@ paths:
$ref: '#/components/schemas/MaterialList.jsonld-write_create'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/MaterialList-write_create'
+ $ref: '#/components/schemas/MaterialList.jsonapi-write_create'
text/html:
schema:
$ref: '#/components/schemas/MaterialList-write_create'
@@ -23239,7 +29585,7 @@ paths:
$ref: '#/components/schemas/MaterialList.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/MaterialList-read'
+ $ref: '#/components/schemas/MaterialList.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/MaterialList-read'
@@ -23309,7 +29655,7 @@ paths:
$ref: '#/components/schemas/MaterialList.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/MaterialList-read'
+ $ref: '#/components/schemas/MaterialList.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/MaterialList-read'
@@ -23344,7 +29690,7 @@ paths:
$ref: '#/components/schemas/MaterialList-write'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/MaterialList-write'
+ $ref: '#/components/schemas/MaterialList.jsonapi-write'
description: 'The updated MaterialList resource'
required: true
responses:
@@ -23361,7 +29707,7 @@ paths:
$ref: '#/components/schemas/MaterialList.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/MaterialList-read'
+ $ref: '#/components/schemas/MaterialList.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/MaterialList-read'
@@ -23414,7 +29760,7 @@ paths:
application/hal+json:
schema:
properties:
- _embedded: { items: { $ref: '#/components/schemas/Period.jsonhal-read' }, type: array }
+ _embedded: { anyOf: [{ properties: { item: { items: { $ref: '#/components/schemas/Period.jsonhal-read' }, type: array } }, type: object }, { type: object }] }
_links: { properties: { first: { properties: { href: { format: iri-reference, type: string } }, type: object }, last: { properties: { href: { format: iri-reference, type: string } }, type: object }, next: { properties: { href: { format: iri-reference, type: string } }, type: object }, previous: { properties: { href: { format: iri-reference, type: string } }, type: object }, self: { properties: { href: { format: iri-reference, type: string } }, type: object } }, type: object }
itemsPerPage: { minimum: 0, type: integer }
totalItems: { minimum: 0, type: integer }
@@ -23440,7 +29786,7 @@ paths:
application/vnd.api+json:
schema:
items:
- $ref: '#/components/schemas/Period-read'
+ $ref: '#/components/schemas/Period.jsonapi-read'
type: array
text/html:
schema:
@@ -23470,7 +29816,7 @@ paths:
$ref: '#/components/schemas/Period.jsonld-write_create'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Period-write_create'
+ $ref: '#/components/schemas/Period.jsonapi-write_create'
text/html:
schema:
$ref: '#/components/schemas/Period-write_create'
@@ -23490,7 +29836,7 @@ paths:
$ref: '#/components/schemas/Period.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Period-read'
+ $ref: '#/components/schemas/Period.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/Period-read'
@@ -23560,7 +29906,7 @@ paths:
$ref: '#/components/schemas/Period.jsonld-read_Period.Camp_Period.Days'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Period-read_Period.Camp_Period.Days'
+ $ref: '#/components/schemas/Period.jsonapi-read_Period.Camp_Period.Days'
text/html:
schema:
$ref: '#/components/schemas/Period-read_Period.Camp_Period.Days'
@@ -23595,7 +29941,7 @@ paths:
$ref: '#/components/schemas/Period-write'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Period-write'
+ $ref: '#/components/schemas/Period.jsonapi-write'
description: 'The updated Period resource'
required: true
responses:
@@ -23612,7 +29958,7 @@ paths:
$ref: '#/components/schemas/Period.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Period-read'
+ $ref: '#/components/schemas/Period.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/Period-read'
@@ -23665,7 +30011,7 @@ paths:
application/hal+json:
schema:
properties:
- _embedded: { items: { $ref: '#/components/schemas/Profile.jsonhal-read' }, type: array }
+ _embedded: { anyOf: [{ properties: { item: { items: { $ref: '#/components/schemas/Profile.jsonhal-read' }, type: array } }, type: object }, { type: object }] }
_links: { properties: { first: { properties: { href: { format: iri-reference, type: string } }, type: object }, last: { properties: { href: { format: iri-reference, type: string } }, type: object }, next: { properties: { href: { format: iri-reference, type: string } }, type: object }, previous: { properties: { href: { format: iri-reference, type: string } }, type: object }, self: { properties: { href: { format: iri-reference, type: string } }, type: object } }, type: object }
itemsPerPage: { minimum: 0, type: integer }
totalItems: { minimum: 0, type: integer }
@@ -23691,7 +30037,7 @@ paths:
application/vnd.api+json:
schema:
items:
- $ref: '#/components/schemas/Profile-read'
+ $ref: '#/components/schemas/Profile.jsonapi-read'
type: array
text/html:
schema:
@@ -23735,7 +30081,7 @@ paths:
$ref: '#/components/schemas/Profile.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Profile-read'
+ $ref: '#/components/schemas/Profile.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/Profile-read'
@@ -23770,7 +30116,7 @@ paths:
$ref: '#/components/schemas/Profile-write_update'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Profile-write_update'
+ $ref: '#/components/schemas/Profile.jsonapi-write_update'
description: 'The updated Profile resource'
required: true
responses:
@@ -23787,7 +30133,7 @@ paths:
$ref: '#/components/schemas/Profile.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/Profile-read'
+ $ref: '#/components/schemas/Profile.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/Profile-read'
@@ -23962,7 +30308,7 @@ paths:
application/hal+json:
schema:
properties:
- _embedded: { items: { $ref: '#/components/schemas/ScheduleEntry.jsonhal-read' }, type: array }
+ _embedded: { anyOf: [{ properties: { item: { items: { $ref: '#/components/schemas/ScheduleEntry.jsonhal-read' }, type: array } }, type: object }, { type: object }] }
_links: { properties: { first: { properties: { href: { format: iri-reference, type: string } }, type: object }, last: { properties: { href: { format: iri-reference, type: string } }, type: object }, next: { properties: { href: { format: iri-reference, type: string } }, type: object }, previous: { properties: { href: { format: iri-reference, type: string } }, type: object }, self: { properties: { href: { format: iri-reference, type: string } }, type: object } }, type: object }
itemsPerPage: { minimum: 0, type: integer }
totalItems: { minimum: 0, type: integer }
@@ -23988,7 +30334,7 @@ paths:
application/vnd.api+json:
schema:
items:
- $ref: '#/components/schemas/ScheduleEntry-read'
+ $ref: '#/components/schemas/ScheduleEntry.jsonapi-read'
type: array
text/html:
schema:
@@ -24018,7 +30364,7 @@ paths:
$ref: '#/components/schemas/ScheduleEntry.jsonld-write_create'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ScheduleEntry-write_create'
+ $ref: '#/components/schemas/ScheduleEntry.jsonapi-write_create'
text/html:
schema:
$ref: '#/components/schemas/ScheduleEntry-write_create'
@@ -24038,7 +30384,7 @@ paths:
$ref: '#/components/schemas/ScheduleEntry.jsonld-read_ScheduleEntry.Activity'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ScheduleEntry-read_ScheduleEntry.Activity'
+ $ref: '#/components/schemas/ScheduleEntry.jsonapi-read_ScheduleEntry.Activity'
text/html:
schema:
$ref: '#/components/schemas/ScheduleEntry-read_ScheduleEntry.Activity'
@@ -24108,7 +30454,7 @@ paths:
$ref: '#/components/schemas/ScheduleEntry.jsonld-read_ScheduleEntry.Activity'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ScheduleEntry-read_ScheduleEntry.Activity'
+ $ref: '#/components/schemas/ScheduleEntry.jsonapi-read_ScheduleEntry.Activity'
text/html:
schema:
$ref: '#/components/schemas/ScheduleEntry-read_ScheduleEntry.Activity'
@@ -24143,7 +30489,7 @@ paths:
$ref: '#/components/schemas/ScheduleEntry-write'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ScheduleEntry-write'
+ $ref: '#/components/schemas/ScheduleEntry.jsonapi-write'
description: 'The updated ScheduleEntry resource'
required: true
responses:
@@ -24160,7 +30506,7 @@ paths:
$ref: '#/components/schemas/ScheduleEntry.jsonld-read_ScheduleEntry.Activity'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/ScheduleEntry-read_ScheduleEntry.Activity'
+ $ref: '#/components/schemas/ScheduleEntry.jsonapi-read_ScheduleEntry.Activity'
text/html:
schema:
$ref: '#/components/schemas/ScheduleEntry-read_ScheduleEntry.Activity'
@@ -24187,7 +30533,7 @@ paths:
application/hal+json:
schema:
properties:
- _embedded: { items: { $ref: '#/components/schemas/User.jsonhal-read' }, type: array }
+ _embedded: { anyOf: [{ properties: { item: { items: { $ref: '#/components/schemas/User.jsonhal-read' }, type: array } }, type: object }, { type: object }] }
_links: { properties: { first: { properties: { href: { format: iri-reference, type: string } }, type: object }, last: { properties: { href: { format: iri-reference, type: string } }, type: object }, next: { properties: { href: { format: iri-reference, type: string } }, type: object }, previous: { properties: { href: { format: iri-reference, type: string } }, type: object }, self: { properties: { href: { format: iri-reference, type: string } }, type: object } }, type: object }
itemsPerPage: { minimum: 0, type: integer }
totalItems: { minimum: 0, type: integer }
@@ -24213,7 +30559,7 @@ paths:
application/vnd.api+json:
schema:
items:
- $ref: '#/components/schemas/User-read'
+ $ref: '#/components/schemas/User.jsonapi-read'
type: array
text/html:
schema:
@@ -24243,7 +30589,7 @@ paths:
$ref: '#/components/schemas/User.jsonld-write_create'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/User-write_create'
+ $ref: '#/components/schemas/User.jsonapi-write_create'
text/html:
schema:
$ref: '#/components/schemas/User-write_create'
@@ -24263,7 +30609,7 @@ paths:
$ref: '#/components/schemas/User.jsonld-read_User.create'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/User-read_User.create'
+ $ref: '#/components/schemas/User.jsonapi-read_User.create'
text/html:
schema:
$ref: '#/components/schemas/User-read_User.create'
@@ -24333,7 +30679,7 @@ paths:
$ref: '#/components/schemas/User.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/User-read'
+ $ref: '#/components/schemas/User.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/User-read'
@@ -24368,7 +30714,7 @@ paths:
$ref: '#/components/schemas/User-write'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/User-write'
+ $ref: '#/components/schemas/User.jsonapi-write'
description: 'The updated User resource'
required: true
responses:
@@ -24385,7 +30731,7 @@ paths:
$ref: '#/components/schemas/User.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/User-read'
+ $ref: '#/components/schemas/User.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/User-read'
@@ -24426,7 +30772,7 @@ paths:
$ref: '#/components/schemas/User-activate'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/User-activate'
+ $ref: '#/components/schemas/User.jsonapi-activate'
description: 'The updated User resource'
required: true
responses:
@@ -24443,7 +30789,7 @@ paths:
$ref: '#/components/schemas/User.jsonld-read'
application/vnd.api+json:
schema:
- $ref: '#/components/schemas/User-read'
+ $ref: '#/components/schemas/User.jsonapi-read'
text/html:
schema:
$ref: '#/components/schemas/User-read'
From ac5238d5bd4fb1c6109d0f4e170bd705462b4719 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sat, 30 Mar 2024 08:15:02 +0000
Subject: [PATCH 05/12] chore(deps): update dependency @types/node to v20.12.2
---
.ops/aws-setup/package-lock.json | 8 ++++----
.ops/aws-setup/package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/.ops/aws-setup/package-lock.json b/.ops/aws-setup/package-lock.json
index 5738683d7b..41b4749312 100644
--- a/.ops/aws-setup/package-lock.json
+++ b/.ops/aws-setup/package-lock.json
@@ -12,7 +12,7 @@
},
"devDependencies": {
"@babel/eslint-parser": "7.24.1",
- "@types/node": "20.11.30",
+ "@types/node": "20.12.2",
"eslint": "8.57.0",
"eslint-config-prettier": "9.1.0",
"eslint-plugin-import": "2.29.1",
@@ -2847,9 +2847,9 @@
}
},
"node_modules/@types/node": {
- "version": "20.11.30",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.30.tgz",
- "integrity": "sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==",
+ "version": "20.12.2",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.2.tgz",
+ "integrity": "sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==",
"dependencies": {
"undici-types": "~5.26.4"
}
diff --git a/.ops/aws-setup/package.json b/.ops/aws-setup/package.json
index 13237b262f..01e43b5e5c 100644
--- a/.ops/aws-setup/package.json
+++ b/.ops/aws-setup/package.json
@@ -16,7 +16,7 @@
},
"devDependencies": {
"@babel/eslint-parser": "7.24.1",
- "@types/node": "20.11.30",
+ "@types/node": "20.12.2",
"eslint": "8.57.0",
"eslint-config-prettier": "9.1.0",
"eslint-plugin-import": "2.29.1",
From 55ba98aeabd0e32237c2fa25c4bba18b48cc58bc Mon Sep 17 00:00:00 2001
From: Carlo Beltrame
Date: Mon, 25 Mar 2024 22:55:05 +0100
Subject: [PATCH 06/12] Allow to copy categories
---
.../src/components/activity/ScheduleEntry.vue | 2 +-
.../category/CopyCategoryInfoDialog.vue | 75 +++++++++++++++++++
.../program/picasso/PicassoEntry.vue | 2 +-
frontend/src/locales/de.json | 8 ++
frontend/src/locales/en.json | 8 ++
frontend/src/views/category/Category.vue | 36 ++++++++-
6 files changed, 128 insertions(+), 3 deletions(-)
create mode 100644 frontend/src/components/category/CopyCategoryInfoDialog.vue
diff --git a/frontend/src/components/activity/ScheduleEntry.vue b/frontend/src/components/activity/ScheduleEntry.vue
index 47903df81c..36b8d1a297 100644
--- a/frontend/src/components/activity/ScheduleEntry.vue
+++ b/frontend/src/components/activity/ScheduleEntry.vue
@@ -402,7 +402,7 @@ export default {
async copyUrlToClipboard() {
try {
const res = await navigator.permissions.query({ name: 'clipboard-read' })
- if (res.state == 'prompt') {
+ if (res.state === 'prompt') {
this.$refs.copyInfoDialog.open()
}
} catch {
diff --git a/frontend/src/components/category/CopyCategoryInfoDialog.vue b/frontend/src/components/category/CopyCategoryInfoDialog.vue
new file mode 100644
index 0000000000..6e89eef013
--- /dev/null
+++ b/frontend/src/components/category/CopyCategoryInfoDialog.vue
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+ {{ $tc('components.category.copyCategoryInfoDialog.description') }}
+
+
+
+
+ {{ $tc('components.category.copyCategoryInfoDialog.allow') }}
+
+
+
+
+ {{ $tc('components.category.copyCategoryInfoDialog.granted') }}
+
+
+ {{ $tc('components.category.copyCategoryInfoDialog.denied') }}
+
+
+
+
+
diff --git a/frontend/src/components/program/picasso/PicassoEntry.vue b/frontend/src/components/program/picasso/PicassoEntry.vue
index 2c0c432104..e2f5ec394c 100644
--- a/frontend/src/components/program/picasso/PicassoEntry.vue
+++ b/frontend/src/components/program/picasso/PicassoEntry.vue
@@ -272,7 +272,7 @@ export default {
async copyUrlToClipboard() {
try {
const res = await navigator.permissions.query({ name: 'clipboard-read' })
- if (res.state == 'prompt') {
+ if (res.state === 'prompt') {
this.$refs.copyInfoDialog.open()
}
} catch {
diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json
index 6df666e6bd..6f701cfcd8 100644
--- a/frontend/src/locales/de.json
+++ b/frontend/src/locales/de.json
@@ -176,6 +176,13 @@
"createLayoutHelp": "Hier kannst du die Vorlage für neue {categoryShort}-Blöcke definieren.{br}Blockinhalt & Layout bereits erstellter {categoryShort}-Blöcke, werden nicht angepasst.",
"layout": "Layout",
"noTemplate": "Keine Vorlage"
+ },
+ "copyCategoryInfoDialog": {
+ "allow": "Jetzt erlauben",
+ "denied": "Du hast das Lesen von der Zwischenablage untersagt. Du kannst daher kopierte Kategorien nicht einfügen.",
+ "description": "Damit du eine kopierte Kategorie einfügen kannst, musst du eCamp erlauben deine Zwischenablage zu lesen.",
+ "granted": "Du kannst nun kopierte Kategorien einfügen.",
+ "title": "Kategorie kopieren & einfügen"
}
},
"collaborator": {
@@ -664,6 +671,7 @@
},
"category": {
"category": {
+ "copyCategory": "Kategorie kopieren",
"deleteCategory": "Kategorie löschen",
"properties": "Eigenschaften",
"template": "Vorlage für neue Blöcke"
diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json
index c73cdbf7bb..d15cd929f8 100644
--- a/frontend/src/locales/en.json
+++ b/frontend/src/locales/en.json
@@ -176,6 +176,13 @@
"createLayoutHelp": "Here you can define the template for new {categoryShort} activities.{br}The content & layout of already created {categoryShort} activities will not be adjusted.",
"layout": "Layout",
"noTemplate": "No template"
+ },
+ "copyActivityInfoDialog": {
+ "allow": "Allow now",
+ "denied": "You have denied access to your clipboard. Therefore, you cannot paste copied categories.",
+ "description": "In order to paste a copied category, you must allow eCamp to read your clipboard.",
+ "granted": "You can now paste copied categories.",
+ "title": "Copy & paste category"
}
},
"collaborator": {
@@ -663,6 +670,7 @@
},
"category": {
"category": {
+ "copyCategory": "Copy category",
"deleteCategory": "Delete category",
"properties": "Properties",
"template": "Template for new activities"
diff --git a/frontend/src/views/category/Category.vue b/frontend/src/views/category/Category.vue
index 18e55785fe..ae88dce0ff 100644
--- a/frontend/src/views/category/Category.vue
+++ b/frontend/src/views/category/Category.vue
@@ -16,14 +16,24 @@
-
+
mdi-dots-vertical
+
+
+ mdi-content-copy
+
+
+ {{ $tc('views.category.category.copyCategory') }}
+
+
+
From e29f2b9439ed16b98460a5c2f17f00b15c1e6dac Mon Sep 17 00:00:00 2001
From: Carlo Beltrame
Date: Mon, 25 Mar 2024 23:25:24 +0100
Subject: [PATCH 07/12] Simplify activity copy feature
---
api/src/Entity/Activity.php | 2 +-
.../program/DialogActivityCreate.vue | 37 +++++++++----------
frontend/src/locales/de.json | 2 +-
frontend/src/locales/en.json | 2 +-
4 files changed, 20 insertions(+), 23 deletions(-)
diff --git a/api/src/Entity/Activity.php b/api/src/Entity/Activity.php
index 07871f521c..fa7a263738 100644
--- a/api/src/Entity/Activity.php
+++ b/api/src/Entity/Activity.php
@@ -118,7 +118,7 @@ class Activity extends BaseEntity implements BelongsToCampInterface {
public ?Category $category = null;
/**
- * Copy Contents from this Source-Activity.
+ * Copy contents from this source activity.
*/
#[ApiProperty(example: '/activities/1a2b3c4d')]
#[Groups(['create'])]
diff --git a/frontend/src/components/program/DialogActivityCreate.vue b/frontend/src/components/program/DialogActivityCreate.vue
index a154044ed2..b9242887cc 100644
--- a/frontend/src/components/program/DialogActivityCreate.vue
+++ b/frontend/src/components/program/DialogActivityCreate.vue
@@ -21,7 +21,7 @@
mdi-information-outline
- {{ $tc('components.program.dialogActivityCreate.copyPastActivity') }}
+ {{ $tc('components.program.dialogActivityCreate.copyPasteActivity') }}
@@ -167,16 +167,16 @@ export default {
const sourceCamp = this.copyActivitySource.camp()
const sourceCategory = this.copyActivitySource.category()
- if (this.camp._meta.self == sourceCamp._meta.self) {
+ if (this.camp._meta.self === sourceCamp._meta.self) {
// same camp; use came category
this.entityData.category = sourceCategory._meta.self
} else {
// different camp; use category with same short-name
const categories = this.camp
.categories()
- .allItems.filter((c) => c.short == sourceCategory.short)
+ .allItems.filter((c) => c.short === sourceCategory.short)
- if (categories.length == 1) {
+ if (categories.length === 1) {
this.entityData.category = categories[0]._meta.self
}
}
@@ -205,7 +205,6 @@ export default {
copyActivitySource: null,
})
} else {
- this.canReadClipboard = 'unknown'
// clear the variable parts of the form on exit
this.copyActivitySource = null
this.copyActivitySourceUrl = null
@@ -221,8 +220,8 @@ export default {
if (activityProxy != null) {
activityProxy._meta.load.then(
(activity) => {
- this.$set(this, 'copyActivitySource', activity)
- this.$set(this, 'copyContent', activity != null)
+ this.copyActivitySource = activity
+ this.copyContent = true
this.copyActivitySourceUrlLoading = false
},
() => {
@@ -230,15 +229,15 @@ export default {
}
)
} else {
- this.$set(this, 'copyActivitySource', null)
- this.$set(this, 'copyContent', false)
+ this.copyActivitySource = null
+ this.copyContent = false
this.copyActivitySourceUrlLoading = false
}
// if Paste-Popover is shown, close it now
if (this.copyActivitySourceUrlShowPopover) {
this.$nextTick(() => {
- this.$set(this, 'copyActivitySourceUrlShowPopover', false)
+ this.copyActivitySourceUrlShowPopover = false
})
}
},
@@ -252,18 +251,16 @@ export default {
refreshCopyActivitySource() {
navigator.permissions.query({ name: 'clipboard-read' }).then(
(p) => {
- this.$set(this, 'clipboardPermission', p.state)
- this.$set(this, 'copyActivitySource', null)
+ this.clipboardPermission = p.state
+ this.copyActivitySource = null
- if (p.state == 'granted') {
+ if (p.state === 'granted') {
navigator.clipboard
.readText()
- .then((url) => {
- this.getCopyActivitySource(url).then((activityProxy) => {
- activityProxy._meta.load.then((activity) =>
- this.$set(this, 'copyActivitySource', activity)
- )
- })
+ .then(async (url) => {
+ this.copyActivitySource = await (
+ await this.getCopyActivitySource(url)
+ )?._meta.load
})
.catch(() => {
this.clipboardPermission = 'unaccessable'
@@ -282,7 +279,7 @@ export default {
url = url.substring(window.location.origin.length)
const match = router.matcher.match(url)
- if (match.name == 'activity') {
+ if (match.name === 'activity') {
const scheduleEntry = await this.api
.get()
.scheduleEntries({ id: match.params['scheduleEntryId'] })
diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json
index 6f701cfcd8..13c31b8af6 100644
--- a/frontend/src/locales/de.json
+++ b/frontend/src/locales/de.json
@@ -357,7 +357,7 @@
"clipboard": "Zwischenablage",
"copyActivity": "Aktivität kopieren",
"copyActivityContent": "Inhalt von Aktivität kopieren",
- "copyPastActivity": "Aktivität kopieren & einfügen",
+ "copyPasteActivity": "Aktivität kopieren & einfügen",
"copySourceInfo": "Hier kannst du die URL einer Aktivität einfügen um dessen Inhalte zu kopieren.",
"pasteActivity": "Kopierte Aktivität einfügen"
},
diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json
index d15cd929f8..5323bdbfde 100644
--- a/frontend/src/locales/en.json
+++ b/frontend/src/locales/en.json
@@ -357,7 +357,7 @@
"clipboard": "Clipboard",
"copyActivity": "Copy activity",
"copyActivityContent": "Copy content from activity",
- "copyPastActivity": "Copy & paste activity",
+ "copyPasteActivity": "Copy & paste activity",
"copySourceInfo": "Here you can paste the URL of an activity to copy its contents.",
"pasteActivity": "paste activity"
},
From 6cb5026ef7c06b0b91f6bed72b3b2609af37476d Mon Sep 17 00:00:00 2001
From: Carlo Beltrame
Date: Tue, 26 Mar 2024 01:36:14 +0100
Subject: [PATCH 08/12] Implement pasting categories
---
api/src/Entity/Category.php | 7 +
api/src/State/CategoryCreateProcessor.php | 7 +
.../campAdmin/DialogCategoryCreate.vue | 217 +++++++++++++++++-
.../campAdmin/DialogCategoryForm.vue | 14 +-
frontend/src/locales/de.json | 8 +
frontend/src/locales/en.json | 7 +
6 files changed, 254 insertions(+), 6 deletions(-)
diff --git a/api/src/Entity/Category.php b/api/src/Entity/Category.php
index c5ac7b2a4e..d342c4c381 100644
--- a/api/src/Entity/Category.php
+++ b/api/src/Entity/Category.php
@@ -107,6 +107,13 @@ class Category extends BaseEntity implements BelongsToCampInterface, CopyFromPro
#[ORM\OneToMany(targetEntity: Activity::class, mappedBy: 'category', orphanRemoval: true)]
public Collection $activities;
+ /**
+ * Copy contents from this source category or activity.
+ */
+ #[ApiProperty(example: '/categories/1a2b3c4d')]
+ #[Groups(['create'])]
+ public null|Activity|Category $copyCategorySource;
+
/**
* The id of the category that was used as a template for creating this category. Internal for now, is
* not published through the API.
diff --git a/api/src/State/CategoryCreateProcessor.php b/api/src/State/CategoryCreateProcessor.php
index 83162985a4..305b7422ba 100644
--- a/api/src/State/CategoryCreateProcessor.php
+++ b/api/src/State/CategoryCreateProcessor.php
@@ -8,6 +8,7 @@
use App\Entity\ContentNode\ColumnLayout;
use App\Entity\ContentType;
use App\State\Util\AbstractPersistProcessor;
+use App\Util\EntityMap;
use Doctrine\ORM\EntityManagerInterface;
/**
@@ -35,6 +36,12 @@ public function onBefore($data, Operation $operation, array $uriVariables = [],
$rootContentNode->data = ['columns' => [['slot' => '1', 'width' => 12]]];
$data->setRootContentNode($rootContentNode);
+ if (isset($data->copyCategorySource)) {
+ // CopyActivity Source is set -> copy it's content (rootContentNode)
+ $entityMap = new EntityMap();
+ $rootContentNode->copyFromPrototype($data->copyCategorySource->getRootContentNode(), $entityMap);
+ }
+
return $data;
}
}
diff --git a/frontend/src/components/campAdmin/DialogCategoryCreate.vue b/frontend/src/components/campAdmin/DialogCategoryCreate.vue
index e8275f9ccc..3588ebc011 100644
--- a/frontend/src/components/campAdmin/DialogCategoryCreate.vue
+++ b/frontend/src/components/campAdmin/DialogCategoryCreate.vue
@@ -14,7 +14,90 @@
-
+
+
+
+
+ mdi-information-outline
+ {{
+ $tc('components.campAdmin.dialogCategoryCreate.copyPasteCategoryOrActivity')
+ }}
+
+
+
+
+
+
+
+
+ {{ $tc('components.campAdmin.dialogCategoryCreate.clipboard') }}
+
+
+
+
+ mdi-clipboard-check-outline
+
+
+
+
+ {{ copyCategorySource.title }}
+
+
+ {{ copyCategorySource.camp().title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ mdi-content-paste
+
+
+ {{ $tc('components.campAdmin.dialogCategoryCreate.copySourceInfo') }}
+
+
+
+
@@ -23,10 +106,17 @@ import { categoryRoute } from '@/router.js'
import DialogForm from '@/components/dialog/DialogForm.vue'
import DialogBase from '@/components/dialog/DialogBase.vue'
import DialogCategoryForm from './DialogCategoryForm.vue'
+import PopoverPrompt from '../prompt/PopoverPrompt.vue'
+import router from '../../router.js'
+import CategoryChip from '../generic/CategoryChip.vue'
+import CopyCategoryInfoDialog from '../category/CopyCategoryInfoDialog.vue'
export default {
name: 'DialogCategoryCreate',
components: {
+ CopyCategoryInfoDialog,
+ CategoryChip,
+ PopoverPrompt,
DialogCategoryForm,
DialogForm,
},
@@ -39,23 +129,102 @@ export default {
entityProperties: ['camp', 'short', 'name', 'color', 'numberingStyle'],
embeddedCollections: ['preferredContentTypes'],
entityUri: '/categories',
+ clipboardPermission: 'unknown',
+ copyCategorySource: null,
+ copyCategorySourceUrl: null,
+ copyCategorySourceUrlLoading: false,
+ copyCategorySourceUrlShowPopover: false,
}
},
+ computed: {
+ clipboardAccessDenied() {
+ return (
+ this.clipboardPermission === 'unaccessable' ||
+ this.clipboardPermission === 'denied'
+ )
+ },
+ hasCopyCategorySource() {
+ return this.copyCategorySource != null && this.copyCategorySource._meta.self != null
+ },
+ copyContent: {
+ get() {
+ return this.entityData.copyCategorySource != null
+ },
+ set(val) {
+ if (val) {
+ this.entityData.copyCategorySource = this.copyCategorySource._meta.self
+ this.entityData.short = this.copyCategorySourceCategory.short
+ this.entityData.name = this.copyCategorySourceCategory.name
+ this.entityData.color = this.copyCategorySourceCategory.color
+ this.entityData.numberingStyle = this.copyCategorySourceCategory.numberingStyle
+ } else {
+ this.entityData.copyCategorySource = null
+ }
+ },
+ },
+ copyCategorySourceCategory() {
+ if (!this.hasCopyCategorySource) return null
+ return this.copyCategorySource.short
+ ? this.copyCategorySource
+ : this.copyCategorySource.category()
+ },
+ },
watch: {
showDialog: function (showDialog) {
if (showDialog) {
+ this.refreshCopyCategorySource()
this.setEntityData({
camp: this.camp._meta.self,
short: '',
name: '',
color: '#000000',
numberingStyle: '1',
+ copyCategorySource: null,
})
} else {
// clear form on exit
this.clearEntityData()
+ this.copyCategorySource = null
+ this.copyCategorySourceUrl = null
}
},
+ copyCategorySourceUrl: function (url) {
+ this.copyCategorySourceUrlLoading = true
+
+ this.getCopyCategorySource(url).then(
+ (categoryOrActivityProxy) => {
+ if (categoryOrActivityProxy != null) {
+ categoryOrActivityProxy._meta.load.then(
+ async (categoryOrActivity) => {
+ if (!categoryOrActivity.short) {
+ await categoryOrActivity.category()._meta.load
+ }
+ this.copyCategorySource = categoryOrActivity
+ this.copyContent = true
+ this.copyCategorySourceUrlLoading = false
+ },
+ () => {
+ this.copyCategorySourceUrlLoading = false
+ }
+ )
+ } else {
+ this.copyCategorySource = null
+ this.copyContent = false
+ this.copyCategorySourceUrlLoading = false
+ }
+
+ // if Paste-Popover is shown, close it now
+ if (this.copyCategorySourceUrlShowPopover) {
+ this.$nextTick(() => {
+ this.copyCategorySourceUrlShowPopover = false
+ })
+ }
+ },
+ () => {
+ this.copyCategorySourceUrlLoading = false
+ }
+ )
+ },
},
methods: {
async createCategory() {
@@ -63,6 +232,52 @@ export default {
await this.api.reload(this.camp.categories())
this.$router.push(categoryRoute(this.camp, createdCategory, { new: true }))
},
+ refreshCopyCategorySource() {
+ navigator.permissions.query({ name: 'clipboard-read' }).then(
+ (p) => {
+ this.clipboardPermission = p.state
+ this.copyCategorySource = null
+
+ if (p.state === 'granted') {
+ navigator.clipboard
+ .readText()
+ .then(async (url) => {
+ this.copyCategorySource = await (
+ await this.getCopyCategorySource(url)
+ )?._meta.load
+ })
+ .catch(() => {
+ this.clipboardPermission = 'unaccessable'
+ console.warn('clipboard permission not requestable')
+ })
+ }
+ },
+ () => {
+ this.clipboardPermission = 'unaccessable'
+ console.warn('clipboard permission not requestable')
+ }
+ )
+ },
+ async getCopyCategorySource(url) {
+ if (url?.startsWith(window.location.origin)) {
+ url = url.substring(window.location.origin.length)
+ const match = router.matcher.match(url)
+
+ if (match.name === 'activity') {
+ const scheduleEntry = await this.api
+ .get()
+ .scheduleEntries({ id: match.params['scheduleEntryId'] })
+ return await scheduleEntry.activity()
+ } else if (match.name === 'admin/activity/category') {
+ return await this.api.get().categories({ id: match.params['categoryId'] })
+ }
+ }
+ return null
+ },
+ async clearClipboard() {
+ await navigator.clipboard.writeText('')
+ this.refreshCopyCategorySource()
+ },
},
}
diff --git a/frontend/src/components/campAdmin/DialogCategoryForm.vue b/frontend/src/components/campAdmin/DialogCategoryForm.vue
index 8d480df706..b82c4847c7 100644
--- a/frontend/src/components/campAdmin/DialogCategoryForm.vue
+++ b/frontend/src/components/campAdmin/DialogCategoryForm.vue
@@ -1,10 +1,14 @@
-
+
+
+
+
Date: Tue, 26 Mar 2024 23:37:20 +0100
Subject: [PATCH 09/12] Simplify translation
---
frontend/src/components/campAdmin/DialogCategoryCreate.vue | 2 +-
frontend/src/locales/de.json | 2 +-
frontend/src/locales/en.json | 1 +
3 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/frontend/src/components/campAdmin/DialogCategoryCreate.vue b/frontend/src/components/campAdmin/DialogCategoryCreate.vue
index 3588ebc011..5f8f589f5f 100644
--- a/frontend/src/components/campAdmin/DialogCategoryCreate.vue
+++ b/frontend/src/components/campAdmin/DialogCategoryCreate.vue
@@ -20,7 +20,7 @@
mdi-information-outline
{{
- $tc('components.campAdmin.dialogCategoryCreate.copyPasteCategoryOrActivity')
+ $tc('components.campAdmin.dialogCategoryCreate.copyPasteCategory')
}}
diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json
index 1bd2d80529..8946d9fc27 100644
--- a/frontend/src/locales/de.json
+++ b/frontend/src/locales/de.json
@@ -123,7 +123,7 @@
"clipboard": "Zwischenablage",
"copyCategoryOrActivity": "Kategorie oder Aktivität kopieren",
"copyContent": "Inhalt kopieren",
- "copyPasteCategoryOrActivity": "Kategorie oder Aktivität kopieren & einfügen",
+ "copyPasteCategory": "Kategorie kopieren & einfügen",
"copySourceInfo": "Hier kannst du die URL einer Block-Kategorie oder einer Aktivität einfügen um dessen Inhalte zu kopieren.",
"pasteCategory": "Kopierte Kategorie oder Aktivität einfügen",
"title": "Block-Kategorie erstellen"
diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json
index 1175a99b91..af4a2ff40f 100644
--- a/frontend/src/locales/en.json
+++ b/frontend/src/locales/en.json
@@ -123,6 +123,7 @@
"clipboard": "Clipboard",
"copyCategoryOrActivity": "Copy category or activity",
"copyContent": "Copy content",
+ "copyPasteCategory": "Copy & paste category",
"copySourceInfo": "Here you can paste the URL of a category or an activity to copy its contents.",
"pasteCategory": "paste category or activity",
"title": "Create activity category"
From b2614bf165f841dce56a307eb4c6392c71fff71a Mon Sep 17 00:00:00 2001
From: Carlo Beltrame
Date: Wed, 27 Mar 2024 17:40:05 +0100
Subject: [PATCH 10/12] Adjust and extend tests
---
.../Api/Categories/CreateCategoryTest.php | 101 +++++++++++++++++-
...est__testOpenApiSpecMatchesSnapshot__1.yml | 27 ++++-
.../campAdmin/DialogCategoryCreate.vue | 4 +-
3 files changed, 124 insertions(+), 8 deletions(-)
diff --git a/api/tests/Api/Categories/CreateCategoryTest.php b/api/tests/Api/Categories/CreateCategoryTest.php
index 5433282fb1..14a0b76f42 100644
--- a/api/tests/Api/Categories/CreateCategoryTest.php
+++ b/api/tests/Api/Categories/CreateCategoryTest.php
@@ -99,10 +99,10 @@ public function testCreateCategoryCreatesNewColumnLayoutAsRootContentNode() {
$this->assertResponseStatusCodeSame(201);
$newestColumnLayout = $this->getEntityManager()->getRepository(ContentNode::class)
- ->findBy(['contentType' => static::$fixtures['contentTypeColumnLayout']], ['createTime' => 'DESC'])[0]
+ ->findBy(['contentType' => static::$fixtures['contentTypeColumnLayout'], 'instanceName' => null], ['createTime' => 'DESC'], 1)[0]
;
$this->assertJsonContains(['_links' => [
- 'rootContentNode' => ['href' => '/content_node/column_layouts/'.$newestColumnLayout->getId()],
+ 'rootContentNode' => ['href' => $this->getIriFor($newestColumnLayout)],
]]);
}
@@ -456,6 +456,102 @@ public function testCreateCategoryValidatesInvalidNumberingStyle() {
]);
}
+ public function testCreateCategoryFromCopySourceValidatesAccess() {
+ static::createClientWithCredentials(['email' => static::$fixtures['user8memberOnlyInCamp2']->getEmail()])->request(
+ 'POST',
+ '/categories',
+ ['json' => $this->getExampleWritePayload(
+ [
+ 'camp' => $this->getIriFor('camp2'),
+ 'copyCategorySource' => $this->getIriFor('category1'),
+ ]
+ )]
+ );
+
+ // No Access on category1 -> BadRequest
+ $this->assertResponseStatusCodeSame(400);
+ }
+
+ public function testCreateCategoryFromCopySourceWithinSameCamp() {
+ static::createClientWithCredentials()->request(
+ 'POST',
+ '/categories',
+ ['json' => $this->getExampleWritePayload(
+ [
+ 'camp' => $this->getIriFor('camp1'),
+ 'copyCategorySource' => $this->getIriFor('category1'),
+ ],
+ )]
+ );
+
+ // Category created
+ $this->assertResponseStatusCodeSame(201);
+ }
+
+ public function testCreateCategoryFromCopySourceAcrossCamp() {
+ static::createClientWithCredentials()->request(
+ 'POST',
+ '/categories',
+ ['json' => $this->getExampleWritePayload(
+ [
+ 'camp' => $this->getIriFor('camp2'),
+ 'copyCategorySource' => $this->getIriFor('category1'),
+ ],
+ )]
+ );
+
+ // Category created
+ $this->assertResponseStatusCodeSame(201);
+ }
+
+ public function testCreateCategoryFromCopySourceActivityValidatesAccess() {
+ static::createClientWithCredentials(['email' => static::$fixtures['user8memberOnlyInCamp2']->getEmail()])->request(
+ 'POST',
+ '/categories',
+ ['json' => $this->getExampleWritePayload(
+ [
+ 'camp' => $this->getIriFor('camp2'),
+ 'copyCategorySource' => $this->getIriFor('activity1'),
+ ]
+ )]
+ );
+
+ // No Access on activity1 -> BadRequest
+ $this->assertResponseStatusCodeSame(400);
+ }
+
+ public function testCreateCategoryFromCopySourceActivityWithinSameCamp() {
+ static::createClientWithCredentials()->request(
+ 'POST',
+ '/categories',
+ ['json' => $this->getExampleWritePayload(
+ [
+ 'camp' => $this->getIriFor('camp1'),
+ 'copyCategorySource' => $this->getIriFor('activity1'),
+ ],
+ )]
+ );
+
+ // Category created
+ $this->assertResponseStatusCodeSame(201);
+ }
+
+ public function testCreateCategoryFromCopySourceActivityAcrossCamp() {
+ static::createClientWithCredentials()->request(
+ 'POST',
+ '/categories',
+ ['json' => $this->getExampleWritePayload(
+ [
+ 'camp' => $this->getIriFor('camp2'),
+ 'copyCategorySource' => $this->getIriFor('activity1'),
+ ],
+ )]
+ );
+
+ // Category created
+ $this->assertResponseStatusCodeSame(201);
+ }
+
/**
* @throws RedirectionExceptionInterface
* @throws DecodingExceptionInterface
@@ -488,6 +584,7 @@ public function getExampleWritePayload($attributes = [], $except = []) {
Category::class,
Post::class,
array_merge([
+ 'copyCategorySource' => null,
'camp' => $this->getIriFor('camp1'),
'preferredContentTypes' => [$this->getIriFor('contentTypeSafetyConcept')],
], $attributes),
diff --git a/api/tests/Api/SnapshotTests/__snapshots__/ResponseSnapshotTest__testOpenApiSpecMatchesSnapshot__1.yml b/api/tests/Api/SnapshotTests/__snapshots__/ResponseSnapshotTest__testOpenApiSpecMatchesSnapshot__1.yml
index 60be7ed441..6eeed510f5 100644
--- a/api/tests/Api/SnapshotTests/__snapshots__/ResponseSnapshotTest__testOpenApiSpecMatchesSnapshot__1.yml
+++ b/api/tests/Api/SnapshotTests/__snapshots__/ResponseSnapshotTest__testOpenApiSpecMatchesSnapshot__1.yml
@@ -362,7 +362,7 @@ components:
format: iri-reference
type: string
copyActivitySource:
- description: 'Copy Contents from this Source-Activity.'
+ description: 'Copy contents from this source activity.'
example: /activities/1a2b3c4d
format: iri-reference
type:
@@ -1168,7 +1168,7 @@ components:
format: iri-reference
type: string
copyActivitySource:
- description: 'Copy Contents from this Source-Activity.'
+ description: 'Copy contents from this source activity.'
example: /activities/1a2b3c4d
format: iri-reference
type:
@@ -1607,7 +1607,7 @@ components:
format: iri-reference
type: string
copyActivitySource:
- description: 'Copy Contents from this Source-Activity.'
+ description: 'Copy contents from this source activity.'
example: /activities/1a2b3c4d
format: iri-reference
type:
@@ -7938,6 +7938,13 @@ components:
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
@@ -8690,6 +8697,13 @@ components:
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
@@ -9062,6 +9076,13 @@ components:
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
diff --git a/frontend/src/components/campAdmin/DialogCategoryCreate.vue b/frontend/src/components/campAdmin/DialogCategoryCreate.vue
index 5f8f589f5f..3566695929 100644
--- a/frontend/src/components/campAdmin/DialogCategoryCreate.vue
+++ b/frontend/src/components/campAdmin/DialogCategoryCreate.vue
@@ -19,9 +19,7 @@
mdi-information-outline
- {{
- $tc('components.campAdmin.dialogCategoryCreate.copyPasteCategory')
- }}
+ {{ $tc('components.campAdmin.dialogCategoryCreate.copyPasteCategory') }}
From 70b01ebbf0edc554a354f147e108f645957d6324 Mon Sep 17 00:00:00 2001
From: Carlo Beltrame
Date: Sat, 30 Mar 2024 20:17:20 +0100
Subject: [PATCH 11/12] Minor fixes from review
---
frontend/src/components/campAdmin/DialogCategoryCreate.vue | 7 +++----
frontend/src/components/program/DialogActivityCreate.vue | 5 ++---
2 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/frontend/src/components/campAdmin/DialogCategoryCreate.vue b/frontend/src/components/campAdmin/DialogCategoryCreate.vue
index 3566695929..ae78f22109 100644
--- a/frontend/src/components/campAdmin/DialogCategoryCreate.vue
+++ b/frontend/src/components/campAdmin/DialogCategoryCreate.vue
@@ -105,7 +105,7 @@ import DialogForm from '@/components/dialog/DialogForm.vue'
import DialogBase from '@/components/dialog/DialogBase.vue'
import DialogCategoryForm from './DialogCategoryForm.vue'
import PopoverPrompt from '../prompt/PopoverPrompt.vue'
-import router from '../../router.js'
+import router from '@/router.js'
import CategoryChip from '../generic/CategoryChip.vue'
import CopyCategoryInfoDialog from '../category/CopyCategoryInfoDialog.vue'
@@ -240,9 +240,8 @@ export default {
navigator.clipboard
.readText()
.then(async (url) => {
- this.copyCategorySource = await (
- await this.getCopyCategorySource(url)
- )?._meta.load
+ const copyCategorySource = await this.getCopyCategorySource(url)
+ this.copyCategorySource = await copyCategorySource?._meta.load
})
.catch(() => {
this.clipboardPermission = 'unaccessable'
diff --git a/frontend/src/components/program/DialogActivityCreate.vue b/frontend/src/components/program/DialogActivityCreate.vue
index b9242887cc..f9f67373e5 100644
--- a/frontend/src/components/program/DialogActivityCreate.vue
+++ b/frontend/src/components/program/DialogActivityCreate.vue
@@ -258,9 +258,8 @@ export default {
navigator.clipboard
.readText()
.then(async (url) => {
- this.copyActivitySource = await (
- await this.getCopyActivitySource(url)
- )?._meta.load
+ const copyActivitySource = await this.getCopyActivitySource(url)
+ this.copyActivitySource = await copyActivitySource?._meta.load
})
.catch(() => {
this.clipboardPermission = 'unaccessable'
From ccfdcfcbbfaec9ecd2991a6348dd20a0106c025e Mon Sep 17 00:00:00 2001
From: Carlo Beltrame
Date: Sat, 30 Mar 2024 21:17:40 +0100
Subject: [PATCH 12/12] Update snapshot
---
...seSnapshotTest__testOpenApiSpecMatchesSnapshot__1.yml | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/api/tests/Api/SnapshotTests/__snapshots__/ResponseSnapshotTest__testOpenApiSpecMatchesSnapshot__1.yml b/api/tests/Api/SnapshotTests/__snapshots__/ResponseSnapshotTest__testOpenApiSpecMatchesSnapshot__1.yml
index 6eeed510f5..87e6a210a3 100644
--- a/api/tests/Api/SnapshotTests/__snapshots__/ResponseSnapshotTest__testOpenApiSpecMatchesSnapshot__1.yml
+++ b/api/tests/Api/SnapshotTests/__snapshots__/ResponseSnapshotTest__testOpenApiSpecMatchesSnapshot__1.yml
@@ -759,7 +759,7 @@ components:
format: iri-reference
type: string
copyActivitySource:
- description: 'Copy Contents from this Source-Activity.'
+ description: 'Copy contents from this source activity.'
example: /activities/1a2b3c4d
format: iri-reference
type:
@@ -8303,6 +8303,13 @@ components:
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