@simplyhomes/sos-sdk
Version:
TypeScript SDK for Simply Homes SoS API v4
242 lines • 63.9 kB
JavaScript
/* tslint:disable */
/* eslint-disable */
/**
* API v4
* Swagger documentation for API v4
*
* The version of the OpenAPI document: 4.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import * as runtime from '../runtime';
import { V4PropertyManagersCreatePropertyManagerBodyDtoToJSON, V4PropertyManagersCreatePropertyManagerResponseDtoFromJSON, V4PropertyManagersDeletePropertyManagerResponseDtoFromJSON, V4PropertyManagersGetPropertyManagerColumnsResponseDtoFromJSON, V4PropertyManagersGetPropertyManagerResponseDtoFromJSON, V4PropertyManagersGetPropertyManagersInViewResponseDtoFromJSON, V4PropertyManagersGetPropertyManagersResponseDtoFromJSON, V4PropertyManagersUpdatePropertyManagerBodyDtoToJSON, V4PropertyManagersUpdatePropertyManagerResponseDtoFromJSON, } from '../models/index';
/**
*
*/
export class PropertyManagersAPIV4Api extends runtime.BaseAPI {
/**
* # POST /v4/propertyManagers ## Overview Creates a new property manager with the provided information. This endpoint allows you to add new property management companies to your organization with their contact details and service information. ## Authentication - **Required**: Yes - **Security**: - `x-api-key` header - `organization-id` header ## Request Body The request body should contain property manager information to create the new property manager. ### Required Fields | Field | Type | Description | |-------|------|-------------| | `name` | string | Property manager company name (must be unique within organization) | ### Optional Fields | Field | Type | Description | |-------|------|-------------| | `email` | string | Primary email address | | `phonePrimary` | string | Primary phone number | | `phoneSecondary` | string | Secondary phone number | | `contactPerson` | string | Primary contact person name | | `businessAddress` | string | Physical business address | | `serviceAreas` | array | Geographic service areas | | `specializations` | array | Management specializations | | `managementFee` | number | Standard management fee percentage | | `licenseNumber` | string | Professional license number | | `insuranceCoverage` | string | Insurance coverage details | | `yearsInBusiness` | number | Years of operation | ### Validation Rules - **Name**: Required, non-empty string, must be unique within organization - **Email**: Must be a valid email format if provided - **Phone Numbers**: Must follow valid phone number format if provided - **Management Fee**: Must be a valid percentage if provided - **Organization Scoping**: Property manager is automatically associated with user\'s organization ## Request Example ```json { \"name\": \"XYZ Property Management\", \"email\": \"contact@xyzpm.com\", \"phonePrimary\": \"+1234567890\", \"contactPerson\": \"John Smith\", \"managementFee\": 8.5, \"serviceAreas\": [\"Downtown\", \"Suburbs\"], \"specializations\": [\"Residential\", \"Commercial\"] } ``` ## Response Structure Returns the newly created property manager\'s ID and confirmation. ## Use Cases This endpoint is ideal for: - **Vendor Onboarding**: Add new property management companies to the system - **Network Expansion**: Include additional property management partners - **Competitive Analysis**: Add competitors for service comparison - **Deal Sourcing**: Expand available property management options - **Integration**: Sync property managers from external CRM or vendor systems - **Market Research**: Track property management services across multiple companies ## Business Rules - **Name Uniqueness**: Property manager names must be unique within the organization - **Default Values**: Unspecified contact details default to null and can be updated later - **Organization Association**: Property managers are automatically scoped to the user\'s organization - **Data Validation**: All contact information is validated for reasonable formats - **Audit Trail**: Property manager creation is logged for compliance and tracking ## Property Management Setup ### Initial Configuration You can provide basic information during creation or update details later: - **Contact Information**: Primary and secondary contact methods - **Service Details**: Geographic areas and specializations - **Business Information**: Licensing and insurance details ### Progressive Setup - **Minimal Creation**: Create with just a name and add details progressively - **Complete Setup**: Provide all available information during initial creation - **Flexible Updates**: Update any information after creation using PATCH endpoint ## Error Handling Common validation errors include: - **Duplicate Name**: Property manager name already exists in the organization - **Invalid Email**: Email does not follow valid email format - **Missing Required Fields**: Name not provided - **Invalid Phone Format**: Phone numbers do not follow expected format - **Invalid Fee Range**: Management fee outside acceptable range
* Create a new propertyManager
*/
async v4PropertyManagersControllerCreatePropertyManagerV4Raw(requestParameters, initOverrides) {
if (requestParameters['v4PropertyManagersCreatePropertyManagerBodyDto'] == null) {
throw new runtime.RequiredError('v4PropertyManagersCreatePropertyManagerBodyDto', 'Required parameter "v4PropertyManagersCreatePropertyManagerBodyDto" was null or undefined when calling v4PropertyManagersControllerCreatePropertyManagerV4().');
}
const queryParameters = {};
const headerParameters = {};
headerParameters['Content-Type'] = 'application/json';
if (this.configuration && this.configuration.apiKey) {
headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // x-api-key authentication
}
if (this.configuration && this.configuration.apiKey) {
headerParameters["organization-id"] = await this.configuration.apiKey("organization-id"); // organization-id authentication
}
let urlPath = `/v4/propertyManagers`;
const response = await this.request({
path: urlPath,
method: 'POST',
headers: headerParameters,
query: queryParameters,
body: V4PropertyManagersCreatePropertyManagerBodyDtoToJSON(requestParameters['v4PropertyManagersCreatePropertyManagerBodyDto']),
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => V4PropertyManagersCreatePropertyManagerResponseDtoFromJSON(jsonValue));
}
/**
* # POST /v4/propertyManagers ## Overview Creates a new property manager with the provided information. This endpoint allows you to add new property management companies to your organization with their contact details and service information. ## Authentication - **Required**: Yes - **Security**: - `x-api-key` header - `organization-id` header ## Request Body The request body should contain property manager information to create the new property manager. ### Required Fields | Field | Type | Description | |-------|------|-------------| | `name` | string | Property manager company name (must be unique within organization) | ### Optional Fields | Field | Type | Description | |-------|------|-------------| | `email` | string | Primary email address | | `phonePrimary` | string | Primary phone number | | `phoneSecondary` | string | Secondary phone number | | `contactPerson` | string | Primary contact person name | | `businessAddress` | string | Physical business address | | `serviceAreas` | array | Geographic service areas | | `specializations` | array | Management specializations | | `managementFee` | number | Standard management fee percentage | | `licenseNumber` | string | Professional license number | | `insuranceCoverage` | string | Insurance coverage details | | `yearsInBusiness` | number | Years of operation | ### Validation Rules - **Name**: Required, non-empty string, must be unique within organization - **Email**: Must be a valid email format if provided - **Phone Numbers**: Must follow valid phone number format if provided - **Management Fee**: Must be a valid percentage if provided - **Organization Scoping**: Property manager is automatically associated with user\'s organization ## Request Example ```json { \"name\": \"XYZ Property Management\", \"email\": \"contact@xyzpm.com\", \"phonePrimary\": \"+1234567890\", \"contactPerson\": \"John Smith\", \"managementFee\": 8.5, \"serviceAreas\": [\"Downtown\", \"Suburbs\"], \"specializations\": [\"Residential\", \"Commercial\"] } ``` ## Response Structure Returns the newly created property manager\'s ID and confirmation. ## Use Cases This endpoint is ideal for: - **Vendor Onboarding**: Add new property management companies to the system - **Network Expansion**: Include additional property management partners - **Competitive Analysis**: Add competitors for service comparison - **Deal Sourcing**: Expand available property management options - **Integration**: Sync property managers from external CRM or vendor systems - **Market Research**: Track property management services across multiple companies ## Business Rules - **Name Uniqueness**: Property manager names must be unique within the organization - **Default Values**: Unspecified contact details default to null and can be updated later - **Organization Association**: Property managers are automatically scoped to the user\'s organization - **Data Validation**: All contact information is validated for reasonable formats - **Audit Trail**: Property manager creation is logged for compliance and tracking ## Property Management Setup ### Initial Configuration You can provide basic information during creation or update details later: - **Contact Information**: Primary and secondary contact methods - **Service Details**: Geographic areas and specializations - **Business Information**: Licensing and insurance details ### Progressive Setup - **Minimal Creation**: Create with just a name and add details progressively - **Complete Setup**: Provide all available information during initial creation - **Flexible Updates**: Update any information after creation using PATCH endpoint ## Error Handling Common validation errors include: - **Duplicate Name**: Property manager name already exists in the organization - **Invalid Email**: Email does not follow valid email format - **Missing Required Fields**: Name not provided - **Invalid Phone Format**: Phone numbers do not follow expected format - **Invalid Fee Range**: Management fee outside acceptable range
* Create a new propertyManager
*/
async v4PropertyManagersControllerCreatePropertyManagerV4(requestParameters, initOverrides) {
const response = await this.v4PropertyManagersControllerCreatePropertyManagerV4Raw(requestParameters, initOverrides);
return await response.value();
}
/**
* # DELETE /v4/propertyManagers/{propertyManagerId} ## Overview Deletes an existing property manager from the system. This is a permanent operation that removes the property manager and handles all associated data relationships appropriately. ## Authentication - **Required**: Yes - **Security**: - `x-api-key` header - `organization-id` header ## Request Parameters ### Path Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `propertyManagerId` | number | Yes | The unique identifier of the property manager to delete | ## Access Control - **Organization Scope**: Property manager must belong to the authenticated user\'s organization - **Property Manager Validation**: Invalid or non-existent property manager IDs will return a 404 error - **Data Privacy**: Only property managers within the user\'s organization can be deleted ## Deletion Behavior The deletion operation: - **Permanent Removal**: Property manager is permanently deleted from the system - **Cascade Handling**: Associated relationships and references are handled appropriately - **Immediate Effect**: Deletion is applied immediately - **Audit Trail**: Deletion is logged for audit and compliance purposes - **Data Integrity**: System ensures referential integrity during deletion ## Response Structure Returns confirmation that the property manager was successfully deleted. ## Use Cases This endpoint is ideal for: - **Vendor Cleanup**: Remove outdated or inactive property managers - **Data Management**: Maintain clean property manager databases - **Business Changes**: Remove property managers no longer used - **Compliance**: Delete property managers upon business relationship termination - **System Maintenance**: Clean up test or duplicate property manager data - **Vendor Management**: Remove property managers not aligned with business needs ## Important Considerations Before deleting a property manager, consider: - **Active Properties**: Check if property manager is assigned to active properties - **Historical Data**: Consider impact on historical property management records - **Backup Requirements**: Ensure proper backup if recovery might be needed - **Compliance**: Follow data retention and deletion policies - **User Notification**: Consider notifying relevant users of the deletion - **Alternative Actions**: Consider deactivating instead of deleting for data preservation ## Referential Impact Property manager deletion may affect: - **Property Assignments**: Properties assigned to this property manager - **Historical Records**: Past property management relationships and performance - **Reports**: Historical reports that included this property manager - **Comparisons**: Property manager comparison tables and analysis - **Integration**: External systems that reference this property manager ## Data Relationships The system handles these relationships during deletion: - **Property References**: Properties assigned to this property manager are updated - **Management History**: Historical management records are preserved with archived data - **User Preferences**: User preferences referencing this property manager are updated - **Views and Filters**: Saved views that filter by this property manager are updated - **Reports**: Report configurations are updated to handle missing property manager ## Error Handling Common errors include: - **Property Manager Not Found**: Property manager ID does not exist or belongs to different organization - **Permission Denied**: User lacks permission to delete property managers - **Referential Constraints**: Property manager cannot be deleted due to active references - **System Errors**: Database or system issues preventing deletion - **Business Rules**: Business logic preventing deletion (e.g., active property assignments) ## Recovery - **No API Recovery**: Deleted property managers cannot be restored through the API - **Backup Systems**: Recovery may be possible through system backups - **Audit Logs**: Deletion events are recorded for audit purposes - **Data Archival**: Consider data archival policies for compliance - **Recreation**: Deleted property managers can be recreated with POST /v4/propertyManagers
* Delete a specific propertyManager by propertyManagerId
*/
async v4PropertyManagersControllerDeletePropertyManagerV4Raw(requestParameters, initOverrides) {
if (requestParameters['propertyManagerId'] == null) {
throw new runtime.RequiredError('propertyManagerId', 'Required parameter "propertyManagerId" was null or undefined when calling v4PropertyManagersControllerDeletePropertyManagerV4().');
}
const queryParameters = {};
const headerParameters = {};
if (this.configuration && this.configuration.apiKey) {
headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // x-api-key authentication
}
if (this.configuration && this.configuration.apiKey) {
headerParameters["organization-id"] = await this.configuration.apiKey("organization-id"); // organization-id authentication
}
let urlPath = `/v4/propertyManagers/{propertyManagerId}`;
urlPath = urlPath.replace(`{${"propertyManagerId"}}`, encodeURIComponent(String(requestParameters['propertyManagerId'])));
const response = await this.request({
path: urlPath,
method: 'DELETE',
headers: headerParameters,
query: queryParameters,
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => V4PropertyManagersDeletePropertyManagerResponseDtoFromJSON(jsonValue));
}
/**
* # DELETE /v4/propertyManagers/{propertyManagerId} ## Overview Deletes an existing property manager from the system. This is a permanent operation that removes the property manager and handles all associated data relationships appropriately. ## Authentication - **Required**: Yes - **Security**: - `x-api-key` header - `organization-id` header ## Request Parameters ### Path Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `propertyManagerId` | number | Yes | The unique identifier of the property manager to delete | ## Access Control - **Organization Scope**: Property manager must belong to the authenticated user\'s organization - **Property Manager Validation**: Invalid or non-existent property manager IDs will return a 404 error - **Data Privacy**: Only property managers within the user\'s organization can be deleted ## Deletion Behavior The deletion operation: - **Permanent Removal**: Property manager is permanently deleted from the system - **Cascade Handling**: Associated relationships and references are handled appropriately - **Immediate Effect**: Deletion is applied immediately - **Audit Trail**: Deletion is logged for audit and compliance purposes - **Data Integrity**: System ensures referential integrity during deletion ## Response Structure Returns confirmation that the property manager was successfully deleted. ## Use Cases This endpoint is ideal for: - **Vendor Cleanup**: Remove outdated or inactive property managers - **Data Management**: Maintain clean property manager databases - **Business Changes**: Remove property managers no longer used - **Compliance**: Delete property managers upon business relationship termination - **System Maintenance**: Clean up test or duplicate property manager data - **Vendor Management**: Remove property managers not aligned with business needs ## Important Considerations Before deleting a property manager, consider: - **Active Properties**: Check if property manager is assigned to active properties - **Historical Data**: Consider impact on historical property management records - **Backup Requirements**: Ensure proper backup if recovery might be needed - **Compliance**: Follow data retention and deletion policies - **User Notification**: Consider notifying relevant users of the deletion - **Alternative Actions**: Consider deactivating instead of deleting for data preservation ## Referential Impact Property manager deletion may affect: - **Property Assignments**: Properties assigned to this property manager - **Historical Records**: Past property management relationships and performance - **Reports**: Historical reports that included this property manager - **Comparisons**: Property manager comparison tables and analysis - **Integration**: External systems that reference this property manager ## Data Relationships The system handles these relationships during deletion: - **Property References**: Properties assigned to this property manager are updated - **Management History**: Historical management records are preserved with archived data - **User Preferences**: User preferences referencing this property manager are updated - **Views and Filters**: Saved views that filter by this property manager are updated - **Reports**: Report configurations are updated to handle missing property manager ## Error Handling Common errors include: - **Property Manager Not Found**: Property manager ID does not exist or belongs to different organization - **Permission Denied**: User lacks permission to delete property managers - **Referential Constraints**: Property manager cannot be deleted due to active references - **System Errors**: Database or system issues preventing deletion - **Business Rules**: Business logic preventing deletion (e.g., active property assignments) ## Recovery - **No API Recovery**: Deleted property managers cannot be restored through the API - **Backup Systems**: Recovery may be possible through system backups - **Audit Logs**: Deletion events are recorded for audit purposes - **Data Archival**: Consider data archival policies for compliance - **Recreation**: Deleted property managers can be recreated with POST /v4/propertyManagers
* Delete a specific propertyManager by propertyManagerId
*/
async v4PropertyManagersControllerDeletePropertyManagerV4(requestParameters, initOverrides) {
const response = await this.v4PropertyManagersControllerDeletePropertyManagerV4Raw(requestParameters, initOverrides);
return await response.value();
}
/**
* # GET /v4/propertyManagers/{propertyManagerId}/{columns} ## Overview Retrieves specific columns for a property manager identified by its unique ID. This endpoint allows selective data retrieval, returning only the requested fields for the specified property manager. ## Authentication - **Required**: Yes - **Security**: - `x-api-key` header - `organization-id` header ## Request Parameters ### Path Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `propertyManagerId` | number | Yes | The unique identifier of the property manager | | `columns` | string | Yes | Comma-separated list of column names to retrieve | ## Column Selection Specify desired columns as a comma-separated string: - **Basic Info**: `pmid,name,organizationId` - **Contact Information**: `email,phonePrimary,phoneSecondary` - **Business Details**: `businessAddress,serviceAreas,specializations` - **Performance Metrics**: `managementFee,clientSatisfaction,portfolioSize` - **Custom Selection**: Any combination of available columns ## Available Columns ### Basic Information - `pmid`: Property manager ID - `name`: Property manager company name - `organizationId`: Organization ID ### Contact Information - `email`: Primary email address - `phonePrimary`: Primary phone number - `phoneSecondary`: Secondary phone number - `contactPerson`: Primary contact person name ### Business Information - `businessAddress`: Physical business address - `serviceAreas`: Geographic service areas - `specializations`: Management specializations - `licenseNumber`: Professional license number - `insuranceCoverage`: Insurance coverage details - `yearsInBusiness`: Years of operation ### Performance Metrics - `managementFee`: Standard management fee percentage - `clientSatisfaction`: Client satisfaction rating - `portfolioSize`: Number of properties managed - `averageVacancy`: Average vacancy rate ## Access Control - **Organization Scope**: Property manager must belong to the user\'s organization - **Column Validation**: Invalid column names are ignored - **Data Privacy**: Only authorized columns are returned ## Use Cases This endpoint is ideal for: - **Performance Optimization**: Retrieve only needed data to reduce bandwidth - **Specific Comparisons**: Get particular fields for property manager comparison tables - **Integration**: Extract specific data points for external systems - **Custom Views**: Build interfaces with selective data display - **Mobile Optimization**: Minimize data transfer for mobile applications - **API Efficiency**: Reduce response size for better performance ## Performance Benefits - **Reduced Data Transfer**: Only requested columns are returned - **Faster Processing**: Less data processing on both server and client - **Network Efficiency**: Smaller response payloads - **Selective Queries**: Database queries target only required fields - **Cache Optimization**: Smaller responses improve caching efficiency
* Get specific columns of a propertyManager by propertyManagerId
*/
async v4PropertyManagersControllerGetPropertyManagerColumnsV4Raw(requestParameters, initOverrides) {
if (requestParameters['columns'] == null) {
throw new runtime.RequiredError('columns', 'Required parameter "columns" was null or undefined when calling v4PropertyManagersControllerGetPropertyManagerColumnsV4().');
}
if (requestParameters['propertyManagerId'] == null) {
throw new runtime.RequiredError('propertyManagerId', 'Required parameter "propertyManagerId" was null or undefined when calling v4PropertyManagersControllerGetPropertyManagerColumnsV4().');
}
const queryParameters = {};
const headerParameters = {};
if (this.configuration && this.configuration.apiKey) {
headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // x-api-key authentication
}
if (this.configuration && this.configuration.apiKey) {
headerParameters["organization-id"] = await this.configuration.apiKey("organization-id"); // organization-id authentication
}
let urlPath = `/v4/propertyManagers/{propertyManagerId}/{columns}`;
urlPath = urlPath.replace(`{${"columns"}}`, encodeURIComponent(String(requestParameters['columns'])));
urlPath = urlPath.replace(`{${"propertyManagerId"}}`, encodeURIComponent(String(requestParameters['propertyManagerId'])));
const response = await this.request({
path: urlPath,
method: 'GET',
headers: headerParameters,
query: queryParameters,
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => V4PropertyManagersGetPropertyManagerColumnsResponseDtoFromJSON(jsonValue));
}
/**
* # GET /v4/propertyManagers/{propertyManagerId}/{columns} ## Overview Retrieves specific columns for a property manager identified by its unique ID. This endpoint allows selective data retrieval, returning only the requested fields for the specified property manager. ## Authentication - **Required**: Yes - **Security**: - `x-api-key` header - `organization-id` header ## Request Parameters ### Path Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `propertyManagerId` | number | Yes | The unique identifier of the property manager | | `columns` | string | Yes | Comma-separated list of column names to retrieve | ## Column Selection Specify desired columns as a comma-separated string: - **Basic Info**: `pmid,name,organizationId` - **Contact Information**: `email,phonePrimary,phoneSecondary` - **Business Details**: `businessAddress,serviceAreas,specializations` - **Performance Metrics**: `managementFee,clientSatisfaction,portfolioSize` - **Custom Selection**: Any combination of available columns ## Available Columns ### Basic Information - `pmid`: Property manager ID - `name`: Property manager company name - `organizationId`: Organization ID ### Contact Information - `email`: Primary email address - `phonePrimary`: Primary phone number - `phoneSecondary`: Secondary phone number - `contactPerson`: Primary contact person name ### Business Information - `businessAddress`: Physical business address - `serviceAreas`: Geographic service areas - `specializations`: Management specializations - `licenseNumber`: Professional license number - `insuranceCoverage`: Insurance coverage details - `yearsInBusiness`: Years of operation ### Performance Metrics - `managementFee`: Standard management fee percentage - `clientSatisfaction`: Client satisfaction rating - `portfolioSize`: Number of properties managed - `averageVacancy`: Average vacancy rate ## Access Control - **Organization Scope**: Property manager must belong to the user\'s organization - **Column Validation**: Invalid column names are ignored - **Data Privacy**: Only authorized columns are returned ## Use Cases This endpoint is ideal for: - **Performance Optimization**: Retrieve only needed data to reduce bandwidth - **Specific Comparisons**: Get particular fields for property manager comparison tables - **Integration**: Extract specific data points for external systems - **Custom Views**: Build interfaces with selective data display - **Mobile Optimization**: Minimize data transfer for mobile applications - **API Efficiency**: Reduce response size for better performance ## Performance Benefits - **Reduced Data Transfer**: Only requested columns are returned - **Faster Processing**: Less data processing on both server and client - **Network Efficiency**: Smaller response payloads - **Selective Queries**: Database queries target only required fields - **Cache Optimization**: Smaller responses improve caching efficiency
* Get specific columns of a propertyManager by propertyManagerId
*/
async v4PropertyManagersControllerGetPropertyManagerColumnsV4(requestParameters, initOverrides) {
const response = await this.v4PropertyManagersControllerGetPropertyManagerColumnsV4Raw(requestParameters, initOverrides);
return await response.value();
}
/**
* # GET /v4/propertyManagers/{propertyManagerId} ## Overview Retrieves detailed information for a specific property manager by its unique identifier. This endpoint returns complete property manager data including all contact details and management services. ## Authentication - **Required**: Yes - **Security**: - `x-api-key` header - `organization-id` header ## Request Parameters ### Path Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `propertyManagerId` | number | Yes | The unique identifier of the property manager to retrieve | ### Query Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `viewId` | number | No | Optional view ID to apply column selection and formatting | ## Access Control - **Organization Scope**: Property manager must belong to the authenticated user\'s organization - **Property Manager Validation**: Invalid or non-existent property manager IDs will return a 404 error - **Data Privacy**: Only property managers within the user\'s organization are accessible ## Response Structure Returns a complete property manager object with all available fields and management information. ## Use Cases This endpoint is ideal for: - **Property Manager Detail Views**: Display complete property manager information in detail pages - **Vendor Evaluation**: Access all information for detailed vendor assessment - **Property Manager Selection**: Get detailed information when selecting managers for properties - **Integration Workflows**: Access complete property manager data for external system sync - **Relationship Management**: Maintain detailed records of property management relationships - **Due Diligence**: Access comprehensive information for vendor qualification ## Management Information Access The response includes comprehensive management information: - **Contact Details**: All available contact methods and information - **Service Offerings**: Complete list of management services and specialties - **Geographic Coverage**: Areas where management services are provided - **Performance Metrics**: Management fees, quality indicators, and client satisfaction - **Licensing Information**: Professional licenses and certifications - **Insurance Coverage**: Liability and bonding information ## Performance Considerations - **Single Record Fetch**: Optimized for retrieving individual property managers - **Complete Data**: Returns all available property manager fields and information - **Real-time Data**: Always returns current property manager information - **Organization Filtering**: Automatic organization scoping ensures security
* Get a specific propertyManager by propertyManagerId
*/
async v4PropertyManagersControllerGetPropertyManagerV4Raw(requestParameters, initOverrides) {
if (requestParameters['propertyManagerId'] == null) {
throw new runtime.RequiredError('propertyManagerId', 'Required parameter "propertyManagerId" was null or undefined when calling v4PropertyManagersControllerGetPropertyManagerV4().');
}
const queryParameters = {};
if (requestParameters['viewId'] != null) {
queryParameters['viewId'] = requestParameters['viewId'];
}
const headerParameters = {};
if (this.configuration && this.configuration.apiKey) {
headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // x-api-key authentication
}
if (this.configuration && this.configuration.apiKey) {
headerParameters["organization-id"] = await this.configuration.apiKey("organization-id"); // organization-id authentication
}
let urlPath = `/v4/propertyManagers/{propertyManagerId}`;
urlPath = urlPath.replace(`{${"propertyManagerId"}}`, encodeURIComponent(String(requestParameters['propertyManagerId'])));
const response = await this.request({
path: urlPath,
method: 'GET',
headers: headerParameters,
query: queryParameters,
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => V4PropertyManagersGetPropertyManagerResponseDtoFromJSON(jsonValue));
}
/**
* # GET /v4/propertyManagers/{propertyManagerId} ## Overview Retrieves detailed information for a specific property manager by its unique identifier. This endpoint returns complete property manager data including all contact details and management services. ## Authentication - **Required**: Yes - **Security**: - `x-api-key` header - `organization-id` header ## Request Parameters ### Path Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `propertyManagerId` | number | Yes | The unique identifier of the property manager to retrieve | ### Query Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `viewId` | number | No | Optional view ID to apply column selection and formatting | ## Access Control - **Organization Scope**: Property manager must belong to the authenticated user\'s organization - **Property Manager Validation**: Invalid or non-existent property manager IDs will return a 404 error - **Data Privacy**: Only property managers within the user\'s organization are accessible ## Response Structure Returns a complete property manager object with all available fields and management information. ## Use Cases This endpoint is ideal for: - **Property Manager Detail Views**: Display complete property manager information in detail pages - **Vendor Evaluation**: Access all information for detailed vendor assessment - **Property Manager Selection**: Get detailed information when selecting managers for properties - **Integration Workflows**: Access complete property manager data for external system sync - **Relationship Management**: Maintain detailed records of property management relationships - **Due Diligence**: Access comprehensive information for vendor qualification ## Management Information Access The response includes comprehensive management information: - **Contact Details**: All available contact methods and information - **Service Offerings**: Complete list of management services and specialties - **Geographic Coverage**: Areas where management services are provided - **Performance Metrics**: Management fees, quality indicators, and client satisfaction - **Licensing Information**: Professional licenses and certifications - **Insurance Coverage**: Liability and bonding information ## Performance Considerations - **Single Record Fetch**: Optimized for retrieving individual property managers - **Complete Data**: Returns all available property manager fields and information - **Real-time Data**: Always returns current property manager information - **Organization Filtering**: Automatic organization scoping ensures security
* Get a specific propertyManager by propertyManagerId
*/
async v4PropertyManagersControllerGetPropertyManagerV4(requestParameters, initOverrides) {
const response = await this.v4PropertyManagersControllerGetPropertyManagerV4Raw(requestParameters, initOverrides);
return await response.value();
}
/**
* # GET /v4/propertyManagers/viewId/{viewId} ## Overview Retrieves property managers filtered by a specific view configuration. This endpoint applies view-defined filters, sorts, and column selections to provide a customized dataset of property managers. ## Authentication - **Required**: Yes - **Security**: - `x-api-key` header - `organization-id` header ## Request Parameters ### Path Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `viewId` | number | Yes | The unique identifier of the view to apply | ### Query Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `limit` | number | No | Maximum number of property managers to return (default: 20, max: 100) | | `offset` | number | No | Number of property managers to skip for pagination (default: 0) | | `countOnly` | boolean | No | Return only the count of property managers without the actual data | ## View Application The specified view configuration is applied automatically: - **Filters**: All view filters are applied to narrow the property manager dataset - **Sorts**: View sort criteria determine the order of returned property managers - **Columns**: View column selection determines which fields are returned - **Relationships**: Related data inclusion based on view configuration ## Access Control - **Organization Scope**: Property managers are filtered by the user\'s organization - **View Ownership**: View must belong to the requesting user - **Data Privacy**: Only organization property managers are accessible through views ## Response Structure Returns property managers that match the specified view configuration. ## Use Cases This endpoint is ideal for: - **Custom Dashboards**: Display property managers according to predefined views - **Filtered Reports**: Generate reports with specific property manager criteria - **Saved Searches**: Retrieve property managers using saved filter combinations - **User Preferences**: Apply user-defined property manager viewing preferences - **Specialized Views**: Access property managers for specific property types or service areas ## View Consistency - **Reproducible Results**: Same view ID produces consistent results - **Filter Persistence**: View filters remain constant across requests - **Sort Stability**: View sorting provides predictable ordering - **Column Consistency**: Same columns returned for each request ## Performance Benefits - **Optimized Queries**: View-specific optimizations improve performance - **Cached Configurations**: View settings are cached for faster execution - **Reduced Overhead**: Only requested columns are processed and returned - **Efficient Filtering**: Database-level filtering reduces data transfer
* Get propertyManagers with a specific viewId
*/
async v4PropertyManagersControllerGetPropertyManagersInViewV4Raw(requestParameters, initOverrides) {
if (requestParameters['viewId'] == null) {
throw new runtime.RequiredError('viewId', 'Required parameter "viewId" was null or undefined when calling v4PropertyManagersControllerGetPropertyManagersInViewV4().');
}
const queryParameters = {};
if (requestParameters['limit'] != null) {
queryParameters['limit'] = requestParameters['limit'];
}
if (requestParameters['offset'] != null) {
queryParameters['offset'] = requestParameters['offset'];
}
if (requestParameters['countOnly'] != null) {
queryParameters['countOnly'] = requestParameters['countOnly'];
}
const headerParameters = {};
if (this.configuration && this.configuration.apiKey) {
headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // x-api-key authentication
}
if (this.configuration && this.configuration.apiKey) {
headerParameters["organization-id"] = await this.configuration.apiKey("organization-id"); // organization-id authentication
}
let urlPath = `/v4/propertyManagers/viewId/{viewId}`;
urlPath = urlPath.replace(`{${"viewId"}}`, encodeURIComponent(String(requestParameters['viewId'])));
const response = await this.request({
path: urlPath,
method: 'GET',
headers: headerParameters,
query: queryParameters,
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => V4PropertyManagersGetPropertyManagersInViewResponseDtoFromJSON(jsonValue));
}
/**
* # GET /v4/propertyManagers/viewId/{viewId} ## Overview Retrieves property managers filtered by a specific view configuration. This endpoint applies view-defined filters, sorts, and column selections to provide a customized dataset of property managers. ## Authentication - **Required**: Yes - **Security**: - `x-api-key` header - `organization-id` header ## Request Parameters ### Path Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `viewId` | number | Yes | The unique identifier of the view to apply | ### Query Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `limit` | number | No | Maximum number of property managers to return (default: 20, max: 100) | | `offset` | number | No | Number of property managers to skip for pagination (default: 0) | | `countOnly` | boolean | No | Return only the count of property managers without the actual data | ## View Application The specified view configuration is applied automatically: - **Filters**: All view filters are applied to narrow the property manager dataset - **Sorts**: View sort criteria determine the order of returned property managers - **Columns**: View column selection determines which fields are returned - **Relationships**: Related data inclusion based on view configuration ## Access Control - **Organization Scope**: Property managers are filtered by the user\'s organization - **View Ownership**: View must belong to the requesting user - **Data Privacy**: Only organization property managers are accessible through views ## Response Structure Returns property managers that match the specified view configuration. ## Use Cases This endpoint is ideal for: - **Custom Dashboards**: Display property managers according to predefined views - **Filtered Reports**: Generate reports with specific property manager criteria - **Saved Searches**: Retrieve property managers using saved filter combinations - **User Preferences**: Apply user-defined property manager viewing preferences - **Specialized Views**: Access property managers for specific property types or service areas ## View Consistency - **Reproducible Results**: Same view ID produces consistent results - **Filter Persistence**: View filters remain constant across requests - **Sort Stability**: View sorting provides predictable ordering - **Column Consistency**: Same columns returned for each request ## Performance Benefits - **Optimized Queries**: View-specific optimizations improve performance - **Cached Configurations**: View settings are cached for faster execution - **Reduced Overhead**: Only requested columns are processed and returned - **Efficient Filtering**: Database-level filtering reduces data transfer
* Get propertyManagers with a specific viewId
*/
async v4PropertyManagersControllerGetPropertyManagersInViewV4(requestParameters, initOverrides) {
const response = await this.v4PropertyManagersControllerGetPropertyManagersInViewV4Raw(requestParameters, initOverrides);
return await response.value();
}
/**
* # GET /v4/propertyManagers ## Overview Retrieves a list of property managers with optional filtering, sorting, and pagination capabilities. This endpoint provides access to property manager information including contact details and management specialties. ## Authentication - **Required**: Yes - **Security**: - `x-api-key` header - `organization-id` header ## Request Parameters ### Query Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `viewId` | number | No | Optional view ID to apply filters and column selection | | `limit` | number | No | Maximum number of property managers to return (default: 20, max: 100) | | `offset` | number | No | Number of property managers to skip for pagination (default: 0) | | `countOnly` | boolean | No | Return only the count of property managers without the actual data | ## Access Control - **Organization Scope**: Property managers are filtered by the user\'s organization - **Data Privacy**: Only property managers within the organization are accessible - **Permission**: User must have property manager read permissions ## View Integration When a `viewId` is provided: - **Filters**: All view filters are applied to narrow the property manager dataset - **Sorts**: View sort criteria determine the order of returned property managers - **Columns**: View column selection determines which fields are returned - **Consistent Results**: Same view produces consistent response structure ## Response Structure Returns a paginated list of property managers matching the specified criteria. ## Use Cases This endpoint is ideal for: - **Property Manager Management**: Building property manager listing interfaces and dashboards - **Vendor Selection**: Finding and comparing property management companies - **Deal Analysis**: Accessing property manager information for property deals - **Integration**: Syncing property manager data with external systems - **Reporting**: Generating property manager analytics and reports - **Network Building**: Managing relationships with property management professionals ## Property Manager Data Property manager information includes: - **Basic Information**: Name and identification - **Contact Details**: Phone numbers and email addresses - **Management Specialties**: Types of properties managed - **Service Areas**: Geographic areas of operation - **Performance Metrics**: Management fees and service quality indicators ## Performance Considerations - **Optimized Queries**: Database queries are optimized for organization filtering - **View Caching**: View configurations are cached for improved performance - **Index Usage**: Queries utilize database indexes for fast retrieval - **Response Size**: Use limit parameter to control response size
* Get propertyManagers with optional viewId
*/
async v4PropertyManagersControllerGetPropertyManagersV4Raw(requestParameters, initOverrides) {
const queryParameters = {};
if (requestParameters['viewId'] != null) {
queryParameters['viewId'] = requestParameters['viewId'];
}
if (requestParameters['limit'] != null) {
queryParameters['limit'] = requestParameters['limit'];
}
if (requestParameters['offset'] != null) {
queryParameters['offset'] = requestParameters['offset'];
}
if (requestParameters['countOnly'] != null) {
queryParameters['countOnly'] = requestParameters['countOnly'];
}
const headerParameters = {};
if (this.configuration && this.configuration.apiKey) {
headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // x-api-key authentication
}
if (this.configuration && this.configuration.apiKey) {
headerParameters["organization-id"] = await this.configuration.apiKey("organization-id"); // organization-id authentication
}
let urlPath = `/v4/propertyManagers`;
const response = await this.request({
path: urlPath,
method: 'GET',
headers: headerParameters,
query: queryParameters,
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => V4PropertyManagersGetPropertyManagersResponseDtoFromJSON(jsonValue));
}
/**
* # GET /v4/propertyManagers ## Overview Retrieves a list of property managers with optional filtering, sorting, and pagination capabilities. This endpoint provides access to property manager information including contact details and management specialties. ## Authentication - **Required**: Yes - **Security**: - `x-api-key` header - `organization-id` header ## Request Parameters ### Query Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `viewId` | number | No | Optional view ID to apply filters and column selection | | `limit` | number | No | Maximum number of property managers to return (default: 20, max: 100) | | `offset` | number | No | Number of property managers to skip for pagination (default: 0) | | `countOnly` | boolean | No | Return only the count of property managers without the actual data | ## Access Control - **Organization Scope**: Property managers are filtered by the user\'s organization - **Data Pri