diff --git a/extensions/documentation/public/index.html b/extensions/documentation/public/index.html
new file mode 100644
index 0000000..33f96d2
--- /dev/null
+++ b/extensions/documentation/public/index.html
@@ -0,0 +1,473 @@
+
+
+ Swagger UI
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/extensions/email/documentation/1.0.0/email-Email.json b/extensions/email/documentation/1.0.0/email-Email.json
new file mode 100644
index 0000000..1cb307c
--- /dev/null
+++ b/extensions/email/documentation/1.0.0/email-Email.json
@@ -0,0 +1,80 @@
+{
+ "paths": {
+ "/email/": {
+ "post": {
+ "deprecated": false,
+ "description": "Send an email",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "foo": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "Email - Email"
+ ],
+ "requestBody": {
+ "description": "",
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "foo": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ {
+ "name": "Email - Email"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/extensions/upload/documentation/1.0.0/upload-File.json b/extensions/upload/documentation/1.0.0/upload-File.json
new file mode 100644
index 0000000..a52381f
--- /dev/null
+++ b/extensions/upload/documentation/1.0.0/upload-File.json
@@ -0,0 +1,396 @@
+{
+ "paths": {
+ "/upload/": {
+ "post": {
+ "deprecated": false,
+ "description": "Upload a file",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "foo": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "Upload - File"
+ ],
+ "requestBody": {
+ "description": "",
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "foo": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/upload/files/count": {
+ "get": {
+ "deprecated": false,
+ "description": "Retrieve the total number of uploaded files",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "foo": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "Upload - File"
+ ],
+ "parameters": []
+ }
+ },
+ "/upload/files": {
+ "get": {
+ "deprecated": false,
+ "description": "Retrieve all file documents",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "foo": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "Upload - File"
+ ],
+ "parameters": []
+ }
+ },
+ "/upload/files/{id}": {
+ "get": {
+ "deprecated": false,
+ "description": "Retrieve a single file depending on its id",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "foo": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "Upload - File"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "description": "",
+ "deprecated": false,
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "delete": {
+ "deprecated": false,
+ "description": "Delete an uploaded file",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "foo": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "Upload - File"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "description": "",
+ "deprecated": false,
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ]
+ }
+ },
+ "/upload/search/{id}": {
+ "get": {
+ "deprecated": false,
+ "description": "Search for an uploaded file",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "foo": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "Upload - File"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "description": "",
+ "deprecated": false,
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "tags": [
+ {
+ "name": "Upload - File"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/extensions/users-permissions/documentation/1.0.0/users-permissions-Role.json b/extensions/users-permissions/documentation/1.0.0/users-permissions-Role.json
new file mode 100644
index 0000000..e383286
--- /dev/null
+++ b/extensions/users-permissions/documentation/1.0.0/users-permissions-Role.json
@@ -0,0 +1,653 @@
+{
+ "paths": {
+ "/users-permissions/init": {
+ "get": {
+ "deprecated": false,
+ "description": "Check if the first admin user has already been registered",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "foo": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "UsersPermissions - Role"
+ ],
+ "parameters": []
+ }
+ },
+ "/users-permissions/roles/{id}": {
+ "get": {
+ "deprecated": false,
+ "description": "Retrieve a role depending on its id",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UsersPermissionsRole"
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "UsersPermissions - Role"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "description": "",
+ "deprecated": false,
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ]
+ }
+ },
+ "/users-permissions/roles": {
+ "get": {
+ "deprecated": false,
+ "description": "Retrieve all role documents",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UsersPermissionsRole"
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "UsersPermissions - Role"
+ ],
+ "parameters": [
+ {
+ "name": "_limit",
+ "in": "query",
+ "required": false,
+ "description": "Maximum number of results possible",
+ "schema": {
+ "type": "integer"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_sort",
+ "in": "query",
+ "required": false,
+ "description": "Sort according to a specific field.",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_start",
+ "in": "query",
+ "required": false,
+ "description": "Skip a specific number of entries (especially useful for pagination)",
+ "schema": {
+ "type": "integer"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "=",
+ "in": "query",
+ "required": false,
+ "description": "Get entries that matches exactly your input",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_ne",
+ "in": "query",
+ "required": false,
+ "description": "Get records that are not equals to something",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_lt",
+ "in": "query",
+ "required": false,
+ "description": "Get record that are lower than a value",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_lte",
+ "in": "query",
+ "required": false,
+ "description": "Get records that are lower than or equal to a value",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_gt",
+ "in": "query",
+ "required": false,
+ "description": "Get records that are greater than a value",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_gte",
+ "in": "query",
+ "required": false,
+ "description": "Get records that are greater than or equal a value",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_contains",
+ "in": "query",
+ "required": false,
+ "description": "Get records that contains a value",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_containss",
+ "in": "query",
+ "required": false,
+ "description": "Get records that contains (case sensitive) a value",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_in",
+ "in": "query",
+ "required": false,
+ "description": "Get records that matches any value in the array of values",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_nin",
+ "in": "query",
+ "required": false,
+ "description": "Get records that doesn't match any value in the array of values",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "deprecated": false
+ }
+ ]
+ },
+ "post": {
+ "deprecated": false,
+ "description": "Create a new role",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UsersPermissionsRole"
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "UsersPermissions - Role"
+ ],
+ "requestBody": {
+ "description": "",
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NewUsersPermissionsRole"
+ }
+ }
+ }
+ }
+ }
+ },
+ "/users-permissions/roles/{role}": {
+ "put": {
+ "deprecated": false,
+ "description": "Update a role",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UsersPermissionsRole"
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "UsersPermissions - Role"
+ ],
+ "parameters": [
+ {
+ "name": "role",
+ "in": "path",
+ "description": "",
+ "deprecated": false,
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "description": "",
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NewUsersPermissionsRole"
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "deprecated": false,
+ "description": "Delete a role",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "foo": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "UsersPermissions - Role"
+ ],
+ "parameters": [
+ {
+ "name": "role",
+ "in": "path",
+ "description": "",
+ "deprecated": false,
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "UsersPermissionsRole": {
+ "required": [
+ "id",
+ "name"
+ ],
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 3
+ },
+ "description": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "permissions": {
+ "type": "array",
+ "items": {
+ "required": [
+ "id",
+ "type",
+ "controller",
+ "action",
+ "enabled"
+ ],
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "controller": {
+ "type": "string"
+ },
+ "action": {
+ "type": "string"
+ },
+ "enabled": {
+ "type": "boolean"
+ },
+ "policy": {
+ "type": "string"
+ },
+ "role": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "users": {
+ "type": "array",
+ "items": {
+ "required": [
+ "id",
+ "username",
+ "email"
+ ],
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string"
+ },
+ "email": {
+ "type": "string"
+ },
+ "provider": {
+ "type": "string"
+ },
+ "password": {
+ "type": "string"
+ },
+ "resetPasswordToken": {
+ "type": "string"
+ },
+ "confirmed": {
+ "type": "boolean"
+ },
+ "blocked": {
+ "type": "boolean"
+ },
+ "role": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "NewUsersPermissionsRole": {
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 3
+ },
+ "description": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "permissions": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "users": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ {
+ "name": "UsersPermissions - Role"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/extensions/users-permissions/documentation/1.0.0/users-permissions-User.json b/extensions/users-permissions/documentation/1.0.0/users-permissions-User.json
new file mode 100644
index 0000000..eed7017
--- /dev/null
+++ b/extensions/users-permissions/documentation/1.0.0/users-permissions-User.json
@@ -0,0 +1,1294 @@
+{
+ "paths": {
+ "/users-permissions/search/{id}": {
+ "get": {
+ "deprecated": false,
+ "description": "Search for users",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UsersPermissionsUser"
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "UsersPermissions - User"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "description": "",
+ "deprecated": false,
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "_limit",
+ "in": "query",
+ "required": false,
+ "description": "Maximum number of results possible",
+ "schema": {
+ "type": "integer"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_sort",
+ "in": "query",
+ "required": false,
+ "description": "Sort according to a specific field.",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_start",
+ "in": "query",
+ "required": false,
+ "description": "Skip a specific number of entries (especially useful for pagination)",
+ "schema": {
+ "type": "integer"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "=",
+ "in": "query",
+ "required": false,
+ "description": "Get entries that matches exactly your input",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_ne",
+ "in": "query",
+ "required": false,
+ "description": "Get records that are not equals to something",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_lt",
+ "in": "query",
+ "required": false,
+ "description": "Get record that are lower than a value",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_lte",
+ "in": "query",
+ "required": false,
+ "description": "Get records that are lower than or equal to a value",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_gt",
+ "in": "query",
+ "required": false,
+ "description": "Get records that are greater than a value",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_gte",
+ "in": "query",
+ "required": false,
+ "description": "Get records that are greater than or equal a value",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_contains",
+ "in": "query",
+ "required": false,
+ "description": "Get records that contains a value",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_containss",
+ "in": "query",
+ "required": false,
+ "description": "Get records that contains (case sensitive) a value",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_in",
+ "in": "query",
+ "required": false,
+ "description": "Get records that matches any value in the array of values",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_nin",
+ "in": "query",
+ "required": false,
+ "description": "Get records that doesn't match any value in the array of values",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "deprecated": false
+ }
+ ]
+ }
+ },
+ "/connect/*": {
+ "get": {
+ "deprecated": false,
+ "description": "Connect a provider",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "foo": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "UsersPermissions - User"
+ ],
+ "parameters": []
+ }
+ },
+ "/auth/local": {
+ "post": {
+ "deprecated": false,
+ "description": "Login a user using the identifiers email and password",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "foo": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "UsersPermissions - User"
+ ],
+ "requestBody": {
+ "description": "",
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "foo": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/auth/local/register": {
+ "post": {
+ "deprecated": false,
+ "description": "Register a new user with the default role",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UsersPermissionsUser"
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "UsersPermissions - User"
+ ],
+ "requestBody": {
+ "description": "",
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NewUsersPermissionsUser"
+ }
+ }
+ }
+ }
+ }
+ },
+ "/auth/{provider}/callback": {
+ "get": {
+ "deprecated": false,
+ "description": "Successfull redirection after approving a provider",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "foo": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "UsersPermissions - User"
+ ],
+ "parameters": [
+ {
+ "name": "provider",
+ "in": "path",
+ "description": "",
+ "deprecated": false,
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ]
+ }
+ },
+ "/auth/forgot-password": {
+ "post": {
+ "deprecated": false,
+ "description": "Send the reset password email link",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "foo": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "UsersPermissions - User"
+ ],
+ "requestBody": {
+ "description": "",
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "foo": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/auth/reset-password": {
+ "post": {
+ "deprecated": false,
+ "description": "Change a user's password",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "foo": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "UsersPermissions - User"
+ ],
+ "requestBody": {
+ "description": "",
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "foo": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/auth/email-confirmation": {
+ "get": {
+ "deprecated": false,
+ "description": "Validate a user account",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "foo": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "UsersPermissions - User"
+ ],
+ "parameters": []
+ }
+ },
+ "/auth/send-email-confirmation": {
+ "post": {
+ "deprecated": false,
+ "description": "Send a confirmation email to user",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "foo": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "UsersPermissions - User"
+ ],
+ "requestBody": {
+ "description": "",
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "foo": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/users": {
+ "get": {
+ "deprecated": false,
+ "description": "Retrieve all user documents",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UsersPermissionsUser"
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "UsersPermissions - User"
+ ],
+ "parameters": [
+ {
+ "name": "_limit",
+ "in": "query",
+ "required": false,
+ "description": "Maximum number of results possible",
+ "schema": {
+ "type": "integer"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_sort",
+ "in": "query",
+ "required": false,
+ "description": "Sort according to a specific field.",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_start",
+ "in": "query",
+ "required": false,
+ "description": "Skip a specific number of entries (especially useful for pagination)",
+ "schema": {
+ "type": "integer"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "=",
+ "in": "query",
+ "required": false,
+ "description": "Get entries that matches exactly your input",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_ne",
+ "in": "query",
+ "required": false,
+ "description": "Get records that are not equals to something",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_lt",
+ "in": "query",
+ "required": false,
+ "description": "Get record that are lower than a value",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_lte",
+ "in": "query",
+ "required": false,
+ "description": "Get records that are lower than or equal to a value",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_gt",
+ "in": "query",
+ "required": false,
+ "description": "Get records that are greater than a value",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_gte",
+ "in": "query",
+ "required": false,
+ "description": "Get records that are greater than or equal a value",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_contains",
+ "in": "query",
+ "required": false,
+ "description": "Get records that contains a value",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_containss",
+ "in": "query",
+ "required": false,
+ "description": "Get records that contains (case sensitive) a value",
+ "schema": {
+ "type": "string"
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_in",
+ "in": "query",
+ "required": false,
+ "description": "Get records that matches any value in the array of values",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "deprecated": false
+ },
+ {
+ "name": "_nin",
+ "in": "query",
+ "required": false,
+ "description": "Get records that doesn't match any value in the array of values",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "deprecated": false
+ }
+ ]
+ }
+ },
+ "/users/me": {
+ "get": {
+ "deprecated": false,
+ "description": "Retrieve the logged in user information",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UsersPermissionsUser"
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "UsersPermissions - User"
+ ],
+ "parameters": []
+ }
+ },
+ "/users/{id}": {
+ "get": {
+ "deprecated": false,
+ "description": "Retrieve a single user depending on his id",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UsersPermissionsUser"
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "UsersPermissions - User"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "description": "",
+ "deprecated": false,
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "put": {
+ "deprecated": false,
+ "description": "Update an existing user",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UsersPermissionsUser"
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "UsersPermissions - User"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "description": "",
+ "deprecated": false,
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "description": "",
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NewUsersPermissionsUser"
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "deprecated": false,
+ "description": "Delete an existing user",
+ "responses": {
+ "200": {
+ "description": "response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "foo": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "unexpected error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "summary": "",
+ "tags": [
+ "UsersPermissions - User"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "description": "",
+ "deprecated": false,
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "UsersPermissionsUser": {
+ "required": [
+ "id",
+ "username",
+ "email"
+ ],
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string",
+ "minLength": 3
+ },
+ "email": {
+ "type": "string",
+ "minLength": 6
+ },
+ "provider": {
+ "type": "string"
+ },
+ "confirmed": {
+ "type": "boolean",
+ "default": false
+ },
+ "blocked": {
+ "type": "boolean",
+ "default": false
+ },
+ "role": {
+ "required": [
+ "id",
+ "name"
+ ],
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "permissions": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "users": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "NewUsersPermissionsUser": {
+ "required": [
+ "username",
+ "email"
+ ],
+ "properties": {
+ "username": {
+ "type": "string",
+ "minLength": 3
+ },
+ "email": {
+ "type": "string",
+ "minLength": 6
+ },
+ "provider": {
+ "type": "string"
+ },
+ "password": {
+ "type": "string",
+ "minLength": 6
+ },
+ "resetPasswordToken": {
+ "type": "string"
+ },
+ "confirmed": {
+ "type": "boolean",
+ "default": false
+ },
+ "blocked": {
+ "type": "boolean",
+ "default": false
+ },
+ "role": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ {
+ "name": "UsersPermissions - User"
+ }
+ ]
+}
\ No newline at end of file