Apaleo

Hotel management platform API

api.apaleo.com ↗
Version
v1
OpenAPI
3.0.0
Endpoints
33
Schemas
46
Updated
3 days ago
Hospitality hospitality hotel booking
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

api.apaleo.com

Authentication

oauth2

Endpoints

Clear filters

Unit 1 endpoints

DELETE /inventory/v1/units/{id}

Use this call to delete a unit.<br>You must have at least one of these scopes: 'units.delete, setup.manage'.

operationId: Unit_deleteById

Parameters

Name In Required Type Description
id path required string The id of the unit.

Responses

204 Deletion of the unit was successful.
400 Bad request.
401 You are unauthorized.
403 Forbidden.
404 The Request-URI could not be found.
422 Validation errors in the request body or query params.
500 An unexpected error occurred.
503 The server is currently unavailable. Please try later.
DELETE /inventory/v1/units/{id}

Unitattribute 1 endpoints

DELETE /inventory/v1/unit-attributes/{id}

Deletes unit attribute<br>You must have at least one of these scopes: 'unitattributes.delete, setup.manage'.

operationId: UnitAttribute_deleteById

Parameters

Name In Required Type Description
id path required string Id of unit attribute

Responses

200 OK
400 Bad request.
401 You are unauthorized.
403 Forbidden.
404 The Request-URI could not be found.
422 Validation errors in the request body or query params.
500 An unexpected error occurred.
503 The server is currently unavailable. Please try later.
DELETE /inventory/v1/unit-attributes/{id}

Unitgroup 1 endpoints

DELETE /inventory/v1/unit-groups/{id}

Use this call to delete a unit group.<br>You must have at least one of these scopes: 'unitgroups.delete, setup.manage'.

operationId: UnitGroup_deleteById

Parameters

Name In Required Type Description
id path required string The id of the unit group.

Responses

204 Deletion of the unit group was successful.
400 Bad request.
401 You are unauthorized.
403 Forbidden.
404 The Request-URI could not be found.
422 Validation errors in the request body or query params.
500 An unexpected error occurred.
503 The server is currently unavailable. Please try later.
DELETE /inventory/v1/unit-groups/{id}

Schemas

