{
  "openapi": "3.0.0",
  "info": {
    "title": "ZeyOS Standard REST API",
    "termsOfService": "https://www.zeyos.com/termsofservice",
    "contact": {
      "name": "ZeyOS GmbH & Co. KG",
      "url": "https://www.zeyos.com",
      "email": "info@zeyos.com"
    },
    "version": "v1"
  },
  "externalDocs": {
    "description": "ZeyOS Developer Center",
    "url": "https://developers.zeyos.com"
  },
  "servers": [
    {
      "url": "https://cloud.zeyos.com/{INSTANCE}/api/v1",
      "description": "ZeyOS Cloud",
      "variables": {
        "INSTANCE": {
          "default": "demo"
        }
      }
    }
  ],
  "security": [
    {
      "oauth": []
    },
    {
      "token": []
    },
    {
      "session": []
    }
  ],
  "tags": [
    {
      "name": "general",
      "description": "General"
    },
    {
      "name": "accounts",
      "description": "Accounts"
    },
    {
      "name": "actionsteps",
      "description": "Action Steps"
    },
    {
      "name": "addresses",
      "description": "Addresses"
    },
    {
      "name": "applicationassets",
      "description": "Application Assets *(developer read-only)*"
    },
    {
      "name": "applications",
      "description": "Applications *(developer read-only)*"
    },
    {
      "name": "appointments",
      "description": "Appointments"
    },
    {
      "name": "associations",
      "description": "Associations"
    },
    {
      "name": "binfiles",
      "description": "Bin Files *(read-only)*"
    },
    {
      "name": "campaigns",
      "description": "Campaigns"
    },
    {
      "name": "categories",
      "description": "Categories"
    },
    {
      "name": "channels",
      "description": "Channels"
    },
    {
      "name": "comments",
      "description": "Comments"
    },
    {
      "name": "components",
      "description": "Components"
    },
    {
      "name": "contacts",
      "description": "Contacts"
    },
    {
      "name": "contacts2contacts",
      "description": "Contacts-to-contacts"
    },
    {
      "name": "contracts",
      "description": "Contracts"
    },
    {
      "name": "couponcodes",
      "description": "Coupon Codes"
    },
    {
      "name": "coupons",
      "description": "Coupons"
    },
    {
      "name": "customfields",
      "description": "Custom Fields *(read-only)*"
    },
    {
      "name": "davservers",
      "description": "DAV Servers"
    },
    {
      "name": "devices",
      "description": "Devices"
    },
    {
      "name": "documents",
      "description": "Documents"
    },
    {
      "name": "dunning",
      "description": "Dunning Notices"
    },
    {
      "name": "dunning2transactions",
      "description": "Dunning-to-transactions"
    },
    {
      "name": "entities2channels",
      "description": "Entities-to-channels"
    },
    {
      "name": "events",
      "description": "Events"
    },
    {
      "name": "feedservers",
      "description": "Feed Servers"
    },
    {
      "name": "files",
      "description": "Files"
    },
    {
      "name": "follows",
      "description": "Follows"
    },
    {
      "name": "forks",
      "description": "Forks *(restricted read-only)*"
    },
    {
      "name": "groups",
      "description": "Groups *(restricted read-only)*"
    },
    {
      "name": "groups2users",
      "description": "Groups-to-users *(admin read-only)*"
    },
    {
      "name": "invitations",
      "description": "Invitations"
    },
    {
      "name": "items",
      "description": "Items"
    },
    {
      "name": "ledgers",
      "description": "Ledgers"
    },
    {
      "name": "likes",
      "description": "Likes"
    },
    {
      "name": "links",
      "description": "Links"
    },
    {
      "name": "mailinglists",
      "description": "Mailing Lists"
    },
    {
      "name": "mailingrecipients",
      "description": "Mailing Recipients"
    },
    {
      "name": "mailservers",
      "description": "Mail Servers"
    },
    {
      "name": "messagereads",
      "description": "Message-reads"
    },
    {
      "name": "messages",
      "description": "Messages"
    },
    {
      "name": "notes",
      "description": "Notes"
    },
    {
      "name": "objects",
      "description": "Custom Objects"
    },
    {
      "name": "opportunities",
      "description": "Opportunities"
    },
    {
      "name": "participants",
      "description": "Participants"
    },
    {
      "name": "payments",
      "description": "Payments"
    },
    {
      "name": "permissions",
      "description": "Permissions *(admin read-only)*"
    },
    {
      "name": "pricelists",
      "description": "Price Lists"
    },
    {
      "name": "pricelists2accounts",
      "description": "Pricelists-to-accounts"
    },
    {
      "name": "prices",
      "description": "Prices"
    },
    {
      "name": "projects",
      "description": "Projects"
    },
    {
      "name": "records",
      "description": "Records"
    },
    {
      "name": "relateditems",
      "description": "Related Items"
    },
    {
      "name": "resources",
      "description": "Resources *(developer read-only)*"
    },
    {
      "name": "services",
      "description": "Services *(developer read-only)*"
    },
    {
      "name": "stocktransactions",
      "description": "Stock Transactions"
    },
    {
      "name": "storages",
      "description": "Storages"
    },
    {
      "name": "suppliers",
      "description": "Suppliers"
    },
    {
      "name": "tasks",
      "description": "Tasks"
    },
    {
      "name": "tickets",
      "description": "Tickets"
    },
    {
      "name": "transactions",
      "description": "Transactions"
    },
    {
      "name": "users",
      "description": "Users *(restricted read-only)*"
    },
    {
      "name": "weblets",
      "description": "Weblets *(developer read-only)*"
    }
  ],
  "components": {
    "securitySchemes": {
      "oauth": {
        "type": "oauth2",
        "description": "OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://cloud.zeyos.com/{INSTANCE}/oauth2/v1/authorize",
            "tokenUrl": "https://cloud.zeyos.com/{INSTANCE}/oauth2/v1/token",
            "refreshUrl": "https://cloud.zeyos.com/{INSTANCE}/oauth2/v1/token",
            "scopes": {}
          }
        }
      },
      "token": {
        "type": "http",
        "scheme": "bearer",
        "description": "HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750))"
      },
      "session": {
        "type": "apiKey",
        "name": "ZEYOSID",
        "in": "cookie",
        "description": "Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265))"
      }
    },
    "schemas": {
      "accounts": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Account ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (`null`=PUBLIC)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "assigneduser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Assigned user ID",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "contact": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Contact ID",
            "example": 7
          },
          "visibility": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Visibility (`0`=REGULAR, `1`=ARCHIVED, `2`=DELETED)"
          },
          "lastname": {
            "type": "string",
            "description": "Last name (surname or company name); is required if `firstname` is empty",
            "example": "Doe"
          },
          "firstname": {
            "type": "string",
            "description": "First name (given name); is required if `lastname` is empty",
            "example": "John"
          },
          "type": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5
            ],
            "default": 0,
            "description": "Account type (`0`=PROSPECT, `1`=CUSTOMER, `2`=SUPPLIER, `3`=CUSTOMERANDSUPPLIER, `4`=COMPETITOR, `5`=EMPLOYEE)"
          },
          "customernum": {
            "type": "string",
            "description": "Customer number; only for PROSPECT, CUSTOMERANDSUPPLIER, CUSTOMER or EMPLOYEE",
            "example": "C-123456"
          },
          "suppliernum": {
            "type": "string",
            "description": "Supplier number; only for SUPPLIER or CUSTOMERANDSUPPLIER",
            "example": "S-123456"
          },
          "taxid": {
            "type": "string",
            "description": "Tax ID (e.g. VATIN or SSN)",
            "example": "DE123456789"
          },
          "currency": {
            "type": "string",
            "pattern": "^[A-Z]{3}$",
            "description": "Currency code ([ISO 4217](https://en.wikipedia.org/wiki/ISO_4217))",
            "example": "EUR"
          },
          "locked": {
            "type": "integer",
            "enum": [
              0,
              1
            ],
            "default": 0,
            "description": "Deny booking of billing or procurement transactions"
          },
          "excludetax": {
            "type": "integer",
            "enum": [
              0,
              1
            ],
            "default": 0,
            "description": "Exclude from taxation"
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          }
        }
      },
      "actionsteps": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Action step ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "owneruser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner user ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "assigneduser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Assigned user ID",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "task": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Task ID; is mutually exclusive to `ticket` and `account`",
            "example": 7
          },
          "ticket": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Ticket ID; is mutually exclusive to `task` and `account`",
            "example": null
          },
          "account": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Account ID; is mutually exclusive to `task` and `ticket`",
            "example": null
          },
          "transaction": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Transaction ID",
            "example": null
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Action Step"
          },
          "actionnum": {
            "type": "string",
            "description": "Action number",
            "example": "A-123456"
          },
          "date": {
            "type": "integer",
            "format": "int64",
            "description": "Designated date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "duedate": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Due date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time)",
            "example": null
          },
          "status": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3
            ],
            "default": 0,
            "description": "Status (`0`=DRAFT, `1`=COMPLETED, `2`=CANCELLED, `3`=BOOKED)"
          },
          "effort": {
            "type": "number",
            "format": "int32",
            "minimum": 0,
            "default": 0,
            "description": "Effort in minutes"
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          }
        }
      },
      "addresses": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int64",
            "description": "Address ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "account": {
            "type": "integer",
            "format": "int32",
            "description": "Account ID (**dependency**)",
            "example": 7
          },
          "contact": {
            "type": "integer",
            "format": "int32",
            "description": "Contact ID",
            "example": 13
          },
          "type": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5,
              6
            ],
            "default": 0,
            "description": "Address type (`0`=BILLING_SHIPPING, `1`=BILLING_BILLING, `2`=PROCUREMENT_SHIPPING, `3`=PROCUREMENT_BILLING, `4`=COLLECTION, `5`=BILLING_SELLER, `6`=PROCUREMENT_SELLER)"
          },
          "default": {
            "type": "integer",
            "enum": [
              0,
              1
            ],
            "default": 0,
            "description": "Default for this address type"
          }
        }
      },
      "applicationassets": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Asset ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "application": {
            "type": "integer",
            "format": "int32",
            "description": "Application ID (**dependency**)",
            "example": 7
          },
          "binfile": {
            "$ref": "#/components/schemas/binfile-field"
          },
          "filename": {
            "type": "string",
            "minLength": 1,
            "description": "Filename",
            "example": "my_asset.txt"
          },
          "mimetype": {
            "type": "string",
            "pattern": "^[a-z]+/[^ \\t\\v\\r\\n]+$",
            "default": "application/octet-stream",
            "description": "[MIME type](https://en.wikipedia.org/wiki/Media_type) ([RFC 2045](https://tools.ietf.org/html/rfc2045))",
            "example": "text/plain"
          }
        }
      },
      "applications": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Application ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "activity": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Activity (`0`=ACTIVE, `1`=DEACTIVATED, `2`=DELETED)"
          },
          "readmebinfile": {
            "$ref": "#/components/schemas/binfile-field"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Application"
          },
          "identifier": {
            "type": "string",
            "maxLength": 200,
            "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9_.-]*[a-zA-Z0-9])?$",
            "description": "Unique application identifier",
            "example": "my_application"
          },
          "vendor": {
            "type": "string",
            "description": "Vendor (developer or company name)",
            "example": "ZeyOS"
          },
          "restricted": {
            "type": "integer",
            "enum": [
              0,
              1
            ],
            "default": 0,
            "description": "Restricted access via permission with same identifier"
          },
          "callbackurls": {
            "oneOf": [
              {
                "type": "string",
                "format": "json",
                "nullable": true,
                "default": null,
                "description": "[Array](https://www.postgresql.org/docs/current/arrays.html)-encoded allowed callback URLs for APIs",
                "example": "{...}"
              },
              {
                "type": "array",
                "description": "Callback URLs",
                "items": {
                  "type": "string"
                }
              }
            ]
          }
        }
      },
      "appointments": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Appointment ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "owneruser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner user ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "assigneduser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Assigned user ID",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "davserver": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "DAV server ID",
            "example": 7
          },
          "visibility": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Visibility (`0`=REGULAR, `1`=ARCHIVED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Appointment"
          },
          "location": {
            "type": "string",
            "description": "Location",
            "example": "Office"
          },
          "color": {
            "type": "string",
            "pattern": "^([A-F0-9]{3}){0,2}$",
            "description": "Color code (CSS-style hexadecimal without `#`)"
          },
          "datefrom": {
            "type": "integer",
            "format": "int64",
            "description": "Start date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time); must be less than or equal to `dateto`",
            "example": 872838840
          },
          "dateto": {
            "type": "integer",
            "format": "int64",
            "description": "End date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time); must be greater than or equal to `datefrom`",
            "example": 872842440
          },
          "recurrence": {
            "type": "integer",
            "enum": [
              null,
              0,
              1,
              2,
              3,
              4
            ],
            "nullable": true,
            "default": null,
            "description": "Recurrence (`0`=DAY, `1`=WORKDAY, `2`=WEEK, `3`=MONTH, `4`=YEAR)",
            "example": null
          },
          "interval": {
            "type": "integer",
            "minimum": 1,
            "maximum": 32767,
            "default": 1,
            "description": "Recurrence interval in minutes"
          },
          "maxoccurrences": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "default": 0,
            "description": "Maximum number of occurrences including the start date (`0`=unlimited)"
          },
          "daterecurrence": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Recurrence end date as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time)",
            "example": null
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          }
        }
      },
      "associations": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int64",
            "description": "Association ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "entity1": {
            "type": "string",
            "enum": [
              "accounts",
              "actionsteps",
              "applications",
              "appointments",
              "campaigns",
              "contacts",
              "contracts",
              "coupons",
              "davservers",
              "devices",
              "documents",
              "dunning",
              "feedservers",
              "forks",
              "groups",
              "items",
              "ledgers",
              "links",
              "mailinglists",
              "mailservers",
              "messages",
              "notes",
              "objects",
              "opportunities",
              "payments",
              "pricelists",
              "projects",
              "resources",
              "services",
              "storages",
              "tasks",
              "tickets",
              "transactions",
              "users",
              "weblets"
            ],
            "description": "First canonical entity",
            "example": "notes"
          },
          "entity2": {
            "type": "string",
            "enum": [
              "accounts",
              "actionsteps",
              "applications",
              "appointments",
              "campaigns",
              "contacts",
              "contracts",
              "coupons",
              "davservers",
              "devices",
              "documents",
              "dunning",
              "feedservers",
              "forks",
              "groups",
              "items",
              "ledgers",
              "links",
              "mailinglists",
              "mailservers",
              "messages",
              "notes",
              "objects",
              "opportunities",
              "payments",
              "pricelists",
              "projects",
              "resources",
              "services",
              "storages",
              "tasks",
              "tickets",
              "transactions",
              "users",
              "weblets"
            ],
            "description": "Second canonical entity",
            "example": "tasks"
          },
          "index1": {
            "type": "integer",
            "format": "int32",
            "description": "First entity ID",
            "example": 7
          },
          "index2": {
            "type": "integer",
            "format": "int32",
            "description": "Second entity ID",
            "example": 13
          },
          "relation": {
            "type": "string",
            "description": "Relation"
          },
          "meta": {
            "$ref": "#/components/schemas/meta-field"
          }
        }
      },
      "binfiles": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Bin file ID",
            "example": 1
          },
          "size": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "description": "Size in bytes",
            "example": 12
          },
          "hash": {
            "type": "string",
            "pattern": "^\\\\x[a-f0-9]{32}$",
            "description": "[MD5](https://tools.ietf.org/html/rfc1321) hash of the content in hexadecimal notation prefixed with '\\x'",
            "example": "\\xed076287532e86365e841e92bfc50d8c"
          }
        }
      },
      "campaigns": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Campaign ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (`null`=PUBLIC)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "assigneduser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Assigned user ID",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "visibility": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Visibility (`0`=REGULAR, `1`=ARCHIVED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Campaign"
          },
          "datefrom": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Start date as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time); must be less than or equal to `dateto`",
            "example": null
          },
          "dateto": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "End date as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time); must be greater than or equal to `datefrom`",
            "example": null
          },
          "status": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              9
            ],
            "default": 0,
            "description": "Status (`0`=DRAFT, `1`=NOTSTARTED, `2`=AWAITINGAPPROVAL, `3`=APPROVED, `4`=DISMISSED, `5`=ACTIVE, `6`=INACTIVE, `7`=INEVALUATION, `8`=CANCELLED, `9`=CLOSED)"
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          }
        }
      },
      "categories": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Category ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "owneruser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner user ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "entity": {
            "type": "string",
            "minLength": 1,
            "description": "Canonical entity",
            "example": "notes"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Category/My Subcategory"
          }
        }
      },
      "channels": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Channel ID",
            "example": 1
          },
          "owneruser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner user ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "activity": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Activity (`0`=ACTIVE, `1`=DEACTIVATED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Channel"
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          }
        }
      },
      "comments": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int64",
            "description": "Comment ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "record": {
            "type": "integer",
            "format": "int64",
            "description": "Record ID (**dependency**)",
            "example": 7
          },
          "date": {
            "type": "integer",
            "format": "int64",
            "description": "Designated date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "sender": {
            "type": "string",
            "description": "Sender",
            "example": "John Doe"
          },
          "text": {
            "type": "string",
            "description": "Comment text ([Markdown](https://en.wikipedia.org/wiki/Markdown) for rich text representation)",
            "example": "This is my comment!"
          },
          "meta": {
            "$ref": "#/components/schemas/meta-field"
          }
        }
      },
      "components": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int64",
            "description": "Component ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "item": {
            "type": "integer",
            "format": "int32",
            "description": "Item ID (**dependency**)",
            "example": 7
          },
          "component": {
            "type": "integer",
            "format": "int32",
            "description": "Component item ID; must be distinct from `item`",
            "example": 13
          },
          "amount": {
            "type": "number",
            "format": "double",
            "default": 0,
            "description": "Amount (quantity)"
          },
          "price": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "default": null,
            "description": "Imputed price per unit",
            "example": null
          },
          "fixed": {
            "type": "integer",
            "enum": [
              0,
              1
            ],
            "default": 0,
            "description": "Fixed quantity"
          }
        }
      },
      "contacts": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Contact ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "owneruser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner user ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "assigneduser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Assigned user ID",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "davserver": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "DAV server ID",
            "example": 7
          },
          "picbinfile": {
            "$ref": "#/components/schemas/binfile-field"
          },
          "visibility": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Visibility (`0`=REGULAR, `1`=ARCHIVED, `2`=DELETED)"
          },
          "lastname": {
            "type": "string",
            "description": "Last name (surname or company name); is required if `firstname` is empty",
            "example": "Doe"
          },
          "firstname": {
            "type": "string",
            "description": "First name (given name); is required if `lastname` is empty",
            "example": "John"
          },
          "type": {
            "type": "integer",
            "enum": [
              0,
              1
            ],
            "default": 0,
            "description": "Contact type (`0`=COMPANY, `1`=PERSON)"
          },
          "title": {
            "type": "string",
            "description": "Title or salutation; only for PERSON",
            "example": "Dr."
          },
          "company": {
            "type": "string",
            "description": "Company name; only for PERSON",
            "example": "Any Company, Inc."
          },
          "position": {
            "type": "string",
            "description": "Position or job title; only for PERSON",
            "example": "CTO"
          },
          "department": {
            "type": "string",
            "description": "Department; only for PERSON",
            "example": "Research & Development"
          },
          "address": {
            "type": "string",
            "description": "Address (street and building/suite number)",
            "example": "123 Main St."
          },
          "postalcode": {
            "type": "string",
            "description": "Postal or ZIP code",
            "example": "95060"
          },
          "city": {
            "type": "string",
            "description": "City or locality",
            "example": "Anytown"
          },
          "region": {
            "type": "string",
            "description": "Region or state",
            "example": "CA"
          },
          "country": {
            "type": "string",
            "pattern": "^([A-Z]{2})?$",
            "description": "Country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))",
            "example": "US"
          },
          "phone": {
            "type": "string",
            "description": "Primary phone number",
            "example": "+1 123-456-7890"
          },
          "phone2": {
            "type": "string",
            "description": "Secondary phone number",
            "example": "+1 123-456-7891"
          },
          "cell": {
            "type": "string",
            "description": "Cell phone number",
            "example": "+1 123-456-7892"
          },
          "fax": {
            "type": "string",
            "description": "Fax number",
            "example": "+1 123-456-7893"
          },
          "email": {
            "type": "string",
            "format": "email",
            "description": "Primary e-mail address",
            "example": "john.doe@company.com"
          },
          "email2": {
            "type": "string",
            "format": "email",
            "description": "Secondary e-mail address",
            "example": "johnny_d@personal.com"
          },
          "website": {
            "type": "string",
            "format": "uri",
            "description": "Website URL",
            "example": "http://www.company.com/about/john_doe"
          },
          "birthdate": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "description": "Birth date as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time); only for PERSON",
            "example": null
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          }
        }
      },
      "contacts2contacts": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int64",
            "description": "Contact-to-contact ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "contact1": {
            "type": "integer",
            "format": "int32",
            "description": "First contact ID (**dependency**)",
            "example": 7
          },
          "contact2": {
            "type": "integer",
            "format": "int32",
            "description": "Second contact ID (**dependency**)",
            "example": 13
          }
        }
      },
      "contracts": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Contract ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (`null`=PUBLIC)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "assigneduser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Assigned user ID",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "account": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Account ID",
            "example": 7
          },
          "visibility": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Visibility (`0`=REGULAR, `1`=ARCHIVED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Contract"
          },
          "contractnum": {
            "type": "string",
            "description": "Contract number",
            "example": "N-123456"
          },
          "date": {
            "type": "integer",
            "format": "int64",
            "description": "Designated date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "datefrom": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Start date as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time); must be less than or equal to `dateto`",
            "example": null
          },
          "dateto": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "End date as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time); must be greater than or equal to `datefrom`",
            "example": null
          },
          "datecancel": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Cancellation date as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time)",
            "example": null
          },
          "status": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8
            ],
            "default": 0,
            "description": "Status (`0`=DRAFT, `1`=AWAITINGAPPROVAL, `2`=APPROVED, `3`=DISMISSED, `4`=ACTIVE, `5`=INACTIVE, `6`=EXPIRED, `7`=CANCELLED, `8`=CLOSED)"
          },
          "calculation": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Calculation method (`0`=NET, `1`=GROSS, `2`=EXACT, `3`=LEGACY, `4`=EXTERNAL)"
          },
          "currency": {
            "type": "string",
            "pattern": "^[A-Z]{3}$",
            "description": "Currency code ([ISO 4217](https://en.wikipedia.org/wiki/ISO_4217))",
            "example": "EUR"
          },
          "exchangerate": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "exclusiveMinimum": true,
            "default": 1,
            "description": "Exchange rate as a multiple of one monetary unit of the fixed system currency"
          },
          "billingcycle": {
            "type": "integer",
            "nullable": true,
            "minimum": 1,
            "maximum": 32767,
            "default": null,
            "description": "Billing cycle in months",
            "example": null
          },
          "lastbilling": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Last billing date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time)",
            "example": null
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          },
          "contractitems": {
            "$ref": "#/components/schemas/items-field"
          },
          "billingitems": {
            "$ref": "#/components/schemas/items-field"
          },
          "procurementitems": {
            "$ref": "#/components/schemas/items-field"
          },
          "autobilling": {
            "oneOf": [
              {
                "type": "string",
                "format": "json",
                "nullable": true,
                "default": null,
                "description": "[JSON](https://tools.ietf.org/html/rfc7159)-encoded auto-billing data (object); only if `billingcycle` is not `null`",
                "example": "{...}"
              },
              {
                "type": "object",
                "description": "Auto-billing data",
                "properties": {
                  "type": {
                    "type": "integer",
                    "enum": [
                      0,
                      1,
                      2,
                      3,
                      4
                    ],
                    "default": 0,
                    "description": "Transaction type (`0`=BILLING_QUOTE, `1`=BILLING_ORDER, `2`=BILLING_DELIVERY, `3`=BILLING_INVOICE, `4`=BILLING_CREDIT)",
                    "example": 3
                  },
                  "book": {
                    "type": "boolean",
                    "description": "Try to book immediately"
                  },
                  "assigneduser": {
                    "type": "integer",
                    "format": "int32",
                    "nullable": true,
                    "default": null,
                    "description": "Assigned user ID (defaults to `assigneduser` of contract)",
                    "example": 6
                  },
                  "tag": {
                    "type": "string",
                    "description": "Tag"
                  }
                }
              }
            ]
          }
        }
      },
      "couponcodes": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int64",
            "description": "Coupon code ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "coupon": {
            "type": "integer",
            "format": "int32",
            "description": "Coupon ID (**dependency**)",
            "example": 7
          },
          "transaction": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Transaction ID",
            "example": null
          },
          "flag": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Flag (`0`=BOOKED, `1`=RESERVED, `2`=CANCELLED)"
          },
          "date": {
            "type": "integer",
            "format": "int64",
            "description": "Designated date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "code": {
            "type": "string",
            "minLength": 1,
            "description": "Coupon code",
            "example": "XMAX17"
          },
          "value": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "default": 0,
            "description": "Value"
          },
          "datefrom": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Start date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time); must be less than or equal to `dateto`",
            "example": null
          },
          "dateto": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "End date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time); must be greater than or equal to `datefrom`",
            "example": null
          }
        }
      },
      "coupons": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Coupon ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (`null`=PUBLIC)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "activity": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Activity (`0`=ACTIVE, `1`=DEACTIVATED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Coupon"
          },
          "type": {
            "type": "integer",
            "enum": [
              0,
              1
            ],
            "default": 0,
            "description": "Coupon type (`0`=PROMOTION, `1`=INDIVIDUAL)"
          },
          "code": {
            "type": "string",
            "description": "Promotion code; only for PROMOTION",
            "example": "XMAX17"
          },
          "value": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "default": 0,
            "description": "Default value"
          },
          "taxrate": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "minimum": 0,
            "maximum": 100,
            "default": null,
            "description": "Tax rate in percent"
          },
          "neutral": {
            "type": "integer",
            "enum": [
              0,
              1
            ],
            "default": 0,
            "description": "Neutral in transaction"
          },
          "datefrom": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Start date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time); must be less than or equal to `dateto`",
            "example": null
          },
          "dateto": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "End date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time); must be greater than or equal to `datefrom`",
            "example": null
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          },
          "foreigntaxrates": {
            "type": "object",
            "nullable": true,
            "default": null,
            "description": "Country-specific tax rates in percent; use country code as object key",
            "example": {
              "DE": 19,
              "AT": 21
            }
          }
        }
      },
      "customfields": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Custom field ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "activity": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Activity (`0`=ACTIVE, `1`=DEACTIVATED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Custom Field"
          },
          "identifier": {
            "type": "string",
            "maxLength": 200,
            "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9_.-]*[a-zA-Z0-9])?$",
            "description": "Unique field identifier",
            "example": "my_custom_field"
          },
          "context": {
            "type": "string",
            "minLength": 1,
            "description": "Context (mainly entity)",
            "example": "notes"
          },
          "source": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Data source (`0`=EXTDATA, `1`=TAGS, `2`=INTERNAL)"
          },
          "reference": {
            "type": "string",
            "minLength": 1,
            "description": "Data reference (extdata field name or tag name)",
            "example": "my_extdata_field"
          },
          "indexed": {
            "type": "integer",
            "enum": [
              0,
              1
            ],
            "default": 0,
            "description": "Indexed"
          },
          "type": {
            "type": "string",
            "enum": [
              "",
              "checked",
              "count",
              "country",
              "currency",
              "date",
              "datepretty",
              "datetime",
              "datetimepretty",
              "duration",
              "email",
              "entity",
              "filetype",
              "isset",
              "list",
              "money",
              "num",
              "password",
              "percent",
              "price",
              "pricebilling",
              "priceprocurement",
              "priceproduction",
              "priority",
              "progress",
              "rate",
              "size",
              "tel",
              "text",
              "timing",
              "unit",
              "url",
              "weight"
            ],
            "description": "Data type"
          },
          "entity": {
            "type": "string",
            "enum": [
              null,
              "accounts",
              "actionsteps",
              "applications",
              "appointments",
              "campaigns",
              "contacts",
              "contracts",
              "coupons",
              "davservers",
              "devices",
              "documents",
              "dunning",
              "feedservers",
              "forks",
              "groups",
              "items",
              "ledgers",
              "links",
              "mailinglists",
              "mailservers",
              "messages",
              "notes",
              "objects",
              "opportunities",
              "payments",
              "pricelists",
              "projects",
              "resources",
              "services",
              "storages",
              "tasks",
              "tickets",
              "transactions",
              "users",
              "weblets"
            ],
            "nullable": true,
            "default": null,
            "description": "Canonical entity; only for `type`=`entity`",
            "example": null
          },
          "options": {
            "oneOf": [
              {
                "type": "string",
                "format": "json",
                "nullable": true,
                "default": null,
                "description": "[JSON](https://tools.ietf.org/html/rfc7159)-encoded option values and labels (array or object); only relevant for `type`=`list`",
                "example": "{...}"
              },
              {
                "type": "array",
                "description": "Options labels (implicit value via array index)"
              },
              {
                "type": "object",
                "description": "Option value and label pairs",
                "example": {
                  "value1": "Label 1",
                  "value2": "Label 2"
                }
              }
            ]
          },
          "langaliases": {
            "oneOf": [
              {
                "type": "string",
                "format": "json",
                "nullable": true,
                "default": null,
                "description": "[JSON](https://tools.ietf.org/html/rfc7159)-encoded language-specific aliases (object); use language code as object key",
                "example": "{\"en_US\": \"My new Field\", \"de_DE\": \"Mein neues Feld\"}"
              },
              {
                "type": "object",
                "nullable": true,
                "default": null,
                "description": "Language-specific aliases",
                "example": {
                  "en_US": "My new Field",
                  "de_DE": "Mein neues Feld"
                }
              }
            ]
          }
        }
      },
      "davservers": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "DAV server ID",
            "example": 1
          },
          "owneruser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner user ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "recipientuser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Recipient user ID (PUBLIC if `recipientuser`=`null` and `recipientgroup`=`null`)",
            "example": null
          },
          "recipientgroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Recipient group ID (PUBLIC if `recipientuser`=`null` and `recipientgroup`=`null`)",
            "example": null
          },
          "activity": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Activity (`0`=ACTIVE, `1`=DEACTIVATED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My DAV Server"
          },
          "type": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Collection type (`0`=CONTACTS, `2`=APPOINTMENTS, `1`=TASKS)"
          },
          "url": {
            "type": "string",
            "format": "uri",
            "minLength": 1,
            "description": "Endpoint URL",
            "example": "https://dav.company.com/collection"
          },
          "username": {
            "type": "string",
            "description": "Username",
            "example": "john.doe"
          },
          "ctag": {
            "type": "string",
            "description": "Collection entity tag (CTag) ([caldav-ctag-03](https://github.com/apple/ccs-calendarserver/doc/Extensions/caldav-ctag.txt))",
            "example": "\"73c5fdd17f180f2126995666b7edc0e3\""
          },
          "synctoken": {
            "type": "string",
            "description": "Synchronization token ([RFC 6578](https://tools.ietf.org/html/rfc6578#section-4))",
            "example": "http://dav.company.com/sync/1234"
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          }
        }
      },
      "devices": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Device ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (`null`=PUBLIC)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "item": {
            "type": "integer",
            "format": "int32",
            "description": "Item ID",
            "example": 7
          },
          "contract": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Contract ID",
            "example": null
          },
          "visibility": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Visibility (`0`=REGULAR, `1`=ARCHIVED, `2`=DELETED)"
          },
          "serialnum": {
            "type": "string",
            "description": "Serial number; is required if `chargenum` is empty, otherwise must be empty",
            "example": "S-123456"
          },
          "chargenum": {
            "type": "string",
            "description": "Charge (lot) number; is required if `serialnum` is empty, otherwise must be empty",
            "example": "LOT-123456"
          },
          "expdate": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Expiry date as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time)",
            "example": null
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          }
        }
      },
      "documents": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Document ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "owneruser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner user ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "assigneduser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Assigned user ID",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "binfile": {
            "$ref": "#/components/schemas/binfile-field"
          },
          "visibility": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Visibility (`0`=REGULAR, `1`=ARCHIVED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "my_document"
          },
          "documentnum": {
            "type": "string",
            "description": "Document number",
            "example": "F-123456"
          },
          "status": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5,
              6
            ],
            "default": 0,
            "description": "Status (`0`=DRAFT, `1`=FEEDBACKREQUIRED, `2`=INREVISION, `3`=AWAITINGAPPROVAL, `4`=FINAL, `5`=OBSOLETE)"
          },
          "filename": {
            "type": "string",
            "description": "Filename",
            "example": "my_document.pdf"
          },
          "mimetype": {
            "type": "string",
            "pattern": "^[a-z]+/[^ \\t\\v\\r\\n]+$",
            "default": "application/octet-stream",
            "description": "[MIME type](https://en.wikipedia.org/wiki/Media_type) ([RFC 2045](https://tools.ietf.org/html/rfc2045))",
            "example": "application/pdf"
          },
          "public": {
            "type": "integer",
            "enum": [
              0,
              1
            ],
            "default": 0,
            "description": "Publicly accessible"
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          }
        }
      },
      "dunning": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Dunning notice ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (`null`=PUBLIC)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "assigneduser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Assigned user ID",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "account": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Account ID",
            "example": 7
          },
          "dunningnum": {
            "type": "string",
            "minLength": 1,
            "description": "Dunning number",
            "example": "D-0117.12345"
          },
          "type": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Dunning type (`0`=LISTING, `1`=REMINDER, `2`=NOTICE)",
            "example": 1
          },
          "date": {
            "type": "integer",
            "format": "int64",
            "description": "Designated date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "duedate": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Due date as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time)",
            "example": null
          },
          "status": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3
            ],
            "default": 0,
            "description": "Status (`0`=DRAFT, `1`=BOOKED, `2`=CANCELLED, `3`=CLOSED)"
          },
          "fee": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "default": 0,
            "description": "Dunning fee"
          },
          "recipient": {
            "type": "string",
            "description": "Recipient",
            "example": "Bad Customer, Inc."
          },
          "address": {
            "type": "string",
            "description": "Address (street and building/suite number)",
            "example": "123 Main St."
          },
          "postalcode": {
            "type": "string",
            "description": "Postal or ZIP code",
            "example": "95060"
          },
          "city": {
            "type": "string",
            "description": "City or locality",
            "example": "Anytown"
          },
          "region": {
            "type": "string",
            "description": "Region or state",
            "example": "CA"
          },
          "country": {
            "type": "string",
            "pattern": "^([A-Z]{2})?$",
            "description": "Country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))",
            "example": "US"
          }
        }
      },
      "dunning2transactions": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int64",
            "description": "Dunning-to-transaction ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "dunning": {
            "type": "integer",
            "format": "int32",
            "description": "Dunning notice ID (**dependency**)",
            "example": 7
          },
          "transaction": {
            "type": "integer",
            "format": "int32",
            "description": "Transaction ID (**dependency**)",
            "example": 13
          }
        }
      },
      "entities2channels": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int64",
            "description": "Entity-to-channel ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "entity": {
            "type": "string",
            "enum": [
              "accounts",
              "actionsteps",
              "applications",
              "appointments",
              "campaigns",
              "contacts",
              "contracts",
              "coupons",
              "davservers",
              "devices",
              "documents",
              "dunning",
              "feedservers",
              "forks",
              "groups",
              "items",
              "ledgers",
              "links",
              "mailinglists",
              "mailservers",
              "messages",
              "notes",
              "objects",
              "opportunities",
              "payments",
              "pricelists",
              "projects",
              "resources",
              "services",
              "storages",
              "tasks",
              "tickets",
              "transactions",
              "users",
              "weblets"
            ],
            "description": "Canonical entity",
            "example": "notes"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Entity ID",
            "example": 7
          },
          "channel": {
            "type": "integer",
            "format": "int32",
            "description": "Channel ID (**dependency**)",
            "example": 1
          }
        }
      },
      "events": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Event ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module); inherited from entity",
            "example": null
          },
          "owneruser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner user ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "entity": {
            "type": "string",
            "enum": [
              "accounts",
              "actionsteps",
              "applications",
              "appointments",
              "campaigns",
              "contacts",
              "contracts",
              "coupons",
              "davservers",
              "devices",
              "documents",
              "dunning",
              "feedservers",
              "forks",
              "groups",
              "items",
              "ledgers",
              "links",
              "mailinglists",
              "mailservers",
              "messages",
              "notes",
              "objects",
              "opportunities",
              "payments",
              "pricelists",
              "projects",
              "resources",
              "services",
              "storages",
              "tasks",
              "tickets",
              "transactions",
              "users",
              "weblets"
            ],
            "description": "Canonical entity",
            "example": "notes"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Entity ID",
            "example": 7
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Event"
          },
          "color": {
            "type": "string",
            "pattern": "^([A-F0-9]{3}){0,2}$",
            "description": "Color code (CSS-style hexadecimal without `#`)"
          },
          "datefrom": {
            "type": "integer",
            "format": "int64",
            "description": "Start date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time); must be less than or equal to `dateto`",
            "example": 872838840
          },
          "dateto": {
            "type": "integer",
            "format": "int64",
            "description": "End date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time); must be greater than or equal to `datefrom`",
            "example": 872842440
          },
          "meta": {
            "$ref": "#/components/schemas/meta-field"
          }
        }
      },
      "feedservers": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Feed server ID",
            "example": 1
          },
          "owneruser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner user ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "recipientuser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Recipient user ID (PUBLIC if `recipientuser`=`null` and `recipientgroup`=`null`)",
            "example": null
          },
          "recipientgroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Recipient group ID (PUBLIC if `recipientuser`=`null` and `recipientgroup`=`null`)",
            "example": null
          },
          "channel": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Channel ID",
            "example": null
          },
          "activity": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Activity (`0`=ACTIVE, `1`=DEACTIVATED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Feed Server"
          },
          "url": {
            "type": "string",
            "format": "uri",
            "minLength": 1,
            "description": "Feed URL",
            "example": "http://www.website.com/feed.rss"
          },
          "username": {
            "type": "string",
            "description": "Username",
            "example": "john.doe"
          },
          "notify": {
            "type": "integer",
            "enum": [
              0,
              1
            ],
            "default": 0,
            "description": "Notify about new records"
          },
          "etag": {
            "type": "string",
            "description": "Entity tag (ETag) ([RFC 7232](https://tools.ietf.org/html/rfc7232#section-2.3))",
            "example": "\"73c5fdd17f180f2126995666b7edc0e3\""
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          }
        }
      },
      "files": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int64",
            "description": "File ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "record": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Record ID (**dependency**); is mutually exclusive to `comment` (either one is required)",
            "example": 7
          },
          "comment": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Comment ID (**dependency**); is mutually exclusive to `record` (either one is required)",
            "example": null
          },
          "binfile": {
            "$ref": "#/components/schemas/binfile-field"
          },
          "filename": {
            "type": "string",
            "description": "Filename",
            "example": "my_file.txt"
          },
          "mimetype": {
            "type": "string",
            "pattern": "^[a-z]+/[^ \\t\\v\\r\\n]+$",
            "default": "application/octet-stream",
            "description": "[MIME type](https://en.wikipedia.org/wiki/Media_type) ([RFC 2045](https://tools.ietf.org/html/rfc2045))",
            "example": "text/plain"
          }
        }
      },
      "follows": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int64",
            "description": "Follow ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "entity": {
            "type": "string",
            "enum": [
              "accounts",
              "actionsteps",
              "applications",
              "appointments",
              "campaigns",
              "contacts",
              "contracts",
              "coupons",
              "davservers",
              "devices",
              "documents",
              "dunning",
              "feedservers",
              "forks",
              "groups",
              "items",
              "ledgers",
              "links",
              "mailinglists",
              "mailservers",
              "messages",
              "notes",
              "objects",
              "opportunities",
              "payments",
              "pricelists",
              "projects",
              "records",
              "resources",
              "services",
              "storages",
              "tasks",
              "tickets",
              "transactions",
              "users",
              "weblets"
            ],
            "description": "Canonical entity",
            "example": "notes"
          },
          "index": {
            "type": "integer",
            "format": "int64",
            "description": "Entity ID",
            "example": 7
          }
        }
      },
      "forks": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Fork ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "group": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Group ID",
            "example": 7
          },
          "activity": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Activity (`0`=ACTIVE, `1`=DEACTIVATED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Module"
          },
          "identifier": {
            "type": "string",
            "maxLength": 200,
            "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9_.-]*[a-zA-Z0-9])?$",
            "description": "Unique fork identifier",
            "example": "my_billing_fork"
          },
          "module": {
            "type": "string",
            "enum": [
              "accounts",
              "actionsteps",
              "billing",
              "calendar",
              "campaigns",
              "collection",
              "contacts",
              "contracts",
              "coupons",
              "devices",
              "documents",
              "inventory",
              "links",
              "mailinglists",
              "messages",
              "notes",
              "opportunities",
              "payments",
              "pricelists",
              "procurement",
              "production",
              "projects",
              "tasks",
              "tickets"
            ],
            "description": "Canonical module identifier",
            "example": "billing"
          },
          "color": {
            "type": "string",
            "pattern": "^([A-F0-9]{3}){0,2}$",
            "description": "Color code (CSS-style hexadecimal without `#`)"
          },
          "langaliases": {
            "oneOf": [
              {
                "type": "string",
                "format": "json",
                "nullable": true,
                "default": null,
                "description": "[JSON](https://tools.ietf.org/html/rfc7159)-encoded language-specific aliases (object); use language code as object key",
                "example": "{\"en_US\": \"My new Module\", \"de_DE\": \"Mein neues Modul\"}"
              },
              {
                "type": "object",
                "nullable": true,
                "default": null,
                "description": "Language-specific aliases",
                "example": {
                  "en_US": "My new Module",
                  "de_DE": "Mein neues Modul"
                }
              }
            ]
          }
        }
      },
      "groups": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Group ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "leader": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Leader user ID",
            "example": null
          },
          "activity": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Activity (`0`=ACTIVE, `1`=DEACTIVATED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name (case-insensitively unique)",
            "example": "Operations"
          }
        }
      },
      "groups2users": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int64",
            "description": "Group-to-user ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "group": {
            "type": "integer",
            "format": "int32",
            "description": "Group ID (**dependency**)",
            "example": 7
          },
          "user": {
            "type": "integer",
            "format": "int32",
            "description": "User ID (**dependency**)",
            "example": 13
          },
          "writable": {
            "type": "integer",
            "enum": [
              0,
              1
            ],
            "default": 0,
            "description": "Allow writing of group-owned data by user"
          }
        }
      },
      "invitations": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int64",
            "description": "Invitation ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "appointment": {
            "type": "integer",
            "format": "int32",
            "description": "Appointment ID (**dependency**)",
            "example": 7
          },
          "contact": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Contact ID",
            "example": null
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "John Doe"
          },
          "email": {
            "type": "string",
            "format": "email",
            "description": "E-mail address",
            "example": "john.doe@company.com"
          },
          "flag": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Flag (`0`=UNANSWERED, `1`=CONFIRMED, `2`=REJECTED)"
          }
        }
      },
      "items": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Item ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (`null`=PUBLIC)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "model": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Model item ID; only for non-MODEL",
            "example": null
          },
          "picbinfile": {
            "$ref": "#/components/schemas/binfile-field"
          },
          "visibility": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Visibility (`0`=REGULAR, `1`=ARCHIVED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Product name",
            "example": "My Product"
          },
          "manufacturer": {
            "type": "string",
            "description": "Manufacturer (brand or company name)",
            "example": "My Company, Inc."
          },
          "itemnum": {
            "type": "string",
            "description": "Item number (SKU)",
            "example": "I-123456"
          },
          "barcode": {
            "type": "string",
            "description": "Barcode (e.g. GTIN, EAN or UPC code)",
            "example": "501234567890"
          },
          "type": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5,
              6,
              7
            ],
            "default": 0,
            "description": "Item type (`0`=SIMPLE, `1`=SERIALS, `2`=CHARGES, `3`=SERIALSANDCHARGES, `4`=SET, `5`=CONTAINER, `6`=NOSTOCK, `7`=MODEL)"
          },
          "forcestock": {
            "type": "integer",
            "enum": [
              null,
              0,
              1
            ],
            "nullable": true,
            "default": null,
            "description": "Force stock check on depletion (`0`=STORAGE, `1`=LOCATION)"
          },
          "applicability": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3
            ],
            "default": 0,
            "description": "Applicability (`0`=ALWAYS, `1`=NEVER, `2`=BILLINGONLY, `3`=PROCUREMENTONLY)"
          },
          "unit": {
            "type": "string",
            "maxLength": 3,
            "description": "Unit code as defined by ([UN/CEFACT Recommendation 20](https://unece.org/trade/uncefact/cl-recommendations))",
            "example": "C62"
          },
          "sellingprice": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "default": 0,
            "description": "Default selling price per unit"
          },
          "purchaseprice": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "default": 0,
            "description": "Default purchase price per unit"
          },
          "taxrate": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "minimum": 0,
            "maximum": 100,
            "default": null,
            "description": "Tax rate in percent"
          },
          "weight": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "default": 0,
            "description": "Shipping weight per unit in kilograms"
          },
          "classcode": {
            "type": "string",
            "description": "Product classification code (e.g. GPC, CPV or UNSPSC code)",
            "example": "65010400"
          },
          "tariffcode": {
            "type": "string",
            "description": "Tariff code (e.g. HS, CN or HTS code)",
            "example": "84729080"
          },
          "origin": {
            "type": "string",
            "pattern": "^([A-Z]{2})?$",
            "description": "Origin country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))",
            "example": "US"
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          },
          "foreigntaxrates": {
            "type": "object",
            "nullable": true,
            "default": null,
            "description": "Country-specific tax rates in percent; use country code as object key",
            "example": {
              "DE": 19,
              "AT": 21
            }
          }
        }
      },
      "ledgers": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Ledger ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (`null`=PUBLIC)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "visibility": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Visibility (`0`=REGULAR, `1`=ARCHIVED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "Credit Suisse #12345"
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          }
        }
      },
      "likes": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int64",
            "description": "Like ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "record": {
            "type": "integer",
            "format": "int64",
            "description": "Record ID (**dependency**)",
            "example": 7
          }
        }
      },
      "links": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Link ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "owneruser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner user ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "assigneduser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Assigned user ID",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "visibility": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Visibility (`0`=REGULAR, `1`=ARCHIVED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Link"
          },
          "url": {
            "type": "string",
            "format": "uri",
            "description": "URL",
            "example": "https://www.website.com/login"
          },
          "expdate": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Expiry date as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time)",
            "example": null
          },
          "username": {
            "type": "string",
            "description": "Username",
            "example": "john.doe"
          },
          "password": {
            "type": "string",
            "format": "password",
            "description": "Password (empty if encrypted)",
            "example": "**********"
          },
          "visits": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "default": 0,
            "description": "Number of visits"
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          }
        }
      },
      "mailinglists": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Mailing list ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "owneruser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner user ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "assigneduser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Assigned user ID",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "campaign": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Campaign ID",
            "example": null
          },
          "visibility": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Visibility (`0`=REGULAR, `1`=ARCHIVED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Mailing List"
          },
          "sender": {
            "type": "string",
            "description": "Sender name and e-mail address",
            "example": "John Doe <john.doe@company.com>"
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          }
        }
      },
      "mailingrecipients": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int64",
            "description": "Mailing recipient ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "message": {
            "type": "integer",
            "format": "int32",
            "description": "Message ID (**dependency**)",
            "example": 7
          },
          "participant": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Participant ID",
            "example": null
          },
          "email": {
            "type": "string",
            "format": "email",
            "description": "E-mail address",
            "example": "john.doe@company.com"
          }
        }
      },
      "mailservers": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Mail server ID",
            "example": 1
          },
          "owneruser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner user ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "recipientuser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Recipient user ID (PUBLIC if `recipientuser`=`null` and `recipientgroup`=`null`)",
            "example": null
          },
          "recipientgroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Recipient group ID (PUBLIC if `recipientuser`=`null` and `recipientgroup`=`null`)",
            "example": null
          },
          "autoreplybinfile": {
            "$ref": "#/components/schemas/binfile-field"
          },
          "signaturebinfile": {
            "$ref": "#/components/schemas/binfile-field"
          },
          "activity": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Activity (`0`=ACTIVE, `1`=DEACTIVATED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Mail Server"
          },
          "sender": {
            "type": "string",
            "description": "Sender name and e-mail address",
            "example": "John Doe <john.doe@company.com>"
          },
          "serverin": {
            "type": "string",
            "description": "Server (Inbound)",
            "example": "imap.company.com:143/tls"
          },
          "usernamein": {
            "type": "string",
            "description": "Username (Inbound)",
            "example": "john.doe"
          },
          "serverout": {
            "type": "string",
            "description": "Server (Outbound)",
            "example": "smtp.company.com:587/tls"
          },
          "usernameout": {
            "type": "string",
            "description": "Username (Outbound)",
            "example": "john.doe"
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          },
          "ticketing": {
            "oneOf": [
              {
                "type": "string",
                "format": "json",
                "nullable": true,
                "default": null,
                "description": "[JSON](https://tools.ietf.org/html/rfc7159)-encoded ticketing data (object)",
                "example": "{...}"
              },
              {
                "type": "object",
                "description": "Ticketing data",
                "properties": {
                  "assigneduser": {
                    "type": "integer",
                    "format": "int32",
                    "nullable": true,
                    "default": null,
                    "description": "Assigned user ID (defaults to `recipientuser` of mail server)",
                    "example": 6
                  },
                  "project": {
                    "type": "integer",
                    "format": "int32",
                    "nullable": true,
                    "default": null,
                    "description": "Project ID",
                    "example": null
                  },
                  "status": {
                    "type": "integer",
                    "enum": [
                      0,
                      1,
                      2,
                      3,
                      4,
                      5,
                      6,
                      7,
                      8,
                      9,
                      10,
                      11
                    ],
                    "default": 0,
                    "description": "Status (`0`=NOTSTARTED, `1`=AWAITINGACCEPTANCE, `2`=ACCEPTED, `3`=REJECTED, `4`=ACTIVE, `5`=INACTIVE, `6`=FEEDBACKREQUIRED, `7`=TESTING, `8`=CANCELLED, `9`=COMPLETED, `10`=FAILED, `11`=BOOKED)"
                  },
                  "priority": {
                    "type": "integer",
                    "enum": [
                      0,
                      1,
                      2,
                      3,
                      4
                    ],
                    "default": 2,
                    "description": "Priority (`0`=LOWEST, `1`=LOW, `2`=MEDIUM, `3`=HIGH, `4`=HIGHEST)"
                  },
                  "tag": {
                    "type": "string",
                    "description": "Tag"
                  }
                }
              }
            ]
          },
          "folders": {
            "oneOf": [
              {
                "type": "string",
                "format": "json",
                "nullable": true,
                "default": null,
                "description": "[JSON](https://tools.ietf.org/html/rfc7159)-encoded IMAP folders (object)",
                "example": "{\"INBOX\": [0, \"My Tag\"], ...}"
              },
              {
                "type": "object",
                "description": "IMAP folders",
                "example": {
                  "INBOX": [
                    0,
                    "My Tag"
                  ]
                }
              }
            ]
          }
        }
      },
      "messagereads": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int64",
            "description": "Message-read ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "message": {
            "type": "integer",
            "format": "int32",
            "description": "Message ID (**dependency**)",
            "example": 7
          }
        }
      },
      "messages": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Message ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "owneruser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner user ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "mailserver": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Mail server ID",
            "example": 7
          },
          "ticket": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Ticket ID; is mutually exclusive to `opportunity`",
            "example": null
          },
          "opportunity": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Opportunity ID; is mutually exclusive to `ticket`",
            "example": null
          },
          "mailinglist": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Mailing list ID",
            "example": null
          },
          "reference": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Reference message (reply-to) ID; must be distinct from `ID`",
            "example": null
          },
          "binfile": {
            "$ref": "#/components/schemas/binfile-field"
          },
          "mailbox": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5,
              6,
              7
            ],
            "default": 0,
            "description": "Type (`0`=INBOX, `1`=DRAFTS, `2`=SENT, `3`=TEMPLATES, `4`=MAILINGS, `5`=ARCHIVE, `6`=TRASH, `7`=JUNK)"
          },
          "verified": {
            "type": "integer",
            "enum": [
              0,
              1
            ],
            "default": 0,
            "description": "Verified sender e-mail address"
          },
          "date": {
            "type": "integer",
            "format": "int64",
            "description": "Designated date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "subject": {
            "type": "string",
            "description": "Subject",
            "example": "Re: Hello World!"
          },
          "sender": {
            "type": "string",
            "description": "Sender name and e-mail address",
            "example": "John Doe <john.doe@company.com>"
          },
          "sender_email": {
            "type": "string",
            "format": "email",
            "description": "Sender e-mail address",
            "example": "john.doe@company.com"
          },
          "sender_name": {
            "type": "string",
            "description": "Sender name",
            "example": "John Doe"
          },
          "to": {
            "type": "string",
            "description": "All regular recipient names and e-mail addresses",
            "example": "John Doe <john.doe@company.com>, Johnny <johnny_d@personal.com>"
          },
          "to_email": {
            "type": "string",
            "format": "email",
            "description": "First regular recipient e-mail address",
            "example": "john.doe@company.com"
          },
          "to_name": {
            "type": "string",
            "description": "First regular recipient name",
            "example": "John Doe"
          },
          "to_count": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "default": 0,
            "description": "Number of regular recipients",
            "example": 2
          },
          "cc": {
            "type": "string",
            "description": "All carbon copy recipient names and e-mail addresses",
            "example": "John Doe <john.doe@company.com>, Johnny <johnny_d@personal.com>"
          },
          "bcc": {
            "type": "string",
            "description": "All blind carbon copy recipient names and e-mail addresses",
            "example": "John Doe <john.doe@company.com>, Johnny <johnny_d@personal.com>"
          },
          "contenttype": {
            "type": "string",
            "description": "Content [MIME type](https://en.wikipedia.org/wiki/Media_type) ([RFC 2045](https://tools.ietf.org/html/rfc2045))",
            "example": "text/plain"
          },
          "text": {
            "type": "string",
            "description": "Plain text version of content",
            "example": "Hello World!"
          },
          "attachments": {
            "oneOf": [
              {
                "type": "string",
                "format": "json",
                "nullable": true,
                "default": null,
                "description": "[Array](https://www.postgresql.org/docs/current/arrays.html)-encoded attachments (filenames)",
                "example": "{...}"
              },
              {
                "type": "array",
                "description": "Attachments",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "senddate": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Scheduled send date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time)",
            "example": null
          },
          "senderror": {
            "type": "string",
            "description": "Last error message from failure to send",
            "example": "I am afraid I can't do that Dave!"
          }
        }
      },
      "notes": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Note ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "owneruser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner user ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "assigneduser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Assigned user ID",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "binfile": {
            "$ref": "#/components/schemas/binfile-field"
          },
          "visibility": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Visibility (`0`=REGULAR, `1`=ARCHIVED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Note"
          },
          "status": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5,
              6
            ],
            "default": 0,
            "description": "Status (`0`=DRAFT, `1`=FEEDBACKREQUIRED, `2`=INREVISION, `3`=AWAITINGAPPROVAL, `4`=FINAL, `5`=OBSOLETE)"
          },
          "contenttype": {
            "type": "string",
            "description": "Content [MIME type](https://en.wikipedia.org/wiki/Media_type) ([RFC 2045](https://tools.ietf.org/html/rfc2045))",
            "example": "text/plain"
          },
          "text": {
            "type": "string",
            "description": "Plain text version of content",
            "example": "Hello World!"
          },
          "attachments": {
            "oneOf": [
              {
                "type": "string",
                "format": "json",
                "nullable": true,
                "default": null,
                "description": "[Array](https://www.postgresql.org/docs/current/arrays.html)-encoded attachments (filenames)",
                "example": "{...}"
              },
              {
                "type": "array",
                "description": "Attachments",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          }
        }
      },
      "objects": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Object ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "owneruser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner user ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "assigneduser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Assigned user ID",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "binfile": {
            "$ref": "#/components/schemas/binfile-field"
          },
          "visibility": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Visibility (`0`=REGULAR, `1`=ARCHIVED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Object"
          },
          "entity": {
            "type": "string",
            "minLength": 1,
            "description": "Custom entity",
            "example": "my_custom_entity"
          },
          "date": {
            "type": "integer",
            "format": "int64",
            "description": "Designated date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          },
          "data": {
            "oneOf": [
              {
                "type": "string",
                "format": "json",
                "nullable": true,
                "default": null,
                "description": "[JSON](https://tools.ietf.org/html/rfc7159)-encoded object data (array or object)",
                "example": "{...}"
              },
              {
                "type": "array",
                "description": "Object data values"
              },
              {
                "type": "object",
                "description": "Object data name and value pairs",
                "example": {
                  "name1": "value",
                  "name2": "value"
                }
              }
            ]
          }
        }
      },
      "opportunities": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Opportunity ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (`null`=PUBLIC)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "assigneduser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Assigned user ID",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "account": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Account ID",
            "example": 7
          },
          "contact": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Contact ID",
            "example": null
          },
          "campaign": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Campaign ID",
            "example": null
          },
          "visibility": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Visibility (`0`=REGULAR, `1`=ARCHIVED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Opportunity"
          },
          "opportunitynum": {
            "type": "string",
            "description": "Opportunity number",
            "example": "O-123456"
          },
          "date": {
            "type": "integer",
            "format": "int64",
            "description": "Designated date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "duedate": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Due date as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time)",
            "example": null
          },
          "status": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5,
              6
            ],
            "default": 0,
            "description": "Status (`0`=UNEVALUATED, `1`=ELIGIBLE, `2`=FEEDBACKREQUIRED, `3`=INNEGOTIATION, `4`=OFFERED, `5`=ACCEPTED, `6`=REJECTED)"
          },
          "priority": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3,
              4
            ],
            "default": 2,
            "description": "Priority (`0`=LOWEST, `1`=LOW, `2`=MEDIUM, `3`=HIGH, `4`=HIGHEST)"
          },
          "probability": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100,
            "default": 0,
            "description": "Probability of success in percent; must be `100` for ACCEPTED"
          },
          "worstcase": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "default": 0,
            "description": "Worst-case monetary outcome"
          },
          "mostlikely": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "default": 0,
            "description": "Most likely monetary outcome"
          },
          "upside": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "default": 0,
            "description": "Upside monetary outcome"
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          }
        }
      },
      "participants": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int64",
            "description": "Particpants ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "mailinglist": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Mailing list ID (**dependency**); is mutually exclusive to `campaign` (either one is required)",
            "example": 7
          },
          "campaign": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Campaign ID (**dependency**); is mutually exclusive to `mailinglist` (either one is required)",
            "example": null
          },
          "contact": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Contact ID",
            "example": null
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "John Doe"
          },
          "phone": {
            "type": "string",
            "description": "Phone number",
            "example": "+1 123-456-7890"
          },
          "email": {
            "type": "string",
            "format": "email",
            "description": "E-mail address",
            "example": "john.doe@company.com"
          }
        }
      },
      "payments": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Payment ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (`null`=PUBLIC)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "assigneduser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Assigned user ID",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "ledger": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Ledger ID",
            "example": null
          },
          "transaction": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Transaction ID; is mutually exclusive to `account`",
            "example": 7
          },
          "account": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Account ID; is mutually exclusive to `transaction`",
            "example": null
          },
          "date": {
            "type": "integer",
            "format": "int64",
            "description": "Designated date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "subject": {
            "type": "string",
            "description": "Subject (e.g. bank statement or reference number)",
            "example": "Ref. P12345X67890"
          },
          "status": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3
            ],
            "default": 0,
            "description": "Status (`0`=DRAFT, `1`=COMPLETED, `2`=CANCELLED, `3`=BOOKED)"
          },
          "amount": {
            "type": "number",
            "format": "double",
            "description": "Amount (monetary)",
            "example": 199.99
          },
          "autoadvance": {
            "type": "integer",
            "enum": [
              0,
              1
            ],
            "default": 0,
            "description": "Auto-advance to next transaction"
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          }
        }
      },
      "permissions": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int64",
            "description": "Permission ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "group": {
            "type": "integer",
            "format": "int32",
            "description": "Group ID (**dependency**)",
            "example": 7
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID; is mutually exclusive to `application` and `identifier` (either one is required)",
            "example": null
          },
          "application": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Application ID; is mutually exclusive to `fork` and `identifier` (either one is required)",
            "example": null
          },
          "identifier": {
            "type": "string",
            "maxLength": 200,
            "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9_.-]*[a-zA-Z0-9])?$",
            "nullable": true,
            "default": null,
            "description": "Permission identifier (e.g. module); is mutually exclusive to `fork` and `application` (either one is required)",
            "example": "billing"
          },
          "writable": {
            "type": "integer",
            "enum": [
              0,
              1
            ],
            "default": 0,
            "description": "Allow writing of permission-specific data by group members"
          }
        }
      },
      "pricelists": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Price list ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (`null`=PUBLIC)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "activity": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Activity (`0`=ACTIVE, `1`=DEACTIVATED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Price List"
          },
          "type": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5
            ],
            "default": 0,
            "description": "Price list type (`0`=BILLING_MIN, `1`=BILLING_MAX, `2`=PROCUREMENT_MIN, `3`=PROCUREMENT_MAX, `4`=PRODUCTION_MIN, `5`=PRODUCTION_MAX)"
          },
          "currency": {
            "type": "string",
            "pattern": "^[A-Z]{3}$",
            "description": "Currency code ([ISO 4217](https://en.wikipedia.org/wiki/ISO_4217))",
            "example": "EUR"
          },
          "discount": {
            "type": "number",
            "format": "double",
            "minimum": -100,
            "maximum": 100,
            "default": 0,
            "description": "Default relative discount in percent"
          },
          "datefrom": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Start date as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time); must be less than or equal to `dateto`",
            "example": null
          },
          "dateto": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "End date as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time); must be greater than or equal to `datefrom`",
            "example": null
          },
          "applytoall": {
            "type": "integer",
            "enum": [
              0,
              1
            ],
            "default": 0,
            "description": "Apply to all accounts regardless of association via `pricelists2accounts`"
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          }
        }
      },
      "pricelists2accounts": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int64",
            "description": "Pricelist-to-account ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "pricelist": {
            "type": "integer",
            "format": "int32",
            "description": "Price list ID (**dependency**)",
            "example": 7
          },
          "account": {
            "type": "integer",
            "format": "int32",
            "description": "Account ID (**dependency**)",
            "example": 13
          }
        }
      },
      "prices": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int64",
            "description": "Price ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "item": {
            "type": "integer",
            "format": "int32",
            "description": "Item ID (**dependency**)",
            "example": 7
          },
          "pricelist": {
            "type": "integer",
            "format": "int32",
            "description": "Price list ID (**dependency**)",
            "example": 13
          },
          "price": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "minimum": 0,
            "default": null,
            "description": "Price per unit (`null`=`item.sellingprice` for billing or `null`=`item.purchaseprice` for procurement)",
            "example": null
          },
          "rebate": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "description": "Absolute rebate per unit (applied before `discount`)"
          },
          "discount": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "minimum": -100,
            "maximum": 100,
            "default": null,
            "description": "Relative discount in percent (applied after `rebate`; `null`=`pricelist.discount`)"
          },
          "minamount": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "default": 0,
            "description": "Minimum amount (quantity)"
          },
          "costprice": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "minimum": 0,
            "default": null,
            "description": "Cost price per unit (`null`=`item.purchaseprice` for billing)",
            "example": null
          }
        }
      },
      "projects": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Project ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "owneruser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner user ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "assigneduser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Assigned user ID",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "account": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Account ID",
            "example": 7
          },
          "visibility": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Visibility (`0`=REGULAR, `1`=ARCHIVED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Project"
          },
          "projectnum": {
            "type": "string",
            "description": "Project number",
            "example": "P-123456"
          },
          "status": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              9,
              10,
              11
            ],
            "default": 0,
            "description": "Status (`0`=DRAFT, `1`=NOTSTARTED, `2`=AWAITINGAPPROVAL, `3`=APPROVED, `4`=DISMISSED, `5`=ACTIVE, `6`=INACTIVE, `7`=TESTING, `8`=CANCELLED, `9`=COMPLETED, `10`=FAILED, `11`=BOOKED)"
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          }
        }
      },
      "records": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int64",
            "description": "Record ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module); inherited from entity",
            "example": null
          },
          "owneruser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner user ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "assigneduser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Assigned user (recipient) ID; must be distinct from `creator`",
            "example": null
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "entity": {
            "type": "string",
            "enum": [
              null,
              "accounts",
              "actionsteps",
              "applications",
              "appointments",
              "campaigns",
              "contacts",
              "contracts",
              "coupons",
              "davservers",
              "devices",
              "documents",
              "dunning",
              "feedservers",
              "forks",
              "groups",
              "items",
              "ledgers",
              "links",
              "mailinglists",
              "mailservers",
              "messages",
              "notes",
              "objects",
              "opportunities",
              "payments",
              "pricelists",
              "projects",
              "resources",
              "services",
              "storages",
              "tasks",
              "tickets",
              "transactions",
              "users",
              "weblets"
            ],
            "nullable": true,
            "default": null,
            "description": "Canonical entity",
            "example": null
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Entity ID; is required if `entity` is not `null`, otherwise must be `null`",
            "example": null
          },
          "channel": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Channel ID",
            "example": null
          },
          "flag": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              4
            ],
            "default": 0,
            "description": "Flag (`0`=REGULAR, `1`=ASSOCONLY, `2`=MINDLOGONLY, `3`=MONITOR, `4`=FEED); must be REGULAR or FEED if `entity` is `null`"
          },
          "date": {
            "type": "integer",
            "format": "int64",
            "description": "Designated date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "stickydate": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Sticky date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time)",
            "example": null
          },
          "sender": {
            "type": "string",
            "description": "Sender",
            "example": "John Doe"
          },
          "location": {
            "type": "string",
            "description": "Location (e.g. coordinates)",
            "example": "49.246292,-123.116226"
          },
          "text": {
            "type": "string",
            "description": "Record text ([Markdown](https://en.wikipedia.org/wiki/Markdown) for rich text representation)",
            "example": "This is my record!"
          },
          "meta": {
            "$ref": "#/components/schemas/meta-field"
          }
        }
      },
      "relateditems": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int64",
            "description": "Component ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "item": {
            "type": "integer",
            "format": "int32",
            "description": "Item ID (**dependency**)",
            "example": 7
          },
          "relateditem": {
            "type": "integer",
            "format": "int32",
            "description": "Related item ID; must be distinct from `item`",
            "example": 13
          },
          "relation": {
            "type": "string",
            "description": "Relation"
          }
        }
      },
      "resources": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Resource ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "application": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Application ID (`null`=STANDALONE)",
            "example": 7
          },
          "activity": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Activity (`0`=ACTIVE, `1`=DEACTIVATED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Resource"
          },
          "identifier": {
            "type": "string",
            "maxLength": 200,
            "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9_.-]*[a-zA-Z0-9])?$",
            "description": "Unique resource identifier",
            "example": "my_resource"
          },
          "mimetype": {
            "type": "string",
            "pattern": "^[a-z]+/[^ \\t\\v\\r\\n]+$",
            "default": "text/x-zymba",
            "description": "[MIME type](https://en.wikipedia.org/wiki/Media_type) ([RFC 2045](https://tools.ietf.org/html/rfc2045))"
          },
          "public": {
            "type": "integer",
            "enum": [
              0,
              1
            ],
            "default": 0,
            "description": "Publicly accessible"
          }
        }
      },
      "services": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Service ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "application": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Application ID (`null`=STANDALONE)",
            "example": 7
          },
          "activity": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Activity (`0`=ACTIVE, `1`=DEACTIVATED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Service"
          },
          "identifier": {
            "type": "string",
            "maxLength": 200,
            "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9_.-]*[a-zA-Z0-9])?$",
            "description": "Unique service identifier",
            "example": "my_service"
          },
          "type": {
            "type": "integer",
            "enum": [
              null,
              0,
              1,
              2,
              3,
              4,
              5,
              6,
              7
            ],
            "nullable": true,
            "default": null,
            "description": "Service type (`0`=TIMING, `1`=REMOTECALL, `2`=AFTER_CREATION, `3`=BEFORE_MODIFICATION, `4`=AFTER_MODIFICATION, `5`=AFTER_CREATION_MODIFICATION, `6`=BEFORE_DELETION, `7`=AFTER_DELETION)",
            "example": 5
          },
          "entity": {
            "type": "string",
            "description": "Canonical entity; only for AFTER_CREATION, BEFORE_MODIFICATION, AFTER_MODIFICATION, AFTER_CREATION_MODIFICATION, BEFORE_DELETION or AFTER_DELETION",
            "example": "notes"
          },
          "schedule": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "default": 0,
            "description": "Schedule as a minute of each day; only for TIMING"
          },
          "interval": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1440,
            "default": 1,
            "description": "Interval in minutes; only for TIMING"
          },
          "mimetype": {
            "type": "string",
            "enum": [
              "application/ixml+xml",
              "text/x-zymba"
            ],
            "default": "text/x-zymba",
            "description": "[MIME type](https://en.wikipedia.org/wiki/Media_type) ([RFC 2045](https://tools.ietf.org/html/rfc2045))"
          }
        }
      },
      "stocktransactions": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int64",
            "description": "Stock transaction ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "item": {
            "type": "integer",
            "format": "int32",
            "description": "Item ID (**dependency**)",
            "example": 7
          },
          "storage": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Storage ID",
            "example": null
          },
          "transaction": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Transaction ID",
            "example": null
          },
          "transfer": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Transfer stock transaction ID; must be distinct from `ID` and `null` for RESERVED",
            "example": null
          },
          "flag": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Flag (`0`=BOOKED, `1`=RESERVED, `2`=CANCELLED)"
          },
          "date": {
            "type": "integer",
            "format": "int64",
            "description": "Designated date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "chargenum": {
            "type": "string",
            "description": "Charge (lot) number",
            "example": "LOT-123456"
          },
          "location": {
            "type": "string",
            "description": "Physical location (e.g. shelf identification)",
            "example": "B1-R2-S3"
          },
          "reference": {
            "type": "string",
            "description": "Reference identification",
            "example": "SHIP-17/01-123456"
          },
          "amount": {
            "type": "number",
            "format": "double",
            "description": "Amount (quantity); must not be zero (greater than zero if `transfer` is not `null`)"
          },
          "sellingprice": {
            "type": "number",
            "format": "double",
            "default": 0,
            "description": "Selling price per unit"
          },
          "purchaseprice": {
            "type": "number",
            "format": "double",
            "default": 0,
            "description": "Purchase price per unit"
          },
          "serials": {
            "oneOf": [
              {
                "type": "string",
                "format": "json",
                "nullable": true,
                "default": null,
                "description": "[Array](https://www.postgresql.org/docs/current/arrays.html)-encoded serial numbers",
                "example": "{...}"
              },
              {
                "type": "array",
                "uniqueItems": true,
                "description": "Serial numbers",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "subtransactions": {
            "oneOf": [
              {
                "type": "string",
                "format": "json",
                "nullable": true,
                "default": null,
                "description": "[Array](https://www.postgresql.org/docs/current/arrays.html)-encoded sub-transaction IDs",
                "example": "{...}"
              },
              {
                "type": "array",
                "uniqueItems": true,
                "description": "Sub-transaction IDs",
                "items": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            ]
          }
        }
      },
      "storages": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Storage ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (`null`=PUBLIC)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "visibility": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Visibility (`0`=REGULAR, `1`=ARCHIVED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Storage"
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          }
        }
      },
      "suppliers": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int64",
            "description": "Supplier ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "item": {
            "type": "integer",
            "format": "int32",
            "description": "Item ID (**dependency**)",
            "example": 7
          },
          "account": {
            "type": "integer",
            "format": "int32",
            "description": "Account ID (**dependency**)",
            "example": 13
          },
          "itemnum": {
            "type": "string",
            "description": "Supplier item number (SKU)",
            "example": "EXTERNAL-123456"
          },
          "price": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "minimum": 0,
            "default": null,
            "description": "Supplier price per unit",
            "example": null
          },
          "taxrate": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "minimum": 0,
            "maximum": 100,
            "default": null,
            "description": "Supplier tax rate in percent"
          },
          "minamount": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "default": 0,
            "description": "Minimum order amount (quantity)"
          },
          "deliverytime": {
            "type": "integer",
            "nullable": true,
            "minimum": 0,
            "maximum": 32767,
            "default": null,
            "description": "Expected delivery time in days",
            "example": null
          },
          "stock": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "default": null,
            "description": "Expected stock/inventory amount (quantity)",
            "example": 100
          }
        }
      },
      "tasks": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Task ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "owneruser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner user ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (PUBLIC if `owneruser`=`null` and `ownergroup`=`null`)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "assigneduser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Assigned user ID",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "davserver": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "DAV server ID",
            "example": 7
          },
          "ticket": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Ticket ID; is mutually exclusive to `project`",
            "example": null
          },
          "project": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Project ID; is mutually exclusive to `ticket`",
            "example": null
          },
          "visibility": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Visibility (`0`=REGULAR, `1`=ARCHIVED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Task"
          },
          "tasknum": {
            "type": "string",
            "description": "Task number",
            "example": "K-123456"
          },
          "datefrom": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Start date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time)",
            "example": null
          },
          "duedate": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Due date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time)",
            "example": null
          },
          "status": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              9,
              10,
              11
            ],
            "default": 0,
            "description": "Status (`0`=NOTSTARTED, `1`=AWAITINGACCEPTANCE, `2`=ACCEPTED, `3`=REJECTED, `4`=ACTIVE, `5`=INACTIVE, `6`=FEEDBACKREQUIRED, `7`=TESTING, `8`=CANCELLED, `9`=COMPLETED, `10`=FAILED, `11`=BOOKED)"
          },
          "priority": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3,
              4
            ],
            "default": 2,
            "description": "Priority (`0`=LOWEST, `1`=LOW, `2`=MEDIUM, `3`=HIGH, `4`=HIGHEST)"
          },
          "projectedeffort": {
            "type": "number",
            "format": "int32",
            "minimum": 0,
            "default": 0,
            "description": "Projected effort in minutes"
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          }
        }
      },
      "tickets": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Ticket ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (`null`=PUBLIC)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "assigneduser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Assigned user ID",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "account": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Account ID; is mutually exclusive to `project`",
            "example": 7
          },
          "project": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Project ID; is mutually exclusive to `account`",
            "example": null
          },
          "visibility": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Visibility (`0`=REGULAR, `1`=ARCHIVED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Ticket"
          },
          "ticketnum": {
            "type": "string",
            "description": "Ticket number",
            "example": "T-123456"
          },
          "date": {
            "type": "integer",
            "format": "int64",
            "description": "Designated date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "duedate": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Due date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time)",
            "example": null
          },
          "status": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              9,
              10,
              11
            ],
            "default": 0,
            "description": "Status (`0`=NOTSTARTED, `1`=AWAITINGACCEPTANCE, `2`=ACCEPTED, `3`=REJECTED, `4`=ACTIVE, `5`=INACTIVE, `6`=FEEDBACKREQUIRED, `7`=TESTING, `8`=CANCELLED, `9`=COMPLETED, `10`=FAILED, `11`=BOOKED)"
          },
          "priority": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3,
              4
            ],
            "default": 2,
            "description": "Priority (`0`=LOWEST, `1`=LOW, `2`=MEDIUM, `3`=HIGH, `4`=HIGHEST)"
          },
          "calculation": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Calculation method (`0`=NET, `1`=GROSS, `2`=EXACT, `3`=LEGACY, `4`=EXTERNAL)"
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          },
          "billingitems": {
            "$ref": "#/components/schemas/items-field"
          },
          "procurementitems": {
            "$ref": "#/components/schemas/items-field"
          }
        }
      },
      "transactions": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Transaction ID",
            "example": 1
          },
          "fork": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Fork ID (`null` for base module)",
            "example": null
          },
          "ownergroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Owner group ID (`null`=PUBLIC)",
            "example": null
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "assigneduser": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Assigned user ID",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "account": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Account ID",
            "example": 7
          },
          "item": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Item ID; must be `null` for BILLING and PROCUREMENT",
            "example": null
          },
          "contract": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Contract ID",
            "example": null
          },
          "transactionnum": {
            "type": "string",
            "minLength": 1,
            "description": "Transaction number",
            "example": "BI-0117.12345"
          },
          "type": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              9,
              10,
              11
            ],
            "default": 0,
            "description": "Transaction type (`0`=BILLING_QUOTE, `1`=BILLING_ORDER, `2`=BILLING_DELIVERY, `3`=BILLING_INVOICE, `4`=BILLING_CREDIT, `5`=PROCUREMENT_REQUEST, `6`=PROCUREMENT_ORDER, `7`=PROCUREMENT_DELIVERY, `8`=PROCUREMENT_INVOICE, `9`=PROCUREMENT_CREDIT, `10`=PRODUCTION_FABRICATION, `11`=PRODUCTION_DISASSEMBLY)",
            "example": 3
          },
          "date": {
            "type": "integer",
            "format": "int64",
            "description": "Designated date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "duedate": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Due date as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time)",
            "example": null
          },
          "status": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              9,
              10,
              11,
              12,
              13,
              14,
              15,
              16,
              17,
              18,
              19,
              20,
              21,
              22,
              23
            ],
            "default": 0,
            "description": "Status (`0`=DRAFT, `1`=BOOKED, `2`=HOLD, `3`=CANCELLED, `4`=CLOSED, `5`=PARTLYORDERED, `6`=PARTLYORDERED_CANCELLED, `7`=PARTLYORDERED_CLOSED, `8`=ORDERED, `9`=PARTLYDELIVERED, `10`=PARTLYDELIVERED_CANCELLED, `11`=PARTLYDELIVERED_CLOSED, `12`=DELIVERED, `13`=PARTLYINVOICED, `14`=PARTLYINVOICED_CANCELLED, `15`=PARTLYINVOICED_CLOSED, `16`=INVOICED, `17`=PARTLYPAID, `18`=PARTLYPAID_CANCELLED, `19`=PARTLYPAID_CLOSED, `20`=PAID, `21`=OVERPAID, `22`=PROCESSED, `23`=PROCESSED_CANCELLED)"
          },
          "calculation": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Calculation method (`0`=NET, `1`=GROSS, `2`=EXACT, `3`=LEGACY, `4`=EXTERNAL)"
          },
          "productionfactor": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "minimum": 0,
            "exclusiveMinimum": true,
            "default": null,
            "description": "Production factor; is required for PRODUCTION, otherwise must be `null`",
            "example": null
          },
          "currency": {
            "type": "string",
            "pattern": "^[A-Z]{3}$",
            "description": "Currency code ([ISO 4217](https://en.wikipedia.org/wiki/ISO_4217))",
            "example": "EUR"
          },
          "exchangerate": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "exclusiveMinimum": true,
            "default": 1,
            "description": "Exchange rate as a multiple of one monetary unit of the fixed system currency"
          },
          "taxid": {
            "type": "string",
            "description": "Buyer Tax ID (e.g. VATIN or SSN)",
            "example": "DE123456789"
          },
          "shippingrecipient": {
            "type": "string",
            "description": "Shipping recipient",
            "example": "Customer, Inc."
          },
          "shippingaddress": {
            "type": "string",
            "description": "Shipping address (street and building/suite number)",
            "example": "123 Main St."
          },
          "shippingpostalcode": {
            "type": "string",
            "description": "Shipping postal or ZIP code",
            "example": "95060"
          },
          "shippingcity": {
            "type": "string",
            "description": "Shipping city or locality",
            "example": "Anytown"
          },
          "shippingregion": {
            "type": "string",
            "description": "Shipping region or state",
            "example": "CA"
          },
          "shippingcountry": {
            "type": "string",
            "pattern": "^([A-Z]{2})?$",
            "description": "Shipping country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))",
            "example": "US"
          },
          "billingrecipient": {
            "type": "string",
            "description": "Billing recipient",
            "example": "Customer, Inc."
          },
          "billingaddress": {
            "type": "string",
            "description": "Billing address (street and building/suite number)",
            "example": "123 Main St."
          },
          "billingpostalcode": {
            "type": "string",
            "description": "Billing postal or ZIP code",
            "example": "95060"
          },
          "billingcity": {
            "type": "string",
            "description": "Billing city or locality",
            "example": "Anytown"
          },
          "billingregion": {
            "type": "string",
            "description": "Billing region or state",
            "example": "CA"
          },
          "billingcountry": {
            "type": "string",
            "pattern": "^([A-Z]{2})?$",
            "description": "Billing country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))",
            "example": "US"
          },
          "sellertaxid": {
            "type": "string",
            "description": "Seller Tax ID (e.g. VATIN or SSN)",
            "example": "DE123456789"
          },
          "sellername": {
            "type": "string",
            "description": "Seller Name",
            "example": "My Company, Inc."
          },
          "selleraddress": {
            "type": "string",
            "description": "Seller address (street and building/suite number)",
            "example": "123 Main St."
          },
          "sellerpostalcode": {
            "type": "string",
            "description": "Seller postal or ZIP code",
            "example": "95060"
          },
          "sellercity": {
            "type": "string",
            "description": "Seller city or locality",
            "example": "Anytown"
          },
          "sellerregion": {
            "type": "string",
            "description": "Seller region or state",
            "example": "CA"
          },
          "sellercountry": {
            "type": "string",
            "pattern": "^([A-Z]{2})?$",
            "description": "Seller country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))",
            "example": "US"
          },
          "discount": {
            "type": "number",
            "format": "double",
            "description": "Total absolute discount",
            "example": 20
          },
          "netamount": {
            "type": "number",
            "format": "double",
            "description": "Total net amount",
            "example": 100
          },
          "tax": {
            "type": "number",
            "format": "double",
            "description": "Total tax amount",
            "example": 19
          },
          "margin": {
            "type": "number",
            "format": "double",
            "description": "Total absolute margin",
            "example": 40
          },
          "weight": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "default": 0,
            "description": "Total shipping weight in kilograms (only positive line items)"
          },
          "items": {
            "$ref": "#/components/schemas/items-field"
          }
        }
      },
      "users": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "User ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "contact": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Contact ID",
            "example": 7
          },
          "activity": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Activity (`0`=ACTIVE, `1`=DEACTIVATED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Username (case-insensitively unique)",
            "example": "john.doe"
          },
          "email": {
            "type": "string",
            "format": "email",
            "minLength": 1,
            "description": "System e-mail address (case-insensitively unique)",
            "example": "john.doe@company.com"
          },
          "nopublic": {
            "type": "integer",
            "enum": [
              0,
              1
            ],
            "default": 0,
            "description": "Deny access to public data"
          },
          "apionly": {
            "type": "integer",
            "enum": [
              0,
              1
            ],
            "default": 0,
            "description": "Restricted to API access, no regular login"
          },
          "expdate": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Expiry date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time)",
            "example": null
          }
        }
      },
      "weblets": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "description": "Weblet ID",
            "example": 1
          },
          "creator": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Creator user ID (defaults to authenticated user on creation)",
            "example": 6
          },
          "creationdate": {
            "type": "integer",
            "format": "int64",
            "description": "Creation date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (defaults to current date and time on creation)",
            "example": 872838840
          },
          "lastmodified": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification date and time as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) (auto-reset on modification)",
            "example": 872838840
          },
          "application": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Application ID (`null`=STANDALONE)",
            "example": 7
          },
          "activity": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Activity (`0`=ACTIVE, `1`=DEACTIVATED, `2`=DELETED)"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name",
            "example": "My Weblet"
          },
          "identifier": {
            "type": "string",
            "maxLength": 200,
            "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9_.-]*[a-zA-Z0-9])?$",
            "description": "Unique weblet identifier",
            "example": "my_weblet"
          },
          "view": {
            "type": "string",
            "description": "Canonical view",
            "example": "notes.index"
          },
          "type": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5,
              6,
              7
            ],
            "default": 0,
            "description": "Weblet type (`0`=INTEGRATED, `1`=STANDALONE, `2`=DETACHED, `3`=POPUP_FRAMED, `4`=POPUP_PLAIN, `5`=EMBEDDED_FRAMED, `6`=EMBEDDED_COLLAPSED, `7`=EMBEDDED_PLAIN)"
          },
          "width": {
            "type": "integer",
            "minimum": 0,
            "maximum": 32767,
            "default": 0,
            "description": "Width in pixels (`0`=100%)"
          },
          "height": {
            "type": "integer",
            "minimum": 0,
            "maximum": 32767,
            "default": 0,
            "description": "Height in pixels (`0`=100%)"
          },
          "svgpath": {
            "type": "string",
            "description": "[SVG path](https://www.w3.org/TR/SVG11/paths.html) for icon (square)"
          },
          "color": {
            "type": "string",
            "pattern": "^([A-F0-9]{3}){0,2}$",
            "description": "Color code (CSS-style hexadecimal without `#`)"
          },
          "mimetype": {
            "type": "string",
            "enum": [
              "application/ixml+xml",
              "text/x-zymba"
            ],
            "default": "text/x-zymba",
            "description": "[MIME type](https://en.wikipedia.org/wiki/Media_type) ([RFC 2045](https://tools.ietf.org/html/rfc2045))"
          },
          "langaliases": {
            "oneOf": [
              {
                "type": "string",
                "format": "json",
                "nullable": true,
                "default": null,
                "description": "[JSON](https://tools.ietf.org/html/rfc7159)-encoded language-specific aliases (object); use language code as object key",
                "example": "{\"en_US\": \"My new Weblet\", \"de_DE\": \"Mein neues Weblet\"}"
              },
              {
                "type": "object",
                "nullable": true,
                "default": null,
                "description": "Language-specific aliases",
                "example": {
                  "en_US": "My new Weblet",
                  "de_DE": "Mein neues Weblet"
                }
              }
            ]
          }
        }
      },
      "binfile-content": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Binary file ID; is read-only (not for `PUT` or `PATCH`)",
            "example": 1
          },
          "content": {
            "type": "string",
            "description": "[Base64](https://tools.ietf.org/html/rfc2045)-encoded content; is mutually exclusive to `uri` (either one is required)",
            "example": "SGVsbG8gV29ybGQh"
          },
          "uri": {
            "type": "string",
            "format": "uri",
            "description": "Data URI ([RFC 2397](https://tools.ietf.org/html/rfc2397)); is mutually exclusive to `content` (either one is required)",
            "example": "data:text/plain;base64,SGVsbG8gV29ybGQh"
          }
        }
      },
      "binfile-field": {
        "oneOf": [
          {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Binary file ID; is read-only (not for `PUT` or `PATCH`)",
            "example": 1
          },
          {
            "$ref": "#/components/schemas/binfile-content"
          }
        ]
      },
      "meta-object": {
        "type": "object",
        "description": "Meta data field and value pairs",
        "example": {
          "meta_field1": "value",
          "meta_field2": "value"
        }
      },
      "meta-field": {
        "oneOf": [
          {
            "type": "string",
            "format": "json",
            "nullable": true,
            "default": null,
            "description": "[JSON](https://tools.ietf.org/html/rfc7159)-encoded metadata (object)",
            "example": "{...}"
          },
          {
            "$ref": "#/components/schemas/meta-object"
          }
        ]
      },
      "items-common": {
        "type": "object",
        "properties": {
          "type": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ],
            "default": 0,
            "description": "Type (`0`=PRODUCT, `1`=TEXT, `2`=COUPON)"
          },
          "original": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Original entity ID",
            "example": null
          },
          "subindex": {
            "type": "integer",
            "format": "int32",
            "default": 0,
            "description": "Position in original entity",
            "example": 0
          },
          "references": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "transaction": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Referenced transaction ID",
                  "example": 1
                },
                "subindex": {
                  "type": "integer",
                  "format": "int32",
                  "default": 0,
                  "description": "Position in referenced transaction",
                  "example": 0
                }
              }
            }
          }
        }
      },
      "items-product": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Product name",
            "example": "My Product"
          },
          "manufacturer": {
            "type": "string",
            "description": "Manufacturer (brand or company name)",
            "example": "My Company, Inc."
          },
          "itemnum": {
            "type": "string",
            "description": "Item number (SKU)",
            "example": "I-123456"
          },
          "barcode": {
            "type": "string",
            "description": "Barcode (e.g. GTIN, EAN or UPC code)",
            "example": "501234567890"
          },
          "itemtype": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5,
              6,
              7
            ],
            "default": 0,
            "description": "Item type (`0`=SIMPLE, `1`=SERIALS, `2`=CHARGES, `3`=SERIALSANDCHARGES, `4`=SET, `5`=CONTAINER, `6`=NOSTOCK, `7`=MODEL)"
          },
          "unit": {
            "type": "string",
            "maxLength": 3,
            "description": "Unit code as defined by ([UN/CEFACT Recommendation 20](https://unece.org/trade/uncefact/cl-recommendations))",
            "example": "C62"
          },
          "amount": {
            "type": "number",
            "format": "double",
            "default": 0,
            "description": "Amount (quantity)"
          },
          "amounttaken": {
            "type": "number",
            "format": "double",
            "default": 0,
            "description": "Amount (quantity) taken by subsequent transaction step"
          },
          "sellingprice": {
            "type": "number",
            "format": "double",
            "default": 0,
            "description": "Selling price per unit"
          },
          "purchaseprice": {
            "type": "number",
            "format": "double",
            "default": 0,
            "description": "Purchase price per unit"
          },
          "rebate": {
            "type": "number",
            "format": "double",
            "default": 0,
            "description": "Absolute rebate per unit (applied before `discount` and `discount2`)"
          },
          "discount": {
            "type": "number",
            "format": "double",
            "minimum": -100,
            "maximum": 100,
            "default": 0,
            "description": "Primary relative discount in percent (applied after `rebate` and before `discount2`)"
          },
          "discount2": {
            "type": "number",
            "format": "double",
            "minimum": -100,
            "maximum": 100,
            "default": 0,
            "description": "Secondary relative discount in percent on top of primary discount (applied after `rebate` and `discount`)"
          },
          "taxrate": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "maximum": 100,
            "default": 0,
            "description": "Tax rate in percent"
          },
          "weight": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "default": 0,
            "description": "Shipping weight per unit in kilograms"
          },
          "classcode": {
            "type": "string",
            "description": "Product classification code (e.g. GPC, CPV or UNSPSC code)",
            "example": "65010400"
          },
          "tariffcode": {
            "type": "string",
            "description": "Tariff code (e.g. HS, CN or HTS code)",
            "example": "84729080"
          },
          "origin": {
            "type": "string",
            "pattern": "^([A-Z]{2})?$",
            "description": "Origin country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))",
            "example": "US"
          },
          "description": {
            "type": "string",
            "description": "Detailed general description"
          },
          "item": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "default": null,
            "description": "Item ID",
            "example": null
          },
          "reservation": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Reservation stock transaction ID; only set on order",
            "example": null
          },
          "transactions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "storage": {
                  "type": "integer",
                  "format": "int32",
                  "nullable": true,
                  "default": null,
                  "description": "Storage ID",
                  "example": null
                },
                "transaction": {
                  "type": "integer",
                  "format": "int64",
                  "nullable": true,
                  "default": null,
                  "description": "Final stock transaction ID; only set on delivery, invoice or production",
                  "example": null
                },
                "chargenum": {
                  "type": "string",
                  "description": "Charge (lot) number",
                  "example": "LOT-123456"
                },
                "location": {
                  "type": "string",
                  "description": "Physical location (e.g. shelf identification)",
                  "example": "B1-R2-S3"
                },
                "amount": {
                  "type": "number",
                  "format": "double",
                  "minimum": 0,
                  "default": 0,
                  "description": "Amount (quantity)"
                },
                "serials": {
                  "type": "array",
                  "uniqueItems": true,
                  "description": "Serial numbers",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      },
      "items-text": {
        "type": "object",
        "properties": {
          "variant": {
            "type": "integer",
            "enum": [
              0,
              1,
              2,
              3,
              4
            ],
            "default": 0,
            "description": "Variant (`0`=DESCRIPTION, `1`=ANNOTATION, `2`=SUBTITLE, `3`=TITLE, `4`=HEADLINE)"
          },
          "text": {
            "type": "string",
            "description": "Text",
            "example": "My Description, Title or Headline"
          },
          "taken": {
            "type": "boolean",
            "description": "Taken by subsequent transaction step"
          }
        }
      },
      "items-coupon": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Coupon name",
            "example": "Holiday Promotion"
          },
          "code": {
            "type": "string",
            "description": "Coupon code",
            "example": "XMAS"
          },
          "value": {
            "type": "number",
            "format": "double",
            "default": 0,
            "description": "Value"
          },
          "taxrate": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "maximum": 100,
            "default": 0,
            "description": "Tax rate in percent"
          },
          "taken": {
            "type": "boolean",
            "description": "Taken by subsequent transaction step"
          },
          "reservation": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Reservation coupon code ID; only set on order",
            "example": null
          },
          "couponcode": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": null,
            "description": "Final coupon code ID; only set on delivery or invoice",
            "example": null
          }
        }
      },
      "items-list": {
        "type": "array",
        "items": {
          "allOf": [
            {
              "$ref": "#/components/schemas/items-common"
            },
            {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/items-product"
                },
                {
                  "$ref": "#/components/schemas/items-text"
                },
                {
                  "$ref": "#/components/schemas/items-coupon"
                }
              ]
            }
          ]
        }
      },
      "items-field": {
        "oneOf": [
          {
            "type": "string",
            "format": "json",
            "nullable": true,
            "default": null,
            "description": "[JSON](https://tools.ietf.org/html/rfc7159)-encoded items (array)",
            "example": "[{...}, {...}]"
          },
          {
            "$ref": "#/components/schemas/items-list"
          }
        ]
      },
      "extdata-field": {
        "type": "object",
        "properties": {
          "extdata": {
            "type": "object",
            "description": "Extension data field and value pairs; remove if `null`; only for `PUT` or `PATCH`",
            "example": {
              "new_field": "value",
              "existing_field": "value",
              "obsolete_field": null
            }
          }
        }
      },
      "tags-field": {
        "type": "object",
        "properties": {
          "+tags": {
            "type": "array",
            "uniqueItems": true,
            "description": "Tags to add; ignore existing; only for `PUT` or `PATCH`",
            "items": {
              "type": "string"
            },
            "example": [
              "New Tag"
            ]
          },
          "-tags": {
            "type": "array",
            "uniqueItems": true,
            "description": "Tags to remove; ignore non-existing; only for `PUT` or `PATCH`",
            "items": {
              "type": "string"
            },
            "example": [
              "Obsolete Tag"
            ]
          },
          "tags": {
            "type": "array",
            "uniqueItems": true,
            "description": "Tags to reset; remove all existing and add new tags; only for `PUT` or `PATCH`",
            "items": {
              "type": "string"
            },
            "example": [
              "New Tag"
            ]
          }
        }
      },
      "request-list": {
        "type": "object",
        "properties": {
          "distinct": {
            "type": "boolean",
            "description": "Return distinct results"
          },
          "fields": {
            "type": "object",
            "description": "Select specified fields only; use optional alias as object key",
            "example": {
              "0": "field1",
              "1": "field2",
              "alias": "field3"
            }
          },
          "filter": {
            "type": "object",
            "description": "Eliminate results that do not match specified filter criteria"
          },
          "query": {
            "type": "string",
            "description": "Eliminate results that do not match specified query search pattern",
            "example": "list of search terms"
          },
          "sort": {
            "type": "array",
            "uniqueItems": true,
            "description": "Return sorted results by specified order of fields; use the minus sign (`-`) as a prefix to sort by a field in descending instead of ascending order (default)",
            "items": {
              "type": "string"
            },
            "example": [
              "field1_asc",
              "+field2_asc",
              "-field3_desc"
            ]
          },
          "offset": {
            "type": "integer",
            "format": "int64",
            "default": 0,
            "description": "Return results forward from specified offset only"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10000,
            "default": 1000,
            "description": "Limit number of results from `offset` forward (defaults to 1000, unless `export` is true)",
            "example": 100
          },
          "expand": {
            "type": "array",
            "uniqueItems": true,
            "description": "Expand content of composite fields (`json`, `array` or `binfile`)",
            "items": {
              "type": "string"
            },
            "example": [
              "field_json",
              "field_array",
              "field_binfile"
            ]
          },
          "count": {
            "type": "boolean",
            "description": "Return number of results only (`sort`, `offset`, `limit` and `expand` have no effect)"
          },
          "export": {
            "type": "boolean",
            "description": "Export results as CSV file (type `text/csv`, delimiter `;`) with unbounded `limit` (`expand` has no effect) *(admin)*"
          }
        }
      },
      "request-accounts": {
        "allOf": [
          {
            "$ref": "#/components/schemas/accounts"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-actionsteps": {
        "allOf": [
          {
            "$ref": "#/components/schemas/actionsteps"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-appointments": {
        "allOf": [
          {
            "$ref": "#/components/schemas/appointments"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-campaigns": {
        "allOf": [
          {
            "$ref": "#/components/schemas/campaigns"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-contacts": {
        "allOf": [
          {
            "$ref": "#/components/schemas/contacts"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-contracts": {
        "allOf": [
          {
            "$ref": "#/components/schemas/contracts"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-couponcodes": {
        "allOf": [
          {
            "$ref": "#/components/schemas/couponcodes"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          }
        ]
      },
      "request-coupons": {
        "allOf": [
          {
            "$ref": "#/components/schemas/coupons"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-davservers": {
        "allOf": [
          {
            "$ref": "#/components/schemas/davservers"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-devices": {
        "allOf": [
          {
            "$ref": "#/components/schemas/devices"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-documents": {
        "allOf": [
          {
            "$ref": "#/components/schemas/documents"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-dunning": {
        "allOf": [
          {
            "$ref": "#/components/schemas/dunning"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-feedservers": {
        "allOf": [
          {
            "$ref": "#/components/schemas/feedservers"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-items": {
        "allOf": [
          {
            "$ref": "#/components/schemas/items"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-ledgers": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ledgers"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-links": {
        "allOf": [
          {
            "$ref": "#/components/schemas/links"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-mailinglists": {
        "allOf": [
          {
            "$ref": "#/components/schemas/mailinglists"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-mailservers": {
        "allOf": [
          {
            "$ref": "#/components/schemas/mailservers"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-messages": {
        "allOf": [
          {
            "$ref": "#/components/schemas/messages"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-notes": {
        "allOf": [
          {
            "$ref": "#/components/schemas/notes"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-objects": {
        "allOf": [
          {
            "$ref": "#/components/schemas/objects"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-opportunities": {
        "allOf": [
          {
            "$ref": "#/components/schemas/opportunities"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-participants": {
        "allOf": [
          {
            "$ref": "#/components/schemas/participants"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          }
        ]
      },
      "request-payments": {
        "allOf": [
          {
            "$ref": "#/components/schemas/payments"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-pricelists": {
        "allOf": [
          {
            "$ref": "#/components/schemas/pricelists"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-projects": {
        "allOf": [
          {
            "$ref": "#/components/schemas/projects"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-records": {
        "allOf": [
          {
            "$ref": "#/components/schemas/records"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-stocktransactions": {
        "allOf": [
          {
            "$ref": "#/components/schemas/stocktransactions"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          }
        ]
      },
      "request-storages": {
        "allOf": [
          {
            "$ref": "#/components/schemas/storages"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-tasks": {
        "allOf": [
          {
            "$ref": "#/components/schemas/tasks"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-tickets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/tickets"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      },
      "request-transactions": {
        "allOf": [
          {
            "$ref": "#/components/schemas/transactions"
          },
          {
            "$ref": "#/components/schemas/extdata-field"
          },
          {
            "$ref": "#/components/schemas/tags-field"
          }
        ]
      }
    },
    "parameters": {
      "ID": {
        "name": "ID",
        "in": "path",
        "required": true,
        "description": "Unique ID",
        "schema": {
          "type": "integer"
        }
      },
      "expand": {
        "name": "expand",
        "in": "query",
        "description": "Expand content of composite fields (`json`, `array` or `binfile`)",
        "schema": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string"
          },
          "example": [
            "field_json",
            "field_array",
            "field_binfile"
          ]
        }
      },
      "extdata": {
        "name": "extdata",
        "in": "query",
        "description": "Return all extension data field and value pairs in pseudo field `extdata`",
        "schema": {
          "type": "integer",
          "enum": [
            0,
            1
          ],
          "default": 0
        }
      },
      "tags": {
        "name": "tags",
        "in": "query",
        "description": "Return list of all tags in pseudo field `tags`",
        "schema": {
          "type": "integer",
          "enum": [
            0,
            1
          ],
          "default": 0
        }
      },
      "If-Match": {
        "name": "If-Match",
        "in": "header",
        "description": "Return status code **`412`** on non-matching entity tag ([RFC 7232](https://tools.ietf.org/html/rfc7232#section-3.1))",
        "schema": {
          "type": "string",
          "example": "\"73c5fdd17f180f2126995666b7edc0e3\""
        }
      },
      "If-Modified-Since": {
        "name": "If-Modified-Since",
        "in": "header",
        "description": "Return status code **`304`** when last modified since ([RFC 7232](https://tools.ietf.org/html/rfc7232#section-3.4))",
        "schema": {
          "type": "string",
          "format": "date-time",
          "example": "Fri, 29 Aug 1997 07:14:00 GMT"
        }
      },
      "If-None-Match": {
        "name": "If-None-Match",
        "in": "header",
        "description": "Return status code **`304`** on matching entity tag ([RFC 7232](https://tools.ietf.org/html/rfc7232#section-3.2))",
        "schema": {
          "type": "string",
          "example": "\"73c5fdd17f180f2126995666b7edc0e3\""
        }
      },
      "If-Unmodified-Since": {
        "name": "If-Unmodified-Since",
        "in": "header",
        "description": "Return status code **`412`** when not last modified since ([RFC 7232](https://tools.ietf.org/html/rfc7232#section-3.4))",
        "schema": {
          "type": "string",
          "format": "date-time",
          "example": "Fri, 29 Aug 1997 07:14:00 GMT"
        }
      }
    },
    "requestBodies": {
      "list": {
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-list"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-list"
            }
          }
        }
      },
      "accounts": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-accounts"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-accounts"
            }
          }
        }
      },
      "actionsteps": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-actionsteps"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-actionsteps"
            }
          }
        }
      },
      "addresses": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/addresses"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/addresses"
            }
          }
        }
      },
      "appointments": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-appointments"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-appointments"
            }
          }
        }
      },
      "associations": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/associations"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/associations"
            }
          }
        }
      },
      "campaigns": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-campaigns"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-campaigns"
            }
          }
        }
      },
      "categories": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/categories"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/categories"
            }
          }
        }
      },
      "channels": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/channels"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/channels"
            }
          }
        }
      },
      "comments": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/comments"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/comments"
            }
          }
        }
      },
      "components": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/components"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/components"
            }
          }
        }
      },
      "contacts": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-contacts"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-contacts"
            }
          }
        }
      },
      "contacts2contacts": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/contacts2contacts"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/contacts2contacts"
            }
          }
        }
      },
      "contracts": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-contracts"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-contracts"
            }
          }
        }
      },
      "couponcodes": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-couponcodes"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-couponcodes"
            }
          }
        }
      },
      "coupons": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-coupons"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-coupons"
            }
          }
        }
      },
      "davservers": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-davservers"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-davservers"
            }
          }
        }
      },
      "devices": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-devices"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-devices"
            }
          }
        }
      },
      "documents": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-documents"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-documents"
            }
          }
        }
      },
      "dunning": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-dunning"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-dunning"
            }
          }
        }
      },
      "dunning2transactions": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/dunning2transactions"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/dunning2transactions"
            }
          }
        }
      },
      "entities2channels": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/entities2channels"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/entities2channels"
            }
          }
        }
      },
      "events": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/events"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/events"
            }
          }
        }
      },
      "feedservers": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-feedservers"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-feedservers"
            }
          }
        }
      },
      "files": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/files"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/files"
            }
          }
        }
      },
      "follows": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/follows"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/follows"
            }
          }
        }
      },
      "invitations": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/invitations"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/invitations"
            }
          }
        }
      },
      "items": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-items"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-items"
            }
          }
        }
      },
      "ledgers": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-ledgers"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-ledgers"
            }
          }
        }
      },
      "likes": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/likes"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/likes"
            }
          }
        }
      },
      "links": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-links"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-links"
            }
          }
        }
      },
      "mailinglists": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-mailinglists"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-mailinglists"
            }
          }
        }
      },
      "mailingrecipients": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/mailingrecipients"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/mailingrecipients"
            }
          }
        }
      },
      "mailservers": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-mailservers"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-mailservers"
            }
          }
        }
      },
      "messagereads": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/messagereads"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/messagereads"
            }
          }
        }
      },
      "messages": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-messages"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-messages"
            }
          }
        }
      },
      "notes": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-notes"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-notes"
            }
          }
        }
      },
      "objects": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-objects"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-objects"
            }
          }
        }
      },
      "opportunities": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-opportunities"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-opportunities"
            }
          }
        }
      },
      "participants": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-participants"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-participants"
            }
          }
        }
      },
      "payments": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-payments"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-payments"
            }
          }
        }
      },
      "pricelists": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-pricelists"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-pricelists"
            }
          }
        }
      },
      "pricelists2accounts": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/pricelists2accounts"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/pricelists2accounts"
            }
          }
        }
      },
      "prices": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/prices"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/prices"
            }
          }
        }
      },
      "projects": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-projects"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-projects"
            }
          }
        }
      },
      "records": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-records"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-records"
            }
          }
        }
      },
      "relateditems": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/relateditems"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/relateditems"
            }
          }
        }
      },
      "stocktransactions": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-stocktransactions"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-stocktransactions"
            }
          }
        }
      },
      "storages": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-storages"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-storages"
            }
          }
        }
      },
      "suppliers": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/suppliers"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/suppliers"
            }
          }
        }
      },
      "tasks": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-tasks"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-tasks"
            }
          }
        }
      },
      "tickets": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-tickets"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-tickets"
            }
          }
        }
      },
      "transactions": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/request-transactions"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/request-transactions"
            }
          }
        }
      }
    },
    "headers": {
      "Content-Location": {
        "description": "Content location (absolute path)",
        "schema": {
          "type": "string",
          "example": "/{INSTANCE}/api/v1/{ENTITY}/{ID}"
        }
      },
      "ETag": {
        "description": "Entity tag ([RFC 7232](https://tools.ietf.org/html/rfc7232#section-2.3))",
        "schema": {
          "type": "string",
          "example": "\"73c5fdd17f180f2126995666b7edc0e3\""
        }
      },
      "Last-Modified": {
        "description": "Last modification date and time ([RFC 7231](https://tools.ietf.org/html/rfc7232#section-2.2))",
        "schema": {
          "type": "string",
          "format": "date-time",
          "example": "Fri, 29 Aug 1997 07:14:00 GMT"
        }
      }
    },
    "responses": {
      "400": {
        "description": "Request Error (Bad Request)",
        "content": {
          "text/plain": {
            "schema": {
              "type": "string",
              "example": "Bad Request: Invalid selection field"
            }
          }
        }
      },
      "401": {
        "description": "Unauthorized",
        "headers": {
          "WWW-Authenticate": {
            "description": "Preferred authentication scheme ([RFC 7235](https://tools.ietf.org/html/rfc7235#section-4.1))",
            "schema": {
              "type": "string",
              "example": "Bearer realm=\"{INSTANCE}\" error=\"invalid_token\""
            }
          }
        },
        "content": {
          "text/plain": {
            "schema": {
              "type": "string",
              "example": "Unauthorized: Invalid bearer token"
            }
          }
        }
      },
      "403": {
        "description": "Forbidden",
        "content": {
          "text/plain": {
            "schema": {
              "type": "string",
              "example": "Forbidden: Lacking access permission"
            }
          }
        }
      },
      "500": {
        "description": "Runtime Error (Internal Server Error)",
        "content": {
          "text/plain": {
            "schema": {
              "type": "string",
              "example": "I am afraid I can't do that Dave!"
            }
          }
        }
      },
      "204-exists": {
        "description": "Exists (No Content)",
        "headers": {
          "ETag": {
            "$ref": "#/components/headers/ETag"
          },
          "Last-Modified": {
            "$ref": "#/components/headers/Last-Modified"
          }
        }
      }
    }
  },
  "paths": {
    "/config": {
      "get": {
        "tags": [
          "general"
        ],
        "summary": "Get system configuration",
        "description": "Return the user-visible system configuration.",
        "operationId": "getConfig",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {}
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/settings": {
      "get": {
        "tags": [
          "general"
        ],
        "summary": "Get application settings",
        "description": "Return the settings of the application that was used for authentication.",
        "operationId": "getSettings",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Forbidden: Invalid application context"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/accounts": {
      "post": {
        "tags": [
          "accounts"
        ],
        "summary": "List accounts",
        "description": "List selected data from all accounts that match the specified filter and search criteria in a specific sort order. Requires `accounts` permission.",
        "operationId": "listAccounts",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/accounts"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "accounts"
        ],
        "summary": "Create new account",
        "description": "Create a new account and return its persistent data. Requires writable `accounts` permission.",
        "operationId": "createAccount",
        "requestBody": {
          "$ref": "#/components/requestBodies/accounts"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/accounts"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/accounts/{ID}": {
      "get": {
        "tags": [
          "accounts"
        ],
        "summary": "Get account",
        "description": "Return the data of an existing account by **`ID`**. Requires `accounts` permission.",
        "operationId": "getAccount",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/accounts"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "accounts"
        ],
        "summary": "Check if account exists",
        "description": "Check if an account with **`ID`** exists, but do not return its data. Requires `accounts` permission.",
        "operationId": "existsAccount",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "accounts"
        ],
        "summary": "Update existing account",
        "description": "Update an existing account by **`ID`** and return its persistent data. Requires writable `accounts` permission.",
        "operationId": "updateAccount",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/accounts"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/accounts"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "accounts"
        ],
        "summary": "Delete account",
        "description": "Permanently delete an existing account by **`ID`**. Requires writable `accounts` permission.",
        "operationId": "deleteAccount",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/actionsteps": {
      "post": {
        "tags": [
          "actionsteps"
        ],
        "summary": "List actionsteps",
        "description": "List selected data from all action steps that match the specified filter and search criteria in a specific sort order. Requires `actionsteps` permission.",
        "operationId": "listActionSteps",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/actionsteps"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "actionsteps"
        ],
        "summary": "Create new action step",
        "description": "Create a new action step and return its persistent data. Requires writable `actionsteps` permission.",
        "operationId": "createActionStep",
        "requestBody": {
          "$ref": "#/components/requestBodies/actionsteps"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/actionsteps"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/actionsteps/{ID}": {
      "get": {
        "tags": [
          "actionsteps"
        ],
        "summary": "Get action step",
        "description": "Return the data of an existing action step by **`ID`**. Requires `actionsteps` permission.",
        "operationId": "getActionStep",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/actionsteps"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "actionsteps"
        ],
        "summary": "Check if action step exists",
        "description": "Check if an action step with **`ID`** exists, but do not return its data. Requires `actionsteps` permission.",
        "operationId": "existsActionStep",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "actionsteps"
        ],
        "summary": "Update existing action step",
        "description": "Update an existing action step by **`ID`** and return its persistent data. Requires writable `actionsteps` permission.",
        "operationId": "updateActionStep",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/actionsteps"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/actionsteps"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "actionsteps"
        ],
        "summary": "Delete action step",
        "description": "Permanently delete an existing action step by **`ID`**. Requires writable `actionsteps` permission.",
        "operationId": "deleteActionStep",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/addresses": {
      "post": {
        "tags": [
          "addresses"
        ],
        "summary": "List addresses",
        "description": "List selected data from all addresses that match the specified filter and search criteria in a specific sort order. Requires `accounts` permission. Has dependency on `account`.",
        "operationId": "listAddresses",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/addresses"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "addresses"
        ],
        "summary": "Create new address",
        "description": "Create a new address and return its persistent data. Requires writable `accounts` permission. Has dependency on `account`.",
        "operationId": "createAddress",
        "requestBody": {
          "$ref": "#/components/requestBodies/addresses"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/addresses"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/addresses/{ID}": {
      "get": {
        "tags": [
          "addresses"
        ],
        "summary": "Get address",
        "description": "Return the data of an existing address by **`ID`**. Requires `accounts` permission. Has dependency on `account`.",
        "operationId": "getAddress",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/addresses"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "addresses"
        ],
        "summary": "Check if address exists",
        "description": "Check if an address with **`ID`** exists, but do not return its data. Requires `accounts` permission. Has dependency on `account`.",
        "operationId": "existsAddress",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "addresses"
        ],
        "summary": "Update existing address",
        "description": "Update an existing address by **`ID`** and return its persistent data. Requires writable `accounts` permission. Has dependency on `account`.",
        "operationId": "updateAddress",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/addresses"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/addresses"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "addresses"
        ],
        "summary": "Delete address",
        "description": "Permanently delete an existing address by **`ID`**. Requires writable `accounts` permission. Has dependency on `account`.",
        "operationId": "deleteAddress",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/applicationassets": {
      "post": {
        "tags": [
          "applicationassets"
        ],
        "summary": "List application assets",
        "description": "List selected data from all application assets that match the specified filter and search criteria in a specific sort order. Requires `dev` permission. Has dependency on `application`.",
        "operationId": "listApplicationAssets",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/applicationassets"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/applicationassets/{ID}": {
      "get": {
        "tags": [
          "applicationassets"
        ],
        "summary": "Get application asset",
        "description": "Return the data of an existing application asset by **`ID`**. Requires `dev` permission. Has dependency on `application`.",
        "operationId": "getApplicationAsset",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/applicationassets"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "applicationassets"
        ],
        "summary": "Check if application asset exists",
        "description": "Check if an application asset with **`ID`** exists, but do not return its data. Requires `dev` permission. Has dependency on `application`.",
        "operationId": "existsApplicationAsset",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/applications": {
      "post": {
        "tags": [
          "applications"
        ],
        "summary": "List applications",
        "description": "List selected data from all applications that match the specified filter and search criteria in a specific sort order. Requires `dev` permission.",
        "operationId": "listApplications",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/applications"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/applications/{ID}": {
      "get": {
        "tags": [
          "applications"
        ],
        "summary": "Get application",
        "description": "Return the data of an existing application by **`ID`**. Requires `dev` permission.",
        "operationId": "getApplication",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/applications"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "applications"
        ],
        "summary": "Check if application exists",
        "description": "Check if an application with **`ID`** exists, but do not return its data. Requires `dev` permission.",
        "operationId": "existsApplication",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/appointments": {
      "post": {
        "tags": [
          "appointments"
        ],
        "summary": "List appointments",
        "description": "List selected data from all appointments that match the specified filter and search criteria in a specific sort order. Requires `calendar` permission.",
        "operationId": "listAppointments",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/appointments"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "appointments"
        ],
        "summary": "Create new appointment",
        "description": "Create a new appointment and return its persistent data. Requires writable `calendar` permission.",
        "operationId": "createAppointment",
        "requestBody": {
          "$ref": "#/components/requestBodies/appointments"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/appointments"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/appointments/{ID}": {
      "get": {
        "tags": [
          "appointments"
        ],
        "summary": "Get appointment",
        "description": "Return the data of an existing appointment by **`ID`**. Requires `calendar` permission.",
        "operationId": "getAppointment",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/appointments"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "appointments"
        ],
        "summary": "Check if appointment exists",
        "description": "Check if an appointment with **`ID`** exists, but do not return its data. Requires `calendar` permission.",
        "operationId": "existsAppointment",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "appointments"
        ],
        "summary": "Update existing appointment",
        "description": "Update an existing appointment by **`ID`** and return its persistent data. Requires writable `calendar` permission.",
        "operationId": "updateAppointment",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/appointments"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/appointments"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "appointments"
        ],
        "summary": "Delete appointment",
        "description": "Permanently delete an existing appointment by **`ID`**. Requires writable `calendar` permission.",
        "operationId": "deleteAppointment",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/associations": {
      "post": {
        "tags": [
          "associations"
        ],
        "summary": "List associations",
        "description": "List selected data from all associations that match the specified filter and search criteria in a specific sort order. Requires no specific permission.",
        "operationId": "listAssociations",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/associations"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "associations"
        ],
        "summary": "Create new association",
        "description": "Create a new association and return its persistent data. Requires no specific permission.",
        "operationId": "createAssociation",
        "requestBody": {
          "$ref": "#/components/requestBodies/associations"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/associations"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/associations/{ID}": {
      "get": {
        "tags": [
          "associations"
        ],
        "summary": "Get association",
        "description": "Return the data of an existing association by **`ID`**. Requires no specific permission.",
        "operationId": "getAssociation",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/associations"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "associations"
        ],
        "summary": "Check if association exists",
        "description": "Check if an association with **`ID`** exists, but do not return its data. Requires no specific permission.",
        "operationId": "existsAssociation",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "associations"
        ],
        "summary": "Update existing association",
        "description": "Update an existing association by **`ID`** and return its persistent data. Requires no specific permission.",
        "operationId": "updateAssociation",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/associations"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/associations"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "associations"
        ],
        "summary": "Delete association",
        "description": "Permanently delete an existing association by **`ID`**. Requires no specific permission.",
        "operationId": "deleteAssociation",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/binfiles": {
      "post": {
        "tags": [
          "binfiles"
        ],
        "summary": "List bin files",
        "description": "List selected data from all bin files that match the specified filter and search criteria in a specific sort order. Requires no specific permission.",
        "operationId": "listBinFiles",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/binfiles"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/campaigns": {
      "post": {
        "tags": [
          "campaigns"
        ],
        "summary": "List campaigns",
        "description": "List selected data from all campaigns that match the specified filter and search criteria in a specific sort order. Requires `campaigns` permission.",
        "operationId": "listCampaigns",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/campaigns"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "campaigns"
        ],
        "summary": "Create new campaign",
        "description": "Create a new campaign and return its persistent data. Requires writable `campaigns` permission.",
        "operationId": "createCampaign",
        "requestBody": {
          "$ref": "#/components/requestBodies/campaigns"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/campaigns"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/campaigns/{ID}": {
      "get": {
        "tags": [
          "campaigns"
        ],
        "summary": "Get campaign",
        "description": "Return the data of an existing campaign by **`ID`**. Requires `campaigns` permission.",
        "operationId": "getCampaign",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/campaigns"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "campaigns"
        ],
        "summary": "Check if campaign exists",
        "description": "Check if a campaign with **`ID`** exists, but do not return its data. Requires `campaigns` permission.",
        "operationId": "existsCampaign",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "campaigns"
        ],
        "summary": "Update existing campaign",
        "description": "Update an existing campaign by **`ID`** and return its persistent data. Requires writable `campaigns` permission.",
        "operationId": "updateCampaign",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/campaigns"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/campaigns"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "campaigns"
        ],
        "summary": "Delete campaign",
        "description": "Permanently delete an existing campaign by **`ID`**. Requires writable `campaigns` permission.",
        "operationId": "deleteCampaign",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/categories": {
      "post": {
        "tags": [
          "categories"
        ],
        "summary": "List categories",
        "description": "List selected data from all categories that match the specified filter and search criteria in a specific sort order. Requires no specific permission.",
        "operationId": "listCategorys",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/categories"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "categories"
        ],
        "summary": "Create new category",
        "description": "Create a new category and return its persistent data. Requires no specific permission.",
        "operationId": "createCategory",
        "requestBody": {
          "$ref": "#/components/requestBodies/categories"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/categories"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/categories/{ID}": {
      "get": {
        "tags": [
          "categories"
        ],
        "summary": "Get category",
        "description": "Return the data of an existing category by **`ID`**. Requires no specific permission.",
        "operationId": "getCategory",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/categories"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "categories"
        ],
        "summary": "Check if category exists",
        "description": "Check if a category with **`ID`** exists, but do not return its data. Requires no specific permission.",
        "operationId": "existsCategory",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "categories"
        ],
        "summary": "Update existing category",
        "description": "Update an existing category by **`ID`** and return its persistent data. Requires no specific permission.",
        "operationId": "updateCategory",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/categories"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/categories"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "categories"
        ],
        "summary": "Delete category",
        "description": "Permanently delete an existing category by **`ID`**. Requires no specific permission.",
        "operationId": "deleteCategory",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/channels": {
      "post": {
        "tags": [
          "channels"
        ],
        "summary": "List channels",
        "description": "List selected data from all channels that match the specified filter and search criteria in a specific sort order. Requires no specific permission.",
        "operationId": "listChannels",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/channels"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "channels"
        ],
        "summary": "Create new channel",
        "description": "Create a new channel and return its persistent data. Requires no specific permission.",
        "operationId": "createChannel",
        "requestBody": {
          "$ref": "#/components/requestBodies/channels"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/channels"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/channels/{ID}": {
      "get": {
        "tags": [
          "channels"
        ],
        "summary": "Get channel",
        "description": "Return the data of an existing channel by **`ID`**. Requires no specific permission.",
        "operationId": "getChannel",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/channels"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "channels"
        ],
        "summary": "Check if channel exists",
        "description": "Check if a channel with **`ID`** exists, but do not return its data. Requires no specific permission.",
        "operationId": "existsChannel",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "channels"
        ],
        "summary": "Update existing channel",
        "description": "Update an existing channel by **`ID`** and return its persistent data. Requires no specific permission.",
        "operationId": "updateChannel",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/channels"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/channels"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "channels"
        ],
        "summary": "Delete channel",
        "description": "Permanently delete an existing channel by **`ID`**. Requires no specific permission.",
        "operationId": "deleteChannel",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/comments": {
      "post": {
        "tags": [
          "comments"
        ],
        "summary": "List comments",
        "description": "List selected data from all comments that match the specified filter and search criteria in a specific sort order. Requires no specific permission. Has dependency on `record`.",
        "operationId": "listComments",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/comments"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "comments"
        ],
        "summary": "Create new comment",
        "description": "Create a new comment and return its persistent data. Requires the authenticated user to be the `creator`. Has dependency on `record`.",
        "operationId": "createComment",
        "requestBody": {
          "$ref": "#/components/requestBodies/comments"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/comments"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/comments/{ID}": {
      "get": {
        "tags": [
          "comments"
        ],
        "summary": "Get comment",
        "description": "Return the data of an existing comment by **`ID`**. Requires no specific permission. Has dependency on `record`.",
        "operationId": "getComment",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/comments"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "comments"
        ],
        "summary": "Check if comment exists",
        "description": "Check if a comment with **`ID`** exists, but do not return its data. Requires no specific permission. Has dependency on `record`.",
        "operationId": "existsComment",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "comments"
        ],
        "summary": "Update existing comment",
        "description": "Update an existing comment by **`ID`** and return its persistent data. Requires the authenticated user to be the `creator`. Has dependency on `record`.",
        "operationId": "updateComment",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/comments"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/comments"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "comments"
        ],
        "summary": "Delete comment",
        "description": "Permanently delete an existing comment by **`ID`**. Requires the authenticated user to be the `creator`. Has dependency on `record`.",
        "operationId": "deleteComment",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/components": {
      "post": {
        "tags": [
          "components"
        ],
        "summary": "List components",
        "description": "List selected data from all components that match the specified filter and search criteria in a specific sort order. Requires `inventory` permission. Has dependency on `item`.",
        "operationId": "listComponents",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/components"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "components"
        ],
        "summary": "Create new component",
        "description": "Create a new component and return its persistent data. Requires writable `inventory` permission. Has dependency on `item`.",
        "operationId": "createComponent",
        "requestBody": {
          "$ref": "#/components/requestBodies/components"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/components"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/components/{ID}": {
      "get": {
        "tags": [
          "components"
        ],
        "summary": "Get component",
        "description": "Return the data of an existing component by **`ID`**. Requires `inventory` permission. Has dependency on `item`.",
        "operationId": "getComponent",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/components"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "components"
        ],
        "summary": "Check if component exists",
        "description": "Check if a component with **`ID`** exists, but do not return its data. Requires `inventory` permission. Has dependency on `item`.",
        "operationId": "existsComponent",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "components"
        ],
        "summary": "Update existing component",
        "description": "Update an existing component by **`ID`** and return its persistent data. Requires writable `inventory` permission. Has dependency on `item`.",
        "operationId": "updateComponent",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/components"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/components"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "components"
        ],
        "summary": "Delete component",
        "description": "Permanently delete an existing component by **`ID`**. Requires writable `inventory` permission. Has dependency on `item`.",
        "operationId": "deleteComponent",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/contacts": {
      "post": {
        "tags": [
          "contacts"
        ],
        "summary": "List contacts",
        "description": "List selected data from all contacts that match the specified filter and search criteria in a specific sort order. Requires `contacts` permission.",
        "operationId": "listContacts",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/contacts"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "contacts"
        ],
        "summary": "Create new contact",
        "description": "Create a new contact and return its persistent data. Requires writable `contacts` permission.",
        "operationId": "createContact",
        "requestBody": {
          "$ref": "#/components/requestBodies/contacts"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/contacts"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/contacts/{ID}": {
      "get": {
        "tags": [
          "contacts"
        ],
        "summary": "Get contact",
        "description": "Return the data of an existing contact by **`ID`**. Requires `contacts` permission.",
        "operationId": "getContact",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/contacts"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "contacts"
        ],
        "summary": "Check if contact exists",
        "description": "Check if a contact with **`ID`** exists, but do not return its data. Requires `contacts` permission.",
        "operationId": "existsContact",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "contacts"
        ],
        "summary": "Update existing contact",
        "description": "Update an existing contact by **`ID`** and return its persistent data. Requires writable `contacts` permission.",
        "operationId": "updateContact",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/contacts"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/contacts"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "contacts"
        ],
        "summary": "Delete contact",
        "description": "Permanently delete an existing contact by **`ID`**. Requires writable `contacts` permission.",
        "operationId": "deleteContact",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/contacts2contacts": {
      "post": {
        "tags": [
          "contacts2contacts"
        ],
        "summary": "List contacts-to-contacts",
        "description": "List selected data from all contacts-to-contacts that match the specified filter and search criteria in a specific sort order. Requires `contacts` permission. Has dependencies on `contact1` and `contact2`.",
        "operationId": "listContactsToContacts",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/contacts2contacts"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "contacts2contacts"
        ],
        "summary": "Create new contact-to-contact",
        "description": "Create a new contact-to-contact and return its persistent data. Requires writable `contacts` permission. Has dependencies on `contact1` and `contact2`.",
        "operationId": "createContactToContact",
        "requestBody": {
          "$ref": "#/components/requestBodies/contacts2contacts"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/contacts2contacts"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/contacts2contacts/{ID}": {
      "get": {
        "tags": [
          "contacts2contacts"
        ],
        "summary": "Get contact-to-contact",
        "description": "Return the data of an existing contact-to-contact by **`ID`**. Requires `contacts` permission. Has dependencies on `contact1` and `contact2`.",
        "operationId": "getContactToContact",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/contacts2contacts"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "contacts2contacts"
        ],
        "summary": "Check if contact-to-contact exists",
        "description": "Check if a contact-to-contact with **`ID`** exists, but do not return its data. Requires `contacts` permission. Has dependencies on `contact1` and `contact2`.",
        "operationId": "existsContactToContact",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "contacts2contacts"
        ],
        "summary": "Update existing contact-to-contact",
        "description": "Update an existing contact-to-contact by **`ID`** and return its persistent data. Requires writable `contacts` permission. Has dependencies on `contact1` and `contact2`.",
        "operationId": "updateContactToContact",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/contacts2contacts"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/contacts2contacts"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "contacts2contacts"
        ],
        "summary": "Delete contact-to-contact",
        "description": "Permanently delete an existing contact-to-contact by **`ID`**. Requires writable `contacts` permission. Has dependencies on `contact1` and `contact2`.",
        "operationId": "deleteContactToContact",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/contracts": {
      "post": {
        "tags": [
          "contracts"
        ],
        "summary": "List contracts",
        "description": "List selected data from all contracts that match the specified filter and search criteria in a specific sort order. Requires `contracts` permission.",
        "operationId": "listContracts",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/contracts"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "contracts"
        ],
        "summary": "Create new contract",
        "description": "Create a new contract and return its persistent data. Requires writable `contracts` permission.",
        "operationId": "createContract",
        "requestBody": {
          "$ref": "#/components/requestBodies/contracts"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/contracts"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/contracts/{ID}": {
      "get": {
        "tags": [
          "contracts"
        ],
        "summary": "Get contract",
        "description": "Return the data of an existing contract by **`ID`**. Requires `contracts` permission.",
        "operationId": "getContract",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/contracts"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "contracts"
        ],
        "summary": "Check if contract exists",
        "description": "Check if a contract with **`ID`** exists, but do not return its data. Requires `contracts` permission.",
        "operationId": "existsContract",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "contracts"
        ],
        "summary": "Update existing contract",
        "description": "Update an existing contract by **`ID`** and return its persistent data. Requires writable `contracts` permission.",
        "operationId": "updateContract",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/contracts"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/contracts"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "contracts"
        ],
        "summary": "Delete contract",
        "description": "Permanently delete an existing contract by **`ID`**. Requires writable `contracts` permission.",
        "operationId": "deleteContract",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/couponcodes": {
      "post": {
        "tags": [
          "couponcodes"
        ],
        "summary": "List coupon codes",
        "description": "List selected data from all coupon codes that match the specified filter and search criteria in a specific sort order. Requires `pricelists` permission. Has dependency on `coupon`.",
        "operationId": "listCouponCodes",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/couponcodes"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "couponcodes"
        ],
        "summary": "Create new coupon code",
        "description": "Create a new coupon code and return its persistent data. Requires writable `pricelists` permission. Has dependency on `coupon`.",
        "operationId": "createCouponCode",
        "requestBody": {
          "$ref": "#/components/requestBodies/couponcodes"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/couponcodes"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/couponcodes/{ID}": {
      "get": {
        "tags": [
          "couponcodes"
        ],
        "summary": "Get coupon code",
        "description": "Return the data of an existing coupon code by **`ID`**. Requires `pricelists` permission. Has dependency on `coupon`.",
        "operationId": "getCouponCode",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/couponcodes"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "couponcodes"
        ],
        "summary": "Check if coupon code exists",
        "description": "Check if a coupon code with **`ID`** exists, but do not return its data. Requires `pricelists` permission. Has dependency on `coupon`.",
        "operationId": "existsCouponCode",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "couponcodes"
        ],
        "summary": "Update existing coupon code",
        "description": "Update an existing coupon code by **`ID`** and return its persistent data. Requires writable `pricelists` permission. Has dependency on `coupon`.",
        "operationId": "updateCouponCode",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/couponcodes"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/couponcodes"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "couponcodes"
        ],
        "summary": "Delete coupon code",
        "description": "Permanently delete an existing coupon code by **`ID`**. Requires writable `pricelists` permission. Has dependency on `coupon`.",
        "operationId": "deleteCouponCode",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/coupons": {
      "post": {
        "tags": [
          "coupons"
        ],
        "summary": "List coupons",
        "description": "List selected data from all coupons that match the specified filter and search criteria in a specific sort order. Requires `pricelists` permission.",
        "operationId": "listCoupons",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/coupons"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "coupons"
        ],
        "summary": "Create new coupon",
        "description": "Create a new coupon and return its persistent data. Requires writable `pricelists` permission.",
        "operationId": "createCoupon",
        "requestBody": {
          "$ref": "#/components/requestBodies/coupons"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/coupons"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/coupons/{ID}": {
      "get": {
        "tags": [
          "coupons"
        ],
        "summary": "Get coupon",
        "description": "Return the data of an existing coupon by **`ID`**. Requires `pricelists` permission.",
        "operationId": "getCoupon",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/coupons"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "coupons"
        ],
        "summary": "Check if coupon exists",
        "description": "Check if a coupon with **`ID`** exists, but do not return its data. Requires `pricelists` permission.",
        "operationId": "existsCoupon",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "coupons"
        ],
        "summary": "Update existing coupon",
        "description": "Update an existing coupon by **`ID`** and return its persistent data. Requires writable `pricelists` permission.",
        "operationId": "updateCoupon",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/coupons"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/coupons"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "coupons"
        ],
        "summary": "Delete coupon",
        "description": "Permanently delete an existing coupon by **`ID`**. Requires writable `pricelists` permission.",
        "operationId": "deleteCoupon",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/customfields": {
      "post": {
        "tags": [
          "customfields"
        ],
        "summary": "List custom fields",
        "description": "List selected data from all custom fields that match the specified filter and search criteria in a specific sort order. Requires no specific permission.",
        "operationId": "listCustomFields",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/customfields"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/customfields/{ID}": {
      "get": {
        "tags": [
          "customfields"
        ],
        "summary": "Get custom field",
        "description": "Return the data of an existing custom field by **`ID`**. Requires no specific permission.",
        "operationId": "getCustomField",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/customfields"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "customfields"
        ],
        "summary": "Check if custom field exists",
        "description": "Check if a custom field with **`ID`** exists, but do not return its data. Requires no specific permission.",
        "operationId": "existsCustomField",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/davservers": {
      "post": {
        "tags": [
          "davservers"
        ],
        "summary": "List DAV servers",
        "description": "List selected data from all DAV servers that match the specified filter and search criteria in a specific sort order. Requires no specific permission.",
        "operationId": "listDAVServers",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/davservers"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "davservers"
        ],
        "summary": "Create new DAV server",
        "description": "Create a new DAV server and return its persistent data. Requires no specific permission.",
        "operationId": "createDAVServer",
        "requestBody": {
          "$ref": "#/components/requestBodies/davservers"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/davservers"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/davservers/{ID}": {
      "get": {
        "tags": [
          "davservers"
        ],
        "summary": "Get DAV server",
        "description": "Return the data of an existing DAV server by **`ID`**. Requires no specific permission.",
        "operationId": "getDAVServer",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/davservers"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "davservers"
        ],
        "summary": "Check if DAV server exists",
        "description": "Check if a DAV server with **`ID`** exists, but do not return its data. Requires no specific permission.",
        "operationId": "existsDAVServer",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "davservers"
        ],
        "summary": "Update existing DAV server",
        "description": "Update an existing DAV server by **`ID`** and return its persistent data. Requires no specific permission.",
        "operationId": "updateDAVServer",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/davservers"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/davservers"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "davservers"
        ],
        "summary": "Delete DAV server",
        "description": "Permanently delete an existing DAV server by **`ID`**. Requires no specific permission.",
        "operationId": "deleteDAVServer",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/devices": {
      "post": {
        "tags": [
          "devices"
        ],
        "summary": "List devices",
        "description": "List selected data from all devices that match the specified filter and search criteria in a specific sort order. Requires `inventory` permission.",
        "operationId": "listDevices",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/devices"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "devices"
        ],
        "summary": "Create new device",
        "description": "Create a new device and return its persistent data. Requires `inventory` permission.",
        "operationId": "createDevice",
        "requestBody": {
          "$ref": "#/components/requestBodies/devices"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/devices"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/devices/{ID}": {
      "get": {
        "tags": [
          "devices"
        ],
        "summary": "Get device",
        "description": "Return the data of an existing device by **`ID`**. Requires `inventory` permission.",
        "operationId": "getDevice",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/devices"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "devices"
        ],
        "summary": "Check if device exists",
        "description": "Check if a device with **`ID`** exists, but do not return its data. Requires `inventory` permission.",
        "operationId": "existsDevice",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "devices"
        ],
        "summary": "Update existing device",
        "description": "Update an existing device by **`ID`** and return its persistent data. Requires `inventory` permission.",
        "operationId": "updateDevice",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/devices"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/devices"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "devices"
        ],
        "summary": "Delete device",
        "description": "Permanently delete an existing device by **`ID`**. Requires `inventory` permission.",
        "operationId": "deleteDevice",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/documents": {
      "post": {
        "tags": [
          "documents"
        ],
        "summary": "List documents",
        "description": "List selected data from all documents that match the specified filter and search criteria in a specific sort order. Requires `documents` permission.",
        "operationId": "listDocuments",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/documents"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "documents"
        ],
        "summary": "Create new document",
        "description": "Create a new document and return its persistent data. Requires `documents` permission.",
        "operationId": "createDocument",
        "requestBody": {
          "$ref": "#/components/requestBodies/documents"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/documents"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/documents/{ID}": {
      "get": {
        "tags": [
          "documents"
        ],
        "summary": "Get document",
        "description": "Return the data of an existing document by **`ID`**. Requires `documents` permission.",
        "operationId": "getDocument",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/documents"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "documents"
        ],
        "summary": "Check if document exists",
        "description": "Check if a document with **`ID`** exists, but do not return its data. Requires `documents` permission.",
        "operationId": "existsDocument",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "documents"
        ],
        "summary": "Update existing document",
        "description": "Update an existing document by **`ID`** and return its persistent data. Requires `documents` permission.",
        "operationId": "updateDocument",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/documents"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/documents"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "documents"
        ],
        "summary": "Delete document",
        "description": "Permanently delete an existing document by **`ID`**. Requires `documents` permission.",
        "operationId": "deleteDocument",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/dunning": {
      "post": {
        "tags": [
          "dunning"
        ],
        "summary": "List dunning notices",
        "description": "List selected data from all dunning notices that match the specified filter and search criteria in a specific sort order. Requires `collection` permission.",
        "operationId": "listDunningNotices",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/dunning"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "dunning"
        ],
        "summary": "Create new dunning notice",
        "description": "Create a new dunning notice and return its persistent data. Requires writable `collection` permission.",
        "operationId": "createDunningNotice",
        "requestBody": {
          "$ref": "#/components/requestBodies/dunning"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/dunning"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/dunning/{ID}": {
      "get": {
        "tags": [
          "dunning"
        ],
        "summary": "Get dunning notice",
        "description": "Return the data of an existing dunning notice by **`ID`**. Requires `collection` permission.",
        "operationId": "getDunningNotice",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/dunning"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "dunning"
        ],
        "summary": "Check if dunning notice exists",
        "description": "Check if a dunning notice with **`ID`** exists, but do not return its data. Requires `collection` permission.",
        "operationId": "existsDunningNotice",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "dunning"
        ],
        "summary": "Update existing dunning notice",
        "description": "Update an existing dunning notice by **`ID`** and return its persistent data. Requires writable `collection` permission.",
        "operationId": "updateDunningNotice",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/dunning"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/dunning"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "dunning"
        ],
        "summary": "Delete dunning notice",
        "description": "Permanently delete an existing dunning notice by **`ID`**. Requires writable `collection` permission.",
        "operationId": "deleteDunningNotice",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/dunning2transactions": {
      "post": {
        "tags": [
          "dunning2transactions"
        ],
        "summary": "List dunning-to-transactions",
        "description": "List selected data from all dunning-to-transactions that match the specified filter and search criteria in a specific sort order. Requires `collection` permission. Has dependencies on `dunning` and `transaction`.",
        "operationId": "listDunningToTransactions",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/dunning2transactions"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "dunning2transactions"
        ],
        "summary": "Create new dunning-to-transaction",
        "description": "Create a new dunning-to-transaction and return its persistent data. Requires writable `collection` permission. Has dependencies on `dunning` and `transaction`.",
        "operationId": "createDunningToTransaction",
        "requestBody": {
          "$ref": "#/components/requestBodies/dunning2transactions"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/dunning2transactions"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/dunning2transactions/{ID}": {
      "get": {
        "tags": [
          "dunning2transactions"
        ],
        "summary": "Get dunning-to-transaction",
        "description": "Return the data of an existing dunning-to-transaction by **`ID`**. Requires `collection` permission. Has dependencies on `dunning` and `transaction`.",
        "operationId": "getDunningToTransaction",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/dunning2transactions"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "dunning2transactions"
        ],
        "summary": "Check if dunning-to-transaction exists",
        "description": "Check if a dunning-to-transaction with **`ID`** exists, but do not return its data. Requires `collection` permission. Has dependencies on `dunning` and `transaction`.",
        "operationId": "existsDunningToTransaction",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "dunning2transactions"
        ],
        "summary": "Update existing dunning-to-transaction",
        "description": "Update an existing dunning-to-transaction by **`ID`** and return its persistent data. Requires writable `collection` permission. Has dependencies on `dunning` and `transaction`.",
        "operationId": "updateDunningToTransaction",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/dunning2transactions"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/dunning2transactions"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "dunning2transactions"
        ],
        "summary": "Delete dunning-to-transaction",
        "description": "Permanently delete an existing dunning-to-transaction by **`ID`**. Requires writable `collection` permission. Has dependencies on `dunning` and `transaction`.",
        "operationId": "deleteDunningToTransaction",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/entities2channels": {
      "post": {
        "tags": [
          "entities2channels"
        ],
        "summary": "List entities-to-channels",
        "description": "List selected data from all entities-to-channels that match the specified filter and search criteria in a specific sort order. Requires no specific permission. Has dependency on `channel`.",
        "operationId": "listEntitiesToChannels",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/entities2channels"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "entities2channels"
        ],
        "summary": "Create new entity-to-channel",
        "description": "Create a new entity-to-channel and return its persistent data. Requires no specific permission. Has dependency on `channel`.",
        "operationId": "createEntityToChannel",
        "requestBody": {
          "$ref": "#/components/requestBodies/entities2channels"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/entities2channels"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/entities2channels/{ID}": {
      "get": {
        "tags": [
          "entities2channels"
        ],
        "summary": "Get entity-to-channel",
        "description": "Return the data of an existing entity-to-channel by **`ID`**. Requires no specific permission. Has dependency on `channel`.",
        "operationId": "getEntityToChannel",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/entities2channels"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "entities2channels"
        ],
        "summary": "Check if entity-to-channel exists",
        "description": "Check if an entity-to-channel with **`ID`** exists, but do not return its data. Requires no specific permission. Has dependency on `channel`.",
        "operationId": "existsEntityToChannel",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "entities2channels"
        ],
        "summary": "Update existing entity-to-channel",
        "description": "Update an existing entity-to-channel by **`ID`** and return its persistent data. Requires no specific permission. Has dependency on `channel`.",
        "operationId": "updateEntityToChannel",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/entities2channels"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/entities2channels"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "entities2channels"
        ],
        "summary": "Delete entity-to-channel",
        "description": "Permanently delete an existing entity-to-channel by **`ID`**. Requires no specific permission. Has dependency on `channel`.",
        "operationId": "deleteEntityToChannel",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/events": {
      "post": {
        "tags": [
          "events"
        ],
        "summary": "List events",
        "description": "List selected data from all events that match the specified filter and search criteria in a specific sort order. Requires no specific permission.",
        "operationId": "listEvents",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/events"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "events"
        ],
        "summary": "Create new event",
        "description": "Create a new event and return its persistent data. Requires no specific permission.",
        "operationId": "createEvent",
        "requestBody": {
          "$ref": "#/components/requestBodies/events"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/events"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/events/{ID}": {
      "get": {
        "tags": [
          "events"
        ],
        "summary": "Get event",
        "description": "Return the data of an existing event by **`ID`**. Requires no specific permission.",
        "operationId": "getEvent",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/events"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "events"
        ],
        "summary": "Check if event exists",
        "description": "Check if an event with **`ID`** exists, but do not return its data. Requires no specific permission.",
        "operationId": "existsEvent",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "events"
        ],
        "summary": "Update existing event",
        "description": "Update an existing event by **`ID`** and return its persistent data. Requires no specific permission.",
        "operationId": "updateEvent",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/events"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/events"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "events"
        ],
        "summary": "Delete event",
        "description": "Permanently delete an existing event by **`ID`**. Requires no specific permission.",
        "operationId": "deleteEvent",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/feedservers": {
      "post": {
        "tags": [
          "feedservers"
        ],
        "summary": "List feed servers",
        "description": "List selected data from all feed servers that match the specified filter and search criteria in a specific sort order. Requires no specific permission.",
        "operationId": "listFeedServers",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/feedservers"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "feedservers"
        ],
        "summary": "Create new feed server",
        "description": "Create a new feed server and return its persistent data. Requires no specific permission.",
        "operationId": "createFeedServer",
        "requestBody": {
          "$ref": "#/components/requestBodies/feedservers"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/feedservers"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/feedservers/{ID}": {
      "get": {
        "tags": [
          "feedservers"
        ],
        "summary": "Get feed server",
        "description": "Return the data of an existing feed server by **`ID`**. Requires no specific permission.",
        "operationId": "getFeedServer",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/feedservers"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "feedservers"
        ],
        "summary": "Check if feed server exists",
        "description": "Check if a feed server with **`ID`** exists, but do not return its data. Requires no specific permission.",
        "operationId": "existsFeedServer",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "feedservers"
        ],
        "summary": "Update existing feed server",
        "description": "Update an existing feed server by **`ID`** and return its persistent data. Requires no specific permission.",
        "operationId": "updateFeedServer",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/feedservers"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/feedservers"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "feedservers"
        ],
        "summary": "Delete feed server",
        "description": "Permanently delete an existing feed server by **`ID`**. Requires no specific permission.",
        "operationId": "deleteFeedServer",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/files": {
      "post": {
        "tags": [
          "files"
        ],
        "summary": "List files",
        "description": "List selected data from all files that match the specified filter and search criteria in a specific sort order. Requires no specific permission. Has dependency on `record` or `comment`.",
        "operationId": "listFiles",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/files"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "files"
        ],
        "summary": "Create new file",
        "description": "Create a new file and return its persistent data. Requires no specific permission. Has dependency on `record` or `comment`.",
        "operationId": "createFile",
        "requestBody": {
          "$ref": "#/components/requestBodies/files"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/files"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/files/{ID}": {
      "get": {
        "tags": [
          "files"
        ],
        "summary": "Get file",
        "description": "Return the data of an existing file by **`ID`**. Requires no specific permission. Has dependency on `record` or `comment`.",
        "operationId": "getFile",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/files"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "files"
        ],
        "summary": "Check if file exists",
        "description": "Check if a file with **`ID`** exists, but do not return its data. Requires no specific permission. Has dependency on `record` or `comment`.",
        "operationId": "existsFile",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "files"
        ],
        "summary": "Update existing file",
        "description": "Update an existing file by **`ID`** and return its persistent data. Requires no specific permission. Has dependency on `record` or `comment`.",
        "operationId": "updateFile",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/files"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/files"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "files"
        ],
        "summary": "Delete file",
        "description": "Permanently delete an existing file by **`ID`**. Requires no specific permission. Has dependency on `record` or `comment`.",
        "operationId": "deleteFile",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/follows": {
      "post": {
        "tags": [
          "follows"
        ],
        "summary": "List follows",
        "description": "List selected data from all follows that match the specified filter and search criteria in a specific sort order. Requires no specific permission.",
        "operationId": "listFollows",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/follows"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "follows"
        ],
        "summary": "Create new follow",
        "description": "Create a new follow and return its persistent data. Requires the authenticated user to be the `creator`.",
        "operationId": "createFollow",
        "requestBody": {
          "$ref": "#/components/requestBodies/follows"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/follows"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/follows/{ID}": {
      "get": {
        "tags": [
          "follows"
        ],
        "summary": "Get follow",
        "description": "Return the data of an existing follow by **`ID`**. Requires no specific permission.",
        "operationId": "getFollow",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/follows"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "follows"
        ],
        "summary": "Check if follow exists",
        "description": "Check if a follow with **`ID`** exists, but do not return its data. Requires no specific permission.",
        "operationId": "existsFollow",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "follows"
        ],
        "summary": "Update existing follow",
        "description": "Update an existing follow by **`ID`** and return its persistent data. Requires the authenticated user to be the `creator`.",
        "operationId": "updateFollow",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/follows"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/follows"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "follows"
        ],
        "summary": "Delete follow",
        "description": "Permanently delete an existing follow by **`ID`**. Requires the authenticated user to be the `creator`.",
        "operationId": "deleteFollow",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/forks": {
      "post": {
        "tags": [
          "forks"
        ],
        "summary": "List forks",
        "description": "List selected data from all forks that match the specified filter and search criteria in a specific sort order. Requires no specific permission.",
        "operationId": "listForks",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/forks"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/forks/{ID}": {
      "get": {
        "tags": [
          "forks"
        ],
        "summary": "Get fork",
        "description": "Return the data of an existing fork by **`ID`**. Requires no specific permission.",
        "operationId": "getFork",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/forks"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "forks"
        ],
        "summary": "Check if fork exists",
        "description": "Check if a fork with **`ID`** exists, but do not return its data. Requires no specific permission.",
        "operationId": "existsFork",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/groups": {
      "post": {
        "tags": [
          "groups"
        ],
        "summary": "List groups",
        "description": "List selected data from all groups that match the specified filter and search criteria in a specific sort order. Requires no specific permission.",
        "operationId": "listGroups",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/groups"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/groups/{ID}": {
      "get": {
        "tags": [
          "groups"
        ],
        "summary": "Get group",
        "description": "Return the data of an existing group by **`ID`**. Requires no specific permission.",
        "operationId": "getGroup",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/groups"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "groups"
        ],
        "summary": "Check if group exists",
        "description": "Check if a group with **`ID`** exists, but do not return its data. Requires no specific permission.",
        "operationId": "existsGroup",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/groups2users": {
      "post": {
        "tags": [
          "groups2users"
        ],
        "summary": "List groups-to-users",
        "description": "List selected data from all groups-to-users that match the specified filter and search criteria in a specific sort order. Requires `admin` permission. Has dependency on `group` or `user`.",
        "operationId": "listGroupsToUsers",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/groups2users"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/groups2users/{ID}": {
      "get": {
        "tags": [
          "groups2users"
        ],
        "summary": "Get group-to-user",
        "description": "Return the data of an existing group-to-user by **`ID`**. Requires `admin` permission. Has dependency on `group` or `user`.",
        "operationId": "getGroupToUser",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/groups2users"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "groups2users"
        ],
        "summary": "Check if group-to-user exists",
        "description": "Check if a group-to-user with **`ID`** exists, but do not return its data. Requires `admin` permission. Has dependency on `group` or `user`.",
        "operationId": "existsGroupToUser",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/invitations": {
      "post": {
        "tags": [
          "invitations"
        ],
        "summary": "List invitations",
        "description": "List selected data from all invitations that match the specified filter and search criteria in a specific sort order. Requires `calendar` permission. Has dependency on `appointment`.",
        "operationId": "listInvitations",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/invitations"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "invitations"
        ],
        "summary": "Create new invitation",
        "description": "Create a new invitation and return its persistent data. Requires writable `calendar` permission. Has dependency on `appointment`.",
        "operationId": "createInvitation",
        "requestBody": {
          "$ref": "#/components/requestBodies/invitations"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/invitations"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/invitations/{ID}": {
      "get": {
        "tags": [
          "invitations"
        ],
        "summary": "Get invitation",
        "description": "Return the data of an existing invitation by **`ID`**. Requires `calendar` permission. Has dependency on `appointment`.",
        "operationId": "getInvitation",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/invitations"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "invitations"
        ],
        "summary": "Check if invitation exists",
        "description": "Check if an invitation with **`ID`** exists, but do not return its data. Requires `calendar` permission. Has dependency on `appointment`.",
        "operationId": "existsInvitation",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "invitations"
        ],
        "summary": "Update existing invitation",
        "description": "Update an existing invitation by **`ID`** and return its persistent data. Requires writable `calendar` permission. Has dependency on `appointment`.",
        "operationId": "updateInvitation",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/invitations"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/invitations"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "invitations"
        ],
        "summary": "Delete invitation",
        "description": "Permanently delete an existing invitation by **`ID`**. Requires writable `calendar` permission. Has dependency on `appointment`.",
        "operationId": "deleteInvitation",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/items": {
      "post": {
        "tags": [
          "items"
        ],
        "summary": "List items",
        "description": "List selected data from all items that match the specified filter and search criteria in a specific sort order. Requires `inventory` permission.",
        "operationId": "listItems",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/items"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "items"
        ],
        "summary": "Create new item",
        "description": "Create a new item and return its persistent data. Requires writable `inventory` permission.",
        "operationId": "createItem",
        "requestBody": {
          "$ref": "#/components/requestBodies/items"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/items"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/items/{ID}": {
      "get": {
        "tags": [
          "items"
        ],
        "summary": "Get item",
        "description": "Return the data of an existing item by **`ID`**. Requires `inventory` permission.",
        "operationId": "getItem",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/items"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "items"
        ],
        "summary": "Check if item exists",
        "description": "Check if an item with **`ID`** exists, but do not return its data. Requires `inventory` permission.",
        "operationId": "existsItem",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "items"
        ],
        "summary": "Update existing item",
        "description": "Update an existing item by **`ID`** and return its persistent data. Requires writable `inventory` permission.",
        "operationId": "updateItem",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/items"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/items"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "items"
        ],
        "summary": "Delete item",
        "description": "Permanently delete an existing item by **`ID`**. Requires writable `inventory` permission.",
        "operationId": "deleteItem",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/ledgers": {
      "post": {
        "tags": [
          "ledgers"
        ],
        "summary": "List ledgers",
        "description": "List selected data from all ledgers that match the specified filter and search criteria in a specific sort order. Requires `payments` permission.",
        "operationId": "listLedgers",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ledgers"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "ledgers"
        ],
        "summary": "Create new ledger",
        "description": "Create a new ledger and return its persistent data. Requires writable `payments` permission.",
        "operationId": "createLedger",
        "requestBody": {
          "$ref": "#/components/requestBodies/ledgers"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ledgers"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/ledgers/{ID}": {
      "get": {
        "tags": [
          "ledgers"
        ],
        "summary": "Get ledger",
        "description": "Return the data of an existing ledger by **`ID`**. Requires `payments` permission.",
        "operationId": "getLedger",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ledgers"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "ledgers"
        ],
        "summary": "Check if ledger exists",
        "description": "Check if a ledger with **`ID`** exists, but do not return its data. Requires `payments` permission.",
        "operationId": "existsLedger",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "ledgers"
        ],
        "summary": "Update existing ledger",
        "description": "Update an existing ledger by **`ID`** and return its persistent data. Requires writable `payments` permission.",
        "operationId": "updateLedger",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ledgers"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ledgers"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "ledgers"
        ],
        "summary": "Delete ledger",
        "description": "Permanently delete an existing ledger by **`ID`**. Requires writable `payments` permission.",
        "operationId": "deleteLedger",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/likes": {
      "post": {
        "tags": [
          "likes"
        ],
        "summary": "List likes",
        "description": "List selected data from all likes that match the specified filter and search criteria in a specific sort order. Requires no specific permission. Has dependency on `record`.",
        "operationId": "listLikes",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/likes"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "likes"
        ],
        "summary": "Create new like",
        "description": "Create a new like and return its persistent data. Requires the authenticated user to be the `creator`. Has dependency on `record`.",
        "operationId": "createLike",
        "requestBody": {
          "$ref": "#/components/requestBodies/likes"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/likes"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/likes/{ID}": {
      "get": {
        "tags": [
          "likes"
        ],
        "summary": "Get like",
        "description": "Return the data of an existing like by **`ID`**. Requires no specific permission. Has dependency on `record`.",
        "operationId": "getLike",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/likes"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "likes"
        ],
        "summary": "Check if like exists",
        "description": "Check if a like with **`ID`** exists, but do not return its data. Requires no specific permission. Has dependency on `record`.",
        "operationId": "existsLike",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "likes"
        ],
        "summary": "Update existing like",
        "description": "Update an existing like by **`ID`** and return its persistent data. Requires the authenticated user to be the `creator`. Has dependency on `record`.",
        "operationId": "updateLike",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/likes"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/likes"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "likes"
        ],
        "summary": "Delete like",
        "description": "Permanently delete an existing like by **`ID`**. Requires the authenticated user to be the `creator`. Has dependency on `record`.",
        "operationId": "deleteLike",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/links": {
      "post": {
        "tags": [
          "links"
        ],
        "summary": "List links",
        "description": "List selected data from all links that match the specified filter and search criteria in a specific sort order. Requires `links` permission.",
        "operationId": "listLinks",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/links"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "links"
        ],
        "summary": "Create new link",
        "description": "Create a new link and return its persistent data. Requires writable `links` permission.",
        "operationId": "createLink",
        "requestBody": {
          "$ref": "#/components/requestBodies/links"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/links"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/links/{ID}": {
      "get": {
        "tags": [
          "links"
        ],
        "summary": "Get link",
        "description": "Return the data of an existing link by **`ID`**. Requires `links` permission.",
        "operationId": "getLink",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/links"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "links"
        ],
        "summary": "Check if link exists",
        "description": "Check if a link with **`ID`** exists, but do not return its data. Requires `links` permission.",
        "operationId": "existsLink",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "links"
        ],
        "summary": "Update existing link",
        "description": "Update an existing link by **`ID`** and return its persistent data. Requires writable `links` permission.",
        "operationId": "updateLink",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/links"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/links"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "links"
        ],
        "summary": "Delete link",
        "description": "Permanently delete an existing link by **`ID`**. Requires writable `links` permission.",
        "operationId": "deleteLink",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/mailinglists": {
      "post": {
        "tags": [
          "mailinglists"
        ],
        "summary": "List mailing lists",
        "description": "List selected data from all mailing lists that match the specified filter and search criteria in a specific sort order. Requires `mailinglists` permission.",
        "operationId": "listMailingLists",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/mailinglists"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "mailinglists"
        ],
        "summary": "Create new mailing list",
        "description": "Create a new mailing list and return its persistent data. Requires writable `mailinglists` permission.",
        "operationId": "createMailingList",
        "requestBody": {
          "$ref": "#/components/requestBodies/mailinglists"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/mailinglists"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/mailinglists/{ID}": {
      "get": {
        "tags": [
          "mailinglists"
        ],
        "summary": "Get mailing list",
        "description": "Return the data of an existing mailing list by **`ID`**. Requires `mailinglists` permission.",
        "operationId": "getMailingList",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/mailinglists"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "mailinglists"
        ],
        "summary": "Check if mailing list exists",
        "description": "Check if a mailing list with **`ID`** exists, but do not return its data. Requires `mailinglists` permission.",
        "operationId": "existsMailingList",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "mailinglists"
        ],
        "summary": "Update existing mailing list",
        "description": "Update an existing mailing list by **`ID`** and return its persistent data. Requires writable `mailinglists` permission.",
        "operationId": "updateMailingList",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/mailinglists"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/mailinglists"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "mailinglists"
        ],
        "summary": "Delete mailing list",
        "description": "Permanently delete an existing mailing list by **`ID`**. Requires writable `mailinglists` permission.",
        "operationId": "deleteMailingList",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/mailingrecipients": {
      "post": {
        "tags": [
          "mailingrecipients"
        ],
        "summary": "List mailing recipients",
        "description": "List selected data from all mailing recipients that match the specified filter and search criteria in a specific sort order. Requires `messages` permission. Has dependency on `message`.",
        "operationId": "listMailingRecipients",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/mailingrecipients"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "mailingrecipients"
        ],
        "summary": "Create new mailing recipient",
        "description": "Create a new mailing recipient and return its persistent data. Requires writable `messages` permission. Has dependency on `message`.",
        "operationId": "createMailingRecipient",
        "requestBody": {
          "$ref": "#/components/requestBodies/mailingrecipients"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/mailingrecipients"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/mailingrecipients/{ID}": {
      "get": {
        "tags": [
          "mailingrecipients"
        ],
        "summary": "Get mailing recipient",
        "description": "Return the data of an existing mailing recipient by **`ID`**. Requires `messages` permission. Has dependency on `message`.",
        "operationId": "getMailingRecipient",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/mailingrecipients"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "mailingrecipients"
        ],
        "summary": "Check if mailing recipient exists",
        "description": "Check if a mailing recipient with **`ID`** exists, but do not return its data. Requires `messages` permission. Has dependency on `message`.",
        "operationId": "existsMailingRecipients",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "mailingrecipients"
        ],
        "summary": "Update existing mailing recipient",
        "description": "Update an existing mailing recipient by **`ID`** and return its persistent data. Requires writable `messages` permission. Has dependency on `message`.",
        "operationId": "updateMailingRecipient",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/mailingrecipients"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/mailingrecipients"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "mailingrecipients"
        ],
        "summary": "Delete mailing recipient",
        "description": "Permanently delete an existing mailing recipient by **`ID`**. Requires writable `messages` permission. Has dependency on `message`.",
        "operationId": "deleteMailingRecipient",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/mailservers": {
      "post": {
        "tags": [
          "mailservers"
        ],
        "summary": "List mail servers",
        "description": "List selected data from all mail servers that match the specified filter and search criteria in a specific sort order. Requires no specific permission.",
        "operationId": "listMailServers",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/mailservers"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "mailservers"
        ],
        "summary": "Create new mail server",
        "description": "Create a new mail server and return its persistent data. Requires no specific permission.",
        "operationId": "createMailServer",
        "requestBody": {
          "$ref": "#/components/requestBodies/mailservers"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/mailservers"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/mailservers/{ID}": {
      "get": {
        "tags": [
          "mailservers"
        ],
        "summary": "Get mail server",
        "description": "Return the data of an existing mail server by **`ID`**. Requires no specific permission.",
        "operationId": "getMailServer",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/mailservers"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "mailservers"
        ],
        "summary": "Check if mail server exists",
        "description": "Check if a mail server with **`ID`** exists, but do not return its data. Requires no specific permission.",
        "operationId": "existsMailServer",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "mailservers"
        ],
        "summary": "Update existing mail server",
        "description": "Update an existing mail server by **`ID`** and return its persistent data. Requires no specific permission.",
        "operationId": "updateMailServer",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/mailservers"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/mailservers"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "mailservers"
        ],
        "summary": "Delete mail server",
        "description": "Permanently delete an existing mail server by **`ID`**. Requires no specific permission.",
        "operationId": "deleteMailServer",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/messagereads": {
      "post": {
        "tags": [
          "messagereads"
        ],
        "summary": "List message-reads",
        "description": "List selected data from all message-reads that match the specified filter and search criteria in a specific sort order. Requires `messages` permission. Has dependency on `message`.",
        "operationId": "listMessageReads",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/messagereads"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "messagereads"
        ],
        "summary": "Create new message-read",
        "description": "Create a new message-read and return its persistent data. Requires writable `messages` permission and the authenticated user to be the `creator`. Has dependency on `message`.",
        "operationId": "createMessageRead",
        "requestBody": {
          "$ref": "#/components/requestBodies/messagereads"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/messagereads"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/messagereads/{ID}": {
      "get": {
        "tags": [
          "messagereads"
        ],
        "summary": "Get message-read",
        "description": "Return the data of an existing message-read by **`ID`**. Requires `messages` permission. Has dependency on `message`.",
        "operationId": "getMessageRead",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/messagereads"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "messagereads"
        ],
        "summary": "Check if message-read exists",
        "description": "Check if a message-read with **`ID`** exists, but do not return its data. Requires `messages` permission. Has dependency on `message`.",
        "operationId": "existsMessageRead",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "messagereads"
        ],
        "summary": "Update existing message-read",
        "description": "Update an existing message-read by **`ID`** and return its persistent data. Requires writable `messages` permission and the authenticated user to be the `creator`. Has dependency on `message`.",
        "operationId": "updateMessageRead",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/messagereads"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/messagereads"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "messagereads"
        ],
        "summary": "Delete message-read",
        "description": "Permanently delete an existing message-read by **`ID`**. Requires writable `messages` permission and the authenticated user to be the `creator`. Has dependency on `message`.",
        "operationId": "deleteMessageRead",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/messages": {
      "post": {
        "tags": [
          "messages"
        ],
        "summary": "List messages",
        "description": "List selected data from all messages that match the specified filter and search criteria in a specific sort order. Requires `messages` permission.",
        "operationId": "listMessages",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/messages"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "messages"
        ],
        "summary": "Create new message",
        "description": "Create a new message and return its persistent data. Requires writable `messages` permission.",
        "operationId": "createMessage",
        "requestBody": {
          "$ref": "#/components/requestBodies/messages"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/messages"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/messages/{ID}": {
      "get": {
        "tags": [
          "messages"
        ],
        "summary": "Get message",
        "description": "Return the data of an existing message by **`ID`**. Requires `messages` permission.",
        "operationId": "getMessage",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/messages"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "messages"
        ],
        "summary": "Check if message exists",
        "description": "Check if a message with **`ID`** exists, but do not return its data. Requires `messages` permission.",
        "operationId": "existsMessage",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "messages"
        ],
        "summary": "Update existing message",
        "description": "Update an existing message by **`ID`** and return its persistent data. Requires writable `messages` permission.",
        "operationId": "updateMessage",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/messages"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/messages"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "messages"
        ],
        "summary": "Delete message",
        "description": "Permanently delete an existing message by **`ID`**. Requires writable `messages` permission.",
        "operationId": "deleteMessage",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/notes": {
      "post": {
        "tags": [
          "notes"
        ],
        "summary": "List notes",
        "description": "List selected data from all notes that match the specified filter and search criteria in a specific sort order. Requires `notes` permission.",
        "operationId": "listNotes",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/notes"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "notes"
        ],
        "summary": "Create new note",
        "description": "Create a new note and return its persistent data. Requires writable `notes` permission.",
        "operationId": "createNote",
        "requestBody": {
          "$ref": "#/components/requestBodies/notes"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/notes"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/notes/{ID}": {
      "get": {
        "tags": [
          "notes"
        ],
        "summary": "Get note",
        "description": "Return the data of an existing note by **`ID`**. Requires `notes` permission.",
        "operationId": "getNote",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/notes"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "notes"
        ],
        "summary": "Check if note exists",
        "description": "Check if a note with **`ID`** exists, but do not return its data. Requires `notes` permission.",
        "operationId": "existsNote",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "notes"
        ],
        "summary": "Update existing note",
        "description": "Update an existing note by **`ID`** and return its persistent data. Requires writable `notes` permission.",
        "operationId": "updateNote",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/notes"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/notes"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "notes"
        ],
        "summary": "Delete note",
        "description": "Permanently delete an existing note by **`ID`**. Requires writable `notes` permission.",
        "operationId": "deleteNote",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/objects": {
      "post": {
        "tags": [
          "objects"
        ],
        "summary": "List custom objects",
        "description": "List selected data from all custom objects that match the specified filter and search criteria in a specific sort order. Requires no specific permission.",
        "operationId": "listObjects",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/objects"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "objects"
        ],
        "summary": "Create new custom object",
        "description": "Create a new custom object and return its persistent data. Requires no specific permission.",
        "operationId": "createObject",
        "requestBody": {
          "$ref": "#/components/requestBodies/objects"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/objects"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/objects/{ID}": {
      "get": {
        "tags": [
          "objects"
        ],
        "summary": "Get custom object",
        "description": "Return the data of an existing custom object by **`ID`**. Requires no specific permission.",
        "operationId": "getObject",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/objects"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "objects"
        ],
        "summary": "Check if custom object exists",
        "description": "Check if a custom object with **`ID`** exists, but do not return its data. Requires no specific permission.",
        "operationId": "existsObject",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "objects"
        ],
        "summary": "Update existing custom object",
        "description": "Update an existing custom object by **`ID`** and return its persistent data. Requires no specific permission.",
        "operationId": "updateObject",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/objects"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/objects"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "objects"
        ],
        "summary": "Delete custom object",
        "description": "Permanently delete an existing custom object by **`ID`**. Requires no specific permission.",
        "operationId": "deleteObject",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/opportunities": {
      "post": {
        "tags": [
          "opportunities"
        ],
        "summary": "List opportunities",
        "description": "List selected data from all opportunities that match the specified filter and search criteria in a specific sort order. Requires `opportunities` permission.",
        "operationId": "listOpportunities",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/opportunities"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "opportunities"
        ],
        "summary": "Create new opportunity",
        "description": "Create a new opportunity and return its persistent data. Requires writable `opportunities` permission.",
        "operationId": "createOpportunity",
        "requestBody": {
          "$ref": "#/components/requestBodies/opportunities"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/opportunities"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/opportunities/{ID}": {
      "get": {
        "tags": [
          "opportunities"
        ],
        "summary": "Get opportunity",
        "description": "Return the data of an existing opportunity by **`ID`**. Requires `opportunities` permission.",
        "operationId": "getOpportunity",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/opportunities"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "opportunities"
        ],
        "summary": "Check if opportunity exists",
        "description": "Check if an opportunity with **`ID`** exists, but do not return its data. Requires `opportunities` permission.",
        "operationId": "existsOpportunity",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "opportunities"
        ],
        "summary": "Update existing opportunity",
        "description": "Update an existing opportunity by **`ID`** and return its persistent data. Requires writable `opportunities` permission.",
        "operationId": "updateOpportunity",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/opportunities"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/opportunities"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "opportunities"
        ],
        "summary": "Delete opportunity",
        "description": "Permanently delete an existing opportunity by **`ID`**. Requires writable `opportunities` permission.",
        "operationId": "deleteOpportunity",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/participants": {
      "post": {
        "tags": [
          "participants"
        ],
        "summary": "List participants",
        "description": "List selected data from all participants that match the specified filter and search criteria in a specific sort order. Requires `mailinglists` or `campaigns` permission. Has dependency on `mailinglist` or `campaign`.",
        "operationId": "listParticipants",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/participants"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "participants"
        ],
        "summary": "Create new participant",
        "description": "Create a new participant and return its persistent data. Requires writable `mailinglists` or `campaigns` permission. Has dependency on `mailinglist` or `campaign`.",
        "operationId": "createParticipant",
        "requestBody": {
          "$ref": "#/components/requestBodies/participants"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/participants"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/participants/{ID}": {
      "get": {
        "tags": [
          "participants"
        ],
        "summary": "Get participant",
        "description": "Return the data of an existing participant by **`ID`**. Requires `mailinglists` or `campaigns` permission. Has dependency on `mailinglist` or `campaign`.",
        "operationId": "getParticipant",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/participants"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "participants"
        ],
        "summary": "Check if participant exists",
        "description": "Check if a participant with **`ID`** exists, but do not return its data. Requires `mailinglists` or `campaigns` permission. Has dependency on `mailinglist` or `campaign`.",
        "operationId": "existsParticipant",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "participants"
        ],
        "summary": "Update existing participant",
        "description": "Update an existing participant by **`ID`** and return its persistent data. Requires writable `mailinglists` or `campaigns` permission. Has dependency on `mailinglist` or `campaign`.",
        "operationId": "updateParticipant",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/participants"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/participants"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "participants"
        ],
        "summary": "Delete participant",
        "description": "Permanently delete an existing participant by **`ID`**. Requires writable `mailinglists` or `campaigns` permission. Has dependency on `mailinglist` or `campaign`.",
        "operationId": "deleteParticipant",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/payments": {
      "post": {
        "tags": [
          "payments"
        ],
        "summary": "List payments",
        "description": "List selected data from all payments that match the specified filter and search criteria in a specific sort order. Requires `payments` permission.",
        "operationId": "listPayments",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/payments"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "payments"
        ],
        "summary": "Create new payment",
        "description": "Create a new payment and return its persistent data. Requires writable `payments` permission.",
        "operationId": "createPayment",
        "requestBody": {
          "$ref": "#/components/requestBodies/payments"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/payments"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/payments/{ID}": {
      "get": {
        "tags": [
          "payments"
        ],
        "summary": "Get payment",
        "description": "Return the data of an existing payment by **`ID`**. Requires `payments` permission.",
        "operationId": "getPayment",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/payments"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "payments"
        ],
        "summary": "Check if payment exists",
        "description": "Check if a payment with **`ID`** exists, but do not return its data. Requires `payments` permission.",
        "operationId": "existsPayment",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "payments"
        ],
        "summary": "Update existing payment",
        "description": "Update an existing payment by **`ID`** and return its persistent data. Requires writable `payments` permission.",
        "operationId": "updatePayment",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/payments"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/payments"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "payments"
        ],
        "summary": "Delete payment",
        "description": "Permanently delete an existing payment by **`ID`**. Requires writable `payments` permission.",
        "operationId": "deletePayment",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/permissions": {
      "post": {
        "tags": [
          "permissions"
        ],
        "summary": "List permissions",
        "description": "List selected data from all permissions that match the specified filter and search criteria in a specific sort order. Requires `admin` permission. Has dependency on `group`.",
        "operationId": "listPermissions",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/permissions"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/permissions/{ID}": {
      "get": {
        "tags": [
          "permissions"
        ],
        "summary": "Get permission",
        "description": "Return the data of an existing permission by **`ID`**. Requires `admin` permission. Has dependency on `group`.",
        "operationId": "getPermission",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/permissions"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "permissions"
        ],
        "summary": "Check if permission exists",
        "description": "Check if a permission with **`ID`** exists, but do not return its data. Requires `admin` permission. Has dependency on `group`.",
        "operationId": "existsPermission",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/pricelists": {
      "post": {
        "tags": [
          "pricelists"
        ],
        "summary": "List price lists",
        "description": "List selected data from all price lists that match the specified filter and search criteria in a specific sort order. Requires `pricelists` permission.",
        "operationId": "listPriceLists",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/pricelists"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "pricelists"
        ],
        "summary": "Create new price list",
        "description": "Create a new price list and return its persistent data. Requires writable `pricelists` permission.",
        "operationId": "createPriceList",
        "requestBody": {
          "$ref": "#/components/requestBodies/pricelists"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/pricelists"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/pricelists/{ID}": {
      "get": {
        "tags": [
          "pricelists"
        ],
        "summary": "Get price list",
        "description": "Return the data of an existing price list by **`ID`**. Requires `pricelists` permission.",
        "operationId": "getPriceList",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/pricelists"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "pricelists"
        ],
        "summary": "Check if price list exists",
        "description": "Check if a price list with **`ID`** exists, but do not return its data. Requires `pricelists` permission.",
        "operationId": "existsPriceList",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "pricelists"
        ],
        "summary": "Update existing price list",
        "description": "Update an existing price list by **`ID`** and return its persistent data. Requires writable `pricelists` permission.",
        "operationId": "updatePriceList",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/pricelists"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/pricelists"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "pricelists"
        ],
        "summary": "Delete price list",
        "description": "Permanently delete an existing price list by **`ID`**. Requires writable `pricelists` permission.",
        "operationId": "deletePriceList",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/pricelists2accounts": {
      "post": {
        "tags": [
          "pricelists2accounts"
        ],
        "summary": "List pricelists-to-accounts",
        "description": "List selected data from all pricelists-to-accounts that match the specified filter and search criteria in a specific sort order. Requires `pricelists` or `accounts` permission. Has dependencies on `pricelist` and `account`.",
        "operationId": "listPriceListsToAccounts",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/pricelists2accounts"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "pricelists2accounts"
        ],
        "summary": "Create new price",
        "description": "Create a new price and return its persistent data. Requires writable `pricelists` or `accounts` permission. Has dependencies on `pricelist` and `account`.",
        "operationId": "createPriceListToAccount",
        "requestBody": {
          "$ref": "#/components/requestBodies/pricelists2accounts"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/pricelists2accounts"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/pricelists2accounts/{ID}": {
      "get": {
        "tags": [
          "pricelists2accounts"
        ],
        "summary": "Get price",
        "description": "Return the data of an existing price by **`ID`**. Requires `pricelists` or `accounts` permission. Has dependencies on `pricelist` and `account`.",
        "operationId": "getPriceListToAccount",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/pricelists2accounts"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "pricelists2accounts"
        ],
        "summary": "Check if price exists",
        "description": "Check if a price with **`ID`** exists, but do not return its data. Requires `pricelists` or `accounts` permission. Has dependencies on `pricelist` and `account`.",
        "operationId": "existsPriceListToAccount",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "pricelists2accounts"
        ],
        "summary": "Update existing price",
        "description": "Update an existing price by **`ID`** and return its persistent data. Requires writable `pricelists` or `accounts` permission. Has dependencies on `pricelist` and `account`.",
        "operationId": "updatePriceListToAccount",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/pricelists2accounts"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/pricelists2accounts"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "pricelists2accounts"
        ],
        "summary": "Delete price",
        "description": "Permanently delete an existing price by **`ID`**. Requires writable `pricelists` or `accounts` permission. Has dependencies on `pricelist` and `account`.",
        "operationId": "deletePriceListToAccount",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/prices": {
      "post": {
        "tags": [
          "prices"
        ],
        "summary": "List prices",
        "description": "List selected data from all prices that match the specified filter and search criteria in a specific sort order. Requires `inventory` or `pricelists` permission. Has dependencies on `items` and `pricelist`.",
        "operationId": "listPrices",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/prices"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "prices"
        ],
        "summary": "Create new price",
        "description": "Create a new price and return its persistent data. Requires writable `inventory` or `pricelists` permission. Has dependencies on `items` and `pricelist`.",
        "operationId": "createPrice",
        "requestBody": {
          "$ref": "#/components/requestBodies/prices"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/prices"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/prices/{ID}": {
      "get": {
        "tags": [
          "prices"
        ],
        "summary": "Get price",
        "description": "Return the data of an existing price by **`ID`**. Requires `inventory` or `pricelists` permission. Has dependencies on `items` and `pricelist`.",
        "operationId": "getPrice",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/prices"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "prices"
        ],
        "summary": "Check if price exists",
        "description": "Check if a price with **`ID`** exists, but do not return its data. Requires `inventory` or `pricelists` permission. Has dependencies on `items` and `pricelist`.",
        "operationId": "existsPrice",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "prices"
        ],
        "summary": "Update existing price",
        "description": "Update an existing price by **`ID`** and return its persistent data. Requires writable `inventory` or `pricelists` permission. Has dependencies on `items` and `pricelist`.",
        "operationId": "updatePrice",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/prices"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/prices"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "prices"
        ],
        "summary": "Delete price",
        "description": "Permanently delete an existing price by **`ID`**. Requires writable `inventory` or `pricelists` permission. Has dependencies on `items` and `pricelist`.",
        "operationId": "deletePrice",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/projects": {
      "post": {
        "tags": [
          "projects"
        ],
        "summary": "List projects",
        "description": "List selected data from all projects that match the specified filter and search criteria in a specific sort order. Requires `projects` permission.",
        "operationId": "listProjects",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/projects"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "projects"
        ],
        "summary": "Create new project",
        "description": "Create a new project and return its persistent data. Requires writable `projects` permission.",
        "operationId": "createProject",
        "requestBody": {
          "$ref": "#/components/requestBodies/projects"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/projects"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/projects/{ID}": {
      "get": {
        "tags": [
          "projects"
        ],
        "summary": "Get project",
        "description": "Return the data of an existing project by **`ID`**. Requires `projects` permission.",
        "operationId": "getProject",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/projects"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "projects"
        ],
        "summary": "Check if project exists",
        "description": "Check if a project with **`ID`** exists, but do not return its data. Requires `projects` permission.",
        "operationId": "existsProject",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "projects"
        ],
        "summary": "Update existing project",
        "description": "Update an existing project by **`ID`** and return its persistent data. Requires writable `projects` permission.",
        "operationId": "updateProject",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/projects"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/projects"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "projects"
        ],
        "summary": "Delete project",
        "description": "Permanently delete an existing project by **`ID`**. Requires writable `projects` permission.",
        "operationId": "deleteProject",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/records": {
      "post": {
        "tags": [
          "records"
        ],
        "summary": "List records",
        "description": "List selected data from all records that match the specified filter and search criteria in a specific sort order. Requires no specific permission.",
        "operationId": "listRecords",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/records"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "records"
        ],
        "summary": "Create new record",
        "description": "Create a new record and return its persistent data. Requires the authenticated user to be the `creator`.",
        "operationId": "createRecord",
        "requestBody": {
          "$ref": "#/components/requestBodies/records"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/records"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/records/{ID}": {
      "get": {
        "tags": [
          "records"
        ],
        "summary": "Get record",
        "description": "Return the data of an existing record by **`ID`**. Requires no specific permission.",
        "operationId": "getRecord",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/records"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "records"
        ],
        "summary": "Check if record exists",
        "description": "Check if a record with **`ID`** exists, but do not return its data. Requires no specific permission.",
        "operationId": "existsRecord",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "records"
        ],
        "summary": "Update existing record",
        "description": "Update an existing record by **`ID`** and return its persistent data. Requires the authenticated user to be the `creator`.",
        "operationId": "updateRecord",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/records"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/records"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "records"
        ],
        "summary": "Delete record",
        "description": "Permanently delete an existing record by **`ID`**. Requires the authenticated user to be the `creator`.",
        "operationId": "deleteRecord",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/relateditems": {
      "post": {
        "tags": [
          "relateditems"
        ],
        "summary": "List related items",
        "description": "List selected data from all related items that match the specified filter and search criteria in a specific sort order. Requires `inventory` permission. Has dependency on `item`.",
        "operationId": "listRelatedItems",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/relateditems"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "relateditems"
        ],
        "summary": "Create new related item",
        "description": "Create a new related item and return its persistent data. Requires writable `inventory` permission. Has dependency on `item`.",
        "operationId": "createRelatedItem",
        "requestBody": {
          "$ref": "#/components/requestBodies/relateditems"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/relateditems"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/relateditems/{ID}": {
      "get": {
        "tags": [
          "relateditems"
        ],
        "summary": "Get related item",
        "description": "Return the data of an existing related item by **`ID`**. Requires `inventory` permission. Has dependency on `item`.",
        "operationId": "getRelatedItem",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/relateditems"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "relateditems"
        ],
        "summary": "Check if related item exists",
        "description": "Check if a related item with **`ID`** exists, but do not return its data. Requires `inventory` permission. Has dependency on `item`.",
        "operationId": "existsRelatedItem",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "relateditems"
        ],
        "summary": "Update existing related item",
        "description": "Update an existing related item by **`ID`** and return its persistent data. Requires writable `inventory` permission. Has dependency on `item`.",
        "operationId": "updateRelatedItem",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/relateditems"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/relateditems"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "relateditems"
        ],
        "summary": "Delete related item",
        "description": "Permanently delete an existing related item by **`ID`**. Requires writable `inventory` permission. Has dependency on `item`.",
        "operationId": "deleteRelatedItem",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/resources": {
      "post": {
        "tags": [
          "resources"
        ],
        "summary": "List resources",
        "description": "List selected data from all resources that match the specified filter and search criteria in a specific sort order. Requires `dev` permission.",
        "operationId": "listResources",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/resources"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/resources/{ID}": {
      "get": {
        "tags": [
          "resources"
        ],
        "summary": "Get resource",
        "description": "Return the data of an existing resource by **`ID`**. Requires `dev` permission.",
        "operationId": "getResource",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/resources"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "resources"
        ],
        "summary": "Check if resource exists",
        "description": "Check if an resource with **`ID`** exists, but do not return its data. Requires `dev` permission.",
        "operationId": "existsResource",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/services": {
      "post": {
        "tags": [
          "services"
        ],
        "summary": "List services",
        "description": "List selected data from all services that match the specified filter and search criteria in a specific sort order. Requires `dev` permission.",
        "operationId": "listServices",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/services"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/services/{ID}": {
      "get": {
        "tags": [
          "services"
        ],
        "summary": "Get service",
        "description": "Return the data of an existing service by **`ID`**. Requires `dev` permission.",
        "operationId": "getService",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/services"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "services"
        ],
        "summary": "Check if service exists",
        "description": "Check if an service with **`ID`** exists, but do not return its data. Requires `dev` permission.",
        "operationId": "existsService",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/stocktransactions": {
      "post": {
        "tags": [
          "stocktransactions"
        ],
        "summary": "List stock transactions",
        "description": "List selected data from all stock transactions that match the specified filter and search criteria in a specific sort order. Requires `inventory` permission. Has dependency on `item`.",
        "operationId": "listStockTransactions",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/stocktransactions"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "stocktransactions"
        ],
        "summary": "Create new stock transaction",
        "description": "Create a new stock transaction and return its persistent data. Requires writable `inventory` permission. Has dependency on `item`.",
        "operationId": "createStockTransaction",
        "requestBody": {
          "$ref": "#/components/requestBodies/stocktransactions"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stocktransactions"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/stocktransactions/{ID}": {
      "get": {
        "tags": [
          "stocktransactions"
        ],
        "summary": "Get stock transaction",
        "description": "Return the data of an existing stock transaction by **`ID`**. Requires `inventory` permission. Has dependency on `item`.",
        "operationId": "getStockTransaction",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stocktransactions"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "stocktransactions"
        ],
        "summary": "Check if stock transaction exists",
        "description": "Check if a stock transaction with **`ID`** exists, but do not return its data. Requires `inventory` permission. Has dependency on `item`.",
        "operationId": "existsStockTransaction",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "stocktransactions"
        ],
        "summary": "Update existing stock transaction",
        "description": "Update an existing stock transaction by **`ID`** and return its persistent data. Requires writable `inventory` permission. Has dependency on `item`.",
        "operationId": "updateStockTransaction",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/stocktransactions"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stocktransactions"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "stocktransactions"
        ],
        "summary": "Delete stock transaction",
        "description": "Permanently delete an existing stock transaction by **`ID`**. Requires writable `inventory` permission. Has dependency on `item`.",
        "operationId": "deleteStockTransaction",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/storages": {
      "post": {
        "tags": [
          "storages"
        ],
        "summary": "List storages",
        "description": "List selected data from all storages that match the specified filter and search criteria in a specific sort order. Requires `inventory` permission.",
        "operationId": "listStorages",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/storages"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "storages"
        ],
        "summary": "Create new storage",
        "description": "Create a new storage and return its persistent data. Requires writable `inventory` permission.",
        "operationId": "createStorage",
        "requestBody": {
          "$ref": "#/components/requestBodies/storages"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/storages"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/storages/{ID}": {
      "get": {
        "tags": [
          "storages"
        ],
        "summary": "Get storage",
        "description": "Return the data of an existing storage by **`ID`**. Requires `inventory` permission.",
        "operationId": "getStorage",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/storages"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "storages"
        ],
        "summary": "Check if storage exists",
        "description": "Check if a storage with **`ID`** exists, but do not return its data. Requires `inventory` permission.",
        "operationId": "existsStorage",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "storages"
        ],
        "summary": "Update existing storage",
        "description": "Update an existing storage by **`ID`** and return its persistent data. Requires writable `inventory` permission.",
        "operationId": "updateStorage",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/storages"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/storages"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "storages"
        ],
        "summary": "Delete storage",
        "description": "Permanently delete an existing storage by **`ID`**. Requires writable `inventory` permission.",
        "operationId": "deleteStorage",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/suppliers": {
      "post": {
        "tags": [
          "suppliers"
        ],
        "summary": "List suppliers",
        "description": "List selected data from all suppliers that match the specified filter and search criteria in a specific sort order. Requires `inventory` or `accounts` permission. Has dependencies on `items` and `account`.",
        "operationId": "listSuppliers",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/suppliers"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "suppliers"
        ],
        "summary": "Create new supplier",
        "description": "Create a new supplier and return its persistent data. Requires writable `inventory` or `accounts` permission. Has dependencies on `items` and `account`.",
        "operationId": "createSupplier",
        "requestBody": {
          "$ref": "#/components/requestBodies/suppliers"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/suppliers"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/suppliers/{ID}": {
      "get": {
        "tags": [
          "suppliers"
        ],
        "summary": "Get supplier",
        "description": "Return the data of an existing supplier by **`ID`**. Requires `inventory` or `accounts` permission. Has dependencies on `items` and `account`.",
        "operationId": "getSupplier",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/suppliers"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "suppliers"
        ],
        "summary": "Check if supplier exists",
        "description": "Check if a supplier with **`ID`** exists, but do not return its data. Requires `inventory` or `accounts` permission. Has dependencies on `items` and `account`.",
        "operationId": "existsSupplier",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "suppliers"
        ],
        "summary": "Update existing supplier",
        "description": "Update an existing supplier by **`ID`** and return its persistent data. Requires writable `inventory` or `accounts` permission. Has dependencies on `items` and `account`.",
        "operationId": "updateSupplier",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/suppliers"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/suppliers"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "suppliers"
        ],
        "summary": "Delete supplier",
        "description": "Permanently delete an existing supplier by **`ID`**. Requires writable `inventory` or `accounts` permission. Has dependencies on `items` and `account`.",
        "operationId": "deleteSupplier",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/tasks": {
      "post": {
        "tags": [
          "tasks"
        ],
        "summary": "List tasks",
        "description": "List selected data from all tasks that match the specified filter and search criteria in a specific sort order. Requires `tasks` permission.",
        "operationId": "listTasks",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/tasks"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "tasks"
        ],
        "summary": "Create new task",
        "description": "Create a new task and return its persistent data. Requires writable `tasks` permission.",
        "operationId": "createTask",
        "requestBody": {
          "$ref": "#/components/requestBodies/tasks"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tasks"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/tasks/{ID}": {
      "get": {
        "tags": [
          "tasks"
        ],
        "summary": "Get task",
        "description": "Return the data of an existing task by **`ID`**. Requires `tasks` permission.",
        "operationId": "getTask",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tasks"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "tasks"
        ],
        "summary": "Check if task exists",
        "description": "Check if a task with **`ID`** exists, but do not return its data. Requires `tasks` permission.",
        "operationId": "existsTask",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "tasks"
        ],
        "summary": "Update existing task",
        "description": "Update an existing task by **`ID`** and return its persistent data. Requires writable `tasks` permission.",
        "operationId": "updateTask",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/tasks"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tasks"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "tasks"
        ],
        "summary": "Delete task",
        "description": "Permanently delete an existing task by **`ID`**. Requires writable `tasks` permission.",
        "operationId": "deleteTask",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/tickets": {
      "post": {
        "tags": [
          "tickets"
        ],
        "summary": "List tickets",
        "description": "List selected data from all tickets that match the specified filter and search criteria in a specific sort order. Requires `tickets` permission.",
        "operationId": "listTickets",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/tickets"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "tickets"
        ],
        "summary": "Create new ticket",
        "description": "Create a new ticket and return its persistent data. Requires writable `tickets` permission.",
        "operationId": "createTicket",
        "requestBody": {
          "$ref": "#/components/requestBodies/tickets"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tickets"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/tickets/{ID}": {
      "get": {
        "tags": [
          "tickets"
        ],
        "summary": "Get ticket",
        "description": "Return the data of an existing ticket by **`ID`**. Requires `tickets` permission.",
        "operationId": "getTicket",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tickets"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "tickets"
        ],
        "summary": "Check if ticket exists",
        "description": "Check if a ticket with **`ID`** exists, but do not return its data. Requires `tickets` permission.",
        "operationId": "existsTicket",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "tickets"
        ],
        "summary": "Update existing ticket",
        "description": "Update an existing ticket by **`ID`** and return its persistent data. Requires writable `tickets` permission.",
        "operationId": "updateTicket",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/tickets"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tickets"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "tickets"
        ],
        "summary": "Delete ticket",
        "description": "Permanently delete an existing ticket by **`ID`**. Requires writable `tickets` permission.",
        "operationId": "deleteTicket",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/transactions": {
      "post": {
        "tags": [
          "transactions"
        ],
        "summary": "List transactions",
        "description": "List selected data from all transactions that match the specified filter and search criteria in a specific sort order. Requires `billing`, `procurement` or `production` permission.",
        "operationId": "listTransactions",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/transactions"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "put": {
        "tags": [
          "transactions"
        ],
        "summary": "Create new transaction",
        "description": "Create a new transaction and return its persistent data. Requires writable `billing`, `procurement` or `production` permission.",
        "operationId": "createTransaction",
        "requestBody": {
          "$ref": "#/components/requestBodies/transactions"
        },
        "responses": {
          "201": {
            "description": "Successful Creation (Created)",
            "headers": {
              "Content-Location": {
                "$ref": "#/components/headers/Content-Location"
              },
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/transactions"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "409": {
            "description": "ID Present (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/transactions/{ID}": {
      "get": {
        "tags": [
          "transactions"
        ],
        "summary": "Get transaction",
        "description": "Return the data of an existing transaction by **`ID`**. Requires `billing`, `procurement` or `production` permission.",
        "operationId": "getTransaction",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/transactions"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "transactions"
        ],
        "summary": "Check if transaction exists",
        "description": "Check if a transaction with **`ID`** exists, but do not return its data. Requires `billing`, `procurement` or `production` permission.",
        "operationId": "existsTransaction",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "patch": {
        "tags": [
          "transactions"
        ],
        "summary": "Update existing transaction",
        "description": "Update an existing transaction by **`ID`** and return its persistent data. Requires writable `billing`, `procurement` or `production` permission.",
        "operationId": "updateTransaction",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/transactions"
        },
        "responses": {
          "200": {
            "description": "Successful Update (OK)",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/transactions"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Non-matching ID (Conflict)"
          },
          "410": {
            "description": "Gone"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "delete": {
        "tags": [
          "transactions"
        ],
        "summary": "Delete transaction",
        "description": "Permanently delete an existing transaction by **`ID`**. Requires writable `billing`, `procurement` or `production` permission.",
        "operationId": "deleteTransaction",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Deletion (No Content)"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Not Deletable (Conflict)"
          },
          "412": {
            "description": "Non-matching ETag (Precondition Failed)"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/users": {
      "post": {
        "tags": [
          "users"
        ],
        "summary": "List users",
        "description": "List selected data from all users that match the specified filter and search criteria in a specific sort order. Requires no specific permission.",
        "operationId": "listUsers",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/users"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/users/{ID}": {
      "get": {
        "tags": [
          "users"
        ],
        "summary": "Get user",
        "description": "Return the data of an existing user by **`ID`**. Requires no specific permission.",
        "operationId": "getUser",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/users"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "users"
        ],
        "summary": "Check if user exists",
        "description": "Check if a user with **`ID`** exists, but do not return its data. Requires no specific permission.",
        "operationId": "existsUser",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/weblets": {
      "post": {
        "tags": [
          "weblets"
        ],
        "summary": "List weblets",
        "description": "List selected data from all weblets that match the specified filter and search criteria in a specific sort order. Requires `dev` permission.",
        "operationId": "listWeblets",
        "requestBody": {
          "$ref": "#/components/requestBodies/list"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/weblets"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/weblets/{ID}": {
      "get": {
        "tags": [
          "weblets"
        ],
        "summary": "Get weblet",
        "description": "Return the data of an existing weblet by **`ID`**. Requires `dev` permission.",
        "operationId": "getWeblet",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/expand"
          },
          {
            "$ref": "#/components/parameters/extdata"
          },
          {
            "$ref": "#/components/parameters/tags"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/weblets"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      },
      "head": {
        "tags": [
          "weblets"
        ],
        "summary": "Check if weblet exists",
        "description": "Check if an weblet with **`ID`** exists, but do not return its data. Requires `dev` permission.",
        "operationId": "existsWeblet",
        "parameters": [
          {
            "$ref": "#/components/parameters/ID"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-exists"
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    }
  }
}
