{
  "service": "apaleo",
  "displayName": "apaleo",
  "categories": [
    "Productivity",
    "Finance"
  ],
  "authTypes": [
    "oauth2"
  ],
  "auth": [
    {
      "type": "oauth2",
      "authorizationUrl": "https://identity.apaleo.com/connect/authorize",
      "tokenUrl": "https://identity.apaleo.com/connect/token",
      "scopes": [
        "openid",
        "profile",
        "offline_access",
        "setup.read",
        "setup.manage"
      ],
      "tokenEndpointAuthMethod": "client_secret_post"
    }
  ],
  "homepageUrl": "https://apaleo.com",
  "actions": [
    {
      "id": "apaleo.archive_property",
      "service": "apaleo",
      "name": "archive_property",
      "description": "Archive a live property by ID.",
      "requiredScopes": [
        "apaleo.properties.manage"
      ],
      "providerPermissions": [
        "setup.manage"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The apaleo resource ID."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for archiving a property."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether the operation completed successfully."
          }
        },
        "additionalProperties": false,
        "description": "Successful no-content operation result."
      }
    },
    {
      "id": "apaleo.check_property_exists",
      "service": "apaleo",
      "name": "check_property_exists",
      "description": "Check whether a property exists by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The apaleo resource ID."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for checking whether a property exists."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "exists": {
            "type": "boolean",
            "description": "Whether the requested resource currently exists."
          }
        },
        "additionalProperties": false,
        "description": "Existence check result."
      }
    },
    {
      "id": "apaleo.check_unit_attribute_exists",
      "service": "apaleo",
      "name": "check_unit_attribute_exists",
      "description": "Check whether a unit attribute definition exists by ID.",
      "requiredScopes": [
        "apaleo.unit_attributes.read"
      ],
      "providerPermissions": [
        "setup.read"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The apaleo resource ID."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for checking whether a unit attribute exists."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "exists": {
            "type": "boolean",
            "description": "Whether the requested resource currently exists."
          }
        },
        "additionalProperties": false,
        "description": "Existence check result."
      }
    },
    {
      "id": "apaleo.check_unit_exists",
      "service": "apaleo",
      "name": "check_unit_exists",
      "description": "Check whether a unit exists by ID.",
      "requiredScopes": [
        "apaleo.units.read"
      ],
      "providerPermissions": [
        "setup.read"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The apaleo resource ID."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for checking whether a unit exists."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "exists": {
            "type": "boolean",
            "description": "Whether the requested resource currently exists."
          }
        },
        "additionalProperties": false,
        "description": "Existence check result."
      }
    },
    {
      "id": "apaleo.check_unit_group_exists",
      "service": "apaleo",
      "name": "check_unit_group_exists",
      "description": "Check whether a unit group exists by ID.",
      "requiredScopes": [
        "apaleo.unit_groups.read"
      ],
      "providerPermissions": [
        "setup.read"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The apaleo resource ID."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for checking whether a unit group exists."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "exists": {
            "type": "boolean",
            "description": "Whether the requested resource currently exists."
          }
        },
        "additionalProperties": false,
        "description": "Existence check result."
      }
    },
    {
      "id": "apaleo.clone_property",
      "service": "apaleo",
      "name": "clone_property",
      "description": "Clone an existing property into a new property with inventory and rate plans.",
      "requiredScopes": [
        "apaleo.properties.create"
      ],
      "providerPermissions": [
        "setup.manage"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "minLength": 3,
            "maxLength": 10,
            "description": "Property code shown in reports and table views."
          },
          "name": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "Localized text value."
            },
            "description": "Localized property name."
          },
          "companyName": {
            "type": "string",
            "minLength": 1,
            "description": "Legal company name for the property."
          },
          "managingDirectors": {
            "type": "string",
            "description": "Managing directors shown on invoices."
          },
          "commercialRegisterEntry": {
            "type": "string",
            "minLength": 1,
            "description": "Commercial register entry shown on invoices."
          },
          "taxId": {
            "type": "string",
            "minLength": 1,
            "description": "Tax identification number shown on invoices."
          },
          "description": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "Localized text value."
            },
            "description": "Localized property description."
          },
          "location": {
            "type": "object",
            "properties": {
              "addressLine1": {
                "type": "string",
                "minLength": 1,
                "description": "Primary address line."
              },
              "addressLine2": {
                "type": "string",
                "description": "Secondary address line."
              },
              "postalCode": {
                "type": "string",
                "minLength": 1,
                "description": "Postal or ZIP code."
              },
              "city": {
                "type": "string",
                "minLength": 1,
                "description": "City name."
              },
              "regionCode": {
                "type": "string",
                "minLength": 2,
                "maxLength": 6,
                "description": "ISO 3166-2 region code."
              },
              "countryCode": {
                "type": "string",
                "minLength": 2,
                "maxLength": 2,
                "description": "ISO 3166-1 alpha-2 country code."
              }
            },
            "additionalProperties": false,
            "required": [
              "addressLine1",
              "postalCode",
              "city",
              "countryCode"
            ],
            "description": "Property address used during creation."
          },
          "bankAccount": {
            "type": "object",
            "properties": {
              "iban": {
                "type": "string",
                "description": "International Bank Account Number."
              },
              "bic": {
                "type": "string",
                "description": "Bank Identifier Code."
              },
              "bank": {
                "type": "string",
                "description": "Name of the bank."
              }
            },
            "additionalProperties": false,
            "description": "Property bank account details."
          },
          "paymentTerms": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "Localized text value."
            },
            "description": "Localized payment terms used by the property."
          },
          "timeZone": {
            "type": "string",
            "minLength": 1,
            "description": "IANA time zone name."
          },
          "defaultCheckInTime": {
            "type": "string",
            "description": "Default check-in time in ISO 8601 time format."
          },
          "defaultCheckOutTime": {
            "type": "string",
            "description": "Default check-out time in ISO 8601 time format."
          },
          "currencyCode": {
            "type": "string",
            "description": "ISO 4217 currency code."
          },
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The apaleo resource ID."
          },
          "idempotencyKey": {
            "type": "string",
            "minLength": 1,
            "description": "Optional idempotency key used to safely retry the request."
          }
        },
        "additionalProperties": false,
        "required": [
          "code",
          "name",
          "companyName",
          "commercialRegisterEntry",
          "taxId",
          "location",
          "paymentTerms",
          "timeZone",
          "defaultCheckInTime",
          "defaultCheckOutTime",
          "currencyCode",
          "id"
        ],
        "description": "Input payload for cloning a property."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Identifier returned by the successful create request."
          }
        },
        "additionalProperties": false,
        "description": "Identifier payload returned by a create request."
      }
    },
    {
      "id": "apaleo.count_properties",
      "service": "apaleo",
      "name": "count_properties",
      "description": "Return the total number of properties accessible to the connected apaleo account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "This action does not require any input fields."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "Total count returned by apaleo."
          }
        },
        "additionalProperties": false,
        "description": "Count response."
      }
    },
    {
      "id": "apaleo.count_unit_groups",
      "service": "apaleo",
      "name": "count_unit_groups",
      "description": "Return the total number of unit groups matching the provided filters.",
      "requiredScopes": [
        "apaleo.unit_groups.read"
      ],
      "providerPermissions": [
        "setup.read"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "propertyId": {
            "type": "string",
            "description": "Return unit groups for the specified property ID."
          },
          "unitGroupTypes": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "BedRoom",
                "MeetingRoom",
                "EventSpace",
                "ParkingLot",
                "Other"
              ],
              "description": "Type of the unit group."
            },
            "description": "Filter results by one or more unit group types."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for counting unit groups."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "Total count returned by apaleo."
          }
        },
        "additionalProperties": false,
        "description": "Count response."
      }
    },
    {
      "id": "apaleo.count_units",
      "service": "apaleo",
      "name": "count_units",
      "description": "Return the total number of units matching the provided filters.",
      "requiredScopes": [
        "apaleo.units.read"
      ],
      "providerPermissions": [
        "setup.read"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "propertyId": {
            "type": "string",
            "description": "Return units for the specified property ID."
          },
          "unitGroupId": {
            "type": "string",
            "description": "Deprecated single unit group filter kept for compatibility."
          },
          "unitGroupIds": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Unit group ID."
            },
            "description": "Return units for the specified unit group IDs."
          },
          "unitAttributeIds": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Unit attribute ID."
            },
            "description": "Return units that have the specified unit attribute IDs."
          },
          "isOccupied": {
            "type": "boolean",
            "description": "Filter by occupied or vacant units."
          },
          "maintenanceType": {
            "type": "string",
            "enum": [
              "OutOfService",
              "OutOfOrder",
              "OutOfInventory"
            ],
            "description": "Type of scheduled maintenance."
          },
          "condition": {
            "type": "string",
            "enum": [
              "Clean",
              "CleanToBeInspected",
              "Dirty"
            ],
            "description": "Current cleanliness state of the unit."
          },
          "textSearch": {
            "type": "string",
            "description": "Case-insensitive search term matched against the unit name."
          },
          "status": {
            "type": "string",
            "enum": [
              "Active",
              "Archived",
              "All"
            ],
            "description": "Whether to return active units, archived units, or both."
          }
        },
        "additionalProperties": false,
        "description": "Common filters accepted by unit list and count actions."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "Total count returned by apaleo."
          }
        },
        "additionalProperties": false,
        "description": "Count response."
      }
    },
    {
      "id": "apaleo.create_multiple_units",
      "service": "apaleo",
      "name": "create_multiple_units",
      "description": "Create multiple units in a single bulk request.",
      "requiredScopes": [
        "apaleo.units.create"
      ],
      "providerPermissions": [
        "setup.manage"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "units": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "propertyId": {
                  "type": "string",
                  "description": "Property ID where the unit should be created."
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Unit name."
                },
                "description": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string",
                    "description": "Localized text value."
                  },
                  "description": "Localized unit description."
                },
                "unitGroupId": {
                  "type": "string",
                  "description": "Unit group ID for the new unit."
                },
                "maxPersons": {
                  "type": "integer",
                  "minimum": 1,
                  "description": "Maximum occupancy of the unit."
                },
                "condition": {
                  "type": "string",
                  "enum": [
                    "Clean",
                    "CleanToBeInspected",
                    "Dirty"
                  ],
                  "description": "Current cleanliness state of the unit."
                },
                "attributes": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Unit attribute definition ID."
                      }
                    },
                    "additionalProperties": false,
                    "description": "Unit attribute reference used during unit creation."
                  },
                  "description": "Unit attributes assigned to the unit."
                },
                "connectedUnits": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "unitId": {
                        "type": "string",
                        "description": "ID of a unit used inside a combined unit."
                      }
                    },
                    "additionalProperties": false,
                    "description": "Connected unit reference used during unit creation."
                  },
                  "description": "Units used to compose this combined unit."
                }
              },
              "additionalProperties": false,
              "required": [
                "propertyId",
                "name",
                "description",
                "maxPersons"
              ],
              "description": "Unit definition accepted by apaleo."
            },
            "description": "Units to create in bulk.",
            "minItems": 1
          },
          "idempotencyKey": {
            "type": "string",
            "minLength": 1,
            "description": "Optional idempotency key used to safely retry the request."
          }
        },
        "additionalProperties": false,
        "required": [
          "units"
        ],
        "description": "Input payload for creating multiple units."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Created resource ID."
            },
            "description": "Identifiers returned by the bulk create request."
          }
        },
        "additionalProperties": false,
        "description": "Bulk create result."
      }
    },
    {
      "id": "apaleo.create_property",
      "service": "apaleo",
      "name": "create_property",
      "description": "Create a new property in apaleo.",
      "requiredScopes": [
        "apaleo.properties.create"
      ],
      "providerPermissions": [
        "setup.manage"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "minLength": 3,
            "maxLength": 10,
            "description": "Property code shown in reports and table views."
          },
          "name": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "Localized text value."
            },
            "description": "Localized property name."
          },
          "companyName": {
            "type": "string",
            "minLength": 1,
            "description": "Legal company name for the property."
          },
          "managingDirectors": {
            "type": "string",
            "description": "Managing directors shown on invoices."
          },
          "commercialRegisterEntry": {
            "type": "string",
            "minLength": 1,
            "description": "Commercial register entry shown on invoices."
          },
          "taxId": {
            "type": "string",
            "minLength": 1,
            "description": "Tax identification number shown on invoices."
          },
          "description": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "Localized text value."
            },
            "description": "Localized property description."
          },
          "location": {
            "type": "object",
            "properties": {
              "addressLine1": {
                "type": "string",
                "minLength": 1,
                "description": "Primary address line."
              },
              "addressLine2": {
                "type": "string",
                "description": "Secondary address line."
              },
              "postalCode": {
                "type": "string",
                "minLength": 1,
                "description": "Postal or ZIP code."
              },
              "city": {
                "type": "string",
                "minLength": 1,
                "description": "City name."
              },
              "regionCode": {
                "type": "string",
                "minLength": 2,
                "maxLength": 6,
                "description": "ISO 3166-2 region code."
              },
              "countryCode": {
                "type": "string",
                "minLength": 2,
                "maxLength": 2,
                "description": "ISO 3166-1 alpha-2 country code."
              }
            },
            "additionalProperties": false,
            "required": [
              "addressLine1",
              "postalCode",
              "city",
              "countryCode"
            ],
            "description": "Property address used during creation."
          },
          "bankAccount": {
            "type": "object",
            "properties": {
              "iban": {
                "type": "string",
                "description": "International Bank Account Number."
              },
              "bic": {
                "type": "string",
                "description": "Bank Identifier Code."
              },
              "bank": {
                "type": "string",
                "description": "Name of the bank."
              }
            },
            "additionalProperties": false,
            "description": "Property bank account details."
          },
          "paymentTerms": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "Localized text value."
            },
            "description": "Localized payment terms used by the property."
          },
          "timeZone": {
            "type": "string",
            "minLength": 1,
            "description": "IANA time zone name."
          },
          "defaultCheckInTime": {
            "type": "string",
            "description": "Default check-in time in ISO 8601 time format."
          },
          "defaultCheckOutTime": {
            "type": "string",
            "description": "Default check-out time in ISO 8601 time format."
          },
          "currencyCode": {
            "type": "string",
            "description": "ISO 4217 currency code."
          },
          "idempotencyKey": {
            "type": "string",
            "minLength": 1,
            "description": "Optional idempotency key used to safely retry the request."
          }
        },
        "additionalProperties": false,
        "required": [
          "code",
          "name",
          "companyName",
          "commercialRegisterEntry",
          "taxId",
          "location",
          "paymentTerms",
          "timeZone",
          "defaultCheckInTime",
          "defaultCheckOutTime",
          "currencyCode"
        ],
        "description": "Input payload for creating a property."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Identifier returned by the successful create request."
          }
        },
        "additionalProperties": false,
        "description": "Identifier payload returned by a create request."
      }
    },
    {
      "id": "apaleo.create_unit",
      "service": "apaleo",
      "name": "create_unit",
      "description": "Create a new unit.",
      "requiredScopes": [
        "apaleo.units.create"
      ],
      "providerPermissions": [
        "setup.manage"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "propertyId": {
            "type": "string",
            "description": "Property ID where the unit should be created."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Unit name."
          },
          "description": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "Localized text value."
            },
            "description": "Localized unit description."
          },
          "unitGroupId": {
            "type": "string",
            "description": "Unit group ID for the new unit."
          },
          "maxPersons": {
            "type": "integer",
            "minimum": 1,
            "description": "Maximum occupancy of the unit."
          },
          "condition": {
            "type": "string",
            "enum": [
              "Clean",
              "CleanToBeInspected",
              "Dirty"
            ],
            "description": "Current cleanliness state of the unit."
          },
          "attributes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Unit attribute definition ID."
                }
              },
              "additionalProperties": false,
              "description": "Unit attribute reference used during unit creation."
            },
            "description": "Unit attributes assigned to the unit."
          },
          "connectedUnits": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "unitId": {
                  "type": "string",
                  "description": "ID of a unit used inside a combined unit."
                }
              },
              "additionalProperties": false,
              "description": "Connected unit reference used during unit creation."
            },
            "description": "Units used to compose this combined unit."
          },
          "idempotencyKey": {
            "type": "string",
            "minLength": 1,
            "description": "Optional idempotency key used to safely retry the request."
          }
        },
        "additionalProperties": false,
        "required": [
          "propertyId",
          "name",
          "description",
          "maxPersons"
        ],
        "description": "Input payload for creating a unit."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Identifier returned by the successful create request."
          }
        },
        "additionalProperties": false,
        "description": "Identifier payload returned by a create request."
      }
    },
    {
      "id": "apaleo.create_unit_attribute",
      "service": "apaleo",
      "name": "create_unit_attribute",
      "description": "Create a new unit attribute definition.",
      "requiredScopes": [
        "apaleo.unit_attributes.create"
      ],
      "providerPermissions": [
        "setup.manage"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "description": "Name of the unit attribute definition."
          },
          "description": {
            "type": "string",
            "description": "Description of the unit attribute definition."
          },
          "idempotencyKey": {
            "type": "string",
            "minLength": 1,
            "description": "Optional idempotency key used to safely retry the request."
          }
        },
        "additionalProperties": false,
        "required": [
          "name"
        ],
        "description": "Input payload for creating a unit attribute."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Identifier returned by the successful create request."
          }
        },
        "additionalProperties": false,
        "description": "Identifier payload returned by a create request."
      }
    },
    {
      "id": "apaleo.create_unit_group",
      "service": "apaleo",
      "name": "create_unit_group",
      "description": "Create a new unit group.",
      "requiredScopes": [
        "apaleo.unit_groups.create"
      ],
      "providerPermissions": [
        "setup.manage"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "minLength": 3,
            "maxLength": 10,
            "description": "Unit group code shown in reports and table views."
          },
          "propertyId": {
            "type": "string",
            "description": "Property ID where the unit group should be created."
          },
          "name": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "Localized text value."
            },
            "description": "Localized unit group name."
          },
          "description": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "Localized text value."
            },
            "description": "Localized unit group description."
          },
          "maxPersons": {
            "type": "integer",
            "minimum": 1,
            "description": "Maximum occupancy of the unit group."
          },
          "rank": {
            "type": "integer",
            "minimum": 1,
            "description": "Sort rank of the unit group."
          },
          "type": {
            "type": "string",
            "enum": [
              "BedRoom",
              "MeetingRoom",
              "EventSpace",
              "ParkingLot"
            ],
            "description": "Type of the unit group to create."
          },
          "connectedUnitGroups": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "unitGroupId": {
                  "type": "string",
                  "description": "Connected unit group ID."
                },
                "memberCount": {
                  "type": "integer",
                  "minimum": 1,
                  "description": "Number of units to take from that unit group."
                }
              },
              "additionalProperties": false,
              "description": "Connected unit group reference used during unit group creation or replacement."
            },
            "description": "Connected unit groups used by the new unit group."
          },
          "idempotencyKey": {
            "type": "string",
            "minLength": 1,
            "description": "Optional idempotency key used to safely retry the request."
          }
        },
        "additionalProperties": false,
        "required": [
          "code",
          "propertyId",
          "name",
          "description",
          "maxPersons"
        ],
        "description": "Input payload for creating a unit group."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Identifier returned by the successful create request."
          }
        },
        "additionalProperties": false,
        "description": "Identifier payload returned by a create request."
      }
    },
    {
      "id": "apaleo.delete_unit",
      "service": "apaleo",
      "name": "delete_unit",
      "description": "Delete a unit by ID.",
      "requiredScopes": [
        "apaleo.units.delete"
      ],
      "providerPermissions": [
        "setup.manage"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The apaleo resource ID."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for deleting a unit."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether the operation completed successfully."
          }
        },
        "additionalProperties": false,
        "description": "Successful no-content operation result."
      }
    },
    {
      "id": "apaleo.delete_unit_attribute",
      "service": "apaleo",
      "name": "delete_unit_attribute",
      "description": "Delete a unit attribute definition by ID.",
      "requiredScopes": [
        "apaleo.unit_attributes.delete"
      ],
      "providerPermissions": [
        "setup.manage"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The apaleo resource ID."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for deleting a unit attribute."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether the operation completed successfully."
          }
        },
        "additionalProperties": false,
        "description": "Successful no-content operation result."
      }
    },
    {
      "id": "apaleo.delete_unit_group",
      "service": "apaleo",
      "name": "delete_unit_group",
      "description": "Delete a unit group by ID.",
      "requiredScopes": [
        "apaleo.unit_groups.delete"
      ],
      "providerPermissions": [
        "setup.manage"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The apaleo resource ID."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for deleting a unit group."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether the operation completed successfully."
          }
        },
        "additionalProperties": false,
        "description": "Successful no-content operation result."
      }
    },
    {
      "id": "apaleo.get_property",
      "service": "apaleo",
      "name": "get_property",
      "description": "Get one property by ID, including optional localized fields and expanded actions.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The apaleo resource ID."
          },
          "languages": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 2,
              "maxLength": 2,
              "description": "Language code.",
              "pattern": "^[A-Za-z]{2}$"
            },
            "description": "Return all languages or the listed ISO Alpha-2 language codes."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "actions"
              ],
              "description": "Property expansion key."
            },
            "description": "Embedded resources to expand in the property response."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input payload for retrieving one property."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Property ID."
          },
          "code": {
            "type": "string",
            "description": "Short property code."
          },
          "propertyTemplateId": {
            "type": "string",
            "description": "Template property ID used to create this property."
          },
          "isTemplate": {
            "type": "boolean",
            "description": "Whether this property can be used as a template."
          },
          "name": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "Localized text value."
            },
            "description": "Localized property name."
          },
          "description": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "Localized text value."
            },
            "description": "Localized property description."
          },
          "companyName": {
            "type": "string",
            "description": "Legal company name for the property."
          },
          "managingDirectors": {
            "type": "string",
            "description": "Managing directors shown on invoices."
          },
          "commercialRegisterEntry": {
            "type": "string",
            "description": "Commercial register entry shown on invoices."
          },
          "taxId": {
            "type": "string",
            "description": "Tax identification number shown on invoices."
          },
          "location": {
            "type": "object",
            "properties": {
              "addressLine1": {
                "type": "string",
                "description": "Primary address line."
              },
              "addressLine2": {
                "type": "string",
                "description": "Secondary address line."
              },
              "postalCode": {
                "type": "string",
                "description": "Postal or ZIP code."
              },
              "city": {
                "type": "string",
                "description": "City name."
              },
              "regionCode": {
                "type": "string",
                "description": "Region or state code."
              },
              "countryCode": {
                "type": "string",
                "description": "ISO 3166-1 alpha-2 country code."
              }
            },
            "additionalProperties": false,
            "required": [
              "addressLine1",
              "postalCode",
              "city",
              "countryCode"
            ],
            "description": "Property address details."
          },
          "bankAccount": {
            "type": "object",
            "properties": {
              "iban": {
                "type": "string",
                "description": "International Bank Account Number."
              },
              "bic": {
                "type": "string",
                "description": "Bank Identifier Code."
              },
              "bank": {
                "type": "string",
                "description": "Name of the bank."
              }
            },
            "additionalProperties": false,
            "description": "Property bank account details."
          },
          "paymentTerms": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "Localized text value."
            },
            "description": "Localized payment terms used by the property."
          },
          "timeZone": {
            "type": "string",
            "description": "IANA time zone name."
          },
          "currencyCode": {
            "type": "string",
            "description": "ISO 4217 currency code."
          },
          "created": {
            "type": "string",
            "description": "Property creation timestamp in ISO 8601 format."
          },
          "status": {
            "type": "string",
            "enum": [
              "Test",
              "Live"
            ],
            "description": "Property status."
          },
          "isArchived": {
            "type": "boolean",
            "description": "Whether the property is archived."
          },
          "actions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "action": {
                  "type": "string",
                  "enum": [
                    "Delete",
                    "Archive",
                    "SetLive",
                    "Reset"
                  ],
                  "description": "Property action name."
                },
                "isAllowed": {
                  "type": "boolean",
                  "description": "Whether the property action is currently allowed."
                },
                "reasons": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "type": "string",
                        "description": "Machine-readable reason code."
                      },
                      "message": {
                        "type": "string",
                        "description": "Human-readable reason message."
                      }
                    },
                    "additionalProperties": false,
                    "description": "Reason why a property action may be disallowed."
                  },
                  "description": "Reasons returned when the property action is not allowed."
                }
              },
              "additionalProperties": false,
              "required": [
                "action",
                "isAllowed"
              ],
              "description": "Property action availability."
            },
            "description": "Available actions for the property."
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "code",
          "isTemplate",
          "name",
          "companyName",
          "commercialRegisterEntry",
          "taxId",
          "location",
          "paymentTerms",
          "timeZone",
          "currencyCode",
          "created",
          "status",
          "isArchived"
        ],
        "description": "Full property record."
      }
    },
    {
      "id": "apaleo.get_unit",
      "service": "apaleo",
      "name": "get_unit",
      "description": "Get one unit by ID, including optional localized fields and expansions.",
      "requiredScopes": [
        "apaleo.units.read"
      ],
      "providerPermissions": [
        "setup.read"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The apaleo resource ID."
          },
          "languages": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 2,
              "maxLength": 2,
              "description": "Language code.",
              "pattern": "^[A-Za-z]{2}$"
            },
            "description": "Return all languages or the listed ISO Alpha-2 language codes."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "property",
                "unitGroup",
                "connectedUnits",
                "actions"
              ],
              "description": "Unit expansion key."
            },
            "description": "Embedded resources to expand in the unit response."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input payload for retrieving one unit."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unit ID."
          },
          "name": {
            "type": "string",
            "description": "Unit name."
          },
          "description": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "Localized text value."
            },
            "description": "Localized unit description."
          },
          "property": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "Property ID."
              },
              "code": {
                "type": "string",
                "description": "Short property code."
              },
              "name": {
                "type": "string",
                "description": "Property name in the selected response language."
              },
              "description": {
                "type": "string",
                "description": "Property description in the selected response language."
              }
            },
            "additionalProperties": false,
            "required": [
              "id"
            ],
            "description": "Embedded property summary."
          },
          "unitGroup": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "Unit group ID."
              },
              "code": {
                "type": "string",
                "description": "Short unit group code."
              },
              "name": {
                "type": "string",
                "description": "Unit group name in the selected response language."
              },
              "description": {
                "type": "string",
                "description": "Unit group description in the selected response language."
              },
              "type": {
                "type": "string",
                "enum": [
                  "BedRoom",
                  "MeetingRoom",
                  "EventSpace",
                  "ParkingLot",
                  "Other"
                ],
                "description": "Type of the unit group."
              }
            },
            "additionalProperties": false,
            "required": [
              "id"
            ],
            "description": "Embedded unit group summary."
          },
          "connectingUnit": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "Unit ID."
              },
              "name": {
                "type": "string",
                "description": "Unit name."
              },
              "description": {
                "type": "string",
                "description": "Unit description."
              },
              "unitGroupId": {
                "type": "string",
                "description": "Unit group ID."
              }
            },
            "additionalProperties": false,
            "required": [
              "id"
            ],
            "description": "Embedded connecting unit data."
          },
          "status": {
            "type": "object",
            "properties": {
              "isOccupied": {
                "type": "boolean",
                "description": "Whether the unit is currently occupied."
              },
              "condition": {
                "type": "string",
                "enum": [
                  "Clean",
                  "CleanToBeInspected",
                  "Dirty"
                ],
                "description": "Current cleanliness state of the unit."
              },
              "maintenance": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Scheduled maintenance ID."
                  },
                  "from": {
                    "type": "string",
                    "description": "Maintenance start timestamp in ISO 8601 format."
                  },
                  "to": {
                    "type": "string",
                    "description": "Maintenance end timestamp in ISO 8601 format."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "OutOfService",
                      "OutOfOrder",
                      "OutOfInventory"
                    ],
                    "description": "Type of scheduled maintenance."
                  },
                  "description": {
                    "type": "string",
                    "description": "Maintenance description."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "id",
                  "from",
                  "to",
                  "type"
                ],
                "description": "Scheduled maintenance details for the unit."
              }
            },
            "additionalProperties": false,
            "required": [
              "isOccupied",
              "condition"
            ],
            "description": "Current unit status returned by single-unit reads."
          },
          "maxPersons": {
            "type": "integer",
            "description": "Maximum occupancy of the unit."
          },
          "created": {
            "type": "string",
            "description": "Unit creation timestamp in ISO 8601 format."
          },
          "archived": {
            "type": "string",
            "description": "Archive timestamp in ISO 8601 format."
          },
          "isArchived": {
            "type": "boolean",
            "description": "Whether the unit is archived."
          },
          "attributes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Unit attribute ID."
                },
                "name": {
                  "type": "string",
                  "description": "Unit attribute name."
                },
                "description": {
                  "type": "string",
                  "description": "Unit attribute description."
                }
              },
              "additionalProperties": false,
              "required": [
                "id",
                "name"
              ],
              "description": "Unit attribute attached to a unit."
            },
            "description": "Unit attributes assigned to the unit."
          },
          "connectedUnits": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Connected unit ID."
                },
                "name": {
                  "type": "string",
                  "description": "Connected unit name."
                },
                "description": {
                  "type": "string",
                  "description": "Connected unit description."
                },
                "unitGroupId": {
                  "type": "string",
                  "description": "Connected unit group ID."
                },
                "condition": {
                  "type": "string",
                  "enum": [
                    "Clean",
                    "CleanToBeInspected",
                    "Dirty"
                  ],
                  "description": "Current cleanliness state of the unit."
                },
                "maxPersons": {
                  "type": "integer",
                  "description": "Maximum occupancy of the connected unit."
                }
              },
              "additionalProperties": false,
              "description": "Connected unit summary."
            },
            "description": "Units that compose this combined unit."
          },
          "actions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "action": {
                  "type": "string",
                  "enum": [
                    "Delete",
                    "Archive"
                  ],
                  "description": "Unit action name."
                },
                "isAllowed": {
                  "type": "boolean",
                  "description": "Whether the unit action is currently allowed."
                },
                "reasons": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "type": "string",
                        "description": "Machine-readable reason code."
                      },
                      "message": {
                        "type": "string",
                        "description": "Human-readable reason message."
                      }
                    },
                    "additionalProperties": false,
                    "description": "Reason why a property action may be disallowed."
                  },
                  "description": "Reasons returned when the unit action is not allowed."
                }
              },
              "additionalProperties": false,
              "required": [
                "action",
                "isAllowed"
              ],
              "description": "Unit action availability."
            },
            "description": "Available actions for the unit."
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "name",
          "description",
          "property",
          "status",
          "maxPersons",
          "created"
        ],
        "description": "Full unit record."
      }
    },
    {
      "id": "apaleo.get_unit_attribute",
      "service": "apaleo",
      "name": "get_unit_attribute",
      "description": "Get one unit attribute definition by ID.",
      "requiredScopes": [
        "apaleo.unit_attributes.read"
      ],
      "providerPermissions": [
        "setup.read"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The apaleo resource ID."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for retrieving one unit attribute."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unit attribute definition ID."
          },
          "name": {
            "type": "string",
            "description": "Unit attribute definition name."
          },
          "description": {
            "type": "string",
            "description": "Unit attribute definition description."
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "name"
        ],
        "description": "Unit attribute definition."
      }
    },
    {
      "id": "apaleo.get_unit_group",
      "service": "apaleo",
      "name": "get_unit_group",
      "description": "Get one unit group by ID, including optional localized fields and expansions.",
      "requiredScopes": [
        "apaleo.unit_groups.read"
      ],
      "providerPermissions": [
        "setup.read"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The apaleo resource ID."
          },
          "languages": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 2,
              "maxLength": 2,
              "description": "Language code.",
              "pattern": "^[A-Za-z]{2}$"
            },
            "description": "Return all languages or the listed ISO Alpha-2 language codes."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "property",
                "connectedUnitGroups"
              ],
              "description": "Unit group expansion key."
            },
            "description": "Embedded resources to expand in the unit group response."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input payload for retrieving one unit group."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unit group ID."
          },
          "code": {
            "type": "string",
            "description": "Short unit group code."
          },
          "property": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "Property ID."
              },
              "code": {
                "type": "string",
                "description": "Short property code."
              },
              "name": {
                "type": "string",
                "description": "Property name in the selected response language."
              },
              "description": {
                "type": "string",
                "description": "Property description in the selected response language."
              }
            },
            "additionalProperties": false,
            "required": [
              "id"
            ],
            "description": "Embedded property summary."
          },
          "name": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "Localized text value."
            },
            "description": "Localized unit group name."
          },
          "memberCount": {
            "type": "integer",
            "description": "Number of units in the unit group."
          },
          "description": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "Localized text value."
            },
            "description": "Localized unit group description."
          },
          "maxPersons": {
            "type": "integer",
            "description": "Maximum occupancy of the unit group."
          },
          "rank": {
            "type": "integer",
            "description": "Sort rank of the unit group."
          },
          "type": {
            "type": "string",
            "enum": [
              "BedRoom",
              "MeetingRoom",
              "EventSpace",
              "ParkingLot",
              "Other"
            ],
            "description": "Type of the unit group."
          },
          "connectedUnitGroups": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Connected unit group ID."
                },
                "name": {
                  "type": "string",
                  "description": "Connected unit group name."
                },
                "description": {
                  "type": "string",
                  "description": "Connected unit group description."
                },
                "memberCount": {
                  "type": "integer",
                  "description": "Number of units taken from the connected unit group."
                },
                "maxPersons": {
                  "type": "integer",
                  "description": "Maximum occupancy of the connected unit group."
                }
              },
              "additionalProperties": false,
              "required": [
                "id",
                "name",
                "description",
                "memberCount"
              ],
              "description": "Connected unit group summary."
            },
            "description": "Connected unit groups used by this unit group."
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "code",
          "property",
          "name",
          "memberCount",
          "description",
          "maxPersons",
          "type"
        ],
        "description": "Full unit group record."
      }
    },
    {
      "id": "apaleo.list_properties",
      "service": "apaleo",
      "name": "list_properties",
      "description": "List properties accessible to the connected apaleo account, with optional status, archive, country, and expansion filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Test",
                "Live"
              ],
              "description": "Property status."
            },
            "description": "Filter results by one or more property statuses."
          },
          "includeArchived": {
            "type": "boolean",
            "description": "Whether archived properties should be included."
          },
          "countryCode": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 2,
              "maxLength": 2,
              "description": "ISO country code.",
              "pattern": "^[A-Za-z]{2}$"
            },
            "description": "Filter results by ISO country code."
          },
          "pageNumber": {
            "type": "integer",
            "minimum": 1,
            "description": "1-based page number to retrieve."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Maximum number of items to return per page."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "actions"
              ],
              "description": "Property expansion key."
            },
            "description": "Embedded resources to expand in the property response."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for listing properties."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "Total number of matching properties."
          },
          "properties": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Property ID."
                },
                "code": {
                  "type": "string",
                  "description": "Short property code."
                },
                "propertyTemplateId": {
                  "type": "string",
                  "description": "Template property ID used to create this property."
                },
                "isTemplate": {
                  "type": "boolean",
                  "description": "Whether this property can be used as a template."
                },
                "name": {
                  "type": "string",
                  "description": "Property name in the selected response language."
                },
                "description": {
                  "type": "string",
                  "description": "Property description in the selected response language."
                },
                "companyName": {
                  "type": "string",
                  "description": "Legal company name for the property."
                },
                "managingDirectors": {
                  "type": "string",
                  "description": "Managing directors shown on invoices."
                },
                "commercialRegisterEntry": {
                  "type": "string",
                  "description": "Commercial register entry shown on invoices."
                },
                "taxId": {
                  "type": "string",
                  "description": "Tax identification number shown on invoices."
                },
                "location": {
                  "type": "object",
                  "properties": {
                    "addressLine1": {
                      "type": "string",
                      "description": "Primary address line."
                    },
                    "addressLine2": {
                      "type": "string",
                      "description": "Secondary address line."
                    },
                    "postalCode": {
                      "type": "string",
                      "description": "Postal or ZIP code."
                    },
                    "city": {
                      "type": "string",
                      "description": "City name."
                    },
                    "regionCode": {
                      "type": "string",
                      "description": "Region or state code."
                    },
                    "countryCode": {
                      "type": "string",
                      "description": "ISO 3166-1 alpha-2 country code."
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "addressLine1",
                    "postalCode",
                    "city",
                    "countryCode"
                  ],
                  "description": "Property address details."
                },
                "bankAccount": {
                  "type": "object",
                  "properties": {
                    "iban": {
                      "type": "string",
                      "description": "International Bank Account Number."
                    },
                    "bic": {
                      "type": "string",
                      "description": "Bank Identifier Code."
                    },
                    "bank": {
                      "type": "string",
                      "description": "Name of the bank."
                    }
                  },
                  "additionalProperties": false,
                  "description": "Property bank account details."
                },
                "paymentTerms": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string",
                    "description": "Localized text value."
                  },
                  "description": "Localized payment terms used by the property."
                },
                "timeZone": {
                  "type": "string",
                  "description": "IANA time zone name."
                },
                "currencyCode": {
                  "type": "string",
                  "description": "ISO 4217 currency code."
                },
                "created": {
                  "type": "string",
                  "description": "Property creation timestamp in ISO 8601 format."
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "Test",
                    "Live"
                  ],
                  "description": "Property status."
                },
                "isArchived": {
                  "type": "boolean",
                  "description": "Whether the property is archived."
                },
                "actions": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "Delete",
                          "Archive",
                          "SetLive",
                          "Reset"
                        ],
                        "description": "Property action name."
                      },
                      "isAllowed": {
                        "type": "boolean",
                        "description": "Whether the property action is currently allowed."
                      },
                      "reasons": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Machine-readable reason code."
                            },
                            "message": {
                              "type": "string",
                              "description": "Human-readable reason message."
                            }
                          },
                          "additionalProperties": false,
                          "description": "Reason why a property action may be disallowed."
                        },
                        "description": "Reasons returned when the property action is not allowed."
                      }
                    },
                    "additionalProperties": false,
                    "required": [
                      "action",
                      "isAllowed"
                    ],
                    "description": "Property action availability."
                  },
                  "description": "Available actions for the property."
                }
              },
              "additionalProperties": false,
              "required": [
                "id",
                "code",
                "isTemplate",
                "name",
                "companyName",
                "commercialRegisterEntry",
                "taxId",
                "location",
                "paymentTerms",
                "timeZone",
                "currencyCode",
                "created",
                "status",
                "isArchived"
              ],
              "description": "Property summary returned by list endpoints."
            },
            "description": "Properties returned for the current page."
          }
        },
        "additionalProperties": false,
        "description": "Paginated property list."
      }
    },
    {
      "id": "apaleo.list_supported_countries",
      "service": "apaleo",
      "name": "list_supported_countries",
      "description": "List ISO country codes supported by apaleo property creation.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "This action does not require any input fields."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "countryCodes": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Supported ISO country code."
            },
            "description": "Supported ISO country codes."
          }
        },
        "additionalProperties": false,
        "description": "Supported country list."
      }
    },
    {
      "id": "apaleo.list_unit_attributes",
      "service": "apaleo",
      "name": "list_unit_attributes",
      "description": "List unit attribute definitions for the current account.",
      "requiredScopes": [
        "apaleo.unit_attributes.read"
      ],
      "providerPermissions": [
        "setup.read"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "minimum": 1,
            "description": "1-based page number to retrieve."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Maximum number of items to return per page."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for listing unit attributes."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "Total number of matching unit attributes."
          },
          "unitAttributes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Unit attribute definition ID."
                },
                "name": {
                  "type": "string",
                  "description": "Unit attribute definition name."
                },
                "description": {
                  "type": "string",
                  "description": "Unit attribute definition description."
                }
              },
              "additionalProperties": false,
              "required": [
                "id",
                "name"
              ],
              "description": "Unit attribute definition."
            },
            "description": "Unit attributes returned for the current page."
          }
        },
        "additionalProperties": false,
        "description": "Paginated unit attribute list."
      }
    },
    {
      "id": "apaleo.list_unit_groups",
      "service": "apaleo",
      "name": "list_unit_groups",
      "description": "List unit groups with filters for property, unit group type, pagination, and embedded resources.",
      "requiredScopes": [
        "apaleo.unit_groups.read"
      ],
      "providerPermissions": [
        "setup.read"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "propertyId": {
            "type": "string",
            "description": "Return unit groups for the specified property ID."
          },
          "unitGroupTypes": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "BedRoom",
                "MeetingRoom",
                "EventSpace",
                "ParkingLot",
                "Other"
              ],
              "description": "Type of the unit group."
            },
            "description": "Filter results by one or more unit group types."
          },
          "pageNumber": {
            "type": "integer",
            "minimum": 1,
            "description": "1-based page number to retrieve."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Maximum number of items to return per page."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "property",
                "connectedUnitGroups"
              ],
              "description": "Unit group expansion key."
            },
            "description": "Embedded resources to expand in the unit group response."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for listing unit groups."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "Total number of matching unit groups."
          },
          "unitGroups": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Unit group ID."
                },
                "code": {
                  "type": "string",
                  "description": "Short unit group code."
                },
                "name": {
                  "type": "string",
                  "description": "Unit group name in the selected response language."
                },
                "description": {
                  "type": "string",
                  "description": "Unit group description in the selected response language."
                },
                "memberCount": {
                  "type": "integer",
                  "description": "Number of units in the unit group."
                },
                "maxPersons": {
                  "type": "integer",
                  "description": "Maximum occupancy of the unit group."
                },
                "rank": {
                  "type": "integer",
                  "description": "Sort rank of the unit group."
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "BedRoom",
                    "MeetingRoom",
                    "EventSpace",
                    "ParkingLot",
                    "Other"
                  ],
                  "description": "Type of the unit group."
                },
                "property": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Property ID."
                    },
                    "code": {
                      "type": "string",
                      "description": "Short property code."
                    },
                    "name": {
                      "type": "string",
                      "description": "Property name in the selected response language."
                    },
                    "description": {
                      "type": "string",
                      "description": "Property description in the selected response language."
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "id"
                  ],
                  "description": "Embedded property summary."
                },
                "connectedUnitGroups": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Connected unit group ID."
                      },
                      "name": {
                        "type": "string",
                        "description": "Connected unit group name."
                      },
                      "description": {
                        "type": "string",
                        "description": "Connected unit group description."
                      },
                      "memberCount": {
                        "type": "integer",
                        "description": "Number of units taken from the connected unit group."
                      },
                      "maxPersons": {
                        "type": "integer",
                        "description": "Maximum occupancy of the connected unit group."
                      }
                    },
                    "additionalProperties": false,
                    "required": [
                      "id",
                      "name",
                      "description",
                      "memberCount"
                    ],
                    "description": "Connected unit group summary."
                  },
                  "description": "Connected unit groups used by this unit group."
                }
              },
              "additionalProperties": false,
              "required": [
                "id",
                "code",
                "name",
                "description",
                "memberCount",
                "type",
                "property"
              ],
              "description": "Unit group summary returned by list endpoints."
            },
            "description": "Unit groups returned for the current page."
          }
        },
        "additionalProperties": false,
        "description": "Paginated unit group list."
      }
    },
    {
      "id": "apaleo.list_units",
      "service": "apaleo",
      "name": "list_units",
      "description": "List units with filters for property, unit group, attributes, occupancy, maintenance state, archive state, and expansions.",
      "requiredScopes": [
        "apaleo.units.read"
      ],
      "providerPermissions": [
        "setup.read"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "propertyId": {
            "type": "string",
            "description": "Return units for the specified property ID."
          },
          "unitGroupId": {
            "type": "string",
            "description": "Deprecated single unit group filter kept for compatibility."
          },
          "unitGroupIds": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Unit group ID."
            },
            "description": "Return units for the specified unit group IDs."
          },
          "unitAttributeIds": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Unit attribute ID."
            },
            "description": "Return units that have the specified unit attribute IDs."
          },
          "isOccupied": {
            "type": "boolean",
            "description": "Filter by occupied or vacant units."
          },
          "maintenanceType": {
            "type": "string",
            "enum": [
              "OutOfService",
              "OutOfOrder",
              "OutOfInventory"
            ],
            "description": "Type of scheduled maintenance."
          },
          "condition": {
            "type": "string",
            "enum": [
              "Clean",
              "CleanToBeInspected",
              "Dirty"
            ],
            "description": "Current cleanliness state of the unit."
          },
          "textSearch": {
            "type": "string",
            "description": "Case-insensitive search term matched against the unit name."
          },
          "status": {
            "type": "string",
            "enum": [
              "Active",
              "Archived",
              "All"
            ],
            "description": "Whether to return active units, archived units, or both."
          },
          "pageNumber": {
            "type": "integer",
            "minimum": 1,
            "description": "1-based page number to retrieve."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Maximum number of items to return per page."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "property",
                "unitGroup",
                "connectedUnits",
                "actions"
              ],
              "description": "Unit expansion key."
            },
            "description": "Embedded resources to expand in the unit response."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for listing units."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "Total number of matching units."
          },
          "units": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Unit ID."
                },
                "name": {
                  "type": "string",
                  "description": "Unit name."
                },
                "description": {
                  "type": "string",
                  "description": "Unit description in the selected response language."
                },
                "property": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Property ID."
                    },
                    "code": {
                      "type": "string",
                      "description": "Short property code."
                    },
                    "name": {
                      "type": "string",
                      "description": "Property name in the selected response language."
                    },
                    "description": {
                      "type": "string",
                      "description": "Property description in the selected response language."
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "id"
                  ],
                  "description": "Embedded property summary."
                },
                "unitGroup": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Unit group ID."
                    },
                    "code": {
                      "type": "string",
                      "description": "Short unit group code."
                    },
                    "name": {
                      "type": "string",
                      "description": "Unit group name in the selected response language."
                    },
                    "description": {
                      "type": "string",
                      "description": "Unit group description in the selected response language."
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "BedRoom",
                        "MeetingRoom",
                        "EventSpace",
                        "ParkingLot",
                        "Other"
                      ],
                      "description": "Type of the unit group."
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "id"
                  ],
                  "description": "Embedded unit group summary."
                },
                "connectingUnit": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Unit ID."
                    },
                    "name": {
                      "type": "string",
                      "description": "Unit name."
                    },
                    "description": {
                      "type": "string",
                      "description": "Unit description."
                    },
                    "unitGroupId": {
                      "type": "string",
                      "description": "Unit group ID."
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "id"
                  ],
                  "description": "Embedded connecting unit data."
                },
                "status": {
                  "type": "object",
                  "properties": {
                    "isOccupied": {
                      "type": "boolean",
                      "description": "Whether the unit is currently occupied."
                    },
                    "condition": {
                      "type": "string",
                      "enum": [
                        "Clean",
                        "CleanToBeInspected",
                        "Dirty"
                      ],
                      "description": "Current cleanliness state of the unit."
                    },
                    "maintenance": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "description": "Scheduled maintenance ID."
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "OutOfService",
                            "OutOfOrder",
                            "OutOfInventory"
                          ],
                          "description": "Type of scheduled maintenance."
                        }
                      },
                      "additionalProperties": false,
                      "description": "Scheduled maintenance summary for the unit."
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "isOccupied",
                    "condition"
                  ],
                  "description": "Current unit status returned by unit list endpoints."
                },
                "maxPersons": {
                  "type": "integer",
                  "description": "Maximum occupancy of the unit."
                },
                "created": {
                  "type": "string",
                  "description": "Unit creation timestamp in ISO 8601 format."
                },
                "archived": {
                  "type": "string",
                  "description": "Archive timestamp in ISO 8601 format."
                },
                "isArchived": {
                  "type": "boolean",
                  "description": "Whether the unit is archived."
                },
                "attributes": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Unit attribute ID."
                      },
                      "name": {
                        "type": "string",
                        "description": "Unit attribute name."
                      },
                      "description": {
                        "type": "string",
                        "description": "Unit attribute description."
                      }
                    },
                    "additionalProperties": false,
                    "required": [
                      "id",
                      "name"
                    ],
                    "description": "Unit attribute attached to a unit."
                  },
                  "description": "Unit attributes assigned to the unit."
                },
                "connectedUnits": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Connected unit ID."
                      },
                      "name": {
                        "type": "string",
                        "description": "Connected unit name."
                      },
                      "description": {
                        "type": "string",
                        "description": "Connected unit description."
                      },
                      "unitGroupId": {
                        "type": "string",
                        "description": "Connected unit group ID."
                      },
                      "condition": {
                        "type": "string",
                        "enum": [
                          "Clean",
                          "CleanToBeInspected",
                          "Dirty"
                        ],
                        "description": "Current cleanliness state of the unit."
                      },
                      "maxPersons": {
                        "type": "integer",
                        "description": "Maximum occupancy of the connected unit."
                      }
                    },
                    "additionalProperties": false,
                    "description": "Connected unit summary."
                  },
                  "description": "Units that compose this combined unit."
                },
                "actions": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "Delete",
                          "Archive"
                        ],
                        "description": "Unit action name."
                      },
                      "isAllowed": {
                        "type": "boolean",
                        "description": "Whether the unit action is currently allowed."
                      },
                      "reasons": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Machine-readable reason code."
                            },
                            "message": {
                              "type": "string",
                              "description": "Human-readable reason message."
                            }
                          },
                          "additionalProperties": false,
                          "description": "Reason why a property action may be disallowed."
                        },
                        "description": "Reasons returned when the unit action is not allowed."
                      }
                    },
                    "additionalProperties": false,
                    "required": [
                      "action",
                      "isAllowed"
                    ],
                    "description": "Unit action availability."
                  },
                  "description": "Available actions for the unit."
                }
              },
              "additionalProperties": false,
              "required": [
                "id",
                "name",
                "description",
                "property",
                "status",
                "maxPersons",
                "created"
              ],
              "description": "Unit summary returned by list endpoints."
            },
            "description": "Units returned for the current page."
          }
        },
        "additionalProperties": false,
        "description": "Paginated unit list."
      }
    },
    {
      "id": "apaleo.move_property_to_live",
      "service": "apaleo",
      "name": "move_property_to_live",
      "description": "Move a test property to live status.",
      "requiredScopes": [
        "apaleo.properties.manage"
      ],
      "providerPermissions": [
        "setup.manage"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The apaleo resource ID."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for moving a property to live."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether the operation completed successfully."
          }
        },
        "additionalProperties": false,
        "description": "Successful no-content operation result."
      }
    },
    {
      "id": "apaleo.replace_unit_group",
      "service": "apaleo",
      "name": "replace_unit_group",
      "description": "Completely replace the mutable fields of an existing unit group.",
      "requiredScopes": [
        "apaleo.unit_groups.manage"
      ],
      "providerPermissions": [
        "setup.manage"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "Localized text value."
            },
            "description": "Localized unit group name."
          },
          "description": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "Localized text value."
            },
            "description": "Localized unit group description."
          },
          "maxPersons": {
            "type": "integer",
            "description": "Maximum occupancy of the unit group."
          },
          "rank": {
            "type": "integer",
            "minimum": 1,
            "description": "Sort rank of the unit group."
          },
          "connectedUnitGroups": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "unitGroupId": {
                  "type": "string",
                  "description": "Connected unit group ID."
                },
                "memberCount": {
                  "type": "integer",
                  "minimum": 1,
                  "description": "Number of units to take from that unit group."
                }
              },
              "additionalProperties": false,
              "description": "Connected unit group reference used during unit group creation or replacement."
            },
            "description": "Connected unit groups used by the replaced unit group."
          },
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The apaleo resource ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "name",
          "description",
          "id"
        ],
        "description": "Input payload for replacing a unit group."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether the operation completed successfully."
          }
        },
        "additionalProperties": false,
        "description": "Successful no-content operation result."
      }
    },
    {
      "id": "apaleo.reset_property_data",
      "service": "apaleo",
      "name": "reset_property_data",
      "description": "Delete all transactional data for a test property.",
      "requiredScopes": [
        "apaleo.properties.manage"
      ],
      "providerPermissions": [
        "setup.manage"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The apaleo resource ID."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for resetting a property."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether the operation completed successfully."
          }
        },
        "additionalProperties": false,
        "description": "Successful no-content operation result."
      }
    }
  ]
}