object ActionModel_PropertyAction_NotAllowedPropertyActionReason_
{
  "type": "object",
  "required": [
    "action",
    "isAllowed"
  ],
  "properties": {
    "action": {
      "enum": [
        "Delete",
        "Archive",
        "SetLive",
        "Reset"
      ],
      "type": "string"
    },
    "reasons": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ActionReasonModel_NotAllowedPropertyActionReason_"
      }
    },
    "isAllowed": {
      "type": "boolean"
    }
  }
}
object ActionReasonModel_NotAllowedPropertyActionReason_
{
  "type": "object",
  "required": [
    "code",
    "message"
  ],
  "properties": {
    "code": {
      "enum": [
        "DeleteNotAllowedForPropertyNotInStatusTest",
        "ArchiveNotAllowedForPropertyNotInStatusLive",
        "ArchiveNotAllowedForPropertyWhichIsAlreadyArchived",
        "SetToLiveNotAllowedForPropertyNotInStatusTest",
        "SetToLiveNotAllowedForPropertyInNonLiveAccount",
        "ResetNotAllowedForPropertyNotInStatusTest"
      ],
      "type": "string"
    },
    "message": {
      "type": "string",
      "minLength": 1
    }
  }
}
object AddressModel
{
  "type": "object",
  "required": [
    "addressLine1",
    "city",
    "countryCode",
    "postalCode"
  ],
  "properties": {
    "city": {
      "type": "string",
      "minLength": 1
    },
    "postalCode": {
      "type": "string",
      "minLength": 1
    },
    "regionCode": {
      "type": "string"
    },
    "countryCode": {
      "type": "string"
    },
    "addressLine1": {
      "type": "string",
      "minLength": 1
    },
    "addressLine2": {
      "type": "string"
    }
  }
}
object BankAccountModel
{
  "type": "object",
  "properties": {
    "bic": {
      "type": "string"
    },
    "bank": {
      "type": "string"
    },
    "iban": {
      "type": "string"
    }
  }
}
object BulkCreateUnitsModel
{
  "type": "object",
  "example": "{\n  \"units\": [\n    {\n      \"propertyId\": \"MUC\",\n      \"name\": \"A.201\",\n      \"description\": {\n        \"en\": \"Single room\",\n        \"de\": \"Einzelzimmer\"\n      },\n      \"unitGroupId\": \"MUC-SGL\",\n      \"maxPersons\": 1,\n      \"condition\": \"Clean\",\n      \"attributes\": [],\n      \"connectedUnits\": []\n    },\n    {\n      \"propertyId\": \"MUC\",\n      \"name\": \"A.103\",\n      \"description\": {\n        \"en\": \"Double room\",\n        \"de\": \"Doppelzimmer\"\n      },\n      \"unitGroupId\": \"MUC-DBL\",\n      \"maxPersons\": 2,\n      \"condition\": \"Clean\",\n      \"attributes\": [],\n      \"connectedUnits\": []\n    },\n    {\n      \"propertyId\": \"MUC\",\n      \"name\": \"S.102\",\n      \"description\": {\n        \"en\": \"Suite room\",\n        \"de\": \"Suite Zimmer\"\n      },\n      \"unitGroupId\": \"MUC-SUI\",\n      \"maxPersons\": 3,\n      \"condition\": \"Clean\",\n      \"attributes\": [],\n      \"connectedUnits\": [\n        {\n          \"unitId\": \"MUC-MTA\"\n        },\n        {\n          \"unitId\": \"MUC-JQI\"\n        }\n      ]\n    }\n  ]\n}",
  "required": [
    "units"
  ],
  "properties": {
    "units": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CreateUnitModel"
      }
    }
  }
}
object BulkUnitsCreatedModel
{
  "type": "object",
  "example": "{\n  \"ids\": [\n    \"MUC-CFP\",\n    \"MUC-XTA\",\n    \"MUC-CPZ\"\n  ]\n}",
  "required": [
    "ids"
  ],
  "properties": {
    "ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The unit ids"
    }
  }
}
object ConnectedUnitGroupModel
{
  "type": "object",
  "required": [
    "description",
    "id",
    "memberCount",
    "name"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The unit group id"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "The name for the unit group"
    },
    "maxPersons": {
      "type": "integer",
      "format": "int32",
      "description": "Maximum number of persons for the unit group"
    },
    "description": {
      "type": "string",
      "minLength": 1,
      "description": "The description for the unit group"
    },
    "memberCount": {
      "type": "integer",
      "format": "int32",
      "description": "The number of units taken from this connected unit group"
    }
  }
}
object ConnectedUnitModel
{
  "type": "object",
  "required": [
    "condition",
    "description",
    "id",
    "maxPersons",
    "name",
    "unitGroupId"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The unit id"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "The name for the unit"
    },
    "condition": {
      "enum": [
        "Clean",
        "CleanToBeInspected",
        "Dirty"
      ],
      "type": "string",
      "description": "The current status of the unit"
    },
    "maxPersons": {
      "type": "integer",
      "format": "int32",
      "description": "Maximum number of persons for the unit"
    },
    "description": {
      "type": "string",
      "minLength": 1,
      "description": "The description for the unit"
    },
    "unitGroupId": {
      "type": "string",
      "description": "The unit group id"
    }
  }
}
object CountModel
{
  "type": "object",
  "example": "{\n  \"count\": 50\n}",
  "required": [
    "count"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "format": "int64"
    }
  }
}
object CountryListModel
{
  "type": "object",
  "example": "{\n  \"countryCodes\": [\n    \"DE\",\n    \"US\"\n  ]\n}",
  "required": [
    "countryCodes"
  ],
  "properties": {
    "countryCodes": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "List of ISO country codes."
    }
  }
}
object CreateAddressModel
{
  "type": "object",
  "required": [
    "addressLine1",
    "city",
    "countryCode",
    "postalCode"
  ],
  "properties": {
    "city": {
      "type": "string",
      "minLength": 1
    },
    "postalCode": {
      "type": "string",
      "minLength": 1
    },
    "regionCode": {
      "type": "string",
      "maxLength": 6,
      "minLength": 2,
      "description": "The ISO 3166-2 code"
    },
    "countryCode": {
      "type": "string",
      "maxLength": 2,
      "minLength": 2,
      "description": "The country code, in ISO 3166-1 alpha-2 code"
    },
    "addressLine1": {
      "type": "string",
      "minLength": 1
    },
    "addressLine2": {
      "type": "string"
    }
  }
}
object CreateConnectedUnitGroupModel
{
  "type": "object",
  "required": [
    "memberCount",
    "unitGroupId"
  ],
  "properties": {
    "memberCount": {
      "type": "integer",
      "format": "int32",
      "maximum": 2147483647,
      "minimum": 1,
      "description": "The number of units for this connected unit group"
    },
    "unitGroupId": {
      "type": "string",
      "description": "The connected unit group id"
    }
  }
}
object CreateConnectedUnitModel
{
  "type": "object",
  "required": [
    "unitId"
  ],
  "properties": {
    "unitId": {
      "type": "string",
      "description": "The connected unit id"
    }
  }
}
object CreatePropertyModel
{
  "type": "object",
  "example": "{\n  \"code\": \"MUC\",\n  \"name\": {\n    \"en\": \"Demo Hotel Munich\",\n    \"de\": \"Demo Hotel München\"\n  },\n  \"companyName\": \"Hotel Münchner GmbH\",\n  \"managingDirectors\": \"Franz-Josef Gruber\",\n  \"commercialRegisterEntry\": \"Amtsgericht München, HRB 279336\",\n  \"taxId\": \"DE311053702\",\n  \"description\": {\n    \"en\": \"This is the demo hotel Munich\",\n    \"de\": \"Dies ist das Demo Hotel München\"\n  },\n  \"location\": {\n    \"addressLine1\": \"Marienplatz 1\",\n    \"postalCode\": \"80331\",\n    \"city\": \"München\",\n    \"countryCode\": \"DE\"\n  },\n  \"bankAccount\": {\n    \"iban\": \"DE44 5001 0517 5407 3249 31\",\n    \"bic\": \"SSKMDEMMXXX\",\n    \"bank\": \"Stadtsparkasse München\"\n  },\n  \"paymentTerms\": {\n    \"en\": \"Pay on checkout\",\n    \"de\": \"Zahlung bei Checkout\"\n  },\n  \"timeZone\": \"Europe/Berlin\",\n  \"defaultCheckInTime\": \"17:00:00\",\n  \"defaultCheckOutTime\": \"11:00:00\",\n  \"currencyCode\": \"EUR\"\n}",
  "required": [
    "code",
    "commercialRegisterEntry",
    "companyName",
    "currencyCode",
    "defaultCheckInTime",
    "defaultCheckOutTime",
    "location",
    "name",
    "paymentTerms",
    "taxId",
    "timeZone"
  ],
  "properties": {
    "code": {
      "type": "string",
      "pattern": "^[a-zA-Z0-9_]*$",
      "maxLength": 10,
      "minLength": 3,
      "description": "The code for the property that can be shown in reports and table views"
    },
    "name": {
      "type": "object",
      "description": "The name for the property",
      "additionalProperties": {
        "type": "string"
      }
    },
    "taxId": {
      "type": "string",
      "minLength": 1,
      "description": "The Tax-ID of the company running the property, as it should appear on invoices"
    },
    "location": {
      "$ref": "#/components/schemas/CreateAddressModel"
    },
    "timeZone": {
      "type": "string",
      "minLength": 1,
      "description": "The time zone name of the property from the IANA Time Zone Database.\r\n(see: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)"
    },
    "bankAccount": {
      "$ref": "#/components/schemas/BankAccountModel"
    },
    "companyName": {
      "type": "string",
      "minLength": 1,
      "description": "The legal name of the company running the property."
    },
    "description": {
      "type": "object",
      "description": "The description for the property",
      "additionalProperties": {
        "type": "string"
      }
    },
    "currencyCode": {
      "type": "string",
      "description": "The currency a property works with."
    },
    "paymentTerms": {
      "type": "object",
      "description": "The payment terms used for all rate plans",
      "additionalProperties": {
        "type": "string"
      }
    },
    "managingDirectors": {
      "type": "string",
      "description": "The managing director(s) of the company, as they should appear on invoices"
    },
    "defaultCheckInTime": {
      "type": "string",
      "description": "The default check-in time<br />A time (without fractional second part) as defined in the <a href=\"https://en.wikipedia.org/wiki/ISO_8601\">ISO8601:2004</a>"
    },
    "defaultCheckOutTime": {
      "type": "string",
      "description": "The default check-out time<br />A time (without fractional second part) as defined in the <a href=\"https://en.wikipedia.org/wiki/ISO_8601\">ISO8601:2004</a>"
    },
    "commercialRegisterEntry": {
      "type": "string",
      "minLength": 1,
      "description": "The entry in the Commercial Reigster of the company running the property, as it should appear on invoices"
    }
  }
}
object CreateUnitAttributeDefinitionModel
{
  "type": "object",
  "example": "{\n  \"name\": \"Floor 1\",\n  \"description\": \"Floor number\"\n}",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 50,
      "minLength": 1,
      "description": "The name of the unit attribute"
    },
    "description": {
      "type": "string",
      "description": "The description of the unit attribute"
    }
  }
}
object CreateUnitAttributeModel
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Id of unit attribute"
    }
  }
}
object CreateUnitGroupModel
{
  "type": "object",
  "example": "{\n  \"code\": \"DBL\",\n  \"propertyId\": \"MUC\",\n  \"name\": {\n    \"en\": \"Double Room\",\n    \"de\": \"Doppelzimmer\"\n  },\n  \"description\": {\n    \"en\": \"This is a nice room with as kingsize bed and flat screen\",\n    \"de\": \"Dies ist ein schönes Zimmer mit Kingsize-Bett und Flachbildschirm\"\n  },\n  \"maxPersons\": 4,\n  \"rank\": 1,\n  \"type\": \"BedRoom\"\n}",
  "required": [
    "code",
    "description",
    "maxPersons",
    "name",
    "propertyId"
  ],
  "properties": {
    "code": {
      "type": "string",
      "pattern": "^[a-zA-Z0-9_]*$",
      "maxLength": 10,
      "minLength": 3,
      "description": "The code for the unit group that can be shown in reports and table views"
    },
    "name": {
      "type": "object",
      "description": "The name for the unit group",
      "additionalProperties": {
        "type": "string"
      }
    },
    "rank": {
      "type": "integer",
      "format": "int32",
      "maximum": 2147483647,
      "minimum": 1,
      "description": "The unit group rank\r\nRestrictions:\r\n- Should be greater or equal to one"
    },
    "type": {
      "enum": [
        "BedRoom",
        "MeetingRoom",
        "EventSpace",
        "ParkingLot"
      ],
      "type": "string",
      "description": "The unit group type"
    },
    "maxPersons": {
      "type": "integer",
      "format": "int32",
      "maximum": 2147483647,
      "minimum": 1,
      "description": "Maximum number of persons for the unit group"
    },
    "propertyId": {
      "type": "string",
      "description": "The id of the property where unit group will be created"
    },
    "description": {
      "type": "object",
      "description": "The description for the unit group",
      "additionalProperties": {
        "type": "string"
      }
    },
    "connectedUnitGroups": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CreateConnectedUnitGroupModel"
      },
      "description": "The list of connected unit groups this unit group is composed of"
    }
  }
}
object CreateUnitModel
{
  "type": "object",
  "example": "{\n  \"propertyId\": \"MUC\",\n  \"name\": \"S.102\",\n  \"description\": {\n    \"en\": \"Suite room\",\n    \"de\": \"Suite Zimmer\"\n  },\n  \"unitGroupId\": \"MUC-SUI\",\n  \"maxPersons\": 3,\n  \"condition\": \"Clean\",\n  \"attributes\": [],\n  \"connectedUnits\": [\n    {\n      \"unitId\": \"MUC-MTA\"\n    },\n    {\n      \"unitId\": \"MUC-JQI\"\n    }\n  ]\n}",
  "required": [
    "description",
    "maxPersons",
    "name",
    "propertyId"
  ],
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "The name for the unit"
    },
    "condition": {
      "enum": [
        "Clean",
        "CleanToBeInspected",
        "Dirty"
      ],
      "type": "string",
      "description": "Condition of the unit"
    },
    "attributes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CreateUnitAttributeModel"
      },
      "description": "Collection of user defined attributes of unit"
    },
    "maxPersons": {
      "type": "integer",
      "format": "int32",
      "maximum": 2147483647,
      "minimum": 1,
      "description": "Maximum number of persons for the unit"
    },
    "propertyId": {
      "type": "string",
      "description": "The id of the property where the unit will be created"
    },
    "description": {
      "type": "object",
      "description": "The description for the unit",
      "additionalProperties": {
        "type": "string"
      }
    },
    "unitGroupId": {
      "type": "string",
      "description": "The id of the unit group"
    },
    "connectedUnits": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CreateConnectedUnitModel"
      },
      "description": "The list of units this unit is composed of"
    }
  }
}
object EmbeddedPropertyModel
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The property id"
    },
    "code": {
      "type": "string",
      "description": "The code for the property that can be shown in reports and table views"
    },
    "name": {
      "type": "string",
      "description": "The name for the property"
    },
    "description": {
      "type": "string",
      "readOnly": true,
      "description": "The description for the property"
    }
  }
}
object EmbeddedUnitGroupModel
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The unit group id"
    },
    "code": {
      "type": "string",
      "description": "The code for the unit group that can be shown in reports and table views"
    },
    "name": {
      "type": "string",
      "description": "The name for the unit group"
    },
    "type": {
      "enum": [
        "BedRoom",
        "MeetingRoom",
        "EventSpace",
        "ParkingLot",
        "Other"
      ],
      "type": "string",
      "description": "The unit group type"
    },
    "description": {
      "type": "string",
      "description": "The description for the unit group"
    }
  }
}
object EmbeddedUnitModel
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The unit id"
    },
    "name": {
      "type": "string",
      "description": "The name for the unit"
    },
    "description": {
      "type": "string",
      "description": "The description for the unit"
    },
    "unitGroupId": {
      "type": "string",
      "description": "The unit group id"
    }
  }
}
object MessageItemCollection
{
  "type": "object",
  "properties": {
    "messages": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "readOnly": true
    }
  }
}
object Operation
{
  "type": "object",
  "properties": {
    "op": {
      "type": "string"
    },
    "from": {
      "type": "string"
    },
    "path": {
      "type": "string"
    },
    "value": {}
  }
}
object PropertyCreatedModel
{
  "type": "object",
  "example": "{\n  \"id\": \"MUC\"\n}",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The property id"
    }
  }
}
object PropertyItemModel
{
  "type": "object",
  "required": [
    "code",
    "commercialRegisterEntry",
    "companyName",
    "created",
    "currencyCode",
    "id",
    "isArchived",
    "isTemplate",
    "location",
    "name",
    "paymentTerms",
    "status",
    "taxId",
    "timeZone"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The property id"
    },
    "code": {
      "type": "string",
      "description": "The code for the property that can be shown in reports and table views"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "The name for the property"
    },
    "taxId": {
      "type": "string",
      "minLength": 1,
      "description": "The Tax-ID of the company running the property, as it should appear on invoices"
    },
    "status": {
      "enum": [
        "Test",
        "Live"
      ],
      "type": "string",
      "description": "The status of the property"
    },
    "actions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ActionModel_PropertyAction_NotAllowedPropertyActionReason_"
      },
      "description": "The list of actions for this property"
    },
    "created": {
      "type": "string",
      "format": "date-time",
      "description": "Date of creation<br />A date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\"https://en.wikipedia.org/wiki/ISO_8601\">ISO8601:2004</a>"
    },
    "location": {
      "$ref": "#/components/schemas/AddressModel"
    },
    "timeZone": {
      "type": "string",
      "minLength": 1,
      "description": "The time zone name of the property from the IANA Time Zone Database.\r\n(see: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)"
    },
    "isArchived": {
      "type": "boolean",
      "description": "Is the property archived"
    },
    "isTemplate": {
      "type": "boolean",
      "description": "Whether the property can be used as a template for other properties"
    },
    "bankAccount": {
      "$ref": "#/components/schemas/BankAccountModel"
    },
    "companyName": {
      "type": "string",
      "minLength": 1,
      "description": "The legal name of the company running the property."
    },
    "description": {
      "type": "string",
      "description": "The description for the property"
    },
    "currencyCode": {
      "type": "string",
      "description": "The currency a property works with."
    },
    "paymentTerms": {
      "type": "object",
      "description": "The payment terms used for all rate plans",
      "additionalProperties": {
        "type": "string"
      }
    },
    "managingDirectors": {
      "type": "string",
      "description": "The managing director(s) of the company, as they should appear on invoices"
    },
    "propertyTemplateId": {
      "type": "string",
      "description": "The id of the property used as a template while creating the property"
    },
    "commercialRegisterEntry": {
      "type": "string",
      "minLength": 1,
      "description": "The entry in the Commercial Register of the company running the property, as it should appear on invoices"
    }
  }
}
object PropertyListModel
{
  "type": "object",
  "example": "{\n  \"properties\": [\n    {\n      \"id\": \"MUC\",\n      \"code\": \"MUC\",\n      \"isTemplate\": true,\n      \"name\": \"Demo Hotel Munich\",\n      \"description\": \"This is the demo hotel Munich\",\n      \"companyName\": \"Company\",\n      \"commercialRegisterEntry\": \"CRE\",\n      \"taxId\": \"Tax\",\n      \"location\": {\n        \"addressLine1\": \"Marienplatz 1\",\n        \"postalCode\": \"80331\",\n        \"city\": \"München\",\n        \"countryCode\": \"DE\"\n      },\n      \"paymentTerms\": {\n        \"de\": \"Zahlbar bei Check In\",\n        \"en\": \"Payment on check-in\"\n      },\n      \"timeZone\": \"Europe/Berlin\",\n      \"currencyCode\": \"EUR\",\n      \"created\": \"0001-01-01T00:00:00Z\",\n      \"status\": \"Test\",\n      \"isArchived\": false\n    },\n    {\n      \"id\": \"BER\",\n      \"code\": \"BER\",\n      \"propertyTemplateId\": \"MUC\",\n      \"isTemplate\": false,\n      \"name\": \"Demo Hotel Berlin\",\n      \"description\": \"This is the demo hotel Berlin\",\n      \"companyName\": \"Company\",\n      \"commercialRegisterEntry\": \"CRE\",\n      \"taxId\": \"Tax\",\n      \"location\": {\n        \"addressLine1\": \"Mohrenstraße 30\",\n        \"postalCode\": \"10117\",\n        \"city\": \"Berlin\",\n        \"countryCode\": \"DE\"\n      },\n      \"paymentTerms\": {\n        \"de\": \"Zahlbar bei Check In\",\n        \"en\": \"Payment on check-in\"\n      },\n      \"timeZone\": \"Europe/Berlin\",\n      \"currencyCode\": \"EUR\",\n      \"created\": \"0001-01-01T00:00:00Z\",\n      \"status\": \"Test\",\n      \"isArchived\": false\n    }\n  ],\n  \"count\": 0\n}",
  "required": [
    "count",
    "properties"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "format": "int64",
      "description": "Total count of items"
    },
    "properties": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PropertyItemModel"
      },
      "description": "List of properties"
    }
  }
}
object PropertyModel
{
  "type": "object",
  "example": "{\n  \"id\": \"MUC\",\n  \"code\": \"MUC\",\n  \"propertyTemplateId\": \"BER\",\n  \"isTemplate\": false,\n  \"name\": {\n    \"en\": \"Demo Hotel Munich\",\n    \"de\": \"Demo Hotel München\"\n  },\n  \"description\": {\n    \"en\": \"This is the demo hotel Munich\",\n    \"de\": \"Dies ist das Demo Hotel München\"\n  },\n  \"companyName\": \"Hotel Münchner GmbH\",\n  \"managingDirectors\": \"Franz-Josef Gruber\",\n  \"commercialRegisterEntry\": \"Amtsgericht München, HRB 279336\",\n  \"taxId\": \"DE311053702\",\n  \"location\": {\n    \"addressLine1\": \"Marienplatz 1\",\n    \"postalCode\": \"80331\",\n    \"city\": \"München\",\n    \"countryCode\": \"DE\"\n  },\n  \"bankAccount\": {\n    \"iban\": \"DE44 5001 0517 5407 3249 31\",\n    \"bic\": \"SSKMDEMMXXX\",\n    \"bank\": \"Stadtsparkasse München\"\n  },\n  \"paymentTerms\": {\n    \"en\": \"Pay on checkout\",\n    \"de\": \"Zahlung bei Checkout\"\n  },\n  \"timeZone\": \"Europe/Berlin\",\n  \"currencyCode\": \"EUR\",\n  \"created\": \"0001-01-01T00:00:00Z\",\n  \"status\": \"Test\",\n  \"isArchived\": false\n}",
  "required": [
    "code",
    "commercialRegisterEntry",
    "companyName",
    "created",
    "currencyCode",
    "id",
    "isArchived",
    "isTemplate",
    "location",
    "name",
    "paymentTerms",
    "status",
    "taxId",
    "timeZone"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The property id"
    },
    "code": {
      "type": "string",
      "description": "The code for the property that can be shown in reports and table views"
    },
    "name": {
      "type": "object",
      "description": "The name for the property",
      "additionalProperties": {
        "type": "string"
      }
    },
    "taxId": {
      "type": "string",
      "minLength": 1,
      "description": "The Tax-ID of the company running the property, as it should appear on invoices"
    },
    "status": {
      "enum": [
        "Test",
        "Live"
      ],
      "type": "string",
      "description": "The status of the property"
    },
    "actions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ActionModel_PropertyAction_NotAllowedPropertyActionReason_"
      },
      "description": "The list of actions for this property"
    },
    "created": {
      "type": "string",
      "format": "date-time",
      "description": "Date of creation<br />A date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\"https://en.wikipedia.org/wiki/ISO_8601\">ISO8601:2004</a>"
    },
    "location": {
      "$ref": "#/components/schemas/AddressModel"
    },
    "timeZone": {
      "type": "string",
      "minLength": 1,
      "description": "The time zone name of the property from the IANA Time Zone Database.\r\n(see: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)"
    },
    "isArchived": {
      "type": "boolean",
      "description": "Is the property archived"
    },
    "isTemplate": {
      "type": "boolean",
      "description": "Whether the property can be used as a template for other properties"
    },
    "bankAccount": {
      "$ref": "#/components/schemas/BankAccountModel"
    },
    "companyName": {
      "type": "string",
      "minLength": 1,
      "description": "The legal name of the company running the property."
    },
    "description": {
      "type": "object",
      "description": "The description for the property",
      "additionalProperties": {
        "type": "string"
      }
    },
    "currencyCode": {
      "type": "string",
      "description": "The currency a property works with."
    },
    "paymentTerms": {
      "type": "object",
      "description": "The payment terms used for all rate plans",
      "additionalProperties": {
        "type": "string"
      }
    },
    "managingDirectors": {
      "type": "string",
      "description": "The managing director(s) of the company, as they should appear on invoices"
    },
    "propertyTemplateId": {
      "type": "string",
      "description": "The id of the property used as a template while creating the property"
    },
    "commercialRegisterEntry": {
      "type": "string",
      "minLength": 1,
      "description": "The entry in the Commercial Register of the company running the property, as it should appear on invoices"
    }
  },
  "description": "With this request you can create a new property"
}
array PropertyModifyDetailsRequest
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Operation"
  }
}
object ReplaceConnectedUnitGroupModel
{
  "type": "object",
  "required": [
    "memberCount",
    "unitGroupId"
  ],
  "properties": {
    "memberCount": {
      "type": "integer",
      "format": "int32",
      "maximum": 2147483647,
      "minimum": 1,
      "description": "The number of units for this connected unit group"
    },
    "unitGroupId": {
      "type": "string",
      "description": "The connected unit group id"
    }
  }
}
object ReplaceUnitGroupModel
{
  "type": "object",
  "example": "{\n  \"name\": {\n    \"en\": \"Double Room\",\n    \"de\": \"Doppelzimmer\"\n  },\n  \"description\": {\n    \"en\": \"This is a nice room with as kingsize bed and flat screen\",\n    \"de\": \"Dies ist ein schönes Zimmer mit Kingsize-Bett und Flachbildschirm\"\n  },\n  \"maxPersons\": 4,\n  \"rank\": 2\n}",
  "required": [
    "description",
    "name"
  ],
  "properties": {
    "name": {
      "type": "object",
      "description": "The name for the unit group",
      "additionalProperties": {
        "type": "string"
      }
    },
    "rank": {
      "type": "integer",
      "format": "int32",
      "maximum": 2147483647,
      "minimum": 1,
      "description": "The unit group rank\r\nRestrictions:\r\n- Should be greater or equal to one"
    },
    "maxPersons": {
      "type": "integer",
      "format": "int32",
      "description": "Maximum number of persons for the unit group.\r\nIf this value is increased, the surcharges for the related rate plans must be specified in order for the rate plans to be sellable for the new possible occupancies."
    },
    "description": {
      "type": "object",
      "description": "The description for the unit group",
      "additionalProperties": {
        "type": "string"
      }
    },
    "connectedUnitGroups": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReplaceConnectedUnitGroupModel"
      },
      "description": "The list of connected unit groups this unit group is composed of"
    }
  }
}
object UnitAttributeDefinitionCreatedModel
{
  "type": "object",
  "example": "{\n  \"id\": \"FLOOR\"\n}",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The unit attribute id"
    }
  }
}
object UnitAttributeDefinitionListModel
{
  "type": "object",
  "example": "{\n  \"unitAttributes\": [\n    {\n      \"id\": \"KQOSXHLS\",\n      \"name\": \"Floor 1\",\n      \"description\": \"Floor number\"\n    },\n    {\n      \"id\": \"ADVFSSUL\",\n      \"name\": \"Street view\",\n      \"description\": \"View from the room\"\n    }\n  ],\n  \"count\": 2\n}",
  "required": [
    "count",
    "unitAttributes"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "format": "int64",
      "description": "Total count of items"
    },
    "unitAttributes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/UnitAttributeDefinitionModel"
      },
      "description": "List of unit attributes"
    }
  }
}
object UnitAttributeDefinitionModel
{
  "type": "object",
  "example": "{\n  \"id\": \"KQOSXHLS\",\n  \"name\": \"Floor 1\",\n  \"description\": \"Floor number\"\n}",
  "required": [
    "id",
    "name"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The id of the unit attribute"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "The name of the unit attribute"
    },
    "description": {
      "type": "string",
      "description": "The description of the unit attribute"
    }
  }
}
object UnitAttributeModel
{
  "type": "object",
  "required": [
    "id",
    "name"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Id of unit attribute"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "The name of the unit attribute"
    },
    "description": {
      "type": "string",
      "description": "Description of unit attribute"
    }
  }
}
object UnitCreatedModel
{
  "type": "object",
  "example": "{\n  \"id\": \"MUC-CFP\"\n}",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The unit id"
    }
  }
}
object UnitGroupCreatedModel
{
  "type": "object",
  "example": "{\n  \"id\": \"MUC-DBL\"\n}",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The unit group id"
    }
  }
}
object UnitGroupItemModel
{
  "type": "object",
  "required": [
    "code",
    "description",
    "id",
    "memberCount",
    "name",
    "property",
    "type"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The unit group id"
    },
    "code": {
      "type": "string",
      "description": "The code for the unit group that can be shown in reports and table views"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "The name for the unit group"
    },
    "rank": {
      "type": "integer",
      "format": "int32",
      "description": "The unit group rank"
    },
    "type": {
      "enum": [
        "BedRoom",
        "MeetingRoom",
        "EventSpace",
        "ParkingLot",
        "Other"
      ],
      "type": "string",
      "description": "The unit group type"
    },
    "property": {
      "$ref": "#/components/schemas/EmbeddedPropertyModel"
    },
    "maxPersons": {
      "type": "integer",
      "format": "int32",
      "description": "Maximum number of persons for the unit group"
    },
    "description": {
      "type": "string",
      "minLength": 1,
      "description": "The description for the unit group"
    },
    "memberCount": {
      "type": "integer",
      "format": "int32",
      "description": "Number of units in this group"
    },
    "connectedUnitGroups": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ConnectedUnitGroupModel"
      },
      "description": "The list of connected unit groups this unit group is composed of"
    }
  }
}
object UnitGroupListModel
{
  "type": "object",
  "example": "{\n  \"unitGroups\": [\n    {\n      \"id\": \"MUC-DBL\",\n      \"code\": \"DBL\",\n      \"name\": \"Double Room\",\n      \"description\": \"This is a nice room with as kingsize bed and flat screen\",\n      \"memberCount\": 2,\n      \"maxPersons\": 4,\n      \"rank\": 2,\n      \"type\": \"BedRoom\",\n      \"property\": {\n        \"id\": \"MUC\",\n        \"code\": \"MUC\",\n        \"name\": \"Demo Hotel Munich\",\n        \"description\": \"This is the demo hotel Munich\"\n      }\n    },\n    {\n      \"id\": \"BER-SUIT\",\n      \"code\": \"SUIT\",\n      \"name\": \"Suite Room\",\n      \"description\": \"This is a nice suite with two rooms combined\",\n      \"memberCount\": 1,\n      \"maxPersons\": 3,\n      \"rank\": 1,\n      \"type\": \"BedRoom\",\n      \"property\": {\n        \"id\": \"BER\",\n        \"code\": \"BER\",\n        \"name\": \"Demo Hotel Berlin\",\n        \"description\": \"This is the demo hotel Berlin\"\n      },\n      \"connectedUnitGroups\": [\n        {\n          \"id\": \"BER-SGL\",\n          \"name\": \"Single room\",\n          \"description\": \"This is a nice room with a single bed\",\n          \"memberCount\": 2,\n          \"maxPersons\": 1\n        },\n        {\n          \"id\": \"BER-DBL\",\n          \"name\": \"Double room\",\n          \"description\": \"This is a nice room with as kingsize bed and flat screen\",\n          \"memberCount\": 1,\n          \"maxPersons\": 2\n        }\n      ]\n    }\n  ],\n  \"count\": 0\n}",
  "required": [
    "count",
    "unitGroups"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "format": "int64",
      "description": "Total count of items"
    },
    "unitGroups": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/UnitGroupItemModel"
      },
      "description": "List of unit groups"
    }
  }
}
object UnitGroupModel
{
  "type": "object",
  "example": "{\n  \"id\": \"MUC-DBL\",\n  \"code\": \"DBL\",\n  \"property\": {\n    \"id\": \"MUC\",\n    \"code\": \"MUC\",\n    \"name\": \"Demo Hotel Munich\",\n    \"description\": \"This is the demo hotel Munich\"\n  },\n  \"name\": {\n    \"en\": \"Double Room\",\n    \"de\": \"Doppelzimmer\"\n  },\n  \"memberCount\": 0,\n  \"description\": {\n    \"en\": \"This is a nice room with as kingsize bed and flat screen\",\n    \"de\": \"Dies ist ein schönes Zimmer mit Kingsize-Bett und Flachbildschirm\"\n  },\n  \"maxPersons\": 4,\n  \"rank\": 2,\n  \"type\": \"BedRoom\"\n}",
  "required": [
    "code",
    "description",
    "id",
    "maxPersons",
    "memberCount",
    "name",
    "property",
    "type"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The unit group id"
    },
    "code": {
      "type": "string",
      "description": "The code for the unit group that can be shown in reports and table views"
    },
    "name": {
      "type": "object",
      "description": "The name for the unit group",
      "additionalProperties": {
        "type": "string"
      }
    },
    "rank": {
      "type": "integer",
      "format": "int32",
      "description": "The unit group rank"
    },
    "type": {
      "enum": [
        "BedRoom",
        "MeetingRoom",
        "EventSpace",
        "ParkingLot",
        "Other"
      ],
      "type": "string",
      "description": "The unit group type"
    },
    "property": {
      "$ref": "#/components/schemas/EmbeddedPropertyModel"
    },
    "maxPersons": {
      "type": "integer",
      "format": "int32",
      "description": "Maximum number of persons for the unit group"
    },
    "description": {
      "type": "object",
      "description": "The description for the unit group",
      "additionalProperties": {
        "type": "string"
      }
    },
    "memberCount": {
      "type": "integer",
      "format": "int32",
      "description": "Number of units in this group"
    },
    "connectedUnitGroups": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ConnectedUnitGroupModel"
      },
      "description": "The list of connected unit groups this unit group is composed of"
    }
  }
}
object UnitItemMaintenanceModel
{
  "type": "object",
  "required": [
    "id",
    "type"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The id for the scheduled maintenance"
    },
    "type": {
      "enum": [
        "OutOfService",
        "OutOfOrder",
        "OutOfInventory"
      ],
      "type": "string",
      "description": "The type of maintenance that is planned for the unit. A small repair (OutOfService),\r\na bigger disfunction that does not allow to sell the unit (OutOfOrder) or is it\r\neven under construction and should reduce the house count (OutOfInventory)"
    }
  }
}
object UnitItemModel
{
  "type": "object",
  "required": [
    "created",
    "description",
    "id",
    "maxPersons",
    "name",
    "property",
    "status"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The unit id"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "The name for the unit"
    },
    "status": {
      "$ref": "#/components/schemas/UnitItemStatusModel"
    },
    "created": {
      "type": "string",
      "format": "date-time",
      "description": "Date of creation<br />A date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\"https://en.wikipedia.org/wiki/ISO_8601\">ISO8601:2004</a>"
    },
    "property": {
      "$ref": "#/components/schemas/EmbeddedPropertyModel"
    },
    "unitGroup": {
      "$ref": "#/components/schemas/EmbeddedUnitGroupModel"
    },
    "attributes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/UnitAttributeModel"
      },
      "description": "Collection of user defined attributes of unit"
    },
    "maxPersons": {
      "type": "integer",
      "format": "int32",
      "description": "Maximum number of persons for the unit"
    },
    "description": {
      "type": "string",
      "minLength": 1,
      "description": "The description for the unit"
    },
    "connectedUnits": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ConnectedUnitModel"
      },
      "description": "Collection of connected units"
    },
    "connectingUnit": {
      "$ref": "#/components/schemas/EmbeddedUnitModel"
    }
  }
}
object UnitItemStatusModel
{
  "type": "object",
  "required": [
    "condition",
    "isOccupied"
  ],
  "properties": {
    "condition": {
      "enum": [
        "Clean",
        "CleanToBeInspected",
        "Dirty"
      ],
      "type": "string"
    },
    "isOccupied": {
      "type": "boolean"
    },
    "maintenance": {
      "$ref": "#/components/schemas/UnitItemMaintenanceModel"
    }
  }
}
object UnitListModel
{
  "type": "object",
  "example": "{\n  \"units\": [\n    {\n      \"id\": \"MUC-MTA\",\n      \"name\": \"A.101\",\n      \"description\": \"Single room\",\n      \"property\": {\n        \"id\": \"MUC\",\n        \"code\": \"MUC\",\n        \"name\": \"Demo Hotel Munich\",\n        \"description\": \"This is the demo hotel Munich\"\n      },\n      \"unitGroup\": {\n        \"id\": \"MUC-SGL\",\n        \"code\": \"SGL\",\n        \"name\": \"Single\",\n        \"description\": \"Single\",\n        \"type\": \"BedRoom\"\n      },\n      \"connectingUnit\": {\n        \"id\": \"MUC-QKY\",\n        \"name\": \"S.101\",\n        \"description\": \"Suite room\",\n        \"unitGroupId\": \"MUC-SUI\"\n      },\n      \"status\": {\n        \"isOccupied\": true,\n        \"condition\": \"Dirty\",\n        \"maintenance\": {\n          \"id\": \"MUC-MTA-SGHZD\",\n          \"type\": \"OutOfService\"\n        }\n      },\n      \"maxPersons\": 1,\n      \"created\": \"0001-01-01T00:00:00Z\",\n      \"attributes\": [\n        {\n          \"id\": \"GRTDTLDD\",\n          \"name\": \"Floor 2\",\n          \"description\": \"Floor number\"\n        },\n        {\n          \"id\": \"KQOSXHLS\",\n          \"name\": \"Street view\",\n          \"description\": \"View from the room\"\n        }\n      ],\n      \"connectedUnits\": []\n    },\n    {\n      \"id\": \"MUC-JQI\",\n      \"name\": \"A.102\",\n      \"description\": \"Double room\",\n      \"property\": {\n        \"id\": \"MUC\",\n        \"code\": \"MUC\",\n        \"name\": \"Demo Hotel Munich\",\n        \"description\": \"This is the demo hotel Munich\"\n      },\n      \"unitGroup\": {\n        \"id\": \"MUC-DBL\",\n        \"code\": \"DBL\",\n        \"name\": \"Double\",\n        \"description\": \"Double\",\n        \"type\": \"BedRoom\"\n      },\n      \"connectingUnit\": {\n        \"id\": \"MUC-QKY\",\n        \"name\": \"S.101\",\n        \"description\": \"Suite room\",\n        \"unitGroupId\": \"MUC-SUI\"\n      },\n      \"status\": {\n        \"isOccupied\": false,\n        \"condition\": \"Clean\",\n        \"maintenance\": {\n          \"id\": \"MUC-JQI-GSZGK\",\n          \"type\": \"OutOfOrder\"\n        }\n      },\n      \"maxPersons\": 2,\n      \"created\": \"0001-01-01T00:00:00Z\",\n      \"attributes\": [\n        {\n          \"id\": \"GRTDTLDD\",\n          \"name\": \"Floor 2\",\n          \"description\": \"Floor number\"\n        }\n      ],\n      \"connectedUnits\": []\n    },\n    {\n      \"id\": \"MUC-QKY\",\n      \"name\": \"S.101\",\n      \"description\": \"Suite room\",\n      \"property\": {\n        \"id\": \"MUC\",\n        \"code\": \"MUC\",\n        \"name\": \"Demo Hotel Munich\",\n        \"description\": \"This is the demo hotel Munich\"\n      },\n      \"unitGroup\": {\n        \"id\": \"MUC-SUI\",\n        \"code\": \"SUI\",\n        \"name\": \"Suite\",\n        \"description\": \"Suite\",\n        \"type\": \"BedRoom\"\n      },\n      \"status\": {\n        \"isOccupied\": false,\n        \"condition\": \"Clean\",\n        \"maintenance\": {\n          \"id\": \"MUC-JQI-GSZGK\",\n          \"type\": \"OutOfOrder\"\n        }\n      },\n      \"maxPersons\": 3,\n      \"created\": \"0001-01-01T00:00:00Z\",\n      \"attributes\": [\n        {\n          \"id\": \"GRTDTLDD\",\n          \"name\": \"Floor 2\",\n          \"description\": \"Floor number\"\n        }\n      ],\n      \"connectedUnits\": [\n        {\n          \"id\": \"MUC-MTA\",\n          \"name\": \"A.101\",\n          \"description\": \"Single room\",\n          \"unitGroupId\": \"MUC-SGL\",\n          \"condition\": \"Clean\",\n          \"maxPersons\": 1\n        },\n        {\n          \"id\": \"MUC-JQI\",\n          \"name\": \"A.102\",\n          \"description\": \"Double room\",\n          \"unitGroupId\": \"MUC-DBL\",\n          \"condition\": \"Clean\",\n          \"maxPersons\": 2\n        }\n      ]\n    }\n  ],\n  \"count\": 3\n}",
  "required": [
    "count",
    "units"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "format": "int64",
      "description": "Total count of items"
    },
    "units": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/UnitItemModel"
      },
      "description": "List of units"
    }
  }
}
object UnitMaintenanceModel
{
  "type": "object",
  "required": [
    "from",
    "id",
    "to",
    "type"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The id for the scheduled maintenance"
    },
    "to": {
      "type": "string",
      "format": "date-time",
      "description": "Date and time the scheduled maintenance window ends<br />A date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\"https://en.wikipedia.org/wiki/ISO_8601\">ISO8601:2004</a>"
    },
    "from": {
      "type": "string",
      "format": "date-time",
      "description": "Date and time the scheduled maintenance window starts<br />A date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\"https://en.wikipedia.org/wiki/ISO_8601\">ISO8601:2004</a>"
    },
    "type": {
      "enum": [
        "OutOfService",
        "OutOfOrder",
        "OutOfInventory"
      ],
      "type": "string",
      "description": "The type of maintenance that is planned for the unit. A small repair (OutOfService),\r\na bigger disfunction that does not allow to sell the unit (OutOfOrder) or is it\r\neven under construction and should reduce the house count (OutOfInventory)"
    },
    "description": {
      "type": "string",
      "description": "The description text for the maintenance"
    }
  }
}
object UnitModel
{
  "type": "object",
  "example": "{\n  \"id\": \"MUC-MTA\",\n  \"name\": \"A.101\",\n  \"description\": {\n    \"en\": \"First Floor Room 1\",\n    \"de\": \"1.OG Zimmer 1\"\n  },\n  \"property\": {\n    \"id\": \"MUC\",\n    \"code\": \"MUC\",\n    \"name\": \"Demo Hotel Munich\",\n    \"description\": \"This is the demo hotel Munich\"\n  },\n  \"unitGroup\": {\n    \"id\": \"MUC-DBL\",\n    \"code\": \"DBL\",\n    \"name\": \"Double\",\n    \"description\": \"Double\",\n    \"type\": \"BedRoom\"\n  },\n  \"connectingUnit\": {\n    \"id\": \"MUC-QKY\",\n    \"name\": \"S.101\",\n    \"description\": \"Suite room\",\n    \"unitGroupId\": \"MUC-SUI\"\n  },\n  \"status\": {\n    \"isOccupied\": false,\n    \"condition\": \"Clean\",\n    \"maintenance\": {\n      \"id\": \"MUC-MTA-SGHZD\",\n      \"from\": \"2024-04-16T18:32:00.2281585+02:00\",\n      \"to\": \"2024-04-18T18:32:00.2281585+02:00\",\n      \"type\": \"OutOfService\",\n      \"description\": \"The remote control for the TV needs to be replaced.\"\n    }\n  },\n  \"maxPersons\": 2,\n  \"created\": \"0001-01-01T00:00:00Z\",\n  \"attributes\": [\n    {\n      \"id\": \"KQOSXHLS\",\n      \"name\": \"Floor 3\",\n      \"description\": \"Floor number\"\n    },\n    {\n      \"id\": \"ADVFSSUL\",\n      \"name\": \"Street view\",\n      \"description\": \"View from the room\"\n    }\n  ],\n  \"connectedUnits\": []\n}",
  "required": [
    "created",
    "description",
    "id",
    "maxPersons",
    "name",
    "property",
    "status"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The unit id"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "The name for the unit"
    },
    "status": {
      "$ref": "#/components/schemas/UnitStatusModel"
    },
    "created": {
      "type": "string",
      "format": "date-time",
      "description": "Date of creation<br />A date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\"https://en.wikipedia.org/wiki/ISO_8601\">ISO8601:2004</a>"
    },
    "property": {
      "$ref": "#/components/schemas/EmbeddedPropertyModel"
    },
    "unitGroup": {
      "$ref": "#/components/schemas/EmbeddedUnitGroupModel"
    },
    "attributes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/UnitAttributeModel"
      },
      "description": "Collection of user defined attributes of unit"
    },
    "maxPersons": {
      "type": "integer",
      "format": "int32",
      "description": "Maximum number of persons for the unit"
    },
    "description": {
      "type": "object",
      "description": "The description for the unit",
      "additionalProperties": {
        "type": "string"
      }
    },
    "connectedUnits": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ConnectedUnitModel"
      },
      "description": "Collection of connected units"
    },
    "connectingUnit": {
      "$ref": "#/components/schemas/EmbeddedUnitModel"
    }
  }
}
object UnitStatusModel
{
  "type": "object",
  "required": [
    "condition",
    "isOccupied"
  ],
  "properties": {
    "condition": {
      "enum": [
        "Clean",
        "CleanToBeInspected",
        "Dirty"
      ],
      "type": "string"
    },
    "isOccupied": {
      "type": "boolean"
    },
    "maintenance": {
      "$ref": "#/components/schemas/UnitMaintenanceModel"
    }
  }
}