{
    "openapi": "3.1.0",
    "info": {
        "title": "Simplicate API",
        "description": "Build on the Simplicate Platform",
        "version": "0.0.0"
    },
    "servers": [
        {
            "url": "https://{domain}.simplicate.app/api/v3",
            "description": "API server",
            "variables": {
                "domain": {
                    "default": "your-company",
                    "description": "Your Simplicate subdomain"
                }
            }
        }
    ],
    "paths": {
        "/invoiceDraftRequest.get/{id}": {
            "get": {
                "operationId": "api_invoiceDraftRequest.get_id_get",
                "tags": [
                    "Invoice Draft Request Status"
                ],
                "responses": {
                    "200": {
                        "description": "Invoice Draft Request Status resource",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Invoice.Draft.Request.Status"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "404": {
                        "description": "Not found",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Get the status of an invoice draft request",
                "description": "Returns the request's own status plus its project progress counts",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Invoice Draft Request Status identifier",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ]
            }
        },
        "/project.get/{id}": {
            "get": {
                "operationId": "api_project.get_id_get",
                "tags": [
                    "Project"
                ],
                "responses": {
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Project resource",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Project.ProjectOutput"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Get project by id",
                "description": "Get a single project by its id",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Project identifier",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ]
            }
        },
        "/projectService.acquisition.create": {
            "post": {
                "operationId": "api_projectService.acquisition.create_post",
                "tags": [
                    "Project Service"
                ],
                "responses": {
                    "201": {
                        "description": "The acquisition project service that has been stored.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Project.AcquisitionService"
                                }
                            }
                        },
                        "links": {}
                    },
                    "422": {
                        "description": "Unprocessable Entity",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "400": {
                        "description": "Invalid input",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Create a project service of type acquisition",
                "description": "Create a project service of type acquisition",
                "parameters": [],
                "requestBody": {
                    "description": "The new Project Service resource",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Project.Service.CreateAcquisitionProjectService"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "/projectService.acquisition.edit": {
            "post": {
                "operationId": "api_projectService.acquisition.edit_post",
                "tags": [
                    "Project Service"
                ],
                "responses": {
                    "201": {
                        "description": "The acquisition project service as it is after the edit.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Project.AcquisitionService"
                                }
                            }
                        },
                        "links": {}
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Unprocessable Entity",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "400": {
                        "description": "Invalid input",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Edit an acquisition project service",
                "description": "Edit an acquisition project service.",
                "parameters": [],
                "requestBody": {
                    "description": "The new Project Service resource",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Project.Service.EditAcquisitionProjectService"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "/projectService.advance.configuration": {
            "get": {
                "operationId": "api_projectService.advance.configuration_get",
                "tags": [
                    "Project Service"
                ],
                "responses": {
                    "500": {
                        "description": "Internal Server Error",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "InternalServerError": {
                                        "$ref": "#/components/examples/InternalServerError"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "InternalServerError": {
                                        "$ref": "#/components/examples/InternalServerError"
                                    }
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Project Service resource",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Project.Service.AdvanceServiceConfiguration"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "404": {
                        "description": "Not found",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Get advance project service configuration",
                "description": "Get advance project service configuration.",
                "parameters": []
            }
        },
        "/projectService.advance.create": {
            "post": {
                "operationId": "api_projectService.advance.create_post",
                "tags": [
                    "Project Service"
                ],
                "responses": {
                    "201": {
                        "description": "The advance project service that has been stored.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Project.AdvanceService"
                                }
                            }
                        },
                        "links": {}
                    },
                    "422": {
                        "description": "Unprocessable Entity",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "400": {
                        "description": "Invalid input",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Create a advance project service",
                "description": "Create a advance project service.",
                "parameters": [],
                "requestBody": {
                    "description": "The new Project Service resource",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Project.Service.CreateAdvanceProjectService"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "/projectService.advance.edit": {
            "post": {
                "operationId": "api_projectService.advance.edit_post",
                "tags": [
                    "Project Service"
                ],
                "responses": {
                    "201": {
                        "description": "The advance project service as it is after the edit.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Project.AdvanceService"
                                }
                            }
                        },
                        "links": {}
                    },
                    "422": {
                        "description": "Unprocessable Entity",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "400": {
                        "description": "Invalid input",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Edit an advance project service",
                "description": "Edit an advance project service.",
                "parameters": [],
                "requestBody": {
                    "description": "The new Project Service resource",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Project.Service.EditAdvanceProjectService"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "/projectService.build": {
            "post": {
                "operationId": "api_projectService.build_post",
                "tags": [
                    "Project Service"
                ],
                "responses": {
                    "200": {
                        "description": "The project service configuration built from the base service. Nothing is stored yet.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Project.BuiltService"
                                }
                            }
                        },
                        "links": {}
                    },
                    "422": {
                        "description": "The project, or the default service to build from, does not exist.",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "400": {
                        "description": "Invalid input",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Build project service configuration",
                "description": "Build project service configuration based on the configuration for a base service",
                "parameters": [],
                "requestBody": {
                    "description": "The new Project Service resource",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Project.Service.BuildProjectService"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "/projectService.build.acquisition": {
            "post": {
                "operationId": "api_projectService.build.acquisition_post",
                "tags": [
                    "Project Service"
                ],
                "responses": {
                    "200": {
                        "description": "The acquisition project service configuration built from the base service. Nothing is stored yet.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Project.BuiltService"
                                }
                            }
                        },
                        "links": {}
                    },
                    "422": {
                        "description": "The project, or the default service to build from, does not exist.",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "400": {
                        "description": "Invalid input",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Build acquisition project service configuration",
                "description": "Build acquisition project service configuration based on the configuration off the base service",
                "parameters": [],
                "requestBody": {
                    "description": "The new Project Service resource",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Project.Service.BuildProjectAcquisitionService"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "/projectService.create": {
            "post": {
                "operationId": "api_projectService.create_post",
                "tags": [
                    "Project Service"
                ],
                "responses": {
                    "201": {
                        "description": "The project service that has been stored.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Project.InvoiceableService"
                                }
                            }
                        },
                        "links": {}
                    },
                    "422": {
                        "description": "Unprocessable Entity",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "400": {
                        "description": "Invalid input",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Create  project service",
                "description": "Create a new project service and persist it",
                "parameters": [],
                "requestBody": {
                    "description": "The new Project Service resource",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Project.Service.CreateProjectService"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "/projectService.edit": {
            "post": {
                "operationId": "api_projectService.edit_post",
                "tags": [
                    "Project Service"
                ],
                "responses": {
                    "200": {
                        "description": "The project service as it is after the edit.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Project.InvoiceableService"
                                }
                            }
                        },
                        "links": {}
                    },
                    "422": {
                        "description": "The edit was refused: the project, hour type or cost type does not exist, the project service may no longer be edited, or the edit would leave it invalid.",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Invalid input",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Edit a project service",
                "description": "Edit an existing project service",
                "parameters": [],
                "requestBody": {
                    "description": "The new Project Service resource",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Project.Service.EditProjectService"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "/projectService.get/{id}": {
            "get": {
                "operationId": "api_projectService.get_id_get",
                "tags": [
                    "Project Service"
                ],
                "responses": {
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Unprocessable Entity",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Project Service resource",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Project.Service.OneOf.OneOfProjectService"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Get project service by id",
                "description": "Get a single project service by its id",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Project Service identifier",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ]
            }
        },
        "/projectService.getFirstAndLastRegistrationDates/{id}": {
            "get": {
                "operationId": "api_projectService.getFirstAndLastRegistrationDates_id_get",
                "tags": [
                    "Project Service"
                ],
                "responses": {
                    "422": {
                        "description": "Unprocessable Entity",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Project Service resource",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Project.Service"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "404": {
                        "description": "Not found",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Retrieve registration date ranges for project services",
                "description": "Provides the earliest and latest registration dates for time, mileage, and cost entries, as well as the overall first and last registration dates associated with a specific project service ID.",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Project Service identifier",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ]
            }
        },
        "/projectService.internal.create": {
            "post": {
                "operationId": "api_projectService.internal.create_post",
                "tags": [
                    "Project Service"
                ],
                "responses": {
                    "201": {
                        "description": "The internal project service that has been stored.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Project.InternalService"
                                }
                            }
                        },
                        "links": {}
                    },
                    "422": {
                        "description": "Unprocessable Entity",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "400": {
                        "description": "Invalid input",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Create an internal project service",
                "description": "Create an internal project service. An internal project service is not invoiceable.",
                "parameters": [],
                "requestBody": {
                    "description": "The new Project Service resource",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Project.Service.CreateInternalProjectService"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "/projectService.internal.edit": {
            "post": {
                "operationId": "api_projectService.internal.edit_post",
                "tags": [
                    "Project Service"
                ],
                "responses": {
                    "200": {
                        "description": "The internal project service as it is after the edit.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Project.InternalService"
                                }
                            }
                        },
                        "links": {}
                    },
                    "422": {
                        "description": "The edit was refused: the project, hour type or cost type does not exist, the project service may no longer be edited, or the edit would leave it invalid.",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Invalid input",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Edit an internal project service",
                "description": "Edit an internal project service. An internal project service is not invoiceable.",
                "parameters": [],
                "requestBody": {
                    "description": "The new Project Service resource",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Project.Service.EditInternalProjectService"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "/projectService.listAcquisitionServices": {
            "post": {
                "operationId": "api_projectService.listAcquisitionServices_post",
                "tags": [
                    "Project Service"
                ],
                "responses": {
                    "200": {
                        "description": "The ids of the active acquisition project services.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/IdCollection"
                                }
                            }
                        },
                        "links": {}
                    },
                    "422": {
                        "description": "Unprocessable Entity",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "400": {
                        "description": "Invalid input",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "List active acquisition project services",
                "description": "List active acquisition project services",
                "parameters": [],
                "requestBody": {
                    "description": "The new Project Service resource",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Project.Service.ListAcquisitionProjectServices"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "/projectService.listSubscriptionsThatCanBeInvoicedTogether": {
            "post": {
                "operationId": "api_projectService.listSubscriptionsThatCanBeInvoicedTogether_post",
                "tags": [
                    "Project Service"
                ],
                "responses": {
                    "200": {
                        "description": "The subscriptions this subscription can be invoiced together with.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Project.SimpleService"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "422": {
                        "description": "Unprocessable Entity",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "400": {
                        "description": "Invalid input",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "List subscriptions that can be invoiced together.",
                "description": "Subscriptions can be invoiced together when they are part of the same project and have the same subscription cycle. Additionally, only subscriptions that start before the current one, can be chosen for \"invoice together with\"",
                "parameters": [],
                "requestBody": {
                    "description": "The new Project Service resource",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Project.Service.ListSubscriptionsThatCanBeInvoicedTogetherCommand"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "/projectService.setProgress": {
            "post": {
                "operationId": "api_projectService.setProgress_post",
                "tags": [
                    "Project Service"
                ],
                "responses": {
                    "200": {
                        "description": "The project service with its new progress.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Project.Service.OneOf.OneOfInternalOrInvoiceableProjectService"
                                }
                            }
                        },
                        "links": {}
                    },
                    "422": {
                        "description": "The new progress would leave the project service invalid.",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Invalid input",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Set progress of project service",
                "description": "Set the progress (aka: percentage of completion) of a project service.",
                "parameters": [],
                "requestBody": {
                    "description": "The new Project Service resource",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Project.Service.EditProjectServiceProgress"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "/country.get/{id}": {
            "get": {
                "operationId": "api_country.get_id_get",
                "tags": [
                    "Relation"
                ],
                "responses": {
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Country resource",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Country"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "404": {
                        "description": "Not found",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Retrieve a single country by id",
                "description": "Retrieve a single country by id",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Country identifier",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ]
            }
        },
        "/country.list": {
            "get": {
                "operationId": "api_country.list_get_collection",
                "tags": [
                    "Relation"
                ],
                "responses": {
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Country collection",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "metadata": {
                                            "$ref": "#/components/schemas/CollectionMetadata"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Country"
                                            }
                                        }
                                    },
                                    "required": [
                                        "metadata",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "List all available countries, sorted alphabetically by localized name",
                "description": "List all available countries, sorted alphabetically by localized name",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "The collection page number",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "itemsPerPage",
                        "in": "query",
                        "description": "The number of items per page",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "integer",
                            "default": 300,
                            "minimum": 0,
                            "maximum": 300
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Partial, case-insensitive match on the localized country name.",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "string"
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "countryCode",
                        "in": "query",
                        "description": "Exact match. Equivalent explicit form: `countryCode[eq]=\u2026`.",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "string"
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "countryCode[]",
                        "in": "query",
                        "description": "Match any of the given values (IN). Repeat the parameter for multiple values. Equivalent explicit form: `countryCode[eq][]=\u2026`.",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "style": "deepObject",
                        "explode": true
                    },
                    {
                        "name": "countryCode[eq]",
                        "in": "query",
                        "description": "Exact match (explicit form of `countryCode=\u2026`).",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "string"
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "countryCode[eq][]",
                        "in": "query",
                        "description": "Match any of the given values (IN, explicit form of `countryCode[]=\u2026`). Repeat the parameter for multiple values.",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "style": "deepObject",
                        "explode": true
                    },
                    {
                        "name": "languageCode",
                        "in": "query",
                        "description": "Exact match. Equivalent explicit form: `languageCode[eq]=\u2026`.",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "string"
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "languageCode[]",
                        "in": "query",
                        "description": "Match any of the given values (IN). Repeat the parameter for multiple values. Equivalent explicit form: `languageCode[eq][]=\u2026`.",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "style": "deepObject",
                        "explode": true
                    },
                    {
                        "name": "languageCode[eq]",
                        "in": "query",
                        "description": "Exact match (explicit form of `languageCode=\u2026`).",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "string"
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "languageCode[eq][]",
                        "in": "query",
                        "description": "Match any of the given values (IN, explicit form of `languageCode[]=\u2026`). Repeat the parameter for multiple values.",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "style": "deepObject",
                        "explode": true
                    }
                ]
            }
        },
        "/relation.relationtype.create": {
            "post": {
                "operationId": "api_relation.relationtype.create_post",
                "tags": [
                    "Relation"
                ],
                "responses": {
                    "201": {
                        "description": "The relation type that has been stored.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RelationType"
                                }
                            }
                        },
                        "links": {}
                    },
                    "400": {
                        "description": "Invalid input",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "422": {
                        "description": "An error occurred",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Create a relation type",
                "description": "Create a relation type",
                "parameters": [],
                "requestBody": {
                    "description": "The new RelationType resource",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/RelationType.CreateRelationType"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "/relation.relationtype.delete": {
            "post": {
                "operationId": "api_relation.relationtype.delete_post",
                "tags": [
                    "Relation"
                ],
                "responses": {
                    "204": {
                        "description": "The relation type no longer exists.",
                        "links": {}
                    },
                    "400": {
                        "description": "Invalid input",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "422": {
                        "description": "An error occurred",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Delete a user-defined relation type by id",
                "description": "Delete a user-defined relation type by id",
                "parameters": [],
                "requestBody": {
                    "description": "The new RelationType resource",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/RelationType.DeleteRelationType"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "/relation.relationtype.delete/{id}": {
            "delete": {
                "operationId": "api_relation.relationtype.delete_id_delete",
                "tags": [
                    "Relation"
                ],
                "responses": {
                    "204": {
                        "description": "The relation type no longer exists."
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "404": {
                        "description": "Not found",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Delete a user-defined relation type by id",
                "description": "Delete a user-defined relation type by id",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "RelationType identifier",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string"
                        },
                        "style": "simple",
                        "explode": false,
                        "example": "relationtype:1234567890abcdef"
                    }
                ],
                "deprecated": true
            }
        },
        "/relation.relationtype.list": {
            "get": {
                "operationId": "api_relation.relationtype.list_get_collection",
                "tags": [
                    "Relation"
                ],
                "responses": {
                    "200": {
                        "description": "RelationType collection",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "metadata": {
                                            "$ref": "#/components/schemas/CollectionMetadata"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/RelationType"
                                            }
                                        }
                                    },
                                    "required": [
                                        "metadata",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "List all available relation types",
                "description": "List all available relation types",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "The collection page number",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "itemsPerPage",
                        "in": "query",
                        "description": "The number of items per page",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "integer",
                            "default": 30,
                            "minimum": 0,
                            "maximum": 100
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "id",
                        "in": "query",
                        "description": "Exact match. Equivalent explicit form: `id[eq]=\u2026`.",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "string"
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "id[]",
                        "in": "query",
                        "description": "Match any of the given values (IN). Repeat the parameter for multiple values. Equivalent explicit form: `id[eq][]=\u2026`.",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "style": "deepObject",
                        "explode": true
                    },
                    {
                        "name": "id[eq]",
                        "in": "query",
                        "description": "Exact match (explicit form of `id=\u2026`).",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "string"
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "id[eq][]",
                        "in": "query",
                        "description": "Match any of the given values (IN, explicit form of `id[]=\u2026`). Repeat the parameter for multiple values.",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "style": "deepObject",
                        "explode": true
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Partial match on the stored relation type name. System-defined types are matched on their raw name, not on the translated label in the response.",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "maxLength": 191
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "isSystemDefined",
                        "in": "query",
                        "description": "True keeps only system-defined relation types, false only user-defined ones.",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "style": "form",
                        "explode": true
                    }
                ]
            }
        },
        "/relation.relationtype.setDefault": {
            "post": {
                "operationId": "api_relation.relationtype.setDefault_post",
                "tags": [
                    "Relation"
                ],
                "responses": {
                    "204": {
                        "description": "The default relation type is set, or cleared when no id was sent.",
                        "links": {}
                    },
                    "400": {
                        "description": "Invalid input",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "422": {
                        "description": "An error occurred",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Set or clear the default relation type",
                "description": "Sets the default relation type. Omit the id or send null to clear it.",
                "parameters": [],
                "requestBody": {
                    "description": "The new RelationType resource",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/RelationType.SetDefaultRelationType"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "/relation.relationtype.update": {
            "put": {
                "operationId": "api_relation.relationtype.update_put",
                "tags": [
                    "Relation"
                ],
                "responses": {
                    "200": {
                        "description": "The relation type as it is after the update.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RelationType"
                                }
                            }
                        },
                        "links": {}
                    },
                    "400": {
                        "description": "Invalid input",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "422": {
                        "description": "An error occurred",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "404": {
                        "description": "Not found",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Update a relation type by id",
                "description": "System-defined relation types (where isSystemDefined is true) can only have their color updated; name is immutable. For a system-defined relation type, the returned name is the locale-translated label, not the stored value.",
                "parameters": [],
                "requestBody": {
                    "description": "The updated RelationType resource",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/RelationType.UpdateRelationType"
                            }
                        }
                    },
                    "required": true
                },
                "deprecated": true
            },
            "post": {
                "operationId": "api_relation.relationtype.update_post",
                "tags": [
                    "Relation"
                ],
                "responses": {
                    "200": {
                        "description": "The relation type as it is after the update.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RelationType"
                                }
                            }
                        },
                        "links": {}
                    },
                    "400": {
                        "description": "Invalid input",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "422": {
                        "description": "An error occurred",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Update a relation type by id",
                "description": "System-defined relation types (where isSystemDefined is true) can only have their color updated; name is immutable. For a system-defined relation type, the returned name is the locale-translated label, not the stored value.",
                "parameters": [],
                "requestBody": {
                    "description": "The new RelationType resource",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/RelationType.UpdateRelationType"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "/saleService.group.create": {
            "post": {
                "operationId": "api_saleService.group.create_post",
                "tags": [
                    "Sale Service"
                ],
                "responses": {
                    "201": {
                        "description": "The sale with the new service group.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Sale"
                                }
                            }
                        },
                        "links": {}
                    },
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "An error occurred",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Add a new service group",
                "description": "Add a new service group to the sale with the specified id",
                "parameters": [],
                "requestBody": {
                    "description": "The new Sale Service resource",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/SaleServiceGroup.AddServiceGroup"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "/saleService.group.delete": {
            "post": {
                "operationId": "api_saleService.group.delete_post",
                "tags": [
                    "Sale Service"
                ],
                "responses": {
                    "201": {
                        "description": "The sale without the deleted service group.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Sale"
                                }
                            }
                        },
                        "links": {}
                    },
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "An error occurred",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Delete a service group from the sale",
                "description": "Delete an existing service group from the sale.\n                    The <code>shouldDeleteServices</code> flag controls whether the services should be deleted or should be moved to\n                    the ungrouped services. The default setting is <code>false</code>",
                "parameters": [],
                "requestBody": {
                    "description": "The service group to delete.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/SaleServiceGroup.DeleteServiceGroup"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "/saleService.group.update": {
            "post": {
                "operationId": "api_saleService.group.update_post",
                "tags": [
                    "Sale Service"
                ],
                "responses": {
                    "201": {
                        "description": "The sale with the updated service group.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Sale"
                                }
                            }
                        },
                        "links": {}
                    },
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "An error occurred",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Update a service group",
                "description": "Update an existing service group",
                "parameters": [],
                "requestBody": {
                    "description": "The new Sale Service resource",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/SaleServiceGroup.ChangeServiceGroup"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "/saleService.group.updateServiceTree": {
            "post": {
                "operationId": "api_saleService.group.updateServiceTree_post",
                "tags": [
                    "Sale Service"
                ],
                "responses": {
                    "201": {
                        "description": "The sale with its restructured service tree.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Sale"
                                }
                            }
                        },
                        "links": {}
                    },
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "An error occurred",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Change the sale service(group)s tree",
                "description": "Modify the overall structure of service groups and services within a sale",
                "parameters": [],
                "requestBody": {
                    "description": "The new Sale Service resource",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/SaleServiceGroup.ChangeServiceTree"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "/costType.get/{id}": {
            "get": {
                "operationId": "api_costType.get_id_get",
                "tags": [
                    "Service"
                ],
                "responses": {
                    "200": {
                        "description": "CostType",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CostType"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Get CostType",
                "description": "Get a single CostType by its id",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Service identifier",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ]
            }
        },
        "/costType.list": {
            "get": {
                "operationId": "api_costType.list_get_collection",
                "tags": [
                    "Service"
                ],
                "responses": {
                    "200": {
                        "description": "CostTypes",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "metadata": {
                                            "$ref": "#/components/schemas/CollectionMetadata"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/CostType"
                                            }
                                        }
                                    },
                                    "required": [
                                        "metadata",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "List CostTypes",
                "description": "List all CostTypes that are not blocked",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "The collection page number",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "itemsPerPage",
                        "in": "query",
                        "description": "The number of items per page",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "integer",
                            "default": 30,
                            "minimum": 0,
                            "maximum": 30
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Partial, case-insensitive match on the cost type name.",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "maxLength": 191
                        },
                        "style": "form",
                        "explode": true
                    }
                ]
            }
        },
        "/defaultService.get/{id}": {
            "get": {
                "operationId": "api_defaultService.get_id_get",
                "tags": [
                    "Service"
                ],
                "responses": {
                    "200": {
                        "description": "DefaultService",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Service.DefaultService"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Get a single default service by id",
                "description": "Retrieve a default service by id",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Service identifier",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ]
            }
        },
        "/defaultService.list": {
            "get": {
                "operationId": "api_defaultService.list_get_collection",
                "tags": [
                    "Service"
                ],
                "responses": {
                    "200": {
                        "description": "DefaultServices",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "metadata": {
                                            "$ref": "#/components/schemas/CollectionMetadata"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Service.SimpleDefaultService"
                                            }
                                        }
                                    },
                                    "required": [
                                        "metadata",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "List all available default services",
                "description": "Retrieve the list of default services",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "The collection page number",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "itemsPerPage",
                        "in": "query",
                        "description": "The number of items per page",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "integer",
                            "default": 30,
                            "minimum": 0,
                            "maximum": 30
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Partial, case-insensitive match on the default service description.",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "maxLength": 100
                        },
                        "style": "form",
                        "explode": true
                    }
                ]
            }
        },
        "/hourType.get/{id}": {
            "get": {
                "operationId": "api_hourType.get_id_get",
                "tags": [
                    "Service"
                ],
                "responses": {
                    "200": {
                        "description": "HourType",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HourType"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Get HourType",
                "description": "Get a single HourType by its id. Blocked HourTypes are included.",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "HourType identifier",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ]
            }
        },
        "/hourType.list": {
            "get": {
                "operationId": "api_hourType.list_get_collection",
                "tags": [
                    "Service"
                ],
                "responses": {
                    "200": {
                        "description": "HourTypes",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "metadata": {
                                            "$ref": "#/components/schemas/CollectionMetadata"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/HourType"
                                            }
                                        }
                                    },
                                    "required": [
                                        "metadata",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "List HourTypes",
                "description": "List all HourTypes that are not blocked and not designated as leave or absence types",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "The collection page number",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "itemsPerPage",
                        "in": "query",
                        "description": "The number of items per page",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "integer",
                            "default": 30,
                            "minimum": 0,
                            "maximum": 30
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Partial, case-insensitive match on the HourType name.",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "maxLength": 191
                        },
                        "style": "form",
                        "explode": true
                    }
                ]
            }
        },
        "/invoiceMethod.list": {
            "get": {
                "operationId": "api_invoiceMethod.list_get",
                "tags": [
                    "Service"
                ],
                "responses": {
                    "200": {
                        "description": "InvoiceMethods",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/InvoiceMethods"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "404": {
                        "description": "Not found",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "List available invoice methods for services.",
                "description": "Retrieve a list of possible invoice methods that can be used in services.",
                "parameters": []
            }
        },
        "/revenueGroup.get/{id}": {
            "get": {
                "operationId": "api_revenueGroup.get_id_get",
                "tags": [
                    "Service"
                ],
                "responses": {
                    "200": {
                        "description": "RevenueGroup",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RevenueGroup"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Get revenue group",
                "description": "Get a single revenue group by its id",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "RevenueGroup identifier",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ]
            }
        },
        "/revenueGroup.list": {
            "get": {
                "operationId": "api_revenueGroup.list_get_collection",
                "tags": [
                    "Service"
                ],
                "responses": {
                    "200": {
                        "description": "RevenueGroups",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "metadata": {
                                            "$ref": "#/components/schemas/CollectionMetadata"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/RevenueGroup"
                                            }
                                        }
                                    },
                                    "required": [
                                        "metadata",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "List revenue groups",
                "description": "List all revenue groups that are not blocked",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "The collection page number",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "itemsPerPage",
                        "in": "query",
                        "description": "The number of items per page",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "integer",
                            "default": 30,
                            "minimum": 0,
                            "maximum": 30
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Partial, case-insensitive match on the revenue group name.",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "maxLength": 100
                        },
                        "style": "form",
                        "explode": true
                    }
                ]
            }
        },
        "/subscriptionCycle.list": {
            "get": {
                "operationId": "api_subscriptionCycle.list_get",
                "tags": [
                    "Service"
                ],
                "responses": {
                    "200": {
                        "description": "SubscriptionCycleOptions",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SubscriptionCycles"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "404": {
                        "description": "Not found",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "List available subscription cycle options for services.",
                "description": "Retrieve a list of possible subscription cycle options that can be used in services.",
                "parameters": []
            }
        },
        "/vatCode.get/{id}": {
            "get": {
                "operationId": "api_vatCode.get_id_get",
                "tags": [
                    "Service"
                ],
                "responses": {
                    "200": {
                        "description": "VatCode",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/VatCode"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Unprocessable Entity",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Get VAT code",
                "description": "Get a single vat code by its id",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "VatCode identifier",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ]
            }
        },
        "/vatCode.list": {
            "get": {
                "operationId": "api_vatCode.list_get_collection",
                "tags": [
                    "Service"
                ],
                "responses": {
                    "200": {
                        "description": "VatCodes",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "metadata": {
                                            "$ref": "#/components/schemas/CollectionMetadata"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/VatCode"
                                            }
                                        }
                                    },
                                    "required": [
                                        "metadata",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "List VAT codes",
                "description": "List all VAT codes that are not blocked",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "The collection page number",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "itemsPerPage",
                        "in": "query",
                        "description": "The number of items per page",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "integer",
                            "default": 30,
                            "minimum": 0,
                            "maximum": 30
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Partial, case-insensitive match on the VAT code name.",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "maxLength": 100
                        },
                        "style": "form",
                        "explode": true
                    }
                ]
            }
        },
        "/webhook.action.list": {
            "get": {
                "operationId": "api_webhook.action.list_get_collection",
                "tags": [
                    "Webhook"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook action collection",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "metadata": {
                                            "$ref": "#/components/schemas/CollectionMetadata"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Webhook.Action"
                                            }
                                        }
                                    },
                                    "required": [
                                        "metadata",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "List webhook actions",
                "description": "Returns a list of available webhook actions",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "The collection page number",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "itemsPerPage",
                        "in": "query",
                        "description": "The number of items per page",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "integer",
                            "default": 30,
                            "minimum": 0,
                            "maximum": 100
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Partial, case-insensitive match on the webhook action label.",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "string"
                        },
                        "style": "form",
                        "explode": true
                    }
                ]
            }
        },
        "/webhook.create": {
            "post": {
                "operationId": "api_webhook.create_post",
                "tags": [
                    "Webhook"
                ],
                "responses": {
                    "201": {
                        "description": "Webhook resource created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Webhook-webhook.read_webhook.create"
                                }
                            }
                        },
                        "links": {}
                    },
                    "400": {
                        "description": "Invalid input",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "422": {
                        "description": "An error occurred",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Create a webhook",
                "description": "Creates a new webhook configuration",
                "parameters": [],
                "requestBody": {
                    "description": "The new Webhook resource",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.CreateWebhook"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "/webhook.delete": {
            "post": {
                "operationId": "api_webhook.delete_post",
                "tags": [
                    "Webhook"
                ],
                "responses": {
                    "204": {
                        "description": "Webhook deleted",
                        "links": {}
                    },
                    "400": {
                        "description": "Invalid input",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "422": {
                        "description": "An error occurred",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Delete a webhook",
                "description": "Deletes an existing webhook configuration",
                "parameters": [],
                "requestBody": {
                    "description": "The webhook to delete",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.DeleteWebhook"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "/webhook.edit": {
            "post": {
                "operationId": "api_webhook.edit_post",
                "tags": [
                    "Webhook"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook edited",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Webhook-webhook.read"
                                }
                            }
                        },
                        "links": {}
                    },
                    "400": {
                        "description": "Invalid input",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "422": {
                        "description": "An error occurred",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Edit a webhook",
                "description": "Updates an existing webhook configuration",
                "parameters": [],
                "requestBody": {
                    "description": "The new Webhook resource",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.EditWebhook"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "/webhook.get/{id}": {
            "get": {
                "operationId": "api_webhook.get_id_get",
                "tags": [
                    "Webhook"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook resource",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Webhook-webhook.read"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "404": {
                        "description": "Not found",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "View a specific webhook",
                "description": "Returns a particular webhook configuration",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Webhook identifier",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ]
            }
        },
        "/webhook.list": {
            "get": {
                "operationId": "api_webhook.list_get_collection",
                "tags": [
                    "Webhook"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook collection",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "metadata": {
                                            "$ref": "#/components/schemas/CollectionMetadata"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Webhook-webhook.read"
                                            }
                                        }
                                    },
                                    "required": [
                                        "metadata",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "List configured webhooks",
                "description": "Returns a list of all configured webhooks",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "The collection page number",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "itemsPerPage",
                        "in": "query",
                        "description": "The number of items per page",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "integer",
                            "default": 30,
                            "minimum": 0,
                            "maximum": 30
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "order[sortOrder]",
                        "in": "query",
                        "description": "",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "default": "asc",
                            "enum": [
                                "asc",
                                "desc"
                            ]
                        },
                        "style": "form",
                        "explode": false
                    }
                ]
            }
        },
        "/webhook.log.get/{id}": {
            "get": {
                "operationId": "api_webhook.log.get_id_get",
                "tags": [
                    "Webhook"
                ],
                "responses": {
                    "200": {
                        "description": "The requested webhook log",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Webhook.Log-webhook.log.get"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "404": {
                        "description": "Not found",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "NotFound": {
                                        "$ref": "#/components/examples/NotFound"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "View a specific webhook log",
                "description": "Returns a particular webhook log",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Webhook Log identifier",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ]
            }
        },
        "/webhook.log.list": {
            "get": {
                "operationId": "api_webhook.log.list_get_collection",
                "tags": [
                    "Webhook"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook log collection",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "metadata": {
                                            "$ref": "#/components/schemas/CollectionMetadata"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Webhook.Log-webhook.log.list"
                                            }
                                        }
                                    },
                                    "required": [
                                        "metadata",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "List webhook logs",
                "description": "Returns a list of available webhook logs. This endpoint uses offset pagination. When results are ordered newest first, logs created while paging shift subsequent offsets, so a multi-page traversal can contain duplicate or missing entries. Restart at page 1 to refresh the results.",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "The collection page number",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "itemsPerPage",
                        "in": "query",
                        "description": "The number of items per page",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "integer",
                            "default": 30,
                            "minimum": 0,
                            "maximum": 30
                        },
                        "style": "form",
                        "explode": true
                    },
                    {
                        "name": "order[createdAt]",
                        "in": "query",
                        "description": "",
                        "required": false,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "default": "asc",
                            "enum": [
                                "asc",
                                "desc"
                            ]
                        },
                        "style": "form",
                        "explode": false
                    }
                ]
            }
        },
        "/webhook.reorder": {
            "post": {
                "operationId": "api_webhook.reorder_post",
                "tags": [
                    "Webhook"
                ],
                "responses": {
                    "200": {
                        "description": "The full list of webhooks, in their new order",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Webhook-webhook.read"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "400": {
                        "description": "Invalid input",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "BadRequest": {
                                        "$ref": "#/components/examples/BadRequest"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "422": {
                        "description": "An error occurred",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConstraintViolation"
                                },
                                "examples": {
                                    "UnprocessableEntity": {
                                        "$ref": "#/components/examples/UnprocessableEntity"
                                    },
                                    "UnprocessableEntityDomainRule": {
                                        "$ref": "#/components/examples/UnprocessableEntityDomainRule"
                                    }
                                }
                            }
                        },
                        "links": {}
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                },
                                "examples": {
                                    "Forbidden": {
                                        "$ref": "#/components/examples/Forbidden"
                                    }
                                }
                            }
                        },
                        "links": {}
                    }
                },
                "summary": "Reorder webhooks",
                "description": "Updates the sort order of webhooks",
                "parameters": [],
                "requestBody": {
                    "description": "The new Webhook resource",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.ReorderWebhooks"
                            }
                        }
                    },
                    "required": true
                }
            }
        }
    },
    "components": {
        "schemas": {
            "CollectionMetadata": {
                "type": "object",
                "properties": {
                    "pagination": {
                        "type": "object",
                        "properties": {
                            "totalItems": {
                                "type": "integer"
                            },
                            "paginated": {
                                "type": "boolean"
                            },
                            "itemsPerPage": {
                                "type": "integer"
                            },
                            "currentPage": {
                                "type": "integer"
                            },
                            "lastPage": {
                                "type": "integer"
                            }
                        },
                        "required": [
                            "totalItems",
                            "paginated",
                            "itemsPerPage",
                            "currentPage",
                            "lastPage"
                        ]
                    }
                },
                "required": [
                    "pagination"
                ]
            },
            "ConstraintViolation": {
                "type": "object",
                "description": "The request was understood but rejected. A failed input validation lists what to correct in \"violations\"; a request rejected by a domain rule explains why in \"detail\" and carries no \"violations\" at all.",
                "properties": {
                    "status": {
                        "default": 422,
                        "type": "integer"
                    },
                    "violations": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "propertyPath": {
                                    "type": "string",
                                    "description": "The property path of the violation"
                                },
                                "message": {
                                    "type": "string",
                                    "description": "The message associated with the violation"
                                },
                                "code": {
                                    "type": "string",
                                    "description": "The code of the violation"
                                },
                                "hint": {
                                    "type": "string",
                                    "description": "An extra hint to understand the violation"
                                },
                                "payload": {
                                    "type": "object",
                                    "additionalProperties": true,
                                    "description": "The serialized payload of the violation"
                                }
                            },
                            "required": [
                                "propertyPath",
                                "message"
                            ]
                        }
                    },
                    "detail": {
                        "readOnly": true,
                        "type": "string"
                    },
                    "type": {
                        "readOnly": true,
                        "type": "string"
                    },
                    "title": {
                        "readOnly": true,
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "instance": {
                        "readOnly": true,
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                }
            },
            "CostType": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "readOnly": true,
                        "example": "itemtype:a1b2c3d4"
                    },
                    "unit": {
                        "type": [
                            "null",
                            "string"
                        ],
                        "readOnly": true,
                        "example": "liter"
                    },
                    "name": {
                        "type": "string",
                        "readOnly": true,
                        "example": "Travel costs"
                    },
                    "purchasePrice": {
                        "readOnly": true,
                        "$ref": "#/components/schemas/Money"
                    },
                    "sellingPrice": {
                        "readOnly": true,
                        "$ref": "#/components/schemas/Money"
                    },
                    "usePricePerUnit": {
                        "readOnly": true,
                        "example": true,
                        "type": "boolean"
                    },
                    "isBlocked": {
                        "readOnly": true,
                        "example": false,
                        "type": "boolean"
                    }
                }
            },
            "Country": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "example": "country:9a56d2"
                    },
                    "name": {
                        "example": "Nederland",
                        "type": "string"
                    },
                    "countryCode": {
                        "example": "NL",
                        "type": "string"
                    },
                    "languageCode": {
                        "example": "nl",
                        "type": "string"
                    }
                }
            },
            "DefaultServiceEntity": {
                "type": "object",
                "properties": {
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "explanation": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "isBlocked": {
                        "type": "boolean"
                    },
                    "canRegisterHours": {
                        "type": "boolean"
                    },
                    "canRegisterCosts": {
                        "type": "boolean"
                    },
                    "id": {
                        "type": "string",
                        "readOnly": true
                    },
                    "invoicePrice": {
                        "readOnly": true,
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Money"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "invoiceMethod": {
                        "readOnly": true,
                        "type": [
                            "string",
                            "null"
                        ],
                        "enum": [
                            "fixed_price",
                            "time_and_expenses",
                            "subscription",
                            null
                        ]
                    },
                    "isPlannable": {
                        "readOnly": true,
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "revenueGroup": {
                        "readOnly": true,
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/RevenueGroup"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "vatCode": {
                        "readOnly": true,
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/VatCode"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "hourTypes": {
                        "readOnly": true,
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Service.DefaultService.HourType"
                        }
                    },
                    "costTypes": {
                        "readOnly": true,
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Service.DefaultService.CostType"
                        }
                    },
                    "defaultPrices": {
                        "readOnly": true,
                        "$ref": "#/components/schemas/DefaultServicePrices"
                    },
                    "isAcquisitionService": {
                        "readOnly": true,
                        "type": "boolean"
                    }
                }
            },
            "DefaultServicePrices": {
                "type": "object",
                "properties": {
                    "fixedPrice": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Money"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "subscription": {
                        "$ref": "#/components/schemas/DefaultServiceSubscriptionPrices"
                    },
                    "isPriceLocked": {
                        "example": false,
                        "type": "boolean"
                    }
                }
            },
            "DefaultServiceSubscriptionPrices": {
                "type": "object",
                "properties": {
                    "monthly": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Money"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "quarterly": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Money"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "halfYearly": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Money"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "yearly": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Money"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                }
            },
            "Error": {
                "type": "object",
                "description": "A representation of common errors.",
                "properties": {
                    "title": {
                        "readOnly": true,
                        "description": "A short, human-readable summary of the problem.",
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "detail": {
                        "readOnly": true,
                        "description": "A human-readable explanation specific to this occurrence of the problem.",
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "instance": {
                        "readOnly": true,
                        "description": "A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.",
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "type": {
                        "readOnly": true,
                        "description": "A URI reference that identifies the problem type",
                        "type": "string"
                    }
                }
            },
            "HourType": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "readOnly": true,
                        "example": "itemtype:a1b2c3d4"
                    },
                    "name": {
                        "type": "string",
                        "readOnly": true,
                        "example": "Consultancy"
                    },
                    "hourlyRate": {
                        "readOnly": true,
                        "$ref": "#/components/schemas/Money"
                    },
                    "isBlocked": {
                        "readOnly": true,
                        "example": false,
                        "type": "boolean"
                    }
                }
            },
            "IdCollection": {
                "type": "object",
                "properties": {
                    "entityType": {
                        "description": "Type of the listed IDS",
                        "example": "service",
                        "type": "string"
                    },
                    "ids": {
                        "description": "A list of identifiers. Contains the type and a list of IDs belonging to that type.",
                        "example": [
                            "service:abc123",
                            "service:def456",
                            "service:abc789"
                        ],
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "InternalCostType": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "defaultCostType": {
                        "$ref": "#/components/schemas/CostType"
                    },
                    "description": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "purchasePrice": {
                        "$ref": "#/components/schemas/Money"
                    },
                    "quantity": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "hasRegistrations": {
                        "type": "boolean"
                    },
                    "sortOrder": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                }
            },
            "InternalCostTypeInput": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "defaultCostTypeId": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "purchasePrice": {
                        "$ref": "#/components/schemas/Money"
                    },
                    "quantity": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "sortOrder": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                }
            },
            "InternalCostsRegistrationConfiguration": {
                "type": "object",
                "properties": {
                    "costTypes": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/InternalCostType"
                        }
                    },
                    "canRegisterCosts": {
                        "type": "boolean"
                    },
                    "registrationEndDate": {
                        "format": "date",
                        "type": [
                            "null",
                            "string"
                        ]
                    }
                }
            },
            "InternalCostsRegistrationConfigurationInput": {
                "type": "object",
                "properties": {
                    "costTypes": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/InternalCostTypeInput"
                        }
                    },
                    "canRegisterCosts": {
                        "type": "boolean"
                    },
                    "registrationEndDate": {
                        "format": "date",
                        "type": [
                            "null",
                            "string"
                        ]
                    }
                }
            },
            "InternalHourType": {
                "type": "object",
                "properties": {
                    "defaultHourType": {
                        "$ref": "#/components/schemas/HourType"
                    },
                    "amountOfHours": {
                        "type": "number"
                    },
                    "hasRegistrations": {
                        "type": "boolean"
                    },
                    "sortOrder": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "id": {
                        "type": "string",
                        "readOnly": true
                    }
                }
            },
            "InternalHourTypeInput": {
                "type": "object",
                "properties": {
                    "defaultHourTypeId": {
                        "type": "string"
                    },
                    "amountOfHours": {
                        "type": "number"
                    },
                    "sortOrder": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "id": {
                        "type": "string",
                        "readOnly": true
                    }
                }
            },
            "InternalHoursRegistrationConfiguration": {
                "type": "object",
                "properties": {
                    "hourTypes": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/InternalHourType"
                        }
                    },
                    "canRegisterHours": {
                        "type": "boolean"
                    }
                }
            },
            "InternalHoursRegistrationConfigurationInput": {
                "type": "object",
                "properties": {
                    "hourTypes": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/InternalHourTypeInput"
                        }
                    },
                    "canRegisterHours": {
                        "type": "boolean"
                    }
                }
            },
            "Invoice.Draft.Request.Status": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "queued",
                            "pending",
                            "processing",
                            "done",
                            "partial_failed",
                            "failed"
                        ]
                    },
                    "statusDescription": {
                        "type": "string"
                    },
                    "total": {
                        "type": "integer"
                    },
                    "completed": {
                        "type": "integer"
                    },
                    "failedCount": {
                        "type": "integer"
                    },
                    "invoiceCount": {
                        "type": "integer"
                    }
                }
            },
            "InvoiceMethods": {
                "type": "object",
                "properties": {
                    "invoiceMethods": {
                        "example": [
                            "fixed_price",
                            "time_and_expenses",
                            "subscription"
                        ],
                        "type": "array",
                        "items": {
                            "type": "string",
                            "enum": [
                                "fixed_price",
                                "time_and_expenses",
                                "subscription"
                            ]
                        }
                    }
                }
            },
            "InvoicePrice": {
                "type": "object",
                "properties": {
                    "quantity": {
                        "type": "number"
                    },
                    "price": {
                        "$ref": "#/components/schemas/Money"
                    },
                    "isEditable": {
                        "type": "boolean"
                    },
                    "totalPrice": {
                        "readOnly": true,
                        "$ref": "#/components/schemas/Money"
                    }
                }
            },
            "Money": {
                "type": "object",
                "properties": {
                    "amount": {
                        "format": "numeric",
                        "example": "95.00",
                        "type": "string"
                    },
                    "currency": {
                        "example": "EUR",
                        "type": "string",
                        "enum": [
                            "EUR",
                            "GBP",
                            "USD",
                            "HUF",
                            "INR",
                            "THB",
                            "ZAR",
                            "NGN",
                            "RUB",
                            "ANG",
                            "AUD"
                        ]
                    }
                }
            },
            "Planning": {
                "type": "object",
                "properties": {
                    "useInResourcePlanner": {
                        "type": "boolean"
                    },
                    "expectedStartDate": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "expectedEndDate": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                }
            },
            "Project.AcquisitionService": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "projectId": {
                        "type": "string"
                    },
                    "defaultServiceId": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "explanation": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "invoiceMethod": {
                        "type": "string",
                        "enum": [
                            "fixed_price",
                            "time_and_expenses",
                            "subscription"
                        ]
                    },
                    "timeFrame": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.TimeFrame"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "registrationTimeFrame": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.RegistrationTimeFrame"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "revenueGroupId": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "vatCodeId": {
                        "type": "string"
                    },
                    "hoursRegistrationConfiguration": {
                        "$ref": "#/components/schemas/Project.HoursRegistrationConfiguration"
                    },
                    "costsRegistrationConfiguration": {
                        "$ref": "#/components/schemas/Service.CostsRegistrationConfiguration"
                    },
                    "currency": {
                        "type": "string",
                        "enum": [
                            "EUR",
                            "GBP",
                            "USD",
                            "HUF",
                            "INR",
                            "THB",
                            "ZAR",
                            "NGN",
                            "RUB",
                            "ANG",
                            "AUD"
                        ]
                    },
                    "isPlannable": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "isInternal": {
                        "readOnly": true,
                        "type": "boolean"
                    },
                    "progress": {
                        "readOnly": true,
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "projectServiceType": {
                        "readOnly": true,
                        "type": "string",
                        "enum": [
                            "InternalProjectService",
                            "InvoiceableProjectService",
                            "AdvanceProjectService",
                            "AcquisitionProjectService"
                        ]
                    }
                }
            },
            "Project.AdvanceService": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "projectId": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "explanation": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "invoicePrice": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/InvoicePrice"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "invoiceableFrom": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.InvoiceableFrom"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "revenueGroupId": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "vatCodeId": {
                        "type": "string"
                    },
                    "invoiceInInstallments": {
                        "type": "boolean"
                    },
                    "hasInstallmentPlan": {
                        "type": "boolean"
                    },
                    "currency": {
                        "type": "string",
                        "enum": [
                            "EUR",
                            "GBP",
                            "USD",
                            "HUF",
                            "INR",
                            "THB",
                            "ZAR",
                            "NGN",
                            "RUB",
                            "ANG",
                            "AUD"
                        ]
                    },
                    "isInternal": {
                        "readOnly": true,
                        "type": "boolean"
                    },
                    "projectServiceType": {
                        "readOnly": true,
                        "type": "string",
                        "enum": [
                            "InternalProjectService",
                            "InvoiceableProjectService",
                            "AdvanceProjectService",
                            "AcquisitionProjectService"
                        ]
                    },
                    "progress": {
                        "readOnly": true,
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "existsOnInvoice": {
                        "readOnly": true,
                        "type": "boolean"
                    }
                }
            },
            "Project.BuiltService": {
                "type": "object",
                "properties": {
                    "defaultService": {
                        "$ref": "#/components/schemas/DefaultServiceEntity"
                    },
                    "description": {
                        "type": "string"
                    },
                    "explanation": {
                        "type": "string"
                    },
                    "invoicePrice": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Money"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "invoiceMethod": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "enum": [
                            "fixed_price",
                            "time_and_expenses",
                            "subscription",
                            null
                        ]
                    },
                    "revenueGroup": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/RevenueGroup"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "vatCode": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/VatCode"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "useEmployeeHourlyRate": {
                        "type": "boolean"
                    },
                    "hoursRegistrationConfiguration": {
                        "$ref": "#/components/schemas/Project.HoursRegistrationConfiguration"
                    },
                    "costsRegistrationConfiguration": {
                        "$ref": "#/components/schemas/Service.CostsRegistrationConfiguration"
                    },
                    "isPlannable": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    }
                }
            },
            "Project.CostsRegistrationConfigurationInput": {
                "type": "object",
                "properties": {
                    "costTypes": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Project.ProjectServiceCostTypeInput"
                        }
                    },
                    "registrationEndDate": {
                        "format": "date",
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "canRegisterCosts": {
                        "type": "boolean"
                    }
                }
            },
            "Project.EmployeeHourlyRate": {
                "type": "object",
                "properties": {
                    "employeeId": {
                        "type": "string"
                    },
                    "hourlyRate": {
                        "$ref": "#/components/schemas/Money"
                    }
                }
            },
            "Project.EmployeeRateAgreement": {
                "type": "object",
                "properties": {
                    "employeeId": {
                        "type": "string"
                    },
                    "hourlyRate": {
                        "$ref": "#/components/schemas/Money"
                    }
                }
            },
            "Project.HourTypeRateAgreement": {
                "type": "object",
                "properties": {
                    "hourTypeId": {
                        "type": "string"
                    },
                    "hourlyRate": {
                        "$ref": "#/components/schemas/Money"
                    }
                }
            },
            "Project.HoursRegistrationConfiguration": {
                "type": "object",
                "properties": {
                    "employeeHourlyRates": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Project.EmployeeHourlyRate"
                        }
                    },
                    "employeeRateAgreements": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Project.EmployeeRateAgreement"
                        }
                    },
                    "hourTypeRateAgreements": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Project.HourTypeRateAgreement"
                        }
                    },
                    "hourTypeTotals": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Service.HourTypeTotals"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "hourTypes": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Service.HourType"
                        }
                    },
                    "canRegisterHours": {
                        "type": "boolean"
                    }
                }
            },
            "Project.HoursRegistrationConfigurationInput": {
                "type": "object",
                "properties": {
                    "hourTypes": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Project.ProjectServiceHourTypeInput"
                        }
                    },
                    "employeeHourlyRates": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Project.EmployeeHourlyRate"
                        }
                    },
                    "specifiedTotal": {
                        "$ref": "#/components/schemas/Money"
                    },
                    "canRegisterHours": {
                        "type": "boolean"
                    }
                }
            },
            "Project.InternalService": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "projectId": {
                        "type": "string"
                    },
                    "defaultServiceId": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "explanation": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "timeFrame": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.TimeFrame"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "hoursRegistrationConfiguration": {
                        "$ref": "#/components/schemas/InternalHoursRegistrationConfiguration"
                    },
                    "costsRegistrationConfiguration": {
                        "$ref": "#/components/schemas/InternalCostsRegistrationConfiguration"
                    },
                    "isPlannable": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "hasAssignments": {
                        "type": "boolean"
                    },
                    "projectServiceNumber": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "progress": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "isInternal": {
                        "readOnly": true,
                        "type": "boolean"
                    },
                    "projectServiceType": {
                        "readOnly": true,
                        "type": "string",
                        "enum": [
                            "InternalProjectService",
                            "InvoiceableProjectService",
                            "AdvanceProjectService",
                            "AcquisitionProjectService"
                        ]
                    }
                }
            },
            "Project.InvoiceableFrom": {
                "type": "object",
                "properties": {
                    "value": {
                        "format": "date",
                        "type": "string"
                    }
                }
            },
            "Project.InvoiceableService": {
                "type": "object",
                "properties": {
                    "projectId": {
                        "type": "string"
                    },
                    "invoiceableFrom": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.InvoiceableFrom"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "invoiceTogetherWith": {
                        "type": [
                            "null",
                            "string"
                        ],
                        "description": "Only available if invoiceMethod is set to subscription"
                    },
                    "timeFrame": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.TimeFrame"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "registrationTimeFrame": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.RegistrationTimeFrame"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "revenueGroupId": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "invoicedUntil": {
                        "format": "date",
                        "type": [
                            "null",
                            "string"
                        ],
                        "description": "End date of last invoiced Subscription invoice cycle"
                    },
                    "invoiceInInstallments": {
                        "type": "boolean"
                    },
                    "isPlannable": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "hasAssignments": {
                        "type": "boolean"
                    },
                    "hasInstallmentPlan": {
                        "type": "boolean"
                    },
                    "divergentClientRelationId": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "projectServiceNumber": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "progress": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "id": {
                        "type": "string"
                    },
                    "defaultServiceId": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "explanation": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "invoiceMethod": {
                        "type": "string",
                        "enum": [
                            "fixed_price",
                            "time_and_expenses",
                            "subscription"
                        ]
                    },
                    "subscriptionCycle": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "enum": [
                            "monthly",
                            "quarterly",
                            "halfYearly",
                            "yearly",
                            null
                        ]
                    },
                    "invoicePrice": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/InvoicePrice"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "vatCodeId": {
                        "type": "string"
                    },
                    "hoursRegistrationConfiguration": {
                        "$ref": "#/components/schemas/Project.HoursRegistrationConfiguration"
                    },
                    "costsRegistrationConfiguration": {
                        "$ref": "#/components/schemas/Service.CostsRegistrationConfiguration"
                    },
                    "isInternal": {
                        "readOnly": true,
                        "type": "boolean"
                    },
                    "existsOnInvoice": {
                        "readOnly": true,
                        "type": "boolean"
                    },
                    "projectServiceType": {
                        "readOnly": true,
                        "type": "string",
                        "enum": [
                            "InternalProjectService",
                            "InvoiceableProjectService",
                            "AdvanceProjectService",
                            "AcquisitionProjectService"
                        ]
                    }
                }
            },
            "Project.ProjectOutput": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "useEmployeeHourlyRate": {
                        "type": "boolean"
                    },
                    "employeeHourlyRates": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Project.EmployeeHourlyRate"
                        }
                    },
                    "employeeRateAgreements": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Project.EmployeeRateAgreement"
                        }
                    },
                    "hourTypeRateAgreements": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Project.HourTypeRateAgreement"
                        }
                    },
                    "isInternal": {
                        "type": "boolean"
                    },
                    "relation": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/ProjectRelationOutput"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "isReverseBilling": {
                        "type": "boolean"
                    }
                }
            },
            "Project.ProjectServiceCostTypeInput": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "defaultCostTypeId": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "purchasePrice": {
                        "$ref": "#/components/schemas/Money"
                    },
                    "sellingPrice": {
                        "$ref": "#/components/schemas/Money"
                    },
                    "quantity": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "isInvoiceable": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "sortOrder": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                }
            },
            "Project.ProjectServiceHourTypeInput": {
                "type": "object",
                "properties": {
                    "defaultHourTypeId": {
                        "type": "string"
                    },
                    "hourlyRate": {
                        "$ref": "#/components/schemas/Money"
                    },
                    "amountOfHours": {
                        "minimum": 0,
                        "type": "number"
                    },
                    "isInvoiceable": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "sortOrder": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "total": {
                        "readOnly": true,
                        "$ref": "#/components/schemas/Money"
                    },
                    "id": {
                        "type": "string",
                        "readOnly": true
                    }
                }
            },
            "Project.RegistrationTimeFrame": {
                "type": "object",
                "properties": {
                    "startDate": {
                        "format": "date",
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "endDate": {
                        "format": "date",
                        "type": [
                            "null",
                            "string"
                        ]
                    }
                }
            },
            "Project.Service": {
                "type": "object"
            },
            "Project.Service.AdvanceServiceConfiguration": {
                "type": "object",
                "properties": {
                    "vatCode": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/VatCode"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "revenueGroup": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/RevenueGroup"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                }
            },
            "Project.Service.BuildProjectAcquisitionService": {
                "type": "object",
                "required": [
                    "projectId"
                ],
                "properties": {
                    "projectId": {
                        "type": "string",
                        "example": "project:7b00877f39d7c722"
                    }
                }
            },
            "Project.Service.BuildProjectService": {
                "type": "object",
                "properties": {
                    "defaultServiceId": {
                        "type": "string"
                    },
                    "projectId": {
                        "type": "string"
                    }
                }
            },
            "Project.Service.CreateAcquisitionProjectService": {
                "type": "object",
                "required": [
                    "projectId",
                    "description",
                    "revenueGroupId",
                    "vatCodeId"
                ],
                "properties": {
                    "projectId": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "explanation": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "timeFrame": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.TimeFrame"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "registrationTimeFrame": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.RegistrationTimeFrame"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "revenueGroupId": {
                        "type": "string"
                    },
                    "vatCodeId": {
                        "type": "string"
                    },
                    "hoursRegistrationConfigurationInput": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.HoursRegistrationConfigurationInput"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "costsRegistrationConfigurationInput": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.CostsRegistrationConfigurationInput"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "isPlannable": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    }
                }
            },
            "Project.Service.CreateAdvanceProjectService": {
                "type": "object",
                "required": [
                    "projectId",
                    "description",
                    "revenueGroupId",
                    "vatCodeId"
                ],
                "properties": {
                    "projectId": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "explanation": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "invoicePrice": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/InvoicePrice"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "invoiceableFrom": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.InvoiceableFrom"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "revenueGroupId": {
                        "type": "string"
                    },
                    "vatCodeId": {
                        "type": "string"
                    },
                    "invoiceInInstallments": {
                        "type": "boolean"
                    }
                }
            },
            "Project.Service.CreateInternalProjectService": {
                "type": "object",
                "required": [
                    "projectId",
                    "defaultServiceId",
                    "description"
                ],
                "properties": {
                    "projectId": {
                        "type": "string"
                    },
                    "defaultServiceId": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "explanation": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "timeFrame": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.TimeFrame"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "hoursRegistrationConfiguration": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/InternalHoursRegistrationConfigurationInput"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "costsRegistrationConfiguration": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/InternalCostsRegistrationConfigurationInput"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "isPlannable": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "progress": {
                        "minimum": 0,
                        "maximum": 100,
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                }
            },
            "Project.Service.CreateProjectService": {
                "type": "object",
                "required": [
                    "projectId",
                    "defaultServiceId",
                    "description",
                    "invoiceMethod",
                    "revenueGroupId",
                    "vatCodeId"
                ],
                "properties": {
                    "projectId": {
                        "type": "string"
                    },
                    "defaultServiceId": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "explanation": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "invoicePrice": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/InvoicePrice"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "invoiceMethod": {
                        "enum": [
                            "fixed_price",
                            "time_and_expenses",
                            "subscription"
                        ],
                        "type": "string"
                    },
                    "subscriptionCycle": {
                        "enum": [
                            "monthly",
                            "quarterly",
                            "halfYearly",
                            "yearly"
                        ],
                        "description": "Required when invoiceMethod is set to subscription",
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "invoiceableFrom": {
                        "description": "Only available if invoiceMethod is set to fixed_price",
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.InvoiceableFrom"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "invoiceTogetherWith": {
                        "type": [
                            "null",
                            "string"
                        ],
                        "description": "Only available if invoiceMethod is set to subscription"
                    },
                    "timeFrame": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.TimeFrame"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "registrationTimeFrame": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.RegistrationTimeFrame"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "revenueGroupId": {
                        "type": "string"
                    },
                    "vatCodeId": {
                        "type": "string"
                    },
                    "hoursRegistrationConfiguration": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.HoursRegistrationConfigurationInput"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "costsRegistrationConfiguration": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.CostsRegistrationConfigurationInput"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "isPlannable": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "divergentClientRelationId": {
                        "type": [
                            "null",
                            "string"
                        ],
                        "description": "Can only be set when divergent client per service is activated"
                    },
                    "invoiceInInstallments": {
                        "description": "Only available if invoiceMethod is set to fixed_price",
                        "type": "boolean"
                    },
                    "progress": {
                        "minimum": 0,
                        "maximum": 100,
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                }
            },
            "Project.Service.EditAcquisitionProjectService": {
                "type": "object",
                "required": [
                    "id",
                    "description",
                    "revenueGroupId",
                    "vatCodeId"
                ],
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "explanation": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "timeFrame": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.TimeFrame"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "registrationTimeFrame": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.RegistrationTimeFrame"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "revenueGroupId": {
                        "type": "string"
                    },
                    "vatCodeId": {
                        "type": "string"
                    },
                    "hoursRegistrationConfiguration": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.HoursRegistrationConfigurationInput"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "costsRegistrationConfiguration": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.CostsRegistrationConfigurationInput"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "isPlannable": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    }
                }
            },
            "Project.Service.EditAdvanceProjectService": {
                "type": "object",
                "required": [
                    "id",
                    "description",
                    "revenueGroupId",
                    "vatCodeId"
                ],
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "explanation": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "invoicePrice": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/InvoicePrice"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "invoiceableFrom": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.InvoiceableFrom"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "revenueGroupId": {
                        "type": "string"
                    },
                    "vatCodeId": {
                        "type": "string"
                    },
                    "invoiceInInstallments": {
                        "type": "boolean"
                    }
                }
            },
            "Project.Service.EditInternalProjectService": {
                "type": "object",
                "required": [
                    "id",
                    "defaultServiceId",
                    "description"
                ],
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "defaultServiceId": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "explanation": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "timeFrame": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.TimeFrame"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "hoursRegistrationConfiguration": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/InternalHoursRegistrationConfigurationInput"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "costsRegistrationConfiguration": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/InternalCostsRegistrationConfigurationInput"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "isPlannable": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "progress": {
                        "minimum": 0,
                        "maximum": 100,
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                }
            },
            "Project.Service.EditProjectService": {
                "type": "object",
                "required": [
                    "id",
                    "defaultServiceId",
                    "description",
                    "revenueGroupId",
                    "vatCodeId"
                ],
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "defaultServiceId": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "explanation": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "invoicePrice": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/InvoicePrice"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "invoiceableFrom": {
                        "description": "Only available if invoiceMethod is set to fixed_price",
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.InvoiceableFrom"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "invoiceTogetherWith": {
                        "type": [
                            "null",
                            "string"
                        ],
                        "description": "Only available if invoiceMethod is set to subscription"
                    },
                    "timeFrame": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.TimeFrame"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "registrationTimeFrame": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.RegistrationTimeFrame"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "revenueGroupId": {
                        "type": "string"
                    },
                    "vatCodeId": {
                        "type": "string"
                    },
                    "hoursRegistrationConfiguration": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.HoursRegistrationConfigurationInput"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "costsRegistrationConfiguration": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Project.CostsRegistrationConfigurationInput"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "isPlannable": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "divergentClientRelationId": {
                        "type": [
                            "null",
                            "string"
                        ],
                        "description": "Can only be set when divergent client per service is activated"
                    },
                    "invoiceInInstallments": {
                        "description": "Only available if invoiceMethod is set to fixed_price",
                        "type": "boolean"
                    },
                    "progress": {
                        "minimum": 0,
                        "maximum": 100,
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                }
            },
            "Project.Service.EditProjectServiceProgress": {
                "type": "object",
                "required": [
                    "id"
                ],
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "progress": {
                        "minimum": 0,
                        "maximum": 100,
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                }
            },
            "Project.Service.ListAcquisitionProjectServices": {
                "type": "object",
                "required": [
                    "projectId"
                ],
                "properties": {
                    "projectId": {
                        "type": "string"
                    }
                }
            },
            "Project.Service.ListSubscriptionsThatCanBeInvoicedTogetherCommand": {
                "type": "object",
                "properties": {
                    "currentProjectServiceId": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "projectId": {
                        "type": "string"
                    },
                    "startDate": {
                        "format": "date",
                        "type": "string"
                    },
                    "subscriptionCycle": {
                        "enum": [
                            "monthly",
                            "quarterly",
                            "halfYearly",
                            "yearly"
                        ],
                        "type": "string"
                    },
                    "existingProjectService": {
                        "readOnly": true,
                        "type": "boolean"
                    }
                }
            },
            "Project.Service.OneOf.OneOfInternalOrInvoiceableProjectService": {
                "oneOf": [
                    {
                        "$ref": "#/components/schemas/Project.InternalService"
                    },
                    {
                        "$ref": "#/components/schemas/Project.InvoiceableService"
                    }
                ],
                "discriminator": {
                    "propertyName": "isInternal",
                    "mapping": {
                        "true": "#/components/schemas/Project.InternalService",
                        "false": "#/components/schemas/Project.InvoiceableService"
                    }
                }
            },
            "Project.Service.OneOf.OneOfProjectService": {
                "oneOf": [
                    {
                        "$ref": "#/components/schemas/Project.InternalService"
                    },
                    {
                        "$ref": "#/components/schemas/Project.InvoiceableService"
                    },
                    {
                        "$ref": "#/components/schemas/Project.AdvanceService"
                    },
                    {
                        "$ref": "#/components/schemas/Project.AcquisitionService"
                    }
                ],
                "discriminator": {
                    "propertyName": "projectServiceType",
                    "mapping": {
                        "InternalProjectService": "#/components/schemas/Project.InternalService",
                        "InvoiceableProjectService": "#/components/schemas/Project.InvoiceableService",
                        "AdvanceProjectService": "#/components/schemas/Project.AdvanceService",
                        "AcquisitionProjectService": "#/components/schemas/Project.AcquisitionService"
                    }
                }
            },
            "Project.SimpleService": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "null",
                            "string"
                        ]
                    }
                }
            },
            "Project.TimeFrame": {
                "type": "object",
                "properties": {
                    "startDate": {
                        "format": "date",
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "endDate": {
                        "format": "date",
                        "type": [
                            "null",
                            "string"
                        ]
                    }
                }
            },
            "ProjectRelationOutput": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "relationNumber": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "organization",
                            "person"
                        ]
                    },
                    "relationEntityId": {
                        "type": "string",
                        "description": "Identifier of person or organization entity depending on the type"
                    }
                },
                "required": [
                    "name"
                ]
            },
            "RelationType": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "example": "relationtype:1234567890abcdef"
                    },
                    "name": {
                        "example": "Klant",
                        "type": "string"
                    },
                    "color": {
                        "example": "#ff5500ff",
                        "type": "string"
                    },
                    "blocked": {
                        "example": false,
                        "type": "boolean"
                    },
                    "isSystemDefined": {
                        "example": false,
                        "type": "boolean"
                    }
                }
            },
            "RelationType.CreateRelationType": {
                "type": "object",
                "required": [
                    "name",
                    "color"
                ],
                "properties": {
                    "name": {
                        "maxLength": 191,
                        "example": "Klant",
                        "type": "string"
                    },
                    "color": {
                        "pattern": "^(.*(^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$).*)$",
                        "description": "Normalized by the server to a lowercase 8-digit #rrggbbaa hex value, e.g. #ff5500 is stored and returned as #ff5500ff.",
                        "example": "#ff5500",
                        "type": "string"
                    }
                }
            },
            "RelationType.DeleteRelationType": {
                "type": "object",
                "required": [
                    "relationTypeId"
                ],
                "properties": {
                    "relationTypeId": {
                        "example": "relationtype:1234567890abcdef",
                        "type": "string"
                    }
                }
            },
            "RelationType.SetDefaultRelationType": {
                "type": "object",
                "properties": {
                    "relationTypeId": {
                        "example": "relationtype:1234567890abcdef",
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                }
            },
            "RelationType.UpdateRelationType": {
                "type": "object",
                "required": [
                    "relationTypeId"
                ],
                "properties": {
                    "relationTypeId": {
                        "example": "relationtype:1234567890abcdef",
                        "type": "string"
                    },
                    "name": {
                        "minLength": 1,
                        "maxLength": 191,
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "color": {
                        "pattern": "^(.*(^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$).*)$",
                        "example": "#ff5500",
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                }
            },
            "RevenueGroup": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "readOnly": true,
                        "example": "revenuegroup:a1b2c3d4"
                    },
                    "name": {
                        "type": "string",
                        "readOnly": true,
                        "example": "Algemeen"
                    },
                    "isBlocked": {
                        "readOnly": true,
                        "example": false,
                        "type": "boolean"
                    }
                }
            },
            "Sale": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "currency": {
                        "type": "string",
                        "enum": [
                            "EUR",
                            "GBP",
                            "USD",
                            "HUF",
                            "INR",
                            "THB",
                            "ZAR",
                            "NGN",
                            "RUB",
                            "ANG",
                            "AUD"
                        ]
                    },
                    "ungroupedServices": {
                        "$ref": "#/components/schemas/UngroupedServicesOutput"
                    },
                    "groupedServices": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Sale.ServiceGroup"
                        }
                    },
                    "quotes": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/SimpleQuote"
                        }
                    },
                    "planning": {
                        "$ref": "#/components/schemas/Planning"
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "open",
                            "accepted",
                            "declined"
                        ]
                    },
                    "relation": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Sale.Relation.Organization"
                            },
                            {
                                "$ref": "#/components/schemas/Sale.Relation.Person"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                }
            },
            "Sale.Relation.Organization": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string"
                    }
                }
            },
            "Sale.Relation.Person": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string"
                    }
                }
            },
            "Sale.Service": {
                "type": "object",
                "properties": {
                    "revenueGroupId": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "totalPrice": {
                        "$ref": "#/components/schemas/Money"
                    },
                    "id": {
                        "type": "string"
                    },
                    "defaultServiceId": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "explanation": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "invoiceMethod": {
                        "type": "string",
                        "enum": [
                            "fixed_price",
                            "time_and_expenses",
                            "subscription"
                        ]
                    },
                    "subscriptionCycle": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "enum": [
                            "monthly",
                            "quarterly",
                            "halfYearly",
                            "yearly",
                            null
                        ]
                    },
                    "invoicePrice": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/InvoicePrice"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "vatCodeId": {
                        "type": "string"
                    },
                    "hoursRegistrationConfiguration": {
                        "$ref": "#/components/schemas/Service.HoursRegistrationConfiguration"
                    },
                    "costsRegistrationConfiguration": {
                        "$ref": "#/components/schemas/Service.CostsRegistrationConfiguration"
                    }
                }
            },
            "Sale.ServiceGroup": {
                "type": "object",
                "properties": {
                    "id": {
                        "example": "salesservicegroup:17da6f98eebd05382c3097dab9ed2347",
                        "type": "string"
                    },
                    "name": {
                        "example": "Consultancy services",
                        "type": "string"
                    },
                    "description": {
                        "example": "All consultancy related services",
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "type": {
                        "example": "all_included",
                        "type": "string",
                        "enum": [
                            "all_included",
                            "multiple_optional",
                            "single_required",
                            "single_optional"
                        ]
                    },
                    "services": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Sale.Service"
                        }
                    },
                    "totals": {
                        "$ref": "#/components/schemas/Totals"
                    }
                }
            },
            "SaleServiceGroup.AddServiceGroup": {
                "type": "object",
                "required": [
                    "saleId",
                    "name",
                    "type"
                ],
                "properties": {
                    "saleId": {
                        "example": "sales:0f379cb61288cd244c2cb8c363734064",
                        "type": "string"
                    },
                    "name": {
                        "minLength": 1,
                        "maxLength": 255,
                        "example": "Consultancy services",
                        "type": "string"
                    },
                    "description": {
                        "maxLength": 65535,
                        "example": "All consultancy related services",
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "type": {
                        "enum": [
                            "all_included",
                            "multiple_optional",
                            "single_required",
                            "single_optional"
                        ],
                        "example": "all_included",
                        "type": "string"
                    }
                }
            },
            "SaleServiceGroup.ChangeServiceGroup": {
                "type": "object",
                "required": [
                    "serviceGroupId",
                    "name",
                    "type"
                ],
                "properties": {
                    "serviceGroupId": {
                        "example": "salesservicegroup:17da6f98eebd05382c3097dab9ed2347",
                        "type": "string"
                    },
                    "name": {
                        "minLength": 1,
                        "maxLength": 255,
                        "example": "Consultancy services",
                        "type": "string"
                    },
                    "description": {
                        "maxLength": 65535,
                        "example": "All consultancy related services",
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "type": {
                        "enum": [
                            "all_included",
                            "multiple_optional",
                            "single_required",
                            "single_optional"
                        ],
                        "example": "all_included",
                        "type": "string"
                    }
                }
            },
            "SaleServiceGroup.ChangeServiceTree": {
                "type": "object",
                "required": [
                    "saleId",
                    "serviceGroupStructure"
                ],
                "properties": {
                    "saleId": {
                        "example": "sales:0f379cb61288cd244c2cb8c363734064",
                        "type": "string"
                    },
                    "serviceGroupStructure": {
                        "$ref": "#/components/schemas/SaleServiceGroup.ServiceGroupsStructure"
                    }
                }
            },
            "SaleServiceGroup.DeleteServiceGroup": {
                "type": "object",
                "required": [
                    "serviceGroupId"
                ],
                "properties": {
                    "serviceGroupId": {
                        "example": "salesservicegroup:17da6f98eebd05382c3097dab9ed2347",
                        "type": "string"
                    },
                    "shouldDeleteServices": {
                        "example": false,
                        "type": "boolean",
                        "default": false
                    }
                }
            },
            "SaleServiceGroup.ServiceGroupStructure": {
                "type": "object",
                "required": [
                    "groupId",
                    "serviceIds"
                ],
                "properties": {
                    "groupId": {
                        "example": "salesservicegroup:17da6f98eebd05382c3097dab9ed2347",
                        "type": "string"
                    },
                    "serviceIds": {
                        "example": [
                            "salesservice:17da6f98eebd05382c3097dab9ed2347"
                        ],
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "SaleServiceGroup.ServiceGroupsStructure": {
                "type": "object",
                "required": [
                    "structureForGroups",
                    "ungroupedServiceIds"
                ],
                "properties": {
                    "structureForGroups": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/SaleServiceGroup.ServiceGroupStructure"
                        }
                    },
                    "ungroupedServiceIds": {
                        "example": [
                            "salesservice:17da6f98eebd05382c3097dab9ed2347"
                        ],
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "SellingMargin": {
                "type": "object",
                "properties": {
                    "percentagePoints": {
                        "type": "number"
                    }
                }
            },
            "Service.CostType": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "defaultCostType": {
                        "$ref": "#/components/schemas/CostType"
                    },
                    "description": {
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "purchasePrice": {
                        "$ref": "#/components/schemas/Money"
                    },
                    "sellingPrice": {
                        "$ref": "#/components/schemas/Money"
                    },
                    "quantity": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "isInvoiceable": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "hasRegistrations": {
                        "type": "boolean"
                    },
                    "sortOrder": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "margin": {
                        "readOnly": true,
                        "$ref": "#/components/schemas/SellingMargin"
                    },
                    "total": {
                        "readOnly": true,
                        "$ref": "#/components/schemas/Money"
                    }
                }
            },
            "Service.CostTypeTotals": {
                "type": "object",
                "properties": {
                    "total": {
                        "$ref": "#/components/schemas/Money"
                    },
                    "budget": {
                        "$ref": "#/components/schemas/Money"
                    }
                }
            },
            "Service.CostsRegistrationConfiguration": {
                "type": "object",
                "properties": {
                    "costTypes": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Service.CostType"
                        }
                    },
                    "canRegisterCosts": {
                        "type": "boolean"
                    },
                    "registrationEndDate": {
                        "format": "date",
                        "type": [
                            "null",
                            "string"
                        ]
                    },
                    "costTypeTotals": {
                        "readOnly": true,
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Service.CostTypeTotals"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                }
            },
            "Service.DefaultService": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "example": "defaultservice:a1b2c3d4"
                    },
                    "description": {
                        "example": "Consultancy",
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "explanation": {
                        "example": "Standard hourly consultancy service",
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "isBlocked": {
                        "example": false,
                        "type": "boolean"
                    },
                    "canRegisterHours": {
                        "example": true,
                        "type": "boolean"
                    },
                    "canRegisterCosts": {
                        "example": false,
                        "type": "boolean"
                    },
                    "invoicePrice": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Money"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "invoiceMethod": {
                        "example": "time_and_expenses",
                        "type": [
                            "string",
                            "null"
                        ],
                        "enum": [
                            "fixed_price",
                            "time_and_expenses",
                            "subscription",
                            null
                        ]
                    },
                    "isPlannable": {
                        "example": true,
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "revenueGroup": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/RevenueGroup"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "vatCode": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/VatCode"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "hourTypes": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Service.DefaultService.HourType"
                        }
                    },
                    "costTypes": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Service.DefaultService.CostType"
                        }
                    },
                    "defaultPrices": {
                        "$ref": "#/components/schemas/DefaultServicePrices"
                    },
                    "isAcquisitionService": {
                        "example": false,
                        "type": "boolean"
                    }
                }
            },
            "Service.DefaultService.CostType": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "defaultCostType": {
                        "$ref": "#/components/schemas/CostType"
                    },
                    "purchasePrice": {
                        "$ref": "#/components/schemas/Money"
                    },
                    "sellingPrice": {
                        "$ref": "#/components/schemas/Money"
                    },
                    "quantity": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "margin": {
                        "readOnly": true,
                        "$ref": "#/components/schemas/SellingMargin"
                    },
                    "total": {
                        "readOnly": true,
                        "$ref": "#/components/schemas/Money"
                    }
                }
            },
            "Service.DefaultService.HourType": {
                "type": "object",
                "properties": {
                    "defaultHourType": {
                        "$ref": "#/components/schemas/HourType"
                    },
                    "hourlyRate": {
                        "$ref": "#/components/schemas/Money"
                    },
                    "amountOfHours": {
                        "type": "number"
                    },
                    "total": {
                        "readOnly": true,
                        "$ref": "#/components/schemas/Money"
                    }
                }
            },
            "Service.HourType": {
                "type": "object",
                "properties": {
                    "defaultHourType": {
                        "$ref": "#/components/schemas/HourType"
                    },
                    "hourlyRate": {
                        "$ref": "#/components/schemas/Money"
                    },
                    "amountOfHours": {
                        "type": "number"
                    },
                    "isInvoiceable": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "hasRegistrations": {
                        "type": "boolean"
                    },
                    "sortOrder": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "total": {
                        "readOnly": true,
                        "$ref": "#/components/schemas/Money"
                    },
                    "id": {
                        "type": "string",
                        "readOnly": true
                    }
                }
            },
            "Service.HourTypeTotals": {
                "type": "object",
                "properties": {
                    "calculatedTotal": {
                        "$ref": "#/components/schemas/Money"
                    },
                    "specifiedTotal": {
                        "$ref": "#/components/schemas/Money"
                    },
                    "hoursBudget": {
                        "type": "number"
                    }
                }
            },
            "Service.HoursRegistrationConfiguration": {
                "type": "object",
                "properties": {
                    "hourTypeTotals": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Service.HourTypeTotals"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "hourTypes": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Service.HourType"
                        }
                    },
                    "canRegisterHours": {
                        "type": "boolean"
                    }
                }
            },
            "Service.SimpleDefaultService": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "example": "defaultservice:a1b2c3d4"
                    },
                    "description": {
                        "example": "Consultancy",
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                }
            },
            "SimpleQuote": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "status": {
                        "type": "string"
                    },
                    "sendType": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "enum": [
                            "email_approval",
                            "email",
                            "printer",
                            null
                        ]
                    },
                    "sentAt": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                }
            },
            "SubscriptionCycles": {
                "type": "object",
                "properties": {
                    "cycleOptions": {
                        "example": [
                            "monthly",
                            "quarterly",
                            "halfYearly",
                            "yearly"
                        ],
                        "type": "array",
                        "items": {
                            "type": "string",
                            "enum": [
                                "monthly",
                                "quarterly",
                                "halfYearly",
                                "yearly"
                            ]
                        }
                    }
                }
            },
            "Totals": {
                "type": "object",
                "properties": {
                    "totalExcluding": {
                        "$ref": "#/components/schemas/Money"
                    },
                    "totalVat": {
                        "$ref": "#/components/schemas/Money"
                    },
                    "totalIncluding": {
                        "$ref": "#/components/schemas/Money"
                    },
                    "vatDivisions": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/VatDivision"
                        }
                    }
                }
            },
            "UngroupedServicesOutput": {
                "type": "object",
                "properties": {
                    "services": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Sale.Service"
                        }
                    },
                    "totals": {
                        "$ref": "#/components/schemas/Totals"
                    }
                }
            },
            "VatCode": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "readOnly": true,
                        "example": "vatclass:a1b2c3d4"
                    },
                    "name": {
                        "type": "string",
                        "readOnly": true,
                        "example": "Verkopen 21%"
                    },
                    "isBlocked": {
                        "readOnly": true,
                        "example": false,
                        "type": "boolean"
                    }
                }
            },
            "VatDivision": {
                "type": "object",
                "properties": {
                    "code": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "vatAmount": {
                        "$ref": "#/components/schemas/Money"
                    }
                }
            },
            "Webhook-webhook.read": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "format": "uuid",
                        "example": "01947e2a-1b1a-7b3e-9c3a-8f2e6a8b1c2d"
                    },
                    "name": {
                        "example": "My webhook",
                        "type": "string"
                    },
                    "actionTypes": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "type": {
                                    "type": "string"
                                },
                                "label": {
                                    "type": "string"
                                }
                            }
                        },
                        "example": [
                            {
                                "type": "sale.created",
                                "label": "Sale created"
                            }
                        ]
                    },
                    "target": {
                        "type": "string",
                        "format": "uri",
                        "example": "https://example.com/webhook"
                    },
                    "enabled": {
                        "example": true,
                        "type": "boolean"
                    },
                    "sortOrder": {
                        "example": 0,
                        "type": "integer"
                    },
                    "status": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "createdAt": {
                        "example": "2024-02-10T08:15:00+00:00",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updatedAt": {
                        "example": "2024-02-10T08:15:00+00:00",
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                }
            },
            "Webhook-webhook.read_webhook.create": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "format": "uuid",
                        "example": "01947e2a-1b1a-7b3e-9c3a-8f2e6a8b1c2d"
                    },
                    "name": {
                        "example": "My webhook",
                        "type": "string"
                    },
                    "actionTypes": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "type": {
                                    "type": "string"
                                },
                                "label": {
                                    "type": "string"
                                }
                            }
                        },
                        "example": [
                            {
                                "type": "sale.created",
                                "label": "Sale created"
                            }
                        ]
                    },
                    "target": {
                        "type": "string",
                        "format": "uri",
                        "example": "https://example.com/webhook"
                    },
                    "enabled": {
                        "example": true,
                        "type": "boolean"
                    },
                    "sortOrder": {
                        "example": 0,
                        "type": "integer"
                    },
                    "status": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "createdAt": {
                        "example": "2024-02-10T08:15:00+00:00",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updatedAt": {
                        "example": "2024-02-10T08:15:00+00:00",
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "signingSecret": {
                        "description": "Secret used to sign webhook payloads. Returned only in this create response and never retrievable afterwards, so store it now.",
                        "example": "whsec_2f1e6a8b1c2d01947e2a1b1a7b3e9c3a",
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                }
            },
            "Webhook.Action": {
                "type": "object",
                "properties": {
                    "actionType": {
                        "example": "sale.created",
                        "type": "string",
                        "enum": [
                            "absence.created",
                            "expenses.created",
                            "expenses.deleted",
                            "expenses.updated",
                            "hours.correction_created",
                            "hours.correction_deleted",
                            "hours.correction_updated",
                            "hours.created",
                            "hours.deleted",
                            "hours.updated",
                            "week.approved",
                            "week.declined",
                            "week.reopened",
                            "week.submitted",
                            "insights.updated",
                            "invoice.approved_by_customer",
                            "invoice.credited",
                            "invoice.drafts_generated",
                            "invoice.email_sent",
                            "invoice.paid",
                            "invoice.payment_received",
                            "invoice.reminder_paused",
                            "invoice.reminder_sent",
                            "invoice.resent",
                            "invoice.sent",
                            "leave.approved",
                            "leave.created",
                            "leave.declined",
                            "assignment.completed",
                            "assignment.created",
                            "assignment.deleted",
                            "assignment.updated",
                            "project.closed",
                            "project.created",
                            "project.deleted",
                            "project.end_date_reached",
                            "project_service.created",
                            "project_service.deleted",
                            "project_service.updated",
                            "project.updated",
                            "project_service_budget.hours_reached_100",
                            "project_service_budget.hours_reached_user_defined_threshold",
                            "project_service_budget.value_reached_user_defined_threshold",
                            "purchase.created",
                            "purchase.deleted",
                            "purchaseline.created",
                            "purchaseline.deleted",
                            "purchaseline.updated",
                            "purchase.updated",
                            "contactperson.created",
                            "contactperson.updated",
                            "organization.created",
                            "organization.updated",
                            "person.created",
                            "person.updated",
                            "sale.quote_approved",
                            "sale.quote_expired",
                            "sale.quote_sent",
                            "sale.accepted",
                            "sale.created",
                            "sale.declined",
                            "sale.linked_to_project",
                            "sale.progress_changed",
                            "sale.updated",
                            "subscription.created",
                            "subscription.deactivated",
                            "subscription.end_date_reached",
                            "subscription.start_date_reached",
                            "subscription.updated",
                            "workflow.comment_added",
                            "workflow.completed",
                            "workflow.created",
                            "workflow.deadline_changed",
                            "workflow.step_changed",
                            "workflow.step_deadline_changed",
                            "workflow.transferred"
                        ]
                    },
                    "label": {
                        "example": "Sale created",
                        "type": "string"
                    },
                    "group": {
                        "example": "Sale",
                        "type": "string"
                    }
                }
            },
            "Webhook.CreateWebhook": {
                "type": "object",
                "required": [
                    "name",
                    "actionTypes",
                    "target"
                ],
                "properties": {
                    "name": {
                        "maxLength": 255,
                        "example": "My webhook",
                        "type": "string"
                    },
                    "actionTypes": {
                        "minItems": 1,
                        "uniqueItems": true,
                        "example": [
                            "sale.created"
                        ],
                        "type": "array",
                        "items": {
                            "type": "string",
                            "enum": [
                                "absence.created",
                                "expenses.created",
                                "expenses.deleted",
                                "expenses.updated",
                                "hours.correction_created",
                                "hours.correction_deleted",
                                "hours.correction_updated",
                                "hours.created",
                                "hours.deleted",
                                "hours.updated",
                                "week.approved",
                                "week.declined",
                                "week.reopened",
                                "week.submitted",
                                "insights.updated",
                                "invoice.approved_by_customer",
                                "invoice.credited",
                                "invoice.drafts_generated",
                                "invoice.email_sent",
                                "invoice.paid",
                                "invoice.payment_received",
                                "invoice.reminder_paused",
                                "invoice.reminder_sent",
                                "invoice.resent",
                                "invoice.sent",
                                "leave.approved",
                                "leave.created",
                                "leave.declined",
                                "assignment.completed",
                                "assignment.created",
                                "assignment.deleted",
                                "assignment.updated",
                                "project.closed",
                                "project.created",
                                "project.deleted",
                                "project.end_date_reached",
                                "project_service.created",
                                "project_service.deleted",
                                "project_service.updated",
                                "project.updated",
                                "project_service_budget.hours_reached_100",
                                "project_service_budget.hours_reached_user_defined_threshold",
                                "project_service_budget.value_reached_user_defined_threshold",
                                "purchase.created",
                                "purchase.deleted",
                                "purchaseline.created",
                                "purchaseline.deleted",
                                "purchaseline.updated",
                                "purchase.updated",
                                "contactperson.created",
                                "contactperson.updated",
                                "organization.created",
                                "organization.updated",
                                "person.created",
                                "person.updated",
                                "sale.quote_approved",
                                "sale.quote_expired",
                                "sale.quote_sent",
                                "sale.accepted",
                                "sale.created",
                                "sale.declined",
                                "sale.linked_to_project",
                                "sale.progress_changed",
                                "sale.updated",
                                "subscription.created",
                                "subscription.deactivated",
                                "subscription.end_date_reached",
                                "subscription.start_date_reached",
                                "subscription.updated",
                                "workflow.comment_added",
                                "workflow.completed",
                                "workflow.created",
                                "workflow.deadline_changed",
                                "workflow.step_changed",
                                "workflow.step_deadline_changed",
                                "workflow.transferred"
                            ]
                        }
                    },
                    "target": {
                        "format": "uri",
                        "maxLength": 2048,
                        "description": "Must be an HTTPS URL; private, loopback, and link-local addresses are rejected.",
                        "externalDocs": {
                            "url": "https://schema.org/url"
                        },
                        "example": "https://example.com/webhook",
                        "type": "string"
                    }
                }
            },
            "Webhook.DeleteWebhook": {
                "type": "object",
                "required": [
                    "webhookId"
                ],
                "properties": {
                    "webhookId": {
                        "format": "uuid",
                        "type": "string",
                        "externalDocs": {
                            "url": "https://schema.org/identifier"
                        },
                        "example": "01947e2a-1b1a-7b3e-9c3a-8f2e6a8b1c2d"
                    }
                }
            },
            "Webhook.EditWebhook": {
                "type": "object",
                "required": [
                    "webhookId",
                    "name",
                    "actionTypes",
                    "target",
                    "enabled"
                ],
                "properties": {
                    "webhookId": {
                        "format": "uuid",
                        "type": "string",
                        "externalDocs": {
                            "url": "https://schema.org/identifier"
                        },
                        "example": "01947e2a-1b1a-7b3e-9c3a-8f2e6a8b1c2d"
                    },
                    "name": {
                        "maxLength": 255,
                        "example": "My webhook",
                        "type": "string"
                    },
                    "actionTypes": {
                        "minItems": 1,
                        "uniqueItems": true,
                        "example": [
                            "sale.created"
                        ],
                        "type": "array",
                        "items": {
                            "type": "string",
                            "enum": [
                                "absence.created",
                                "expenses.created",
                                "expenses.deleted",
                                "expenses.updated",
                                "hours.correction_created",
                                "hours.correction_deleted",
                                "hours.correction_updated",
                                "hours.created",
                                "hours.deleted",
                                "hours.updated",
                                "week.approved",
                                "week.declined",
                                "week.reopened",
                                "week.submitted",
                                "insights.updated",
                                "invoice.approved_by_customer",
                                "invoice.credited",
                                "invoice.drafts_generated",
                                "invoice.email_sent",
                                "invoice.paid",
                                "invoice.payment_received",
                                "invoice.reminder_paused",
                                "invoice.reminder_sent",
                                "invoice.resent",
                                "invoice.sent",
                                "leave.approved",
                                "leave.created",
                                "leave.declined",
                                "assignment.completed",
                                "assignment.created",
                                "assignment.deleted",
                                "assignment.updated",
                                "project.closed",
                                "project.created",
                                "project.deleted",
                                "project.end_date_reached",
                                "project_service.created",
                                "project_service.deleted",
                                "project_service.updated",
                                "project.updated",
                                "project_service_budget.hours_reached_100",
                                "project_service_budget.hours_reached_user_defined_threshold",
                                "project_service_budget.value_reached_user_defined_threshold",
                                "purchase.created",
                                "purchase.deleted",
                                "purchaseline.created",
                                "purchaseline.deleted",
                                "purchaseline.updated",
                                "purchase.updated",
                                "contactperson.created",
                                "contactperson.updated",
                                "organization.created",
                                "organization.updated",
                                "person.created",
                                "person.updated",
                                "sale.quote_approved",
                                "sale.quote_expired",
                                "sale.quote_sent",
                                "sale.accepted",
                                "sale.created",
                                "sale.declined",
                                "sale.linked_to_project",
                                "sale.progress_changed",
                                "sale.updated",
                                "subscription.created",
                                "subscription.deactivated",
                                "subscription.end_date_reached",
                                "subscription.start_date_reached",
                                "subscription.updated",
                                "workflow.comment_added",
                                "workflow.completed",
                                "workflow.created",
                                "workflow.deadline_changed",
                                "workflow.step_changed",
                                "workflow.step_deadline_changed",
                                "workflow.transferred"
                            ]
                        }
                    },
                    "target": {
                        "format": "uri",
                        "maxLength": 2048,
                        "description": "Must be an HTTPS URL; private, loopback, and link-local addresses are rejected.",
                        "externalDocs": {
                            "url": "https://schema.org/url"
                        },
                        "example": "https://example.com/webhook",
                        "type": "string"
                    },
                    "enabled": {
                        "example": true,
                        "type": "boolean"
                    }
                }
            },
            "Webhook.Log-webhook.log.get": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "format": "uuid",
                        "example": "01947e2a-1b1a-7b3e-9c3a-8f2e6a8b1c2d"
                    },
                    "actionType": {
                        "$ref": "#/components/schemas/WebhookActionType-webhook.log.get"
                    },
                    "target": {
                        "example": "https://example.com/webhook",
                        "type": "string"
                    },
                    "success": {
                        "example": true,
                        "type": "boolean"
                    },
                    "timestamp": {
                        "type": "string",
                        "description": "Formatted as Y-m-d H:i:s in UTC, without a timezone designator.",
                        "example": "2024-02-10 08:15:00"
                    },
                    "responseHeaders": {
                        "description": "['header-key' => ['header-value']]",
                        "example": {
                            "Content-Type": [
                                "application/json"
                            ]
                        },
                        "type": [
                            "object",
                            "null"
                        ],
                        "additionalProperties": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    "requestBody": {
                        "example": "{\"event\":\"sale.created\"}",
                        "type": "string"
                    },
                    "responseBody": {
                        "example": "{\"status\":\"ok\"}",
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                }
            },
            "Webhook.Log-webhook.log.list": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "format": "uuid",
                        "example": "01947e2a-1b1a-7b3e-9c3a-8f2e6a8b1c2d"
                    },
                    "actionType": {
                        "$ref": "#/components/schemas/WebhookActionType-webhook.log.list"
                    },
                    "target": {
                        "example": "https://example.com/webhook",
                        "type": "string"
                    },
                    "success": {
                        "example": true,
                        "type": "boolean"
                    },
                    "timestamp": {
                        "type": "string",
                        "description": "Formatted as Y-m-d H:i:s in UTC, without a timezone designator.",
                        "example": "2024-02-10 08:15:00"
                    }
                }
            },
            "Webhook.ReorderWebhooks": {
                "type": "object",
                "required": [
                    "order"
                ],
                "properties": {
                    "order": {
                        "uniqueItems": true,
                        "description": "Array of webhook UUIDs in desired order. Must contain all existing webhook UUIDs exactly once.",
                        "example": [
                            "550e8400-e29b-41d4-a716-446655440000",
                            "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
                            "373d85e7-daf2-4338-8da9-f0a71e67e897"
                        ],
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "WebhookActionType-webhook.log.get": {
                "type": "object",
                "properties": {
                    "type": {
                        "example": "sale.created",
                        "type": "string"
                    },
                    "label": {
                        "description": "Translated in the caller's locale; falls back to the raw action type identifier when the event is no longer registered.",
                        "example": "Sale created",
                        "type": "string"
                    }
                }
            },
            "WebhookActionType-webhook.log.list": {
                "type": "object",
                "properties": {
                    "type": {
                        "example": "sale.created",
                        "type": "string"
                    },
                    "label": {
                        "description": "Translated in the caller's locale; falls back to the raw action type identifier when the event is no longer registered.",
                        "example": "Sale created",
                        "type": "string"
                    }
                }
            },
            "Webhook.Envelope": {
                "type": "object",
                "description": "Common envelope for every outbound webhook. The `data` field varies per action.",
                "required": [
                    "id",
                    "type",
                    "created_at",
                    "data"
                ],
                "properties": {
                    "id": {
                        "type": "string",
                        "format": "uuid",
                        "description": "Identifier of the webhook subscription that emitted this event."
                    },
                    "type": {
                        "type": "string",
                        "description": "The webhook action that triggered this delivery."
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 timestamp (with timezone) at which the event was recorded."
                    }
                }
            },
            "Webhook.Absence.Created": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "absence.created"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Expenses.Created": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "expenses.created"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Expenses.Deleted": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "expenses.deleted"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Expenses.Updated": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "expenses.updated"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Hours.CorrectionCreated": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "hours.correction_created"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "hoursId": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "hoursId"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Hours.CorrectionDeleted": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "hours.correction_deleted"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "hoursId": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "hoursId"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Hours.CorrectionUpdated": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "hours.correction_updated"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "hoursId": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "hoursId"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Hours.Created": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "hours.created"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    },
                                    "amountInMinutes": {
                                        "type": "integer"
                                    },
                                    "note": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "externalUrl": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "registrationDate": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id",
                                    "amountInMinutes",
                                    "note",
                                    "externalUrl",
                                    "registrationDate"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Hours.Deleted": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "hours.deleted"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    },
                                    "externalUrl": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "id",
                                    "externalUrl"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Hours.Updated": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "hours.updated"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    },
                                    "amountInMinutes": {
                                        "type": "integer"
                                    },
                                    "note": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "externalUrl": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "registrationDate": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id",
                                    "amountInMinutes",
                                    "note",
                                    "externalUrl",
                                    "registrationDate"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Week.Approved": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "week.approved"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "employeeId": {
                                        "type": "string"
                                    },
                                    "startDate": {
                                        "type": "string"
                                    },
                                    "endDate": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "employeeId",
                                    "startDate",
                                    "endDate"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Week.Declined": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "week.declined"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "employeeId": {
                                        "type": "string"
                                    },
                                    "startDate": {
                                        "type": "string"
                                    },
                                    "endDate": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "employeeId",
                                    "startDate",
                                    "endDate"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Week.Reopened": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "week.reopened"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "employeeId": {
                                        "type": "string"
                                    },
                                    "startDate": {
                                        "type": "string"
                                    },
                                    "endDate": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "employeeId",
                                    "startDate",
                                    "endDate"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Week.Submitted": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "week.submitted"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "employeeId": {
                                        "type": "string"
                                    },
                                    "startDate": {
                                        "type": "string"
                                    },
                                    "endDate": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "employeeId",
                                    "startDate",
                                    "endDate"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Insights.Updated": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "insights.updated"
                            },
                            "data": {
                                "type": "object",
                                "properties": []
                            }
                        }
                    }
                ]
            },
            "Webhook.Invoice.ApprovedByCustomer": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "invoice.approved_by_customer"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Invoice.Credited": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "invoice.credited"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Invoice.DraftsGenerated": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "invoice.drafts_generated"
                            },
                            "data": {
                                "type": "object",
                                "properties": []
                            }
                        }
                    }
                ]
            },
            "Webhook.Invoice.EmailSent": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "invoice.email_sent"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Invoice.Paid": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "invoice.paid"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Invoice.PaymentReceived": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "invoice.payment_received"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Invoice.ReminderPaused": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "invoice.reminder_paused"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Invoice.ReminderSent": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "invoice.reminder_sent"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Invoice.Resent": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "invoice.resent"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Invoice.Sent": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "invoice.sent"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Leave.Approved": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "leave.approved"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Leave.Created": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "leave.created"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Leave.Declined": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "leave.declined"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Assignment.Completed": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "assignment.completed"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Assignment.Created": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "assignment.created"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Assignment.Deleted": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "assignment.deleted"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Assignment.Updated": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "assignment.updated"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Project.Closed": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "project.closed"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Project.Created": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "project.created"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Project.Deleted": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "project.deleted"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Project.EndDateReached": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "project.end_date_reached"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    },
                                    "date": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id",
                                    "date"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.ProjectService.Created": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "project_service.created"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.ProjectService.Deleted": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "project_service.deleted"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.ProjectService.Updated": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "project_service.updated"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Project.Updated": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "project.updated"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.ProjectServiceBudget.HoursReached100": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "project_service_budget.hours_reached_100"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.ProjectServiceBudget.HoursReachedUserDefinedThreshold": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "project_service_budget.hours_reached_user_defined_threshold"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.ProjectServiceBudget.ValueReachedUserDefinedThreshold": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "project_service_budget.value_reached_user_defined_threshold"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Purchase.Created": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "purchase.created"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Purchase.Deleted": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "purchase.deleted"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Purchaseline.Created": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "purchaseline.created"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    },
                                    "purchaseId": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id",
                                    "purchaseId"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Purchaseline.Deleted": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "purchaseline.deleted"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    },
                                    "purchaseId": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id",
                                    "purchaseId"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Purchaseline.Updated": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "purchaseline.updated"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    },
                                    "purchaseId": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id",
                                    "purchaseId"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Purchase.Updated": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "purchase.updated"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Contactperson.Created": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "contactperson.created"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Contactperson.Updated": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "contactperson.updated"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    },
                                    "organizationId": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id",
                                    "organizationId"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Organization.Created": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "organization.created"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Organization.Updated": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "organization.updated"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Person.Created": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "person.created"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Person.Updated": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "person.updated"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Sale.QuoteApproved": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "sale.quote_approved"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "saleId": {
                                        "type": "string"
                                    },
                                    "quoteId": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "saleId",
                                    "quoteId"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Sale.QuoteExpired": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "sale.quote_expired"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "saleId": {
                                        "type": "string"
                                    },
                                    "quoteId": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "saleId",
                                    "quoteId"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Sale.QuoteSent": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "sale.quote_sent"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "saleId": {
                                        "type": "string"
                                    },
                                    "quoteId": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "saleId",
                                    "quoteId"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Sale.Accepted": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "sale.accepted"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Sale.Created": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "sale.created"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Sale.Declined": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "sale.declined"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Sale.LinkedToProject": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "sale.linked_to_project"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "saleId": {
                                        "type": "string"
                                    },
                                    "projectId": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "saleId",
                                    "projectId"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Sale.ProgressChanged": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "sale.progress_changed"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Sale.Updated": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "sale.updated"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Subscription.Created": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "subscription.created"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Subscription.Deactivated": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "subscription.deactivated"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Subscription.EndDateReached": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "subscription.end_date_reached"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    },
                                    "date": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id",
                                    "date"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Subscription.StartDateReached": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "subscription.start_date_reached"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    },
                                    "date": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id",
                                    "date"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Subscription.Updated": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "subscription.updated"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Workflow.CommentAdded": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "workflow.comment_added"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Workflow.Completed": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "workflow.completed"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Workflow.Created": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "workflow.created"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Workflow.DeadlineChanged": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "workflow.deadline_changed"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Workflow.StepChanged": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "workflow.step_changed"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Workflow.StepDeadlineChanged": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "workflow.step_deadline_changed"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            },
            "Webhook.Workflow.Transferred": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Webhook.Envelope"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "const": "workflow.transferred"
                            },
                            "data": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                ]
            }
        },
        "responses": {},
        "parameters": {},
        "examples": {
            "BadRequest": {
                "value": {
                    "type": "/errors/400",
                    "title": "An error occurred",
                    "status": 400,
                    "detail": "Invalid ID format. Expected \"{type}:{id}\", got: \"not-an-id\""
                }
            },
            "Forbidden": {
                "value": {
                    "type": "/errors/403",
                    "title": "An error occurred",
                    "status": 403,
                    "detail": "Access Denied."
                }
            },
            "NotFound": {
                "value": {
                    "type": "/errors/404",
                    "title": "An error occurred",
                    "status": 404,
                    "detail": "Not Found"
                }
            },
            "Conflict": {
                "value": {
                    "type": "/errors/409",
                    "title": "An error occurred",
                    "status": 409,
                    "detail": "Maistro agent task run \"b1a7\u2026\" cannot be resumed from status \"completed\"."
                }
            },
            "UnprocessableEntity": {
                "summary": "Input validation failed",
                "value": {
                    "type": "/validation_errors/c1051bb4-d103-4f74-8988-acbcafc7fdc3",
                    "title": "An error occurred",
                    "status": 422,
                    "detail": "name: This value should not be blank.",
                    "violations": [
                        {
                            "propertyPath": "name",
                            "message": "This value should not be blank.",
                            "code": "c1051bb4-d103-4f74-8988-acbcafc7fdc3"
                        }
                    ]
                }
            },
            "InternalServerError": {
                "value": {
                    "type": "/errors/500",
                    "title": "An error occurred",
                    "status": 500,
                    "detail": "Internal Server Error"
                }
            },
            "UnprocessableEntityDomainRule": {
                "summary": "A domain rule rejected the request",
                "value": {
                    "type": "/errors/422",
                    "title": "An error occurred",
                    "status": 422,
                    "detail": "Invalid project service: invoice in installments requires invoice method fixed_price, not time_and_expenses"
                }
            }
        },
        "requestBodies": {},
        "headers": {},
        "securitySchemes": {
            "oauth": {
                "type": "oauth2",
                "description": "OAuth 2.0 authorization code Grant",
                "flows": {
                    "authorizationCode": {
                        "authorizationUrl": "/oauth/authorize",
                        "tokenUrl": "/oauth/token",
                        "scopes": {}
                    }
                }
            },
            "bearerAuth": {
                "type": "http",
                "scheme": "bearer",
                "bearerFormat": "<API-Key>:<API-secret>"
            }
        }
    },
    "security": [
        {
            "oauth": []
        },
        {
            "bearerAuth": []
        }
    ],
    "tags": [
        {
            "name": "Relation",
            "description": "Operations related to all the relations (organizations or private individuals) in the CRM module"
        },
        {
            "name": "Service",
            "description": "Operations related to configuring the service provisioning"
        },
        {
            "name": "Sale Service",
            "description": "Operations related to creating and managing sale services"
        },
        {
            "name": "Project",
            "description": "Operations related to creating and managing projects"
        },
        {
            "name": "Project Service",
            "description": "Operations related to creating and managing project services"
        },
        {
            "name": "Webhook",
            "description": "Operations related to configuring webhooks"
        }
    ],
    "webhooks": {
        "absence.created": {
            "post": {
                "operationId": "webhook_absence_created",
                "tags": [
                    "Absence"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Absence Created",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `absence.created` event occurs.\n\n**Triggered by:** a new absence registration being created for an employee.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Absence.Created"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "expenses.created": {
            "post": {
                "operationId": "webhook_expenses_created",
                "tags": [
                    "Expenses"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Expenses Created",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `expenses.created` event occurs.\n\n**Triggered by:** a new expense being created.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Expenses.Created"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "expenses.deleted": {
            "post": {
                "operationId": "webhook_expenses_deleted",
                "tags": [
                    "Expenses"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Expenses Deleted",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `expenses.deleted` event occurs.\n\n**Triggered by:** an existing expense being deleted.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Expenses.Deleted"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "expenses.updated": {
            "post": {
                "operationId": "webhook_expenses_updated",
                "tags": [
                    "Expenses"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Expenses Updated",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `expenses.updated` event occurs.\n\n**Triggered by:** an existing expense being updated.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Expenses.Updated"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "hours.correction_created": {
            "post": {
                "operationId": "webhook_hours_correction_created",
                "tags": [
                    "Hours"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Hours Correction Created",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `hours.correction_created` event occurs.\n\n**Triggered by:** a correction being registered on an hours entry.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Hours.CorrectionCreated"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "hours.correction_deleted": {
            "post": {
                "operationId": "webhook_hours_correction_deleted",
                "tags": [
                    "Hours"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Hours Correction Deleted",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `hours.correction_deleted` event occurs.\n\n**Triggered by:** a correction being removed from an hours entry.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Hours.CorrectionDeleted"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "hours.correction_updated": {
            "post": {
                "operationId": "webhook_hours_correction_updated",
                "tags": [
                    "Hours"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Hours Correction Updated",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `hours.correction_updated` event occurs.\n\n**Triggered by:** a correction being updated on an hours entry.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Hours.CorrectionUpdated"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "hours.created": {
            "post": {
                "operationId": "webhook_hours_created",
                "tags": [
                    "Hours"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Hours Created",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `hours.created` event occurs.\n\n**Triggered by:** a new hours registration being created. This covers hours on both billable and internal (non-billable) projects, as well as leave and absence registrations.\n\n**Leave and absence:** a registration that spans multiple days is recorded as one registration per day, and each of those days triggers its own event. An open-ended absence (without an end date) therefore triggers an event on every day it is registered.\n\n**Recurring series:** a single event is sent for the hours entry you created; the automatically generated occurrences do not each trigger an event. Fetch the hours entry and, when it has a `recurrence.id`, retrieve the full series via `GET /v2/hours/hours?q[recurrence.id]={id}`. Hours that share the same `recurrence.id` belong to the same series.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Hours.Created"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "hours.deleted": {
            "post": {
                "operationId": "webhook_hours_deleted",
                "tags": [
                    "Hours"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Hours Deleted",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `hours.deleted` event occurs.\n\n**Triggered by:** an existing hours registration being deleted. This covers hours on both billable and internal (non-billable) projects, as well as leave and absence registrations.\n\nThe payload carries the `externalUrl` the registration had at the moment it was deleted, so you can tell which external record it was linked to. It is `null` when the registration had no external link.\n\nThis event is always sent, including for a registration that never triggered a `hours.created` event because it was still incomplete.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Hours.Deleted"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "hours.updated": {
            "post": {
                "operationId": "webhook_hours_updated",
                "tags": [
                    "Hours"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Hours Updated",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `hours.updated` event occurs.\n\n**Triggered by:** an existing hours registration being updated. This covers hours on both billable and internal (non-billable) projects, as well as leave and absence registrations.\n\n**Recurring series:** hours that share the same `recurrence.id` on the hours API resource belong to the same series; re-fetch the series via `GET /v2/hours/hours?q[recurrence.id]={id}` to reconcile related occurrences.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Hours.Updated"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "week.approved": {
            "post": {
                "operationId": "webhook_week_approved",
                "tags": [
                    "Week"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Week Approved",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `week.approved` event occurs.\n\n**Triggered by:** a submitted week of hours being approved.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Week.Approved"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "week.declined": {
            "post": {
                "operationId": "webhook_week_declined",
                "tags": [
                    "Week"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Week Declined",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `week.declined` event occurs.\n\n**Triggered by:** a submitted week of hours being declined.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Week.Declined"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "week.reopened": {
            "post": {
                "operationId": "webhook_week_reopened",
                "tags": [
                    "Week"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Week Reopened",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `week.reopened` event occurs.\n\n**Triggered by:** an approved week of hours being reopened.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Week.Reopened"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "week.submitted": {
            "post": {
                "operationId": "webhook_week_submitted",
                "tags": [
                    "Week"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Week Submitted",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `week.submitted` event occurs.\n\n**Triggered by:** an employee submitting a week of hours for approval.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Week.Submitted"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "insights.updated": {
            "post": {
                "operationId": "webhook_insights_updated",
                "tags": [
                    "Insights"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Insights Updated",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `insights.updated` event occurs.\n\n**Triggered by:** fresh Insights data becoming available after a materialization run. Signals that the dataset can be retrieved; carries no payload data.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Insights.Updated"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "invoice.approved_by_customer": {
            "post": {
                "operationId": "webhook_invoice_approved_by_customer",
                "tags": [
                    "Invoice"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Invoice Approved By Customer",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `invoice.approved_by_customer` event occurs.\n\n**Triggered by:** an invoice being approved by the customer.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Invoice.ApprovedByCustomer"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "invoice.credited": {
            "post": {
                "operationId": "webhook_invoice_credited",
                "tags": [
                    "Invoice"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Invoice Credited",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `invoice.credited` event occurs.\n\n**Triggered by:** a credit invoice being sent, crediting the original invoice. The payload references the original (credited) invoice.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Invoice.Credited"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "invoice.drafts_generated": {
            "post": {
                "operationId": "webhook_invoice_drafts_generated",
                "tags": [
                    "Invoice"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Invoice Drafts Generated",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `invoice.drafts_generated` event occurs.\n\n**Triggered by:** an automated run that created at least one draft invoice. A refresh signal, not an event report: it carries no payload data, so retrieve the draft invoices through the invoice endpoints.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Invoice.DraftsGenerated"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "invoice.email_sent": {
            "post": {
                "operationId": "webhook_invoice_email_sent",
                "tags": [
                    "Invoice"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Invoice Email Sent",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `invoice.email_sent` event occurs.\n\n**Triggered by:** an invoice being emailed to the customer. Fires when the email is actually sent, not when it is queued, and not for payment reminders.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Invoice.EmailSent"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "invoice.paid": {
            "post": {
                "operationId": "webhook_invoice_paid",
                "tags": [
                    "Invoice"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Invoice Paid",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `invoice.paid` event occurs.\n\n**Triggered by:** an invoice becoming fully paid.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Invoice.Paid"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "invoice.payment_received": {
            "post": {
                "operationId": "webhook_invoice_payment_received",
                "tags": [
                    "Invoice"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Invoice Payment Received",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `invoice.payment_received` event occurs.\n\n**Triggered by:** a payment (which may be partial) being registered on an invoice.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Invoice.PaymentReceived"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "invoice.reminder_paused": {
            "post": {
                "operationId": "webhook_invoice_reminder_paused",
                "tags": [
                    "Invoice"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Invoice Reminder Paused",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `invoice.reminder_paused` event occurs.\n\n**Triggered by:** the payment reminders for an invoice being paused.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Invoice.ReminderPaused"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "invoice.reminder_sent": {
            "post": {
                "operationId": "webhook_invoice_reminder_sent",
                "tags": [
                    "Invoice"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Invoice Reminder Sent",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `invoice.reminder_sent` event occurs.\n\n**Triggered by:** a payment reminder for an invoice being emailed to the customer. Fires when the email is actually sent, not when it is queued.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Invoice.ReminderSent"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "invoice.resent": {
            "post": {
                "operationId": "webhook_invoice_resent",
                "tags": [
                    "Invoice"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Invoice Resent",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `invoice.resent` event occurs.\n\n**Triggered by:** an invoice that was already sent being sent again, through any channel. The first send triggers `invoice.sent` instead. Payment reminders are not resends and do not trigger this event.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Invoice.Resent"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "invoice.sent": {
            "post": {
                "operationId": "webhook_invoice_sent",
                "tags": [
                    "Invoice"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Invoice Sent",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `invoice.sent` event occurs.\n\n**Triggered by:** an invoice transitioning into a sent status.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Invoice.Sent"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "leave.approved": {
            "post": {
                "operationId": "webhook_leave_approved",
                "tags": [
                    "Leave"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Leave Approved",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `leave.approved` event occurs.\n\n**Triggered by:** a leave registration being approved.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Leave.Approved"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "leave.created": {
            "post": {
                "operationId": "webhook_leave_created",
                "tags": [
                    "Leave"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Leave Created",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `leave.created` event occurs.\n\n**Triggered by:** a leave registration being created.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Leave.Created"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "leave.declined": {
            "post": {
                "operationId": "webhook_leave_declined",
                "tags": [
                    "Leave"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Leave Declined",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `leave.declined` event occurs.\n\n**Triggered by:** a leave registration being declined.\n\nDeclining removes the leave registration, so `id` identifies a record that is no longer retrievable via the API. Treat this as a tombstone notification.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Leave.Declined"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "assignment.completed": {
            "post": {
                "operationId": "webhook_assignment_completed",
                "tags": [
                    "Assignment"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Assignment Completed",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `assignment.completed` event occurs.\n\n**Triggered by:** an assignment receiving a status that marks it as done.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Assignment.Completed"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "assignment.created": {
            "post": {
                "operationId": "webhook_assignment_created",
                "tags": [
                    "Assignment"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Assignment Created",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `assignment.created` event occurs.\n\n**Triggered by:** a new assignment being created on a project.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Assignment.Created"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "assignment.deleted": {
            "post": {
                "operationId": "webhook_assignment_deleted",
                "tags": [
                    "Assignment"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Assignment Deleted",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `assignment.deleted` event occurs.\n\n**Triggered by:** an assignment being deleted from a project.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Assignment.Deleted"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "assignment.updated": {
            "post": {
                "operationId": "webhook_assignment_updated",
                "tags": [
                    "Assignment"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Assignment Updated",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `assignment.updated` event occurs.\n\n**Triggered by:** an existing assignment being updated.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Assignment.Updated"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "project.closed": {
            "post": {
                "operationId": "webhook_project_closed",
                "tags": [
                    "Project"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Project Closed",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `project.closed` event occurs.\n\n**Triggered by:** a project status changing to closed.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Project.Closed"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "project.created": {
            "post": {
                "operationId": "webhook_project_created",
                "tags": [
                    "Project"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Project Created",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `project.created` event occurs.\n\n**Triggered by:** a new project being created and saved.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Project.Created"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "project.deleted": {
            "post": {
                "operationId": "webhook_project_deleted",
                "tags": [
                    "Project"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Project Deleted",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `project.deleted` event occurs.\n\n**Triggered by:** a project being deleted.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Project.Deleted"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "project.end_date_reached": {
            "post": {
                "operationId": "webhook_project_end_date_reached",
                "tags": [
                    "Project"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Project End Date Reached",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `project.end_date_reached` event occurs.\n\n**Triggered by:** the end date of an active project being reached, fired on that day (delayed runs may catch up for a few days). If the end date is later changed and reached again, it fires again for the new date.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Project.EndDateReached"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "project_service.created": {
            "post": {
                "operationId": "webhook_project_service_created",
                "tags": [
                    "Project Service"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Project Service Created",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `project_service.created` event occurs.\n\n**Triggered by:** a new service being created on a project.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.ProjectService.Created"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "project_service.deleted": {
            "post": {
                "operationId": "webhook_project_service_deleted",
                "tags": [
                    "Project Service"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Project Service Deleted",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `project_service.deleted` event occurs.\n\n**Triggered by:** a service line being deleted from a project.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.ProjectService.Deleted"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "project_service.updated": {
            "post": {
                "operationId": "webhook_project_service_updated",
                "tags": [
                    "Project Service"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Project Service Updated",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `project_service.updated` event occurs.\n\n**Triggered by:** an existing service on a project being updated.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.ProjectService.Updated"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "project.updated": {
            "post": {
                "operationId": "webhook_project_updated",
                "tags": [
                    "Project"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Project Updated",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `project.updated` event occurs.\n\n**Triggered by:** an existing project being updated. Fires on every change to the project, mirroring its updated_at timestamp.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Project.Updated"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "project_service_budget.hours_reached_100": {
            "post": {
                "operationId": "webhook_project_service_budget_hours_reached_100",
                "tags": [
                    "Project Service Budget"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Project Service Budget Hours Reached 100",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `project_service_budget.hours_reached_100` event occurs.\n\n**Triggered by:** the spent hours on a service reaching 100% of its budgeted hours.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.ProjectServiceBudget.HoursReached100"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "project_service_budget.hours_reached_user_defined_threshold": {
            "post": {
                "operationId": "webhook_project_service_budget_hours_reached_user_defined_threshold",
                "tags": [
                    "Project Service Budget"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Project Service Budget Hours Reached User Defined Threshold",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `project_service_budget.hours_reached_user_defined_threshold` event occurs.\n\n**Triggered by:** the spent hours on a service reaching the configured (user-defined) threshold of its budgeted hours.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.ProjectServiceBudget.HoursReachedUserDefinedThreshold"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "project_service_budget.value_reached_user_defined_threshold": {
            "post": {
                "operationId": "webhook_project_service_budget_value_reached_user_defined_threshold",
                "tags": [
                    "Project Service Budget"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Project Service Budget Value Reached User Defined Threshold",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `project_service_budget.value_reached_user_defined_threshold` event occurs.\n\n**Triggered by:** the spent value on a service reaching the configured (user-defined) threshold of its budgeted value.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.ProjectServiceBudget.ValueReachedUserDefinedThreshold"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "purchase.created": {
            "post": {
                "operationId": "webhook_purchase_created",
                "tags": [
                    "Purchase"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Purchase Created",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `purchase.created` event occurs.\n\n**Triggered by:** a new purchase being created.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Purchase.Created"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "purchase.deleted": {
            "post": {
                "operationId": "webhook_purchase_deleted",
                "tags": [
                    "Purchase"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Purchase Deleted",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `purchase.deleted` event occurs.\n\n**Triggered by:** an existing purchase being deleted.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Purchase.Deleted"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "purchaseline.created": {
            "post": {
                "operationId": "webhook_purchaseline_created",
                "tags": [
                    "Purchaseline"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Purchaseline Created",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `purchaseline.created` event occurs.\n\n**Triggered by:** a new purchase line being added to a purchase.\n\n`id` identifies the purchase line and `purchaseId` the parent purchase. Purchase lines are not yet individually retrievable via the API \u2014 fetch the parent purchase using `purchaseId` to obtain the line's current details.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Purchaseline.Created"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "purchaseline.deleted": {
            "post": {
                "operationId": "webhook_purchaseline_deleted",
                "tags": [
                    "Purchaseline"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Purchaseline Deleted",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `purchaseline.deleted` event occurs.\n\n**Triggered by:** an existing purchase line being deleted.\n\n`id` identifies the deleted purchase line and `purchaseId` the parent purchase. Purchase lines are not individually retrievable via the API \u2014 fetch the parent purchase using `purchaseId` to obtain its current state.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Purchaseline.Deleted"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "purchaseline.updated": {
            "post": {
                "operationId": "webhook_purchaseline_updated",
                "tags": [
                    "Purchaseline"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Purchaseline Updated",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `purchaseline.updated` event occurs.\n\n**Triggered by:** an existing purchase line being updated.\n\n`id` identifies the purchase line and `purchaseId` the parent purchase. Purchase lines are not yet individually retrievable via the API \u2014 fetch the parent purchase using `purchaseId` to obtain the line's current details.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Purchaseline.Updated"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "purchase.updated": {
            "post": {
                "operationId": "webhook_purchase_updated",
                "tags": [
                    "Purchase"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Purchase Updated",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `purchase.updated` event occurs.\n\n**Triggered by:** an existing purchase being updated.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Purchase.Updated"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "contactperson.created": {
            "post": {
                "operationId": "webhook_contactperson_created",
                "tags": [
                    "Contactperson"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Contactperson Created",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `contactperson.created` event occurs.\n\n**Triggered by:** a person being linked to an organization as a contact person in the CRM",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Contactperson.Created"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "contactperson.updated": {
            "post": {
                "operationId": "webhook_contactperson_updated",
                "tags": [
                    "Contactperson"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Contactperson Updated",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `contactperson.updated` event occurs.\n\n**Triggered by:** an existing contact person being saved in the CRM",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Contactperson.Updated"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "organization.created": {
            "post": {
                "operationId": "webhook_organization_created",
                "tags": [
                    "Organization"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Organization Created",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `organization.created` event occurs.\n\n**Triggered by:** a **new** organization being created.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Organization.Created"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "organization.updated": {
            "post": {
                "operationId": "webhook_organization_updated",
                "tags": [
                    "Organization"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Organization Updated",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `organization.updated` event occurs.\n\n**Triggered by:** a change to an existing organization, including its addresses, debtor details, teams, interests, custom fields and SBI codes.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Organization.Updated"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "person.created": {
            "post": {
                "operationId": "webhook_person_created",
                "tags": [
                    "Person"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Person Created",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `person.created` event occurs.\n\n**Triggered by:** a new person being created in the CRM. The row may be empty at this moment (the UI creates it before the user fills the form)",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Person.Created"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "person.updated": {
            "post": {
                "operationId": "webhook_person_updated",
                "tags": [
                    "Person"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Person Updated",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `person.updated` event occurs.\n\n**Triggered by:** an existing person being updated.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Person.Updated"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "sale.quote_approved": {
            "post": {
                "operationId": "webhook_sale_quote_approved",
                "tags": [
                    "Sale"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Sale Quote Approved",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `sale.quote_approved` event occurs.\n\n**Triggered by:** the quote's `acquisitionquotestatus_id` transitions to *approved*. In practice this happens through the digital signing flow. For quotes sent via PDF print or as an e-mail attachment the status is not set to *approved* automatically, so this event does not fire on those send methods.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Sale.QuoteApproved"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "sale.quote_expired": {
            "post": {
                "operationId": "webhook_sale_quote_expired",
                "tags": [
                    "Sale"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Sale Quote Expired",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `sale.quote_expired` event occurs.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Sale.QuoteExpired"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "sale.quote_sent": {
            "post": {
                "operationId": "webhook_sale_quote_sent",
                "tags": [
                    "Sale"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Sale Quote Sent",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `sale.quote_sent` event occurs.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Sale.QuoteSent"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "sale.accepted": {
            "post": {
                "operationId": "webhook_sale_accepted",
                "tags": [
                    "Sale"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Sale Accepted",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `sale.accepted` event occurs.\n\n**Triggered by:** the sale's `acquisitionopportunitystatus_id` transitions to *accepted*. A `sale.updated` event is also dispatched for the same change.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Sale.Accepted"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "sale.created": {
            "post": {
                "operationId": "webhook_sale_created",
                "tags": [
                    "Sale"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Sale Created",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `sale.created` event occurs.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Sale.Created"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "sale.declined": {
            "post": {
                "operationId": "webhook_sale_declined",
                "tags": [
                    "Sale"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Sale Declined",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `sale.declined` event occurs.\n\n**Triggered by:** the sale's `acquisitionopportunitystatus_id` transitions to *declined*. A `sale.updated` event is also dispatched for the same change.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Sale.Declined"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "sale.linked_to_project": {
            "post": {
                "operationId": "webhook_sale_linked_to_project",
                "tags": [
                    "Sale"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Sale Linked To Project",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `sale.linked_to_project` event occurs.\n\n**Triggered by:** linking a project to a sale. The event only fires when a new project link is actually added. Simply updating the sale's project shortcut without creating a new link will not trigger the event.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Sale.LinkedToProject"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "sale.progress_changed": {
            "post": {
                "operationId": "webhook_sale_progress_changed",
                "tags": [
                    "Sale"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Sale Progress Changed",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `sale.progress_changed` event occurs.\n\n**Triggered by:** `acquisitionopportunityprogress_id` is changed and the new value differs from the previous one. A no-op write that resaves the same progress id does not fire the event. A `sale.updated` event is also dispatched for the same change.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Sale.ProgressChanged"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "sale.updated": {
            "post": {
                "operationId": "webhook_sale_updated",
                "tags": [
                    "Sale"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Sale Updated",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `sale.updated` event occurs.\n\n**Triggered by:** a watched attribute on the sale (or its primary contact) changes. Unlisted attributes do not trigger a dispatch.\n\nWatched sale fields: `description`, `administration_id`, `start_date`, `end_date`, `totalamount_once`, `scoringchance`, `acquisitionopportunityprogress_id`, `acquisitionopportunityreason_id`, `responsible_person_id`, `acquisitionopportunitysource_id`, `acquisitionopportunitystatus_id`, `note`, `divergent_paymentterms_id`.\n\nWatched fields on the sale's contact: `crmrelation_id`, `crmcontact_id`.\n\nA change to status or progress also dispatches the corresponding specific event (`sale.accepted`, `sale.declined`, or `sale.progress_changed`).",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Sale.Updated"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "subscription.created": {
            "post": {
                "operationId": "webhook_subscription_created",
                "tags": [
                    "Subscription"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Subscription Created",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `subscription.created` event occurs.\n\n**Triggered by:** a new subscription being created.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Subscription.Created"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "subscription.deactivated": {
            "post": {
                "operationId": "webhook_subscription_deactivated",
                "tags": [
                    "Subscription"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Subscription Deactivated",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `subscription.deactivated` event occurs.\n\n**Triggered by:** a subscription being deactivated by setting its end date. Fires when the end date is set, not when a future end date is later reached.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Subscription.Deactivated"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "subscription.end_date_reached": {
            "post": {
                "operationId": "webhook_subscription_end_date_reached",
                "tags": [
                    "Subscription"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Subscription End Date Reached",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `subscription.end_date_reached` event occurs.\n\n**Triggered by:** the end date of a subscription being reached, fired on that day (delayed runs may catch up for a few days). This is distinct from subscription.deactivated, which fires when the end date is entered. If the end date is later changed and reached again, it fires again for the new date.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Subscription.EndDateReached"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "subscription.start_date_reached": {
            "post": {
                "operationId": "webhook_subscription_start_date_reached",
                "tags": [
                    "Subscription"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Subscription Start Date Reached",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `subscription.start_date_reached` event occurs.\n\n**Triggered by:** the start date of a subscription being reached, fired on that day (delayed runs may catch up for a few days). If the start date is later changed and reached again, it fires again for the new date.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Subscription.StartDateReached"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "subscription.updated": {
            "post": {
                "operationId": "webhook_subscription_updated",
                "tags": [
                    "Subscription"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Subscription Updated",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `subscription.updated` event occurs.\n\n**Triggered by:** an existing subscription being updated.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Subscription.Updated"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "workflow.comment_added": {
            "post": {
                "operationId": "webhook_workflow_comment_added",
                "tags": [
                    "Workflow"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Workflow Comment Added",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `workflow.comment_added` event occurs.\n\n**Triggered by:** an employee placing a reaction on a running workflow. That includes a reaction typed along with a step change or a transfer.\n\n**Note:** one request sends one event, however many reactions it places. A request that completes the workflow sends nothing, because the workflow it names can no longer be fetched.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Workflow.CommentAdded"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "workflow.completed": {
            "post": {
                "operationId": "webhook_workflow_completed",
                "tags": [
                    "Workflow"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Workflow Completed",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `workflow.completed` event occurs.\n\n**Triggered by:** the last step of a workflow being completed, which is any step action \nthat has no follow-up step. **Note:** completing a workflow removes it, so \n`GET /workflows/workflow/{id}` returns a 404 for the id in this payload.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Workflow.Completed"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "workflow.created": {
            "post": {
                "operationId": "webhook_workflow_created",
                "tags": [
                    "Workflow"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Workflow Created",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `workflow.created` event occurs.\n\n**Triggered by:** a new workflow being created. This includes workflows Simplicate starts \non your behalf, such as a quote approval, a leave request, a declined hours registration, and \nevery project in a bulk run.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Workflow.Created"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "workflow.deadline_changed": {
            "post": {
                "operationId": "webhook_workflow_deadline_changed",
                "tags": [
                    "Workflow"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Workflow Deadline Changed",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `workflow.deadline_changed` event occurs.\n\n**Triggered by:** the deadline of a running workflow being changed, whether that happens in\nthe workflow overview, through the bulk deadline action, along with a step change, or through\n`POST`/`PUT /workflows/workflow/{id}`. Setting a first deadline and clearing one both count;\ncreating a workflow that already carries a deadline triggers `workflow.created` instead.\n**Note:** a single-step workflow keeps its workflow deadline and its step deadline equal, so\na change there triggers `workflow.step_deadline_changed` as well.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Workflow.DeadlineChanged"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "workflow.step_changed": {
            "post": {
                "operationId": "webhook_workflow_step_changed",
                "tags": [
                    "Workflow"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Workflow Step Changed",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `workflow.step_changed` event occurs.\n\n**Triggered by:** a running workflow moving from one step to another, whether that \nhappens on the dashboard, in the workflow overview, or through \n`PUT /workflows/workflow/{id}`. A step action that sends the workflow back to an earlier \nstep triggers this event too, and the payload does not distinguish it from moving forward. \n**Note:** the payload names no step; read `current_task` from \n`GET /workflows/workflow/{id}` to see which step the workflow is on now.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Workflow.StepChanged"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "workflow.step_deadline_changed": {
            "post": {
                "operationId": "webhook_workflow_step_deadline_changed",
                "tags": [
                    "Workflow"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Workflow Step Deadline Changed",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `workflow.step_deadline_changed` event occurs.\n\n**Triggered by:** the deadline of the step a running workflow is on being changed, whether\nthat happens in the workflow overview, along with a step change, or through\n`POST`/`PUT /workflows/workflow/{id}`. Setting a first deadline and clearing one both count;\ncreating a workflow that already carries a step deadline triggers `workflow.created` instead.\n**Note:** only an entered deadline is stored, so the deadline the API derives for a step\nwithout one moves without triggering this event.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Workflow.StepDeadlineChanged"
                            }
                        }
                    },
                    "required": true
                }
            }
        },
        "workflow.transferred": {
            "post": {
                "operationId": "webhook_workflow_transferred",
                "tags": [
                    "Workflow"
                ],
                "responses": {
                    "200": {
                        "description": "Webhook received and acknowledged by the consumer."
                    },
                    "429": {
                        "description": "Consumer is rate-limiting; Simplicate will retry after the delay indicated by the optional Retry-After header (up to 3 attempts)."
                    }
                },
                "summary": "Workflow Transferred",
                "description": "Payload that Simplicate delivers via HTTP POST to the configured webhook target whenever a `workflow.transferred` event occurs.\n\n**Triggered by:** a running workflow ending up with other employees than it had. That is \na hand-over through the transfer form in the workflow overview, through the bulk transfer \naction, or through `transfer_to_employee_id` on `PUT /workflows/workflow/{id}`, and it is a \nstep transition that routes the workflow to other employees, which delivers this event \nalongside `workflow.step_changed`. A bulk transfer of n workflows triggers this event n \ntimes, once per workflow. **Note:** the payload names no employee; read \n`current_task.employees` from `GET /workflows/workflow/{id}` to see who the workflow is \nassigned to now.",
                "parameters": [
                    {
                        "name": "X-Webhook-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 hex digest of the raw request body, prefixed with `sha256=`, keyed by the webhook's signing secret. Consumers MUST verify this to confirm authenticity.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "sha256=<hex-digest>"
                        },
                        "style": "simple",
                        "explode": false
                    },
                    {
                        "name": "X-Simplicate-Domain",
                        "in": "header",
                        "description": "The Simplicate domain or alias that produced this event.",
                        "required": true,
                        "deprecated": false,
                        "schema": {
                            "type": "string",
                            "example": "example.simplicate.app"
                        },
                        "style": "simple",
                        "explode": false
                    }
                ],
                "requestBody": {
                    "description": "Payload delivered to the configured webhook target.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Webhook.Workflow.Transferred"
                            }
                        }
                    },
                    "required": true
                }
            }
        }
    }
}