{
    "schemes": [],
    "swagger": "2.0",
    "info": {
        "description": "REST API for fractional ownership, shares, and usage reservations for real estate properties.",
        "title": "FractionalProp API",
        "contact": {},
        "version": "1.0.0"
    },
    "host": "",
    "basePath": "/",
    "paths": {
        "/v1/properties": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "properties"
                ],
                "summary": "List properties",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Limit",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Offset",
                        "name": "offset",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Opaque cursor for the next page",
                        "name": "after",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Opaque cursor for the previous page",
                        "name": "before",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "Include total count",
                        "name": "count",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "enum": [
                                "address",
                                "area_sqft",
                                "bathrooms",
                                "bedrooms",
                                "city",
                                "code",
                                "country",
                                "created_at",
                                "id",
                                "maintenance_cents",
                                "name",
                                "occupancy_status",
                                "ownership_status",
                                "postal_code",
                                "property_type",
                                "share_price_cents",
                                "state",
                                "status",
                                "tenant_id",
                                "total_shares",
                                "updated_at"
                            ],
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Select fields",
                        "name": "fields",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Simple filters. Repeat for AND. Format: field:operator:value. Operators: eq, ne, gt, gte, lt, lte, like, in, is_null, not_null. Example: filter=status:eq:ACTIVE\u0026filter=role.name:eq:ADMIN. Filterable fields: address, area_sqft, bathrooms, bedrooms, city, code, country, created_at, maintenance_cents, name, occupancy_status, ownership_status, postal_code, property_type, share_price_cents, state, status, tenant_id, total_shares, updated_at",
                        "name": "filter",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Advanced filter expression. Example: (status='ACTIVE' OR status='PENDING') AND (role.name='ADMIN' OR role.name='MANAGER')",
                        "name": "q",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/httpapi.PropertyListResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    }
                }
            },
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "properties"
                ],
                "summary": "Create property",
                "parameters": [
                    {
                        "description": "Payload",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/httpapi.PropertyCreateRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/httpapi.PropertyResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    }
                }
            }
        },
        "/v1/properties/{id}": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "properties"
                ],
                "summary": "Get property",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/httpapi.PropertyResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    }
                }
            },
            "delete": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "properties"
                ],
                "summary": "Delete property",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    }
                }
            },
            "patch": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "properties"
                ],
                "summary": "Patch property",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Payload",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/httpapi.PropertyPatchRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/httpapi.PropertyResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    }
                }
            }
        },
        "/v1/property-shares": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "property-shares"
                ],
                "summary": "List property-shares",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Limit",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Offset",
                        "name": "offset",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Opaque cursor for the next page",
                        "name": "after",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Opaque cursor for the previous page",
                        "name": "before",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "Include total count",
                        "name": "count",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "enum": [
                                "acquired_at",
                                "created_at",
                                "id",
                                "owner_id",
                                "property_id",
                                "purchase_price_cents",
                                "shares_owned",
                                "status",
                                "tenant_id",
                                "updated_at"
                            ],
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Select fields",
                        "name": "fields",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Simple filters. Repeat for AND. Format: field:operator:value. Operators: eq, ne, gt, gte, lt, lte, like, in, is_null, not_null. Example: filter=status:eq:ACTIVE\u0026filter=role.name:eq:ADMIN. Filterable fields: acquired_at, created_at, owner_id, property_id, purchase_price_cents, shares_owned, status, tenant_id, updated_at",
                        "name": "filter",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Advanced filter expression. Example: (status='ACTIVE' OR status='PENDING') AND (role.name='ADMIN' OR role.name='MANAGER')",
                        "name": "q",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/httpapi.PropertyShareListResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    }
                }
            },
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "property-shares"
                ],
                "summary": "Create property-share",
                "parameters": [
                    {
                        "description": "Payload",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/httpapi.PropertyShareCreateRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/httpapi.PropertyShareResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    }
                }
            }
        },
        "/v1/property-shares/{id}": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "property-shares"
                ],
                "summary": "Get property-share",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/httpapi.PropertyShareResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    }
                }
            },
            "delete": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "property-shares"
                ],
                "summary": "Delete property-share",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    }
                }
            },
            "patch": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "property-shares"
                ],
                "summary": "Patch property-share",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Payload",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/httpapi.PropertySharePatchRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/httpapi.PropertyShareResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    }
                }
            }
        },
        "/v1/property-usage-reservations": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "property-usage-reservations"
                ],
                "summary": "List property-usage-reservations",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Limit",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Offset",
                        "name": "offset",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Opaque cursor for the next page",
                        "name": "after",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Opaque cursor for the previous page",
                        "name": "before",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "Include total count",
                        "name": "count",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "enum": [
                                "approval_status",
                                "created_at",
                                "end_date",
                                "id",
                                "nights",
                                "notes",
                                "property_id",
                                "purpose",
                                "requester_id",
                                "start_date",
                                "status",
                                "tenant_id",
                                "updated_at"
                            ],
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Select fields",
                        "name": "fields",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Simple filters. Repeat for AND. Format: field:operator:value. Operators: eq, ne, gt, gte, lt, lte, like, in, is_null, not_null. Example: filter=status:eq:ACTIVE\u0026filter=role.name:eq:ADMIN. Filterable fields: approval_status, created_at, end_date, nights, notes, property_id, purpose, requester_id, start_date, status, tenant_id, updated_at",
                        "name": "filter",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Advanced filter expression. Example: (status='ACTIVE' OR status='PENDING') AND (role.name='ADMIN' OR role.name='MANAGER')",
                        "name": "q",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/httpapi.PropertyUsageReservationListResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    }
                }
            },
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "property-usage-reservations"
                ],
                "summary": "Create property-usage-reservation",
                "parameters": [
                    {
                        "description": "Payload",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/httpapi.PropertyUsageReservationCreateRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/httpapi.PropertyUsageReservationResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    }
                }
            }
        },
        "/v1/property-usage-reservations/{id}": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "property-usage-reservations"
                ],
                "summary": "Get property-usage-reservation",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/httpapi.PropertyUsageReservationResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    }
                }
            },
            "delete": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "property-usage-reservations"
                ],
                "summary": "Delete property-usage-reservation",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    }
                }
            },
            "patch": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "property-usage-reservations"
                ],
                "summary": "Patch property-usage-reservation",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Payload",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/httpapi.PropertyUsageReservationPatchRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/httpapi.PropertyUsageReservationResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/httpapi.ErrorBody"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "httpapi.ErrorBody": {
            "type": "object",
            "properties": {
                "code": {
                    "type": "string"
                },
                "details": {},
                "message": {
                    "type": "string"
                },
                "request_id": {
                    "type": "string"
                }
            }
        },
        "httpapi.PropertyCreateRequest": {
            "type": "object",
            "required": [
                "code",
                "name",
                "occupancy_status",
                "property_type",
                "share_price_cents",
                "status",
                "total_shares"
            ],
            "properties": {
                "address": {
                    "type": "string"
                },
                "area_sqft": {
                    "type": "integer"
                },
                "bathrooms": {
                    "type": "integer"
                },
                "bedrooms": {
                    "type": "integer"
                },
                "city": {
                    "type": "string"
                },
                "code": {
                    "type": "string"
                },
                "country": {
                    "type": "string"
                },
                "maintenance_cents": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "occupancy_status": {
                    "type": "string",
                    "enum": [
                        "vacant",
                        "occupied",
                        "booked",
                        "under_maintenance",
                        "unavailable"
                    ]
                },
                "postal_code": {
                    "type": "string"
                },
                "property_type": {
                    "type": "string",
                    "enum": [
                        "flat",
                        "apartment",
                        "villa",
                        "plot",
                        "land",
                        "farm_land",
                        "commercial_unit",
                        "other"
                    ]
                },
                "share_price_cents": {
                    "type": "integer"
                },
                "state": {
                    "type": "string"
                },
                "status": {
                    "type": "string",
                    "enum": [
                        "draft",
                        "active",
                        "suspended",
                        "archived"
                    ]
                },
                "total_shares": {
                    "type": "integer"
                }
            }
        },
        "httpapi.PropertyListResponse": {
            "type": "object",
            "properties": {
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/httpapi.PropertyResponse"
                    }
                },
                "limit": {
                    "type": "integer"
                },
                "next_cursor": {
                    "type": "string"
                },
                "offset": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "httpapi.PropertyPatchRequest": {
            "type": "object",
            "properties": {
                "address": {
                    "type": "string"
                },
                "area_sqft": {
                    "type": "integer"
                },
                "bathrooms": {
                    "type": "integer"
                },
                "bedrooms": {
                    "type": "integer"
                },
                "city": {
                    "type": "string"
                },
                "code": {
                    "type": "string"
                },
                "country": {
                    "type": "string"
                },
                "maintenance_cents": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "occupancy_status": {
                    "type": "string",
                    "enum": [
                        "vacant",
                        "occupied",
                        "booked",
                        "under_maintenance",
                        "unavailable"
                    ]
                },
                "postal_code": {
                    "type": "string"
                },
                "property_type": {
                    "type": "string",
                    "enum": [
                        "flat",
                        "apartment",
                        "villa",
                        "plot",
                        "land",
                        "farm_land",
                        "commercial_unit",
                        "other"
                    ]
                },
                "share_price_cents": {
                    "type": "integer"
                },
                "state": {
                    "type": "string"
                },
                "status": {
                    "type": "string",
                    "enum": [
                        "draft",
                        "active",
                        "suspended",
                        "archived"
                    ]
                },
                "total_shares": {
                    "type": "integer"
                }
            }
        },
        "httpapi.PropertyResponse": {
            "type": "object",
            "properties": {
                "address": {
                    "type": "string"
                },
                "area_sqft": {
                    "type": "integer"
                },
                "bathrooms": {
                    "type": "integer"
                },
                "bedrooms": {
                    "type": "integer"
                },
                "city": {
                    "type": "string"
                },
                "code": {
                    "type": "string"
                },
                "country": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "maintenance_cents": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "occupancy_status": {
                    "type": "string"
                },
                "ownership_status": {
                    "type": "string"
                },
                "postal_code": {
                    "type": "string"
                },
                "property_type": {
                    "type": "string"
                },
                "share_price_cents": {
                    "type": "integer"
                },
                "state": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "tenant_id": {
                    "type": "string"
                },
                "total_shares": {
                    "type": "integer"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "httpapi.PropertyShareCreateRequest": {
            "type": "object",
            "required": [
                "acquired_at",
                "owner_id",
                "property_id",
                "purchase_price_cents",
                "shares_owned",
                "status"
            ],
            "properties": {
                "acquired_at": {
                    "type": "string"
                },
                "owner_id": {
                    "type": "string"
                },
                "property_id": {
                    "type": "string"
                },
                "purchase_price_cents": {
                    "type": "integer"
                },
                "shares_owned": {
                    "type": "integer"
                },
                "status": {
                    "type": "string",
                    "enum": [
                        "pending",
                        "active",
                        "cancelled",
                        "transferred",
                        "suspended",
                        "archived"
                    ]
                }
            }
        },
        "httpapi.PropertyShareListResponse": {
            "type": "object",
            "properties": {
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/httpapi.PropertyShareResponse"
                    }
                },
                "limit": {
                    "type": "integer"
                },
                "next_cursor": {
                    "type": "string"
                },
                "offset": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "httpapi.PropertySharePatchRequest": {
            "type": "object",
            "properties": {
                "acquired_at": {
                    "type": "string"
                },
                "owner_id": {
                    "type": "string"
                },
                "property_id": {
                    "type": "string"
                },
                "purchase_price_cents": {
                    "type": "integer"
                },
                "shares_owned": {
                    "type": "integer"
                },
                "status": {
                    "type": "string",
                    "enum": [
                        "pending",
                        "active",
                        "cancelled",
                        "transferred",
                        "suspended",
                        "archived"
                    ]
                }
            }
        },
        "httpapi.PropertyShareResponse": {
            "type": "object",
            "properties": {
                "acquired_at": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "owner_id": {
                    "type": "string"
                },
                "property_id": {
                    "type": "string"
                },
                "purchase_price_cents": {
                    "type": "integer"
                },
                "shares_owned": {
                    "type": "integer"
                },
                "status": {
                    "type": "string"
                },
                "tenant_id": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "httpapi.PropertyUsageReservationCreateRequest": {
            "type": "object",
            "required": [
                "approval_status",
                "end_date",
                "nights",
                "property_id",
                "purpose",
                "requester_id",
                "start_date",
                "status"
            ],
            "properties": {
                "approval_status": {
                    "type": "string",
                    "enum": [
                        "pending",
                        "approved",
                        "rejected",
                        "needs_review"
                    ]
                },
                "end_date": {
                    "type": "string"
                },
                "nights": {
                    "type": "integer"
                },
                "notes": {
                    "type": "string"
                },
                "property_id": {
                    "type": "string"
                },
                "purpose": {
                    "type": "string",
                    "enum": [
                        "stay",
                        "maintenance",
                        "inspection",
                        "guest",
                        "blocked"
                    ]
                },
                "requester_id": {
                    "type": "string"
                },
                "start_date": {
                    "type": "string"
                },
                "status": {
                    "type": "string",
                    "enum": [
                        "requested",
                        "approved",
                        "rejected",
                        "cancelled",
                        "checked_in",
                        "checked_out",
                        "completed"
                    ]
                }
            }
        },
        "httpapi.PropertyUsageReservationListResponse": {
            "type": "object",
            "properties": {
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/httpapi.PropertyUsageReservationResponse"
                    }
                },
                "limit": {
                    "type": "integer"
                },
                "next_cursor": {
                    "type": "string"
                },
                "offset": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "httpapi.PropertyUsageReservationPatchRequest": {
            "type": "object",
            "properties": {
                "approval_status": {
                    "type": "string",
                    "enum": [
                        "pending",
                        "approved",
                        "rejected",
                        "needs_review"
                    ]
                },
                "end_date": {
                    "type": "string"
                },
                "nights": {
                    "type": "integer"
                },
                "notes": {
                    "type": "string"
                },
                "property_id": {
                    "type": "string"
                },
                "purpose": {
                    "type": "string",
                    "enum": [
                        "stay",
                        "maintenance",
                        "inspection",
                        "guest",
                        "blocked"
                    ]
                },
                "requester_id": {
                    "type": "string"
                },
                "start_date": {
                    "type": "string"
                },
                "status": {
                    "type": "string",
                    "enum": [
                        "requested",
                        "approved",
                        "rejected",
                        "cancelled",
                        "checked_in",
                        "checked_out",
                        "completed"
                    ]
                }
            }
        },
        "httpapi.PropertyUsageReservationResponse": {
            "type": "object",
            "properties": {
                "approval_status": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "end_date": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "nights": {
                    "type": "integer"
                },
                "notes": {
                    "type": "string"
                },
                "property_id": {
                    "type": "string"
                },
                "purpose": {
                    "type": "string"
                },
                "requester_id": {
                    "type": "string"
                },
                "start_date": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "tenant_id": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        }
    }
}