{
	"components": {
		"examples": {},
		"headers": {},
		"parameters": {},
		"requestBodies": {},
		"responses": {},
		"schemas": {
			"ErrorResponse": {
				"properties": {
					"message": {
						"type": "string",
						"enum": [
							"Internal server error"
						],
						"nullable": false
					}
				},
				"required": [
					"message"
				],
				"type": "object",
				"additionalProperties": false
			},
			"ForbiddenResponse": {
				"properties": {
					"message": {
						"type": "string",
						"enum": [
							"Forbidden"
						],
						"nullable": false
					},
					"details": {
						"type": "string"
					}
				},
				"required": [
					"message"
				],
				"type": "object",
				"additionalProperties": false
			},
			"UnauthorizedError": {
				"properties": {
					"name": {
						"type": "string"
					},
					"message": {
						"type": "string"
					},
					"stack": {
						"type": "string"
					},
					"details": {
						"type": "string"
					}
				},
				"required": [
					"name",
					"message",
					"details"
				],
				"type": "object",
				"additionalProperties": false
			},
			"SuccessResponse": {
				"properties": {
					"id": {
						"type": "string"
					}
				},
				"required": [
					"id"
				],
				"type": "object",
				"additionalProperties": false
			},
			"ValidateErrorResponse": {
				"properties": {
					"message": {
						"type": "string",
						"enum": [
							"Validation failed"
						],
						"nullable": false
					},
					"details": {
						"properties": {},
						"additionalProperties": {},
						"type": "object"
					}
				},
				"required": [
					"message",
					"details"
				],
				"type": "object",
				"additionalProperties": false
			},
			"RangeSelector": {
				"properties": {
					"startContainer": {
						"type": "string"
					},
					"startOffset": {
						"type": "number",
						"format": "double"
					},
					"endContainer": {
						"type": "string"
					},
					"endOffset": {
						"type": "number",
						"format": "double"
					}
				},
				"required": [
					"startContainer",
					"startOffset",
					"endContainer",
					"endOffset"
				],
				"type": "object",
				"additionalProperties": false
			},
			"TextPositionSelector": {
				"properties": {
					"start": {
						"type": "number",
						"format": "double"
					},
					"end": {
						"type": "number",
						"format": "double"
					}
				},
				"required": [
					"start",
					"end"
				],
				"type": "object",
				"additionalProperties": false
			},
			"TextQuoteSelector": {
				"properties": {
					"exact": {
						"type": "string"
					},
					"prefix": {
						"type": "string"
					},
					"suffix": {
						"type": "string"
					}
				},
				"required": [
					"exact"
				],
				"type": "object",
				"additionalProperties": false
			},
			"WebPageFragment": {
				"properties": {
					"text": {
						"type": "string"
					},
					"rangeSelector": {
						"$ref": "#/components/schemas/RangeSelector"
					},
					"textPositionSelector": {
						"$ref": "#/components/schemas/TextPositionSelector"
					},
					"textQuoteSelector": {
						"$ref": "#/components/schemas/TextQuoteSelector"
					}
				},
				"required": [
					"text",
					"rangeSelector",
					"textPositionSelector",
					"textQuoteSelector"
				],
				"type": "object",
				"additionalProperties": false
			},
			"WebPageMetadata": {
				"properties": {
					"key": {
						"type": "string"
					},
					"value": {
						"type": "string"
					}
				},
				"required": [
					"key",
					"value"
				],
				"type": "object",
				"additionalProperties": false
			},
			"WebPage": {
				"properties": {
					"pageTitle": {
						"type": "string"
					},
					"pageContext": {
						"type": "string"
					},
					"selected": {
						"$ref": "#/components/schemas/WebPageFragment"
					},
					"pageFavicon": {
						"type": "string"
					},
					"pageMetadata": {
						"items": {
							"$ref": "#/components/schemas/WebPageMetadata"
						},
						"type": "array"
					}
				},
				"required": [
					"pageTitle",
					"pageContext"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Tag": {
				"type": "string",
				"pattern": "^[\\w]+$"
			},
			"HighlightAnnotation": {
				"properties": {
					"notebookId": {
						"type": "string"
					},
					"userId": {
						"type": "string"
					},
					"serializedBy": {
						"type": "string"
					},
					"subject": {
						"$ref": "#/components/schemas/WebPage"
					},
					"tags": {
						"items": {
							"$ref": "#/components/schemas/Tag"
						},
						"type": "array"
					},
					"color": {
						"type": "string"
					},
					"type": {
						"type": "string",
						"enum": [
							"Highlighting"
						],
						"nullable": false
					}
				},
				"required": [
					"notebookId",
					"userId",
					"serializedBy",
					"subject",
					"type"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Predicate": {
				"properties": {
					"label": {
						"type": "string"
					},
					"uri": {
						"type": "string"
					}
				},
				"required": [
					"label",
					"uri"
				],
				"type": "object",
				"additionalProperties": false
			},
			"SemanticTripleWithLiteral": {
				"properties": {
					"predicate": {
						"$ref": "#/components/schemas/Predicate"
					},
					"objectType": {
						"type": "string",
						"enum": [
							"literal"
						],
						"nullable": false
					},
					"object": {
						"properties": {
							"text": {
								"type": "string"
							}
						},
						"required": [
							"text"
						],
						"type": "object"
					}
				},
				"required": [
					"predicate",
					"objectType",
					"object"
				],
				"type": "object",
				"additionalProperties": false
			},
			"SemanticTripleWithPage": {
				"properties": {
					"predicate": {
						"$ref": "#/components/schemas/Predicate"
					},
					"objectType": {
						"type": "string",
						"enum": [
							"textFragment"
						],
						"nullable": false
					},
					"object": {
						"$ref": "#/components/schemas/WebPage"
					}
				},
				"required": [
					"predicate",
					"objectType",
					"object"
				],
				"type": "object",
				"additionalProperties": false
			},
			"UriRdfTypes": {
				"properties": {
					"label": {
						"type": "string"
					},
					"uri": {
						"type": "string"
					}
				},
				"required": [
					"label",
					"uri"
				],
				"type": "object",
				"additionalProperties": false
			},
			"ObjectUri": {
				"properties": {
					"uri": {
						"type": "string"
					},
					"label": {
						"type": "string"
					},
					"description": {
						"type": "string"
					},
					"depiction": {
						"type": "string"
					},
					"source": {
						"type": "string",
						"enum": [
							"search"
						],
						"nullable": false
					},
					"rdfTypes": {
						"items": {
							"$ref": "#/components/schemas/UriRdfTypes"
						},
						"type": "array"
					}
				},
				"required": [
					"uri",
					"label",
					"source"
				],
				"type": "object",
				"additionalProperties": false
			},
			"LiteralUri": {
				"properties": {
					"description": {
						"type": "string"
					},
					"label": {
						"type": "string"
					},
					"source": {
						"type": "string",
						"enum": [
							"free-text"
						],
						"nullable": false
					},
					"uri": {
						"type": "string"
					}
				},
				"required": [
					"source",
					"uri"
				],
				"type": "object"
			},
			"SemanticTripleWithUri": {
				"properties": {
					"predicate": {
						"$ref": "#/components/schemas/Predicate"
					},
					"objectType": {
						"type": "string",
						"enum": [
							"uri"
						],
						"nullable": false
					},
					"object": {
						"anyOf": [
							{
								"$ref": "#/components/schemas/ObjectUri"
							},
							{
								"$ref": "#/components/schemas/LiteralUri"
							}
						]
					}
				},
				"required": [
					"predicate",
					"objectType",
					"object"
				],
				"type": "object",
				"additionalProperties": false
			},
			"ObjectDate": {
				"properties": {
					"date": {
						"type": "string"
					},
					"format": {
						"type": "string"
					}
				},
				"required": [
					"date"
				],
				"type": "object",
				"additionalProperties": false
			},
			"SemanticTripleWithDate": {
				"properties": {
					"predicate": {
						"$ref": "#/components/schemas/Predicate"
					},
					"objectType": {
						"type": "string",
						"enum": [
							"date"
						],
						"nullable": false
					},
					"object": {
						"$ref": "#/components/schemas/ObjectDate"
					}
				},
				"required": [
					"predicate",
					"objectType",
					"object"
				],
				"type": "object",
				"additionalProperties": false
			},
			"SemanticTripleType": {
				"anyOf": [
					{
						"$ref": "#/components/schemas/SemanticTripleWithLiteral"
					},
					{
						"$ref": "#/components/schemas/SemanticTripleWithPage"
					},
					{
						"$ref": "#/components/schemas/SemanticTripleWithUri"
					},
					{
						"$ref": "#/components/schemas/SemanticTripleWithDate"
					}
				]
			},
			"LinkAnnotation": {
				"properties": {
					"notebookId": {
						"type": "string"
					},
					"userId": {
						"type": "string"
					},
					"serializedBy": {
						"type": "string"
					},
					"subject": {
						"$ref": "#/components/schemas/WebPage"
					},
					"tags": {
						"items": {
							"$ref": "#/components/schemas/Tag"
						},
						"type": "array"
					},
					"color": {
						"type": "string"
					},
					"type": {
						"type": "string",
						"enum": [
							"Linking"
						],
						"nullable": false
					},
					"content": {
						"items": {
							"$ref": "#/components/schemas/SemanticTripleType"
						},
						"type": "array"
					}
				},
				"required": [
					"notebookId",
					"userId",
					"serializedBy",
					"subject",
					"type",
					"content"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CommentAnnotation": {
				"properties": {
					"notebookId": {
						"type": "string"
					},
					"userId": {
						"type": "string"
					},
					"serializedBy": {
						"type": "string"
					},
					"subject": {
						"$ref": "#/components/schemas/WebPage"
					},
					"tags": {
						"items": {
							"$ref": "#/components/schemas/Tag"
						},
						"type": "array"
					},
					"color": {
						"type": "string"
					},
					"type": {
						"type": "string",
						"enum": [
							"Commenting"
						],
						"nullable": false
					},
					"content": {
						"properties": {
							"comment": {
								"type": "string"
							}
						},
						"required": [
							"comment"
						],
						"type": "object"
					}
				},
				"required": [
					"notebookId",
					"userId",
					"serializedBy",
					"subject",
					"type",
					"content"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AnnotationTypes": {
				"anyOf": [
					{
						"$ref": "#/components/schemas/HighlightAnnotation"
					},
					{
						"$ref": "#/components/schemas/LinkAnnotation"
					},
					{
						"$ref": "#/components/schemas/CommentAnnotation"
					}
				]
			},
			"CreateAnnotationRequest": {
				"$ref": "#/components/schemas/AnnotationTypes"
			},
			"NotFoundError": {
				"properties": {
					"name": {
						"type": "string"
					},
					"message": {
						"type": "string"
					},
					"stack": {
						"type": "string"
					},
					"details": {
						"type": "string"
					}
				},
				"required": [
					"name",
					"message",
					"details"
				],
				"type": "object",
				"additionalProperties": false
			},
			"UpdateAnnotationRequest": {
				"$ref": "#/components/schemas/AnnotationTypes"
			},
			"Entity": {
				"properties": {
					"id": {
						"type": "string"
					}
				},
				"required": [
					"id"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Timestamp": {
				"properties": {
					"created": {
						"type": "string",
						"format": "date-time"
					},
					"changed": {
						"type": "string",
						"format": "date-time"
					}
				},
				"required": [
					"created",
					"changed"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AnnotationUri": {
				"properties": {
					"uri": {
						"type": "string"
					}
				},
				"required": [
					"uri"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Annotation": {
				"allOf": [
					{
						"$ref": "#/components/schemas/AnnotationTypes"
					},
					{
						"$ref": "#/components/schemas/Entity"
					},
					{
						"$ref": "#/components/schemas/Timestamp"
					},
					{
						"$ref": "#/components/schemas/AnnotationUri"
					}
				]
			},
			"PublicNotebook": {
				"properties": {
					"label": {
						"type": "string"
					},
					"userId": {
						"type": "string"
					},
					"sharingMode": {
						"type": "string",
						"enum": [
							"public"
						],
						"nullable": false
					},
					"userWithReadAccess": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"userWithWriteAccess": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"userWithPendingReadingRequest": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"userWithPendingWritingRequest": {
						"items": {
							"type": "string"
						},
						"type": "array"
					}
				},
				"required": [
					"label",
					"userId",
					"sharingMode"
				],
				"type": "object",
				"additionalProperties": false
			},
			"PrivateNotebook": {
				"properties": {
					"label": {
						"type": "string"
					},
					"userId": {
						"type": "string"
					},
					"sharingMode": {
						"type": "string",
						"enum": [
							"private"
						],
						"nullable": false
					},
					"userWithReadAccess": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"userWithWriteAccess": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"userWithPendingReadingRequest": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"userWithPendingWritingRequest": {
						"items": {
							"type": "string"
						},
						"type": "array"
					}
				},
				"required": [
					"label",
					"userId",
					"sharingMode"
				],
				"type": "object",
				"additionalProperties": false
			},
			"NotebookTypes": {
				"anyOf": [
					{
						"$ref": "#/components/schemas/PublicNotebook"
					},
					{
						"$ref": "#/components/schemas/PrivateNotebook"
					}
				]
			},
			"Notebook": {
				"allOf": [
					{
						"$ref": "#/components/schemas/NotebookTypes"
					},
					{
						"$ref": "#/components/schemas/Timestamp"
					},
					{
						"$ref": "#/components/schemas/Entity"
					}
				]
			},
			"FullName": {
				"properties": {
					"firstName": {
						"type": "string"
					},
					"lastName": {
						"type": "string"
					}
				},
				"required": [
					"firstName",
					"lastName"
				],
				"type": "object",
				"additionalProperties": false
			},
			"BaseUser": {
				"properties": {
					"thumb": {
						"type": "string"
					},
					"username": {
						"type": "string"
					},
					"fullName": {
						"$ref": "#/components/schemas/FullName"
					},
					"id": {
						"type": "string"
					}
				},
				"required": [
					"username",
					"fullName",
					"id"
				],
				"type": "object"
			},
			"SocialType": {
				"type": "string",
				"enum": [
					"Like",
					"Dislike",
					"Report",
					"Endorse"
				]
			},
			"SocialBase": {
				"properties": {
					"userId": {
						"type": "string"
					},
					"annotationId": {
						"type": "string"
					},
					"type": {
						"$ref": "#/components/schemas/SocialType"
					},
					"parentId": {
						"type": "string"
					}
				},
				"required": [
					"userId",
					"annotationId",
					"type"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Social": {
				"allOf": [
					{
						"$ref": "#/components/schemas/SocialBase"
					},
					{
						"$ref": "#/components/schemas/Entity"
					},
					{
						"$ref": "#/components/schemas/Timestamp"
					}
				]
			},
			"ReplyType": {
				"type": "string",
				"enum": [
					"Comment"
				],
				"nullable": false
			},
			"ReplyBase": {
				"properties": {
					"userId": {
						"type": "string"
					},
					"annotationId": {
						"type": "string"
					},
					"type": {
						"$ref": "#/components/schemas/ReplyType"
					},
					"comment": {
						"type": "string"
					},
					"parentId": {
						"type": "string"
					}
				},
				"required": [
					"userId",
					"annotationId",
					"type",
					"comment"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Reply": {
				"allOf": [
					{
						"$ref": "#/components/schemas/ReplyBase"
					},
					{
						"$ref": "#/components/schemas/Entity"
					},
					{
						"$ref": "#/components/schemas/Timestamp"
					}
				]
			},
			"Facet": {
				"properties": {
					"name": {
						"type": "string"
					},
					"results": {
						"items": {
							"$ref": "#/components/schemas/FacetItem"
						},
						"type": "array"
					}
				},
				"required": [
					"name",
					"results"
				],
				"type": "object",
				"additionalProperties": false
			},
			"FacetItem": {
				"properties": {
					"key": {
						"type": "string"
					},
					"count": {
						"type": "number",
						"format": "double"
					},
					"aggs": {
						"items": {
							"$ref": "#/components/schemas/Facet"
						},
						"type": "array"
					}
				},
				"required": [
					"key",
					"count"
				],
				"type": "object",
				"additionalProperties": false
			},
			"SearchAnnotationResponse": {
				"properties": {
					"annotations": {
						"items": {
							"$ref": "#/components/schemas/Annotation"
						},
						"type": "array"
					},
					"notebooks": {
						"items": {
							"$ref": "#/components/schemas/Notebook"
						},
						"type": "array"
					},
					"users": {
						"items": {
							"$ref": "#/components/schemas/BaseUser"
						},
						"type": "array"
					},
					"socials": {
						"items": {
							"$ref": "#/components/schemas/Social"
						},
						"type": "array"
					},
					"replies": {
						"items": {
							"$ref": "#/components/schemas/Reply"
						},
						"type": "array"
					},
					"facets": {
						"items": {
							"$ref": "#/components/schemas/Facet"
						},
						"type": "array"
					},
					"stats": {
						"properties": {
							"total": {
								"type": "number",
								"format": "double"
							}
						},
						"additionalProperties": {},
						"required": [
							"total"
						],
						"type": "object"
					}
				},
				"required": [
					"annotations",
					"notebooks",
					"users",
					"socials",
					"replies",
					"stats"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AnnotationFacetType": {
				"type": "string",
				"enum": [
					"uri",
					"notebookId",
					"type",
					"tag",
					"predicate"
				]
			},
			"SearchAnnotationRequest": {
				"properties": {
					"uri": {
						"type": "string"
					},
					"pageMetadata": {
						"items": {
							"$ref": "#/components/schemas/WebPageMetadata"
						},
						"type": "array"
					},
					"notebookId": {
						"type": "string"
					},
					"type": {
						"type": "string",
						"enum": [
							"Commenting",
							"Linking",
							"Highlighting"
						]
					},
					"predicate": {
						"type": "string"
					},
					"dateFrom": {
						"type": "string",
						"format": "date-time"
					},
					"dateTo": {
						"type": "string",
						"format": "date-time"
					},
					"fulltext": {
						"type": "string"
					},
					"facets": {
						"items": {
							"$ref": "#/components/schemas/AnnotationFacetType"
						},
						"type": "array"
					},
					"size": {
						"type": "number",
						"format": "double"
					},
					"from": {
						"type": "number",
						"format": "double"
					},
					"tags": {
						"anyOf": [
							{
								"type": "string"
							},
							{
								"items": {
									"type": "string"
								},
								"type": "array"
							}
						]
					},
					"userNotebooksOnly": {
						"type": "boolean"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"CreateNotebookRequest": {
				"$ref": "#/components/schemas/NotebookTypes"
			},
			"UpdateNotebookRequest": {
				"$ref": "#/components/schemas/NotebookTypes"
			},
			"BaseUserWithEmail": {
				"properties": {
					"emailAddress": {
						"type": "string"
					},
					"thumb": {
						"type": "string"
					},
					"username": {
						"type": "string"
					},
					"fullName": {
						"$ref": "#/components/schemas/FullName"
					},
					"id": {
						"type": "string"
					}
				},
				"required": [
					"emailAddress",
					"username",
					"fullName",
					"id"
				],
				"type": "object"
			},
			"SearchNotebookResponse": {
				"properties": {
					"notebooks": {
						"items": {
							"$ref": "#/components/schemas/Notebook"
						},
						"type": "array"
					},
					"users": {
						"anyOf": [
							{
								"items": {
									"$ref": "#/components/schemas/BaseUser"
								},
								"type": "array"
							},
							{
								"items": {
									"$ref": "#/components/schemas/BaseUserWithEmail"
								},
								"type": "array"
							}
						]
					},
					"facets": {
						"items": {
							"$ref": "#/components/schemas/Facet"
						},
						"type": "array"
					},
					"stats": {
						"properties": {
							"total": {
								"type": "number",
								"format": "double"
							}
						},
						"additionalProperties": {},
						"required": [
							"total"
						],
						"type": "object"
					}
				},
				"required": [
					"notebooks",
					"users",
					"stats"
				],
				"type": "object",
				"additionalProperties": false
			},
			"NotebookFacetType": {
				"type": "string",
				"enum": [
					"sharingMode"
				],
				"nullable": false
			},
			"SearchNotebookRequest": {
				"properties": {
					"fulltext": {
						"type": "string"
					},
					"sharingMode": {
						"type": "string",
						"enum": [
							"public",
							"private"
						]
					},
					"onlyOwned": {
						"type": "boolean"
					},
					"facets": {
						"items": {
							"$ref": "#/components/schemas/NotebookFacetType"
						},
						"type": "array"
					},
					"size": {
						"type": "number",
						"format": "double"
					},
					"from": {
						"type": "number",
						"format": "double"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"ShareNotebookParams": {
				"properties": {
					"userWithReadAccess": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"userWithWriteAccess": {
						"items": {
							"type": "string"
						},
						"type": "array"
					}
				},
				"required": [
					"userWithReadAccess",
					"userWithWriteAccess"
				],
				"type": "object",
				"additionalProperties": false
			},
			"RemoveShareNotebookParams": {
				"properties": {
					"email": {
						"type": "string"
					},
					"mode": {
						"type": "string",
						"enum": [
							"r",
							"rw"
						]
					}
				},
				"required": [
					"email"
				],
				"type": "object",
				"additionalProperties": false
			},
			"ShareNotificationNotebookParams": {
				"properties": {
					"email": {
						"type": "string"
					}
				},
				"required": [
					"email"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CreateReplyRequest": {
				"$ref": "#/components/schemas/ReplyBase"
			},
			"UpdateReplyRequest": {
				"$ref": "#/components/schemas/ReplyBase"
			},
			"CreateSocialRequest": {
				"$ref": "#/components/schemas/SocialBase"
			},
			"UserAddress": {
				"properties": {
					"location": {
						"type": "string"
					}
				},
				"required": [
					"location"
				],
				"type": "object",
				"additionalProperties": false
			},
			"WebLinks": {
				"properties": {
					"website": {
						"type": "string"
					},
					"linkedin": {
						"type": "string"
					},
					"twitter": {
						"type": "string"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"UserType": {
				"properties": {
					"fullName": {
						"$ref": "#/components/schemas/FullName"
					},
					"username": {
						"type": "string"
					},
					"emailAddress": {
						"type": "string"
					},
					"thumb": {
						"type": "string"
					},
					"publicProfile": {
						"type": "boolean"
					},
					"shortBio": {
						"type": "string"
					},
					"address": {
						"$ref": "#/components/schemas/UserAddress"
					},
					"web": {
						"$ref": "#/components/schemas/WebLinks"
					},
					"affiliation": {
						"type": "string"
					}
				},
				"required": [
					"fullName",
					"username",
					"emailAddress",
					"publicProfile"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CreateUserRequest": {
				"$ref": "#/components/schemas/UserType"
			},
			"UpdateUserRequest": {
				"$ref": "#/components/schemas/UserType"
			},
			"User": {
				"allOf": [
					{
						"$ref": "#/components/schemas/UserType"
					},
					{
						"$ref": "#/components/schemas/Entity"
					},
					{
						"$ref": "#/components/schemas/Timestamp"
					}
				]
			},
			"PublicUserProfile": {
				"properties": {
					"changed": {
						"type": "string",
						"format": "date-time"
					},
					"created": {
						"type": "string",
						"format": "date-time"
					},
					"affiliation": {
						"type": "string"
					},
					"web": {
						"$ref": "#/components/schemas/WebLinks"
					},
					"address": {
						"$ref": "#/components/schemas/UserAddress"
					},
					"shortBio": {
						"type": "string"
					},
					"publicProfile": {
						"type": "boolean"
					},
					"thumb": {
						"type": "string"
					},
					"username": {
						"type": "string"
					},
					"fullName": {
						"$ref": "#/components/schemas/FullName"
					},
					"id": {
						"type": "string"
					}
				},
				"required": [
					"changed",
					"created",
					"publicProfile",
					"username",
					"fullName",
					"id"
				],
				"type": "object"
			},
			"AnnotationStat": {
				"properties": {
					"notebookId": {
						"type": "string"
					},
					"total": {
						"type": "number",
						"format": "double"
					},
					"commenting": {
						"type": "number",
						"format": "double"
					},
					"highligthing": {
						"type": "number",
						"format": "double"
					},
					"linking": {
						"type": "number",
						"format": "double"
					}
				},
				"required": [
					"notebookId",
					"total"
				],
				"type": "object",
				"additionalProperties": false
			},
			"UserStats": {
				"properties": {
					"stats": {
						"properties": {
							"notebook": {
								"properties": {
									"total": {
										"type": "number",
										"format": "double"
									}
								},
								"required": [
									"total"
								],
								"type": "object"
							},
							"tag": {
								"properties": {
									"total": {
										"type": "number",
										"format": "double"
									}
								},
								"required": [
									"total"
								],
								"type": "object"
							},
							"annotation": {
								"items": {
									"$ref": "#/components/schemas/AnnotationStat"
								},
								"type": "array"
							}
						},
						"required": [
							"notebook",
							"tag",
							"annotation"
						],
						"type": "object"
					}
				},
				"type": "object"
			},
			"ContextAlias": {
				"properties": {},
				"additionalProperties": {
					"type": "string"
				},
				"type": "object"
			},
			"JSONLDContextType": {
				"anyOf": [
					{
						"type": "string"
					},
					{
						"items": {
							"anyOf": [
								{
									"type": "string"
								},
								{
									"$ref": "#/components/schemas/ContextAlias"
								}
							]
						},
						"type": "array"
					}
				]
			},
			"W3CAgent": {
				"properties": {
					"id": {
						"type": "string"
					},
					"name": {
						"type": "string"
					},
					"givenName": {
						"type": "string"
					},
					"familyName": {
						"type": "string"
					},
					"shortBio": {
						"type": "string"
					},
					"foaf_account": {
						"anyOf": [
							{
								"type": "string"
							},
							{
								"items": {
									"type": "string"
								},
								"type": "array"
							}
						]
					},
					"undefined": {
						"type": "string"
					},
					"schema_homeLocation": {
						"type": "string"
					}
				},
				"required": [
					"id",
					"name"
				],
				"type": "object",
				"additionalProperties": false
			},
			"JSONLDDocument_W3CAgent_": {
				"allOf": [
					{
						"properties": {
							"@context": {
								"$ref": "#/components/schemas/JSONLDContextType"
							}
						},
						"required": [
							"@context"
						],
						"type": "object"
					},
					{
						"$ref": "#/components/schemas/W3CAgent"
					}
				]
			},
			"BadRequestError": {
				"properties": {
					"name": {
						"type": "string"
					},
					"message": {
						"type": "string"
					},
					"stack": {
						"type": "string"
					},
					"details": {
						"type": "string"
					}
				},
				"required": [
					"name",
					"message",
					"details"
				],
				"type": "object",
				"additionalProperties": false
			},
			"W3CTextQuoteSelector": {
				"properties": {
					"type": {
						"type": "string",
						"enum": [
							"TextQuoteSelector"
						],
						"nullable": false
					},
					"exact": {
						"type": "string"
					},
					"suffix": {
						"type": "string"
					},
					"prefix": {
						"type": "string"
					}
				},
				"required": [
					"type",
					"exact",
					"suffix",
					"prefix"
				],
				"type": "object",
				"additionalProperties": false
			},
			"W3CTextPositionSelector": {
				"properties": {
					"type": {
						"type": "string",
						"enum": [
							"TextPositionSelector"
						],
						"nullable": false
					},
					"start": {
						"type": "number",
						"format": "double"
					},
					"end": {
						"type": "number",
						"format": "double"
					}
				},
				"required": [
					"type",
					"start",
					"end"
				],
				"type": "object",
				"additionalProperties": false
			},
			"W3CRangeSelector": {
				"properties": {
					"type": {
						"type": "string",
						"enum": [
							"RangeSelector"
						],
						"nullable": false
					},
					"startSelector": {
						"properties": {
							"value": {
								"type": "string"
							},
							"type": {
								"type": "string",
								"enum": [
									"XPathSelector"
								],
								"nullable": false
							}
						},
						"required": [
							"value",
							"type"
						],
						"type": "object"
					},
					"endSelector": {
						"properties": {
							"value": {
								"type": "string"
							},
							"type": {
								"type": "string",
								"enum": [
									"XPathSelector"
								],
								"nullable": false
							}
						},
						"required": [
							"value",
							"type"
						],
						"type": "object"
					}
				},
				"required": [
					"type",
					"startSelector",
					"endSelector"
				],
				"type": "object",
				"additionalProperties": false
			},
			"W3CSelector": {
				"anyOf": [
					{
						"$ref": "#/components/schemas/W3CTextQuoteSelector"
					},
					{
						"$ref": "#/components/schemas/W3CTextPositionSelector"
					},
					{
						"$ref": "#/components/schemas/W3CRangeSelector"
					}
				]
			},
			"W3CAnnotationTarget": {
				"properties": {
					"source": {
						"type": "string"
					},
					"selector": {
						"items": {
							"$ref": "#/components/schemas/W3CSelector"
						},
						"type": "array"
					}
				},
				"required": [
					"source"
				],
				"type": "object",
				"additionalProperties": false
			},
			"W3CCommentingAnnotationBody": {
				"properties": {
					"type": {
						"type": "string"
					},
					"value": {
						"type": "string"
					},
					"purpose": {
						"type": "string"
					}
				},
				"required": [
					"type",
					"value",
					"purpose"
				],
				"type": "object",
				"additionalProperties": false
			},
			"W3CTaggingAnnotationBody": {
				"properties": {
					"type": {
						"type": "string"
					},
					"value": {
						"type": "string"
					},
					"purpose": {
						"type": "string"
					}
				},
				"required": [
					"type",
					"value",
					"purpose"
				],
				"type": "object",
				"additionalProperties": false
			},
			"W3CLinkingAnnotationBody": {
				"properties": {},
				"type": "object",
				"additionalProperties": {
					"anyOf": [
						{
							"type": "string"
						},
						{
							"properties": {
								"@id": {
									"type": "string"
								}
							},
							"required": [
								"@id"
							],
							"type": "object"
						}
					]
				}
			},
			"W3CAnnotationBody": {
				"anyOf": [
					{
						"$ref": "#/components/schemas/W3CCommentingAnnotationBody"
					},
					{
						"$ref": "#/components/schemas/W3CTaggingAnnotationBody"
					},
					{
						"$ref": "#/components/schemas/W3CLinkingAnnotationBody"
					}
				]
			},
			"W3CAnnotation": {
				"properties": {
					"id": {
						"type": "string"
					},
					"type": {
						"type": "string"
					},
					"created": {
						"type": "string",
						"format": "date-time"
					},
					"modified": {
						"type": "string",
						"format": "date-time"
					},
					"creator": {
						"$ref": "#/components/schemas/W3CAgent"
					},
					"generator": {
						"type": "string"
					},
					"target": {
						"$ref": "#/components/schemas/W3CAnnotationTarget"
					},
					"motivation": {
						"type": "string"
					},
					"body": {
						"anyOf": [
							{
								"$ref": "#/components/schemas/W3CAnnotationBody"
							},
							{
								"items": {
									"$ref": "#/components/schemas/W3CAnnotationBody"
								},
								"type": "array"
							}
						]
					}
				},
				"required": [
					"id",
					"type",
					"created",
					"modified",
					"creator",
					"generator",
					"target",
					"motivation"
				],
				"type": "object",
				"additionalProperties": false
			},
			"JSONLDDocument_W3CAnnotation_": {
				"allOf": [
					{
						"properties": {
							"@context": {
								"$ref": "#/components/schemas/JSONLDContextType"
							}
						},
						"required": [
							"@context"
						],
						"type": "object"
					},
					{
						"$ref": "#/components/schemas/W3CAnnotation"
					}
				]
			},
			"IntrospectionResponse": {
				"properties": {
					"data": {
						"properties": {},
						"additionalProperties": {},
						"type": "object",
						"nullable": true
					},
					"extensions": {
						"properties": {},
						"additionalProperties": {},
						"type": "object"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"W3CAnnotationPage": {
				"properties": {
					"id": {
						"type": "string"
					},
					"type": {
						"type": "string"
					},
					"next": {
						"type": "string"
					},
					"partOf": {
						"$ref": "#/components/schemas/W3CAnnotationCollection"
					},
					"items": {
						"items": {
							"$ref": "#/components/schemas/W3CAnnotation"
						},
						"type": "array"
					}
				},
				"required": [
					"id",
					"type",
					"next",
					"items"
				],
				"type": "object",
				"additionalProperties": false
			},
			"W3CAnnotationCollection": {
				"properties": {
					"id": {
						"type": "string"
					},
					"type": {
						"type": "string"
					},
					"total": {
						"type": "number",
						"format": "double"
					},
					"label": {
						"type": "string"
					},
					"first": {
						"$ref": "#/components/schemas/W3CAnnotationPage"
					},
					"last": {
						"type": "string"
					}
				},
				"required": [
					"id",
					"type",
					"total"
				],
				"type": "object",
				"additionalProperties": false
			},
			"JSONLDDocument_W3CAnnotationPage_": {
				"allOf": [
					{
						"properties": {
							"@context": {
								"$ref": "#/components/schemas/JSONLDContextType"
							}
						},
						"required": [
							"@context"
						],
						"type": "object"
					},
					{
						"$ref": "#/components/schemas/W3CAnnotationPage"
					}
				]
			},
			"GraphQLRequestBody": {
				"properties": {
					"query": {
						"type": "string"
					},
					"variables": {},
					"operationName": {}
				},
				"type": "object",
				"additionalProperties": false
			},
			"JSONLDDocument_W3CAnnotationCollection_": {
				"allOf": [
					{
						"properties": {
							"@context": {
								"$ref": "#/components/schemas/JSONLDContextType"
							}
						},
						"required": [
							"@context"
						],
						"type": "object"
					},
					{
						"$ref": "#/components/schemas/W3CAnnotationCollection"
					}
				]
			}
		},
		"securitySchemes": {
			"JWT": {
				"type": "http",
				"scheme": "bearer",
				"bearerFormat": "JWT",
				"description": "Require JWT token"
			},
			"OptionalJWT": {
				"type": "http",
				"scheme": "bearer",
				"bearerFormat": "JWT",
				"description": "JWT Token is optional."
			}
		}
	},
	"info": {
		"title": "annotation-server",
		"version": "5.0.2",
		"license": {
			"name": "ISC"
		},
		"contact": {}
	},
	"openapi": "3.0.0",
	"paths": {
		"/annotation": {
			"post": {
				"operationId": "Create",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/SuccessResponse"
								}
							}
						}
					},
					"401": {
						"description": "Unauthorized",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/UnauthorizedError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"422": {
						"description": "Validation Failed",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ValidateErrorResponse"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"Annotation"
				],
				"security": [
					{
						"JWT": []
					}
				],
				"parameters": [],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/CreateAnnotationRequest"
							}
						}
					}
				}
			}
		},
		"/annotation/{annotationId}": {
			"put": {
				"operationId": "Update",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/SuccessResponse"
								}
							}
						}
					},
					"401": {
						"description": "Unauthorized",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/UnauthorizedError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/NotFoundError"
								}
							}
						}
					},
					"422": {
						"description": "Validation Failed",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ValidateErrorResponse"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"Annotation"
				],
				"security": [
					{
						"JWT": []
					}
				],
				"parameters": [
					{
						"in": "path",
						"name": "annotationId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/UpdateAnnotationRequest"
							}
						}
					}
				}
			},
			"get": {
				"operationId": "Read",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/Annotation"
								}
							}
						}
					},
					"401": {
						"description": "Unauthorized",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/UnauthorizedError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/NotFoundError"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"Annotation"
				],
				"security": [
					{
						"OptionalJWT": []
					}
				],
				"parameters": [
					{
						"in": "path",
						"name": "annotationId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"delete": {
				"operationId": "Delete",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/SuccessResponse"
								}
							}
						}
					},
					"401": {
						"description": "Unauthorized",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/UnauthorizedError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/NotFoundError"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"Annotation"
				],
				"security": [
					{
						"JWT": []
					}
				],
				"parameters": [
					{
						"in": "path",
						"name": "annotationId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/annotation/search": {
			"post": {
				"operationId": "Search",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/SearchAnnotationResponse"
								}
							}
						}
					},
					"401": {
						"description": "Unauthorized",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/UnauthorizedError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"422": {
						"description": "Validation Failed",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ValidateErrorResponse"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"Annotation",
					"Annotation"
				],
				"security": [
					{
						"OptionalJWT": []
					}
				],
				"parameters": [],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/SearchAnnotationRequest"
							}
						}
					}
				}
			}
		},
		"/notebook": {
			"post": {
				"operationId": "Create",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/SuccessResponse"
								}
							}
						}
					},
					"401": {
						"description": "Unauthorized",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/UnauthorizedError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"422": {
						"description": "Validation Failed",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ValidateErrorResponse"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"Notebook"
				],
				"security": [
					{
						"JWT": []
					}
				],
				"parameters": [],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/CreateNotebookRequest"
							}
						}
					}
				}
			}
		},
		"/notebook/{notebookId}": {
			"put": {
				"operationId": "Update",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/SuccessResponse"
								}
							}
						}
					},
					"401": {
						"description": "Unauthorized",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/UnauthorizedError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/NotFoundError"
								}
							}
						}
					},
					"422": {
						"description": "Validation Failed",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ValidateErrorResponse"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"Notebook"
				],
				"security": [
					{
						"JWT": []
					}
				],
				"parameters": [
					{
						"in": "path",
						"name": "notebookId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/UpdateNotebookRequest"
							}
						}
					}
				}
			},
			"get": {
				"operationId": "Read",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/Notebook"
								}
							}
						}
					},
					"401": {
						"description": "Unauthorized",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/UnauthorizedError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/NotFoundError"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"Notebook"
				],
				"security": [
					{
						"OptionalJWT": []
					}
				],
				"parameters": [
					{
						"in": "path",
						"name": "notebookId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"delete": {
				"operationId": "Delete",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/SuccessResponse"
								}
							}
						}
					},
					"401": {
						"description": "Unauthorized",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/UnauthorizedError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/NotFoundError"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"Notebook"
				],
				"security": [
					{
						"JWT": []
					}
				],
				"parameters": [
					{
						"in": "path",
						"name": "notebookId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/notebook/search": {
			"post": {
				"operationId": "Search",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/SearchNotebookResponse"
								}
							}
						}
					},
					"401": {
						"description": "Unauthorized",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/UnauthorizedError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"422": {
						"description": "Validation Failed",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ValidateErrorResponse"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"Notebook"
				],
				"security": [
					{
						"JWT": []
					}
				],
				"parameters": [],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/SearchNotebookRequest"
							}
						}
					}
				}
			}
		},
		"/notebook/{notebookId}/share": {
			"post": {
				"operationId": "Share",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/SuccessResponse"
								}
							}
						}
					},
					"401": {
						"description": "Unauthorized",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/UnauthorizedError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"422": {
						"description": "Validation Failed",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ValidateErrorResponse"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"Notebook"
				],
				"security": [
					{
						"JWT": []
					}
				],
				"parameters": [
					{
						"in": "path",
						"name": "notebookId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/ShareNotebookParams"
							}
						}
					}
				}
			}
		},
		"/notebook/{notebookId}/removeShare": {
			"post": {
				"operationId": "RemoveShare",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/SuccessResponse"
								}
							}
						}
					},
					"401": {
						"description": "Unauthorized",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/UnauthorizedError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"422": {
						"description": "Validation Failed",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ValidateErrorResponse"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"Notebook"
				],
				"security": [
					{
						"JWT": []
					}
				],
				"parameters": [
					{
						"in": "path",
						"name": "notebookId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/RemoveShareNotebookParams"
							}
						}
					}
				}
			}
		},
		"/notebook/{notebookId}/notifyShare": {
			"post": {
				"operationId": "NotifyShare",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/SuccessResponse"
								}
							}
						}
					},
					"401": {
						"description": "Unauthorized",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/UnauthorizedError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"422": {
						"description": "Validation Failed",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ValidateErrorResponse"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"Notebook"
				],
				"security": [
					{
						"JWT": []
					}
				],
				"parameters": [
					{
						"in": "path",
						"name": "notebookId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/ShareNotificationNotebookParams"
							}
						}
					}
				}
			}
		},
		"/reply": {
			"post": {
				"operationId": "Create",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/SuccessResponse"
								}
							}
						}
					},
					"401": {
						"description": "Unauthorized",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/UnauthorizedError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"422": {
						"description": "Validation Failed",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ValidateErrorResponse"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"Reply"
				],
				"security": [
					{
						"JWT": []
					}
				],
				"parameters": [],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/CreateReplyRequest"
							}
						}
					}
				}
			}
		},
		"/reply/{replyId}": {
			"put": {
				"operationId": "Update",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/SuccessResponse"
								}
							}
						}
					},
					"401": {
						"description": "Unauthorized",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/UnauthorizedError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/NotFoundError"
								}
							}
						}
					},
					"422": {
						"description": "Validation Failed",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ValidateErrorResponse"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"Reply"
				],
				"security": [
					{
						"JWT": []
					}
				],
				"parameters": [
					{
						"in": "path",
						"name": "replyId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/UpdateReplyRequest"
							}
						}
					}
				}
			},
			"get": {
				"operationId": "Read",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/Reply"
								}
							}
						}
					},
					"401": {
						"description": "Unauthorized",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/UnauthorizedError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/NotFoundError"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"Reply"
				],
				"security": [
					{
						"JWT": []
					}
				],
				"parameters": [
					{
						"in": "path",
						"name": "replyId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"delete": {
				"operationId": "Delete",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/SuccessResponse"
								}
							}
						}
					},
					"401": {
						"description": "Unauthorized",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/UnauthorizedError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/NotFoundError"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"Reply"
				],
				"security": [
					{
						"JWT": []
					}
				],
				"parameters": [
					{
						"in": "path",
						"name": "replyId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/social/do": {
			"post": {
				"operationId": "Do",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/SuccessResponse"
								}
							}
						}
					},
					"401": {
						"description": "Unauthorized",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/UnauthorizedError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"422": {
						"description": "Validation Failed",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ValidateErrorResponse"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"Social"
				],
				"security": [
					{
						"JWT": []
					}
				],
				"parameters": [],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/CreateSocialRequest"
							}
						}
					}
				}
			}
		},
		"/social/undo": {
			"post": {
				"operationId": "Undo",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/SuccessResponse"
								}
							}
						}
					},
					"401": {
						"description": "Unauthorized",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/UnauthorizedError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"422": {
						"description": "Validation Failed",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ValidateErrorResponse"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"Social"
				],
				"security": [
					{
						"JWT": []
					}
				],
				"parameters": [],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/CreateSocialRequest"
							}
						}
					}
				}
			}
		},
		"/social/{socialId}": {
			"get": {
				"operationId": "Read",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/Social"
								}
							}
						}
					},
					"401": {
						"description": "Unauthorized",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/UnauthorizedError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/NotFoundError"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"Social"
				],
				"security": [
					{
						"JWT": []
					}
				],
				"parameters": [
					{
						"in": "path",
						"name": "socialId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/tag": {
			"get": {
				"operationId": "Read",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"items": {
										"$ref": "#/components/schemas/Tag"
									},
									"type": "array"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"Tag"
				],
				"security": [
					{
						"JWT": []
					}
				],
				"parameters": []
			}
		},
		"/user": {
			"post": {
				"operationId": "Create",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/SuccessResponse"
								}
							}
						}
					},
					"401": {
						"description": "Unauthorized",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/UnauthorizedError"
								}
							}
						}
					},
					"422": {
						"description": "Validation Failed",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ValidateErrorResponse"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"description": "Create a new user and return corresponding user identifier.",
				"tags": [
					"User"
				],
				"security": [
					{
						"JWT": []
					}
				],
				"parameters": [],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/CreateUserRequest"
							}
						}
					}
				}
			}
		},
		"/user/{userId}": {
			"put": {
				"operationId": "Update",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/SuccessResponse"
								}
							}
						}
					},
					"401": {
						"description": "Unauthorized",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/UnauthorizedError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/NotFoundError"
								}
							}
						}
					},
					"422": {
						"description": "Validation Failed",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ValidateErrorResponse"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"User"
				],
				"security": [
					{
						"JWT": []
					}
				],
				"parameters": [
					{
						"in": "path",
						"name": "userId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/UpdateUserRequest"
							}
						}
					}
				}
			},
			"get": {
				"operationId": "Read",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"allOf": [
										{
											"anyOf": [
												{
													"$ref": "#/components/schemas/User"
												},
												{
													"$ref": "#/components/schemas/PublicUserProfile"
												}
											]
										},
										{
											"$ref": "#/components/schemas/UserStats"
										}
									]
								}
							}
						}
					},
					"401": {
						"description": "Unauthorized",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/UnauthorizedError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/NotFoundError"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"User"
				],
				"security": [
					{
						"OptionalJWT": []
					}
				],
				"parameters": [
					{
						"in": "path",
						"name": "userId",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"in": "query",
						"name": "stats",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"delete": {
				"operationId": "Delete",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/SuccessResponse"
								}
							}
						}
					},
					"401": {
						"description": "Unauthorized",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/UnauthorizedError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/NotFoundError"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"User"
				],
				"security": [
					{
						"JWT": []
					}
				],
				"parameters": [
					{
						"in": "path",
						"name": "userId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/w3c/agent/{agentId}": {
			"get": {
				"operationId": "GetAgentGET",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/JSONLDDocument_W3CAgent_"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/BadRequestError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"W3C"
				],
				"security": [
					{
						"OptionalJWT": []
					}
				],
				"parameters": [
					{
						"in": "path",
						"name": "agentId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"post": {
				"operationId": "GetAgentPOST",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/JSONLDDocument_W3CAgent_"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/BadRequestError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"tags": [
					"W3C"
				],
				"security": [
					{
						"OptionalJWT": []
					}
				],
				"parameters": [
					{
						"in": "path",
						"name": "agentId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/w3c/annotation/{annotationId}": {
			"get": {
				"operationId": "GetAnnotationByIdGet",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/JSONLDDocument_W3CAnnotation_"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/BadRequestError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"description": "Retrieves a specific Annotation by its Id. The Annotation is serialized as a [JSON-LD Annotation](https://www.w3.org/TR/annotation-model/#annotations) that follows the [Web Annotation Data Model](https://www.w3.org/TR/annotation-model) specification.",
				"tags": [
					"W3C"
				],
				"security": [
					{
						"OptionalJWT": []
					}
				],
				"parameters": [
					{
						"description": "The Annotation identifier",
						"in": "path",
						"name": "annotationId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"post": {
				"operationId": "GetAnnotationByIdPost",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"anyOf": [
										{
											"$ref": "#/components/schemas/JSONLDDocument_W3CAnnotation_"
										},
										{
											"$ref": "#/components/schemas/IntrospectionResponse"
										}
									]
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/BadRequestError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"description": "Retrieves a specific Annotation by its Id. The Annotation is serialized as a [JSON-LD Annotation](https://www.w3.org/TR/annotation-model/#annotations) that follows the [Web Annotation Data Model](https://www.w3.org/TR/annotation-model) specification.",
				"tags": [
					"W3C"
				],
				"security": [
					{
						"OptionalJWT": []
					}
				],
				"parameters": [
					{
						"description": "The Annotation identifier",
						"in": "path",
						"name": "annotationId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/w3c/annotation": {
			"get": {
				"operationId": "GetAnnotationPageGET",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"anyOf": [
										{
											"$ref": "#/components/schemas/JSONLDDocument_W3CAnnotationPage_"
										},
										{
											"$ref": "#/components/schemas/IntrospectionResponse"
										}
									]
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/BadRequestError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"description": "Retrieves all Annotations visible to the user. These Annotations are serialized as a [JSON-LD Annotation Collection](https://www.w3.org/TR/annotation-model/#annotation-collection) (a set of Annotations) or as a [JSON-LD Annotation Page](https://www.w3.org/TR/annotation-model/#annotation-page) (a subset of Annotations) if the user specify a page number. The response format follows the [Web Annotation Data Model](https://www.w3.org/TR/annotation-model) specification. \n\nIf the user is authenticated the collection will include:\n- All public notebook annotations\n- All personal notebook annotations\n- All annotations of notebooks shared with the user\n\nIf the user is NOT authenticated the collection will include:\n- All public notebook annotations\n\nThe user can also specify a GraphQL search query to minimize the response to a subselection \nof fields. The correct format of this query is indicated in the GraphQL Schema documentation of this endpoint. \n\nThe user can also specify search filters in the GraphQL search query, in order to search only certain annotations. \nMore details are given in the GraphQL Schema documentation.\n\nThe user can retrieve the GraphQL Schema specifying an [Introspection Query](https://gist.github.com/craigbeck/b90915d49fda19d5b2b17ead14dcd6da) in the query parameter.\nThe GraphQL Schema contains the documentation of all available fields and queries.\n\nExamples:\n\n*Get an Annotation Collection that contains all visible Annotations (without field filter)*:\n\n```GET /w3c/annotation/```\n\n*Get the first Annotation Page of the Annotation Collection that contains all visible Annotations (without field filter)*:\n\n```GET /w3c/annotation/?page=1```\n\n*Get an Annotation Collection that contains all visible Annotations (with field filter)*:\n\n```GET /w3c/annotation/?query={search{id%20total%20label%20first{items{id}}}}```\n\n*Get the first Annotation Page of the Annotation Collection that contains all visible Annotations (with field filter)*:\n\n```GET /w3c/annotation/?page=1&query={search{items{id}}}```\n\n*Get the Annotation Collection that contains all visible Annotations made on a certain web page (with field filter)*:\n\n```GET /w3c/annotation/?query={search(target_source:\"amazon.com\"){id%20total%20label%20first{items{id%20target{source}}}}}```",
				"tags": [
					"W3C"
				],
				"security": [
					{
						"OptionalJWT": []
					}
				],
				"parameters": [
					{
						"description": "The search query or the introspection query",
						"in": "query",
						"name": "query",
						"required": false,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "The Annotation Page number",
						"in": "query",
						"name": "page",
						"required": false,
						"schema": {
							"format": "double",
							"type": "number"
						}
					},
					{
						"in": "query",
						"name": "size",
						"required": false,
						"schema": {
							"format": "double",
							"type": "number"
						}
					}
				]
			},
			"post": {
				"operationId": "GetAnnotationPagePOST",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"anyOf": [
										{
											"$ref": "#/components/schemas/JSONLDDocument_W3CAnnotationPage_"
										},
										{
											"$ref": "#/components/schemas/IntrospectionResponse"
										}
									]
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/BadRequestError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"description": "Retrieves all Annotations visible to the user. These Annotations are serialized as a [JSON-LD Annotation Collection](https://www.w3.org/TR/annotation-model/#annotation-collection) (a set of Annotations) or as a [JSON-LD Annotation Page](https://www.w3.org/TR/annotation-model/#annotation-page) (a subset of Annotations) if the user specify a page number. The response format follows the [Web Annotation Data Model](https://www.w3.org/TR/annotation-model) specification. \n\nIf the user is authenticated the collection will include:\n- All public notebook annotations\n- All personal notebook annotations\n- All annotations of notebooks shared with the user\n\nIf the user is NOT authenticated the collection will include:\n- All public notebook annotations\n\nThe user can also specify a GraphQL search query to minimize the response to a subselection \nof fields. The correct format of this query is indicated in the GraphQL Schema documentation of this endpoint. \n\nThe user can also specify search filters in the GraphQL search query, in order to search only certain annotations. \nMore details are given in the GraphQL Schema documentation.\n\nThe user can retrieve the GraphQL Schema specifying an [Introspection Query](https://gist.github.com/craigbeck/b90915d49fda19d5b2b17ead14dcd6da) in the query parameter.\nThe GraphQL Schema contains the documentation of all available fields and queries.\n\n---\n\nExamples:\n\n*Get an Annotation Collection that contains all visible Annotations (without field filter)*:\n\n```POST /w3c/annotation/```\n\n*Get the first Annotation Page of the Annotation Collection that contains all visible Annotations (without field filter)*:\n\n```POST /w3c/annotation/?page=1```\n\n*Get an Annotation Collection that contains all visible Annotations (with field filter)*:\n\n```\nPOST /w3c/annotation/\n{\n \"query\": \"{ search { id total label first { items { id } } } }\"\n}\n```\n\n*Get the first Annotation Page of the Annotation Collection that contains all visible Annotations (with field filter)*:\n\n```\nPOST /w3c/annotation/?page=1\n{\n \"query\": \"{ search { items { id } } }\"\n}\n```\n\n*Get the Annotation Collection that contains all visible Annotations made on a certain web page (with field filter)*:\n\n```\nPOST /w3c/annotation/\n{\n \"query\": \"{ search (target_source:\"amazon.com\") { id total label first { items { id target { source } } } } }\n}\n```",
				"tags": [
					"W3C"
				],
				"security": [
					{
						"OptionalJWT": []
					}
				],
				"parameters": [
					{
						"description": "The Annotation Page number",
						"in": "query",
						"name": "page",
						"required": false,
						"schema": {
							"format": "double",
							"type": "number"
						}
					},
					{
						"in": "query",
						"name": "size",
						"required": false,
						"schema": {
							"format": "double",
							"type": "number"
						}
					}
				],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/GraphQLRequestBody"
							}
						}
					}
				}
			}
		},
		"/w3c/collection/{collectionId}": {
			"get": {
				"operationId": "GetCollectionByIdGet",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"anyOf": [
										{
											"$ref": "#/components/schemas/JSONLDDocument_W3CAnnotationCollection_"
										},
										{
											"$ref": "#/components/schemas/IntrospectionResponse"
										}
									]
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/BadRequestError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"description": "Retrieves all Annotation of a Annotation Collection by its Id. These Annotations are serialized as a [JSON-LD Annotation Collection](https://www.w3.org/TR/annotation-model/#annotation-collection) (a set of Annotations). The response format follows the [Web Annotation Data Model](https://www.w3.org/TR/annotation-model) specification.",
				"tags": [
					"W3C"
				],
				"security": [
					{
						"OptionalJWT": []
					}
				],
				"parameters": [
					{
						"description": "The Annotation Collection identifier",
						"in": "path",
						"name": "collectionId",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"in": "query",
						"name": "page",
						"required": false,
						"schema": {
							"format": "double",
							"type": "number"
						}
					},
					{
						"in": "query",
						"name": "size",
						"required": false,
						"schema": {
							"format": "double",
							"type": "number"
						}
					}
				]
			},
			"post": {
				"operationId": "GetCollectionByIdPost",
				"responses": {
					"200": {
						"description": "Ok",
						"content": {
							"application/json": {
								"schema": {
									"anyOf": [
										{
											"$ref": "#/components/schemas/JSONLDDocument_W3CAnnotationCollection_"
										},
										{
											"$ref": "#/components/schemas/IntrospectionResponse"
										}
									]
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/BadRequestError"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ForbiddenResponse"
								}
							}
						}
					},
					"500": {
						"description": "Unexpected error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				},
				"description": "Retrieves all Annotation of an Annotation Collection by its Id. These Annotations are serialized as a [JSON-LD Annotation](https://www.w3.org/TR/annotation-model/#annotation-collection) (a set of Annotations). The response format follows the [Web Annotation Data Model](https://www.w3.org/TR/annotation-model) specification.",
				"tags": [
					"W3C"
				],
				"security": [
					{
						"OptionalJWT": []
					}
				],
				"parameters": [
					{
						"description": "The Annotation Collection identifier",
						"in": "path",
						"name": "collectionId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {}
						}
					}
				}
			}
		}
	},
	"servers": [
		{
			"url": "https:////"
		}
	]
}