{
    "openapi": "3.0.0",
    "info": {
        "title": "Draaiboek API",
        "contact": {
            "name": "302 online applicaties",
            "url": "https://302.nl",
            "email": "info@302.nl"
        },
        "version": "0.1"
    },
    "paths": {
        "/api/company/access-tokens": {
            "post": {
                "tags": [
                    "Access tokens"
                ],
                "summary": "Create a access token",
                "operationId": "createAccessToken",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreateAccessTokenBody"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "The access token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AccessTokenWithToken"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "access_token": []
                    }
                ]
            }
        },
        "/api/register": {
            "post": {
                "tags": [
                    "Auth"
                ],
                "summary": "Register",
                "operationId": "register",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/RegisterBody"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The user and a JWT token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/UserToken"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/ceremonies/{ceremonyId}": {
            "get": {
                "tags": [
                    "Ceremony"
                ],
                "summary": "Get a ceremony by id",
                "description": "Return the ceremony based on the id",
                "operationId": "getCeremony",
                "parameters": [
                    {
                        "name": "ceremonyId",
                        "in": "path",
                        "description": "Ceremony ID",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "Accept",
                        "in": "header",
                        "description": "application/json is the fallback",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "application/json",
                                "application/creston",
                                "application/amx"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The ceremony",
                        "content": {
                            "application/creston": {
                                "schema": {
                                    "type": "string"
                                },
                                "examples": {
                                    "Creston Ceremony Response": {
                                        "summary": "Creston Ceremony Response",
                                        "value": "id¦1·code¦abcdef·name¦Ceremony name·type¦ceremony·date¦2022-01-01T12:00:00.000000Z·duration¦120·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z"
                                    }
                                }
                            },
                            "application/amx": {
                                "schema": {
                                    "type": "string"
                                },
                                "examples": {
                                    "Amx Ceremony Response": {
                                        "summary": "Amx Ceremony Response",
                                        "value": "id¦1·code¦abcdef·name¦Ceremony name·type¦ceremony·date¦2022-01-01T12:00:00.000000Z·duration¦120·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Ceremony"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "access_token": []
                    }
                ]
            }
        },
        "/api/ceremonies": {
            "get": {
                "tags": [
                    "Ceremony"
                ],
                "summary": "Get ceremonies",
                "description": "Paginate through the ceremonies",
                "operationId": "getCeremonies",
                "parameters": [
                    {
                        "name": "Accept",
                        "in": "header",
                        "description": "application/json is the fallback",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "application/json",
                                "application/creston",
                                "application/amx"
                            ]
                        }
                    },
                    {
                        "name": "order",
                        "in": "query",
                        "description": "Ordering",
                        "schema": {
                            "type": "string"
                        },
                        "example": "id,desc"
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page",
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Limit, max 250",
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "filters",
                        "in": "query",
                        "description": "\n    For the date filter you can use the special rule 'today'\n\n    Available fields:\n    - id\n    - name\n    - type\n    - code\n    - date\n    - duration\n    - location_id\n    - state_id\n    - email_log_sparkpost_state\n    - created_at\n    - updated_at\n    ",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/components/schemas/Filtering"
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The ceremonies",
                        "content": {
                            "application/creston": {
                                "schema": {
                                    "type": "string"
                                },
                                "examples": {
                                    "Creston Ceremonies Response": {
                                        "summary": "Creston Ceremonies Response",
                                        "value": "id¦1·code¦abcdef·name¦Ceremony name·type¦ceremony·date¦2022-01-01T12:00:00.000000Z·duration¦120·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z¸id¦2·code¦123456·name¦Ceremony name·type¦ceremony·date¦2022-01-01T12:00:00.000000Z·duration¦120·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z"
                                    }
                                }
                            },
                            "application/amx": {
                                "schema": {
                                    "type": "string"
                                },
                                "examples": {
                                    "Amx Ceremonies Response": {
                                        "summary": "Amx Ceremonies Response",
                                        "value": "id¦1·code¦abcdef·name¦Ceremony name·type¦ceremony·date¦2022-01-01T12:00:00.000000Z·duration¦120·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z¸id¦2·code¦123456·name¦Ceremony name·type¦ceremony·date¦2022-01-01T12:00:00.000000Z·duration¦120·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CeremonyPagination"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "access_token": []
                    }
                ]
            }
        },
        "/api/ceremonies/{ceremonyId}/sync": {
            "post": {
                "tags": [
                    "Ceremony"
                ],
                "summary": "Sync a ceremony",
                "description": "Sync the ceremony",
                "operationId": "syncCeremony",
                "parameters": [
                    {
                        "name": "ceremonyId",
                        "in": "path",
                        "description": "Ceremony ID",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "Accept",
                        "in": "header",
                        "description": "application/json is the fallback",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "application/json",
                                "application/creston",
                                "application/amx"
                            ]
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Ceremony synced"
                    },
                    "409": {
                        "description": "Already syncing"
                    },
                    "403": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "access_token": []
                    }
                ]
            }
        },
        "/api/render/ceremonies": {
            "get": {
                "tags": [
                    "Render"
                ],
                "summary": "Get all the renderable ceremonies",
                "description": "Get all ceremonies available for rendering",
                "operationId": "getRenderableCeremonies",
                "responses": {
                    "200": {
                        "description": "All the renderable ceremonies",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RenderableCeremony"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "access_token": []
                    }
                ]
            }
        },
        "/api/external/ceremonies": {
            "post": {
                "tags": [
                    "Ceremony"
                ],
                "summary": "Create a new ceremony",
                "operationId": "createCeremony",
                "parameters": [
                    {
                        "name": "Accept",
                        "in": "header",
                        "description": "application/json is the fallback",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "application/json",
                                "application/creston",
                                "application/amx"
                            ]
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreateCeremonyBody"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The created ceremony",
                        "content": {
                            "application/creston": {
                                "schema": {
                                    "type": "string"
                                },
                                "examples": {
                                    "Creston Ceremony Response": {
                                        "summary": "Creston Ceremony Response",
                                        "value": "id¦1·code¦abcdef·name¦Ceremony name·type¦ceremony·date¦2022-01-01T12:00:00.000000Z·duration¦120·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z"
                                    }
                                }
                            },
                            "application/amx": {
                                "schema": {
                                    "type": "string"
                                },
                                "examples": {
                                    "Amx Ceremony Response": {
                                        "summary": "Amx Ceremony Response",
                                        "value": "id¦1·code¦abcdef·name¦Ceremony name·type¦ceremony·date¦2022-01-01T12:00:00.000000Z·duration¦120·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Ceremony"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "access_token": []
                    }
                ]
            }
        },
        "/api/external/ceremonies/{ceremonyId}": {
            "put": {
                "tags": [
                    "Ceremony"
                ],
                "summary": "Update a ceremony",
                "operationId": "updateCeremony",
                "parameters": [
                    {
                        "name": "ceremonyId",
                        "in": "path",
                        "description": "Ceremony ID",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "Accept",
                        "in": "header",
                        "description": "application/json is the fallback",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "application/json",
                                "application/creston",
                                "application/amx"
                            ]
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateCeremonyBody"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The updated ceremony",
                        "content": {
                            "application/creston": {
                                "schema": {
                                    "type": "string"
                                },
                                "examples": {
                                    "Creston Ceremony Response": {
                                        "summary": "Creston Ceremony Response",
                                        "value": "id¦1·code¦abcdef·name¦Ceremony name·type¦ceremony·date¦2022-01-01T12:00:00.000000Z·duration¦120·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z"
                                    }
                                }
                            },
                            "application/amx": {
                                "schema": {
                                    "type": "string"
                                },
                                "examples": {
                                    "Amx Ceremony Response": {
                                        "summary": "Amx Ceremony Response",
                                        "value": "id¦1·code¦abcdef·name¦Ceremony name·type¦ceremony·date¦2022-01-01T12:00:00.000000Z·duration¦120·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Ceremony"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "access_token": []
                    }
                ]
            }
        },
        "/api/external/ceremonies/{ceremonyId}/invites": {
            "post": {
                "tags": [
                    "Ceremony"
                ],
                "summary": "Send ceremony invites",
                "operationId": "sendCeremonyInvites",
                "parameters": [
                    {
                        "name": "ceremonyId",
                        "in": "path",
                        "description": "Ceremony ID",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/SendCeremonyInvitesBody"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Invites sent"
                    },
                    "403": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "access_token": []
                    }
                ]
            }
        },
        "/api/locations/{locationId}": {
            "get": {
                "tags": [
                    "Location"
                ],
                "summary": "Get a location by id",
                "operationId": "getLocation",
                "parameters": [
                    {
                        "name": "locationId",
                        "in": "path",
                        "description": "Location ID",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The location",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Location"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "access_token": []
                    }
                ]
            }
        },
        "/api/locations": {
            "get": {
                "tags": [
                    "Location"
                ],
                "summary": "Get locations",
                "operationId": "getLocations",
                "parameters": [
                    {
                        "name": "order",
                        "in": "query",
                        "description": "Ordering",
                        "schema": {
                            "type": "string"
                        },
                        "example": "id,desc"
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page",
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Limit, max 250",
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "filters",
                        "in": "query",
                        "description": "\n    For the date filter you can use the special rule 'today'\n\n    Available fields:\n    - id\n    - name\n    - type\n    - short_name\n    - created_at\n    - updated_at\n    ",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/components/schemas/Filtering"
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The locations",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/LocationPagination"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "access_token": []
                    }
                ]
            }
        },
        "/api/player/ceremonies/{ceremonyId}/reset": {
            "post": {
                "tags": [
                    "Player"
                ],
                "summary": "Reset ceremony",
                "operationId": "resetCeremony",
                "parameters": [
                    {
                        "name": "ceremonyId",
                        "in": "path",
                        "description": "Ceremony ID",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "Accept",
                        "in": "header",
                        "description": "application/json is the fallback",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "application/json",
                                "application/creston",
                                "application/amx"
                            ]
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Ceremony reset"
                    },
                    "403": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "access_token": []
                    }
                ]
            }
        },
        "/api/player/ceremonies/{ceremonyId}/stop": {
            "post": {
                "tags": [
                    "Player"
                ],
                "summary": "Stop ceremony",
                "operationId": "stopCeremony",
                "parameters": [
                    {
                        "name": "ceremonyId",
                        "in": "path",
                        "description": "Ceremony ID",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "Accept",
                        "in": "header",
                        "description": "application/json is the fallback",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "application/json",
                                "application/creston",
                                "application/amx"
                            ]
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Ceremony stopped"
                    },
                    "403": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "access_token": []
                    }
                ]
            }
        },
        "/api/player/blocks/play": {
            "post": {
                "tags": [
                    "Player"
                ],
                "summary": "Play block",
                "operationId": "playBlock",
                "parameters": [
                    {
                        "name": "Accept",
                        "in": "header",
                        "description": "application/json is the fallback",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "application/json",
                                "application/creston",
                                "application/amx"
                            ]
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PlayBlockBody"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Block played"
                    },
                    "403": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "access_token": []
                    }
                ]
            }
        },
        "/api/player/blocks/set-active-file": {
            "post": {
                "tags": [
                    "Player"
                ],
                "summary": "Set active file in block",
                "operationId": "setActiveFile",
                "parameters": [
                    {
                        "name": "Accept",
                        "in": "header",
                        "description": "application/json is the fallback",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "application/json",
                                "application/creston",
                                "application/amx"
                            ]
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/SetActiveFileBody"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Active file set"
                    },
                    "403": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "access_token": []
                    }
                ]
            }
        },
        "/api/player/blocks/resume": {
            "post": {
                "tags": [
                    "Player"
                ],
                "summary": "Resume block",
                "operationId": "resumeBlock",
                "parameters": [
                    {
                        "name": "Accept",
                        "in": "header",
                        "description": "application/json is the fallback",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "application/json",
                                "application/creston",
                                "application/amx"
                            ]
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ResumeBlockBody"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Resumed block"
                    },
                    "403": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "access_token": []
                    }
                ]
            }
        },
        "/api/player/blocks/pause": {
            "post": {
                "tags": [
                    "Player"
                ],
                "summary": "Pause block",
                "operationId": "pauseBlock",
                "parameters": [
                    {
                        "name": "Accept",
                        "in": "header",
                        "description": "application/json is the fallback",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "application/json",
                                "application/creston",
                                "application/amx"
                            ]
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PauseBlockBody"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Resumed block"
                    },
                    "403": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "access_token": []
                    }
                ]
            }
        },
        "/api/player/blocks/stop": {
            "post": {
                "tags": [
                    "Player"
                ],
                "summary": "Stop block",
                "operationId": "stopBlock",
                "parameters": [
                    {
                        "name": "Accept",
                        "in": "header",
                        "description": "application/json is the fallback",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "application/json",
                                "application/creston",
                                "application/amx"
                            ]
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StopBlockBody"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Resumed block"
                    },
                    "403": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "access_token": []
                    }
                ]
            }
        },
        "/api/player/ceremonies/{ceremonyId}/blocks": {
            "get": {
                "tags": [
                    "Player"
                ],
                "summary": "Get the ceremony blocks",
                "operationId": "ceremonyBlocks",
                "parameters": [
                    {
                        "name": "ceremonyId",
                        "in": "path",
                        "description": "Ceremony ID",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "Accept",
                        "in": "header",
                        "description": "application/json is the fallback",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "application/json",
                                "application/creston",
                                "application/amx"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The ceremony status",
                        "content": {
                            "application/creston": {
                                "schema": {
                                    "type": "string"
                                },
                                "examples": {
                                    "Creston Ceremony Status Response": {
                                        "summary": "Creston Ceremony Status Response",
                                        "value": "id¦1·type¦5·name¦abcdef·comment¦This is the comment·order¦1·duration¦60·parent_id¦·ceremony_id¦1·block_type¦5·has_manual_action¦0·edit¦0·block_duration¦120·total_duration¦120·computed_duration¦120·has_sub_blocks¦1·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z¸id¦2·type¦5·name¦123456·comment¦This is the comment·order¦1·duration¦60·parent_id¦1·ceremony_id¦1·block_type¦5·has_manual_action¦0·edit¦0·block_duration¦60·total_duration¦60·computed_duration¦60·has_sub_blocks¦0·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z"
                                    }
                                }
                            },
                            "application/amx": {
                                "schema": {
                                    "type": "string"
                                },
                                "examples": {
                                    "Amx Ceremony Status Response": {
                                        "summary": "Amx Ceremony Status Response",
                                        "value": "id¦1·type¦5·name¦abcdef·comment¦This is the comment·order¦1·duration¦60·parent_id¦·ceremony_id¦1·block_type¦5·has_manual_action¦0·edit¦0·block_duration¦120·total_duration¦120·computed_duration¦120·has_sub_blocks¦1·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z¸id¦2·type¦5·name¦123456·comment¦This is the comment·order¦1·duration¦60·parent_id¦1·ceremony_id¦1·block_type¦5·has_manual_action¦0·edit¦0·block_duration¦60·total_duration¦60·computed_duration¦60·has_sub_blocks¦0·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/CeremonyBlock"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "access_token": []
                    }
                ]
            }
        },
        "/api/player/ceremonies/{ceremonyId}/{blockId}/blocks": {
            "get": {
                "tags": [
                    "Player"
                ],
                "summary": "Get the block sub blocks",
                "operationId": "blockSubBlocks",
                "parameters": [
                    {
                        "name": "ceremonyId",
                        "in": "path",
                        "description": "Ceremony ID",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "blockId",
                        "in": "path",
                        "description": "Block ID",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "Accept",
                        "in": "header",
                        "description": "application/json is the fallback",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "application/json",
                                "application/creston",
                                "application/amx"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The ceremony status",
                        "content": {
                            "application/creston": {
                                "schema": {
                                    "type": "string"
                                },
                                "examples": {
                                    "Creston Ceremony Status Response": {
                                        "summary": "Creston Block sub blocks Response",
                                        "value": "id¦1·type¦5·name¦abcdef·comment¦This is the comment·order¦1·duration¦60·parent_id¦1·ceremony_id¦1·block_type¦5·has_manual_action¦0·edit¦0·block_duration¦120·total_duration¦120·computed_duration¦120·has_sub_blocks¦1·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z¸id¦2·type¦5·name¦123456·comment¦This is the comment·order¦1·duration¦60·parent_id¦1·ceremony_id¦1·block_type¦5·has_manual_action¦0·edit¦0·block_duration¦60·total_duration¦60·computed_duration¦60·has_sub_blocks¦0·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z"
                                    }
                                }
                            },
                            "application/amx": {
                                "schema": {
                                    "type": "string"
                                },
                                "examples": {
                                    "Amx Ceremony Status Response": {
                                        "summary": "Amx Block sub blocks Response",
                                        "value": "id¦1·type¦5·name¦abcdef·comment¦This is the comment·order¦1·duration¦60·parent_id¦1·ceremony_id¦1·block_type¦5·has_manual_action¦0·edit¦0·block_duration¦120·total_duration¦120·computed_duration¦120·has_sub_blocks¦1·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z¸id¦2·type¦5·name¦123456·comment¦This is the comment·order¦1·duration¦60·parent_id¦1·ceremony_id¦1·block_type¦5·has_manual_action¦0·edit¦0·block_duration¦60·total_duration¦60·computed_duration¦60·has_sub_blocks¦0·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/BlockSubBlock"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Block not found"
                    }
                },
                "security": [
                    {
                        "access_token": []
                    }
                ]
            }
        },
        "/api/player/ceremonies/{ceremonyId}/{blockId}/files": {
            "get": {
                "tags": [
                    "Player"
                ],
                "summary": "Get the block files",
                "operationId": "blockFiles",
                "parameters": [
                    {
                        "name": "ceremonyId",
                        "in": "path",
                        "description": "Ceremony ID",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "blockId",
                        "in": "path",
                        "description": "Block ID",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "Accept",
                        "in": "header",
                        "description": "application/json is the fallback",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "application/json",
                                "application/creston",
                                "application/amx"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The ceremony status",
                        "content": {
                            "application/creston": {
                                "schema": {
                                    "type": "string"
                                },
                                "examples": {
                                    "Creston Ceremony Status Response": {
                                        "summary": "Creston Block sub blocks Response",
                                        "value": "id¦1·type¦2·name¦·extension¦·mime_type¦·rerendering_percentage¦·size¦12345·width¦·height¦·duration¦·state¦1·public_path¦https://domain.nl/path/to/file·song_name¦Abcdef·song_author¦A.B. Cdef·song_duration¦123·song_id¦1·ceremony_id¦1·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z¸id¦2·type¦2·name¦123456·extension¦jpg·mime_type¦image/jpeg·rerendering_percentage¦100·size¦12345·width¦1920·height¦1080·duration¦60·state¦1·public_path¦https://domain.nl/path/to/file·song_name¦·song_author¦·song_duration¦·song_id¦·ceremony_id¦1·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z"
                                    }
                                }
                            },
                            "application/amx": {
                                "schema": {
                                    "type": "string"
                                },
                                "examples": {
                                    "Amx Ceremony Status Response": {
                                        "summary": "Amx Block sub blocks Response",
                                        "value": "id¦1·type¦2·name¦·extension¦·mime_type¦·rerendering_percentage¦·size¦12345·width¦·height¦·duration¦·state¦1·public_path¦https://domain.nl/path/to/file·song_name¦Abcdef·song_author¦A.B. Cdef·song_duration¦123·song_id¦1·ceremony_id¦1·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z¸id¦2·type¦2·name¦123456·extension¦jpg·mime_type¦image/jpeg·rerendering_percentage¦100·size¦12345·width¦1920·height¦1080·duration¦60·state¦1·public_path¦https://domain.nl/path/to/file·song_name¦·song_author¦·song_duration¦·song_id¦·ceremony_id¦1·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/BlockFile"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Block not found"
                    }
                },
                "security": [
                    {
                        "access_token": []
                    }
                ]
            }
        },
        "/api/player/ceremonies/{ceremonyId}/status": {
            "get": {
                "tags": [
                    "Player"
                ],
                "summary": "Get ceremony status",
                "operationId": "ceremonyStatus",
                "parameters": [
                    {
                        "name": "ceremonyId",
                        "in": "path",
                        "description": "Ceremony ID",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "Accept",
                        "in": "header",
                        "description": "application/json is the fallback",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "application/json",
                                "application/creston",
                                "application/amx"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The ceremony status",
                        "content": {
                            "application/creston": {
                                "schema": {
                                    "type": "string"
                                },
                                "examples": {
                                    "Creston Ceremony Status Response": {
                                        "summary": "Creston Ceremony Status Response",
                                        "value": "active_block¦1·songs_override_id¦1·active_media_file_id¦1·active_audio_file_id¦1·ceremony_finished¦0·state¦playing·current_duration¦30·repeating¦0"
                                    }
                                }
                            },
                            "application/amx": {
                                "schema": {
                                    "type": "string"
                                },
                                "examples": {
                                    "Amx Ceremony Status Response": {
                                        "summary": "Amx Ceremony Status Response",
                                        "value": "active_block¦1·songs_override_id¦1·active_media_file_id¦1·active_audio_file_id¦1·ceremony_finished¦0·state¦playing·current_duration¦30·repeating¦0"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CeremonyStatus"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "access_token": []
                    }
                ]
            }
        },
        "/api/sync/ceremonies": {
            "get": {
                "tags": [
                    "Sync"
                ],
                "summary": "Get all the syncable ceremonies",
                "description": "Get all ceremonies available for sync",
                "operationId": "ceremoniesAvailableForSync",
                "parameters": [
                    {
                        "name": "Accept",
                        "in": "header",
                        "description": "application/json is the fallback",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "application/json",
                                "application/creston",
                                "application/amx"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "All the syncable ceremonies",
                        "content": {
                            "application/creston": {
                                "schema": {
                                    "type": "string"
                                },
                                "examples": {
                                    "Creston Syncable Ceremony Response": {
                                        "summary": "Creston Syncable Ceremony Response",
                                        "value": "id¦1·code¦abcdef·date¦2022-01-01T12:00:00.000000Z·sync_at¦2022-01-01T12:00:00.000000Z·location¦Leuth·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z¸id¦2·code¦123456·date¦2022-01-01T12:00:00.000000Z·sync_at¦2022-01-01T12:00:00.000000Z·location¦Leuth·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z"
                                    }
                                }
                            },
                            "application/amx": {
                                "schema": {
                                    "type": "string"
                                },
                                "examples": {
                                    "Amx Syncable Ceremony Response": {
                                        "summary": "Amx Syncable Ceremony Response",
                                        "value": "id¦1·code¦abcdef·date¦2022-01-01T12:00:00.000000Z·sync_at¦2022-01-01T12:00:00.000000Z·location¦Leuth·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z¸id¦2·code¦123456·date¦2022-01-01T12:00:00.000000Z·sync_at¦2022-01-01T12:00:00.000000Z·location¦Leuth·created_at¦2021-12-01T15:00:00.000000Z·updated_at¦2021-12-01T15:00:00.000000Z"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SyncableCeremony"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "access_token": []
                    }
                ]
            }
        },
        "/api/sync/ceremonies/{ceremonyId}": {
            "get": {
                "tags": [
                    "Sync"
                ],
                "summary": "Download the ceremony as zip",
                "description": "Return the ceremony as zip",
                "operationId": "donwloadCeremonyZip",
                "parameters": [
                    {
                        "name": "ceremonyId",
                        "in": "path",
                        "description": "Ceremony ID",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The ceremony zip",
                        "headers": {
                            "Content-Disposition": {
                                "description": "attachment; filename=ceremony.zip",
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "Content-Type": {
                                "description": "application/zip",
                                "schema": {
                                    "type": "string"
                                }
                            }
                        },
                        "content": {
                            "application/zip": {
                                "schema": {
                                    "type": "string",
                                    "format": "binary"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Ceremony not found"
                    },
                    "403": {
                        "description": "Unauthenticated"
                    }
                },
                "deprecated": true,
                "security": [
                    {
                        "access_token": []
                    }
                ]
            }
        },
        "/api/sync/ceremonies/{ceremonyId}/manifest": {
            "get": {
                "tags": [
                    "Sync"
                ],
                "summary": "Get the ceremony sync manifest",
                "operationId": "getCeremonyManifest",
                "parameters": [
                    {
                        "name": "ceremonyId",
                        "in": "path",
                        "description": "Ceremony ID",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The ceremony sync manifest",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CeremonySyncManifest"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Ceremony not found or different application versions"
                    }
                },
                "security": [
                    {
                        "access_token": []
                    }
                ]
            }
        },
        "/api/company/users/invite": {
            "post": {
                "tags": [
                    "Users"
                ],
                "summary": "Invite user",
                "operationId": "inviteUser",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/InviteUserBody"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Invite sent"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "PlayBlockBody": {
                "required": [
                    "id"
                ],
                "properties": {
                    "id": {
                        "description": "Block id",
                        "type": "integer",
                        "format": "int64"
                    },
                    "media_file_id": {
                        "description": "Instant play media file from block",
                        "type": "integer",
                        "format": "int64"
                    },
                    "audio_file_id": {
                        "description": "Instant play audio file from block",
                        "type": "integer",
                        "format": "int64"
                    },
                    "initial_transition_time": {
                        "description": "The transition time between blocks",
                        "type": "integer",
                        "format": "int64"
                    },
                    "repeat": {
                        "description": "Should this block be repeated",
                        "type": "boolean"
                    },
                    "should_repeat": {
                        "description": "Should this block be repeated",
                        "type": "boolean",
                        "deprecated": "true"
                    },
                    "override_song_id": {
                        "description": "Override the songs in this block with songs in any other block",
                        "type": "integer",
                        "format": "int64"
                    }
                },
                "type": "object"
            },
            "SetActiveFileBody": {
                "required": [
                    "id",
                    "block_id"
                ],
                "properties": {
                    "id": {
                        "description": "File id",
                        "type": "integer",
                        "format": "int64"
                    },
                    "block_id": {
                        "description": "Block id",
                        "type": "integer",
                        "format": "int64"
                    }
                },
                "type": "object"
            },
            "ResumeBlockBody": {
                "required": [
                    "id"
                ],
                "properties": {
                    "id": {
                        "description": "Block id",
                        "type": "integer",
                        "format": "int64"
                    }
                },
                "type": "object"
            },
            "PauseBlockBody": {
                "required": [
                    "id"
                ],
                "properties": {
                    "id": {
                        "description": "Block id",
                        "type": "integer",
                        "format": "int64"
                    }
                },
                "type": "object"
            },
            "StopBlockBody": {
                "required": [
                    "id"
                ],
                "properties": {
                    "id": {
                        "description": "Block id",
                        "type": "integer",
                        "format": "int64"
                    }
                },
                "type": "object"
            },
            "CeremonyBlock": {
                "title": "CeremonyBlock",
                "properties": {
                    "id": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "type": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "name": {
                        "type": "string"
                    },
                    "comment": {
                        "type": "string"
                    },
                    "order": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "duration": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "parent_id": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "ceremony_id": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "block_type": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "has_manual_action": {
                        "type": "boolean"
                    },
                    "edit": {
                        "type": "boolean"
                    },
                    "computed_duration": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "block_duration": {
                        "type": "integer",
                        "format": "int64",
                        "deprecated": "true"
                    },
                    "total_duration": {
                        "type": "integer",
                        "format": "int64",
                        "deprecated": "true"
                    },
                    "has_sub_blocks": {
                        "type": "boolean"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "BlockSubBlock": {
                "title": "BlockSubBlock",
                "properties": {
                    "id": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "type": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "name": {
                        "type": "string"
                    },
                    "comment": {
                        "type": "string"
                    },
                    "order": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "duration": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "parent_id": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "ceremony_id": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "block_type": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "has_manual_action": {
                        "type": "boolean"
                    },
                    "edit": {
                        "type": "boolean"
                    },
                    "block_duration": {
                        "type": "integer",
                        "format": "int64",
                        "deprecated": "true"
                    },
                    "total_duration": {
                        "type": "integer",
                        "format": "int64",
                        "deprecated": "true"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "BlockFile": {
                "title": "BlockFile",
                "properties": {
                    "id": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "type": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "name": {
                        "type": "string"
                    },
                    "path": {
                        "type": "string"
                    },
                    "extension": {
                        "type": "string"
                    },
                    "mime_type": {
                        "type": "string"
                    },
                    "rerendering_percentage": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "size": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "width": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "height": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "duration": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "state": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "public_path": {
                        "type": "string"
                    },
                    "song_name": {
                        "type": "string"
                    },
                    "song_author": {
                        "type": "string"
                    },
                    "song_duration": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "song_id": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "ceremony_id": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "CeremonyStatus": {
                "title": "CeremonyStatus",
                "properties": {
                    "active_block": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "songs_override_id": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "active_media_file_id": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "active_audio_file_id": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "blocks_played": {
                        "type": "array",
                        "items": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    "ceremony_finished": {
                        "type": "boolean"
                    },
                    "state": {
                        "type": "string"
                    },
                    "current_duration": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "repeating": {
                        "type": "boolean"
                    },
                    "should_repeat": {
                        "type": "boolean",
                        "deprecated": "true"
                    }
                },
                "type": "object"
            },
            "CreateAccessTokenBody": {
                "required": [
                    "name"
                ],
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 150
                    }
                },
                "type": "object"
            },
            "CreateCeremonyBody": {
                "required": [
                    "name",
                    "code",
                    "type",
                    "location_id",
                    "date",
                    "duration"
                ],
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 150
                    },
                    "code": {
                        "description": "must be unique in the application",
                        "type": "string"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "ceremony",
                            "condolence"
                        ]
                    },
                    "location_id": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "date": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "duration": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 1
                    },
                    "attendees": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/CreateAttendeesBody"
                        }
                    }
                },
                "type": "object"
            },
            "CreateAttendeesBody": {
                "required": [
                    "email"
                ],
                "properties": {
                    "email": {
                        "type": "string",
                        "format": "email"
                    },
                    "name": {
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "InviteUserBody": {
                "required": [
                    "email",
                    "role"
                ],
                "properties": {
                    "email": {
                        "type": "string",
                        "format": "email",
                        "maxLength": 150
                    },
                    "role": {
                        "type": "string",
                        "enum": [
                            "generalManager",
                            "musicManager",
                            "staff"
                        ]
                    }
                },
                "type": "object"
            },
            "RegisterBody": {
                "required": [
                    "email",
                    "password",
                    "name",
                    "company_name"
                ],
                "properties": {
                    "email": {
                        "type": "string",
                        "format": "email",
                        "maxLength": 150
                    },
                    "password": {
                        "type": "string",
                        "format": "password",
                        "minLength": 8
                    },
                    "phone": {
                        "type": "string",
                        "format": "phone",
                        "maxLength": 20
                    },
                    "name": {
                        "type": "string",
                        "maxLength": 150
                    },
                    "company_name": {
                        "type": "string",
                        "maxLength": 150
                    },
                    "referrer": {
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "SendCeremonyInvitesBody": {
                "properties": {
                    "cc": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/SendCeremonyInvitesCCBody"
                        }
                    }
                },
                "type": "object"
            },
            "SendCeremonyInvitesCCBody": {
                "required": [
                    "email",
                    "name"
                ],
                "properties": {
                    "email": {
                        "type": "string",
                        "format": "email"
                    },
                    "name": {
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "UpdateCeremonyBody": {
                "required": [
                    "name",
                    "location_id",
                    "date",
                    "duration"
                ],
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 150
                    },
                    "location_id": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "date": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "duration": {
                        "type": "integer",
                        "format": "int64",
                        "minimum": 1
                    },
                    "attendees": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/UpdateAttendeesBody"
                        }
                    }
                },
                "type": "object"
            },
            "UpdateAttendeesBody": {
                "required": [
                    "email"
                ],
                "properties": {
                    "email": {
                        "type": "string",
                        "format": "email"
                    },
                    "name": {
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "CeremonySyncManifest": {
                "title": "CeremonySyncManifest",
                "properties": {
                    "id": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "code": {
                        "type": "string"
                    },
                    "data": {
                        "type": "object"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "files": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/CeremonySyncManifestFile"
                        }
                    }
                },
                "type": "object"
            },
            "CeremonySyncManifestFile": {
                "title": "CeremonySyncManifestFile",
                "properties": {
                    "checksum": {
                        "type": "string"
                    },
                    "download_url": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string"
                    },
                    "path": {
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "AccessToken": {
                "title": "Access token",
                "properties": {
                    "id": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "name": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "AccessTokenWithToken": {
                "title": "Access token with token",
                "properties": {
                    "id": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "name": {
                        "type": "string"
                    },
                    "token": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "CeremonyAttendee": {
                "title": "CeremonyAttendee",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "email": {
                        "type": "string",
                        "format": "email"
                    }
                },
                "type": "object"
            },
            "Ceremony": {
                "title": "Ceremony",
                "properties": {
                    "id": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "code": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "date_unknown": {
                        "type": "boolean"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "ceremony",
                            "condolence"
                        ]
                    },
                    "date": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "duration": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "computed_duration": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "attendees": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/CeremonyAttendee"
                        }
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "SyncableCeremony": {
                "title": "SyncableCeremony",
                "properties": {
                    "id": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "code": {
                        "type": "string"
                    },
                    "date": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "sync_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "location": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "CeremonyPagination": {
                "title": "Ceremony pagination",
                "properties": {
                    "data": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Ceremony"
                        }
                    },
                    "total": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "per_page": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "current_page": {
                        "type": "integer",
                        "format": "int64"
                    }
                },
                "type": "object"
            },
            "RenderableCeremony": {
                "title": "RenderableCeremony",
                "properties": {
                    "id": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "name": {
                        "type": "string"
                    },
                    "livestream_enabled": {
                        "type": "boolean"
                    },
                    "code": {
                        "type": "string"
                    },
                    "date": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "location": {
                        "type": "string"
                    },
                    "blocks": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/RenderableCeremonyBlock"
                        }
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "RenderableCeremonyBlock": {
                "title": "RenderableCeremonyBlock",
                "properties": {
                    "id": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "name": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "image",
                            "video",
                            "speaker",
                            "media",
                            "walk_in_out",
                            "condolence",
                            "call"
                        ]
                    },
                    "comment": {
                        "type": "string"
                    },
                    "duration": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "render_state": {
                        "type": "string",
                        "enum": [
                            "pending",
                            "queued",
                            "rendering",
                            "failed",
                            "ready",
                            "no_content"
                        ]
                    },
                    "render_url": {
                        "type": "string"
                    },
                    "render_checksum": {
                        "type": "string"
                    },
                    "render_created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "Location": {
                "title": "Location",
                "properties": {
                    "id": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "name": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "type": {
                        "type": "string"
                    },
                    "short_name": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "LocationPagination": {
                "title": "Location pagination",
                "properties": {
                    "data": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Location"
                        }
                    },
                    "total": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "per_page": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "current_page": {
                        "type": "integer",
                        "format": "int64"
                    }
                },
                "type": "object"
            },
            "User": {
                "title": "User",
                "properties": {
                    "id": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "name": {
                        "type": "string"
                    },
                    "phone": {
                        "type": "string"
                    },
                    "email": {
                        "type": "string",
                        "format": "email"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "UserToken": {
                "title": "User token",
                "properties": {
                    "user": {
                        "$ref": "#/components/schemas/User"
                    },
                    "token": {
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "Filtering": {
                "title": "Filtering",
                "description": "[{'group': [{'field': 'id','eq': 1,'or': true},{'field': 'id','eq': 2,'or': true}]},{'field': 'firstname','eq': 'Jan'}]",
                "properties": {
                    "field": {
                        "description": "Available filter field",
                        "type": "string"
                    },
                    "or": {
                        "type": "boolean",
                        "default": false
                    },
                    "eq": {
                        "type": "string"
                    },
                    "neq": {
                        "type": "string"
                    },
                    "like": {
                        "type": "string"
                    },
                    "in": {
                        "type": "array",
                        "items": {}
                    },
                    "lt": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "lte": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "gt": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "gte": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "group": {
                        "description": "This is used for nesting, if a group property exists on the object only this property will be used.",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Filtering"
                        }
                    }
                },
                "type": "object"
            }
        },
        "securitySchemes": {
            "access_token": {
                "type": "apiKey",
                "description": "A token must be added to the company, example: Authorization: Bearer TOKEN. This is meant to be used for API calls",
                "name": "Authorization",
                "in": "header"
            }
        }
    },
    "tags": [
        {
            "name": "Access tokens",
            "description": "Access tokens"
        },
        {
            "name": "Auth",
            "description": "Auth"
        },
        {
            "name": "Ceremony",
            "description": "Ceremony"
        },
        {
            "name": "Render",
            "description": "Render"
        },
        {
            "name": "Location",
            "description": "Location"
        },
        {
            "name": "Player",
            "description": "Player"
        },
        {
            "name": "Sync",
            "description": "Sync"
        },
        {
            "name": "Users",
            "description": "Users"
        }
    ]
}