{
  "openapi": "3.0.3",
  "info": {
    "title": "Deals API",
    "version": "1.0.0",
    "description": "## Index\n\nFor partner integration use (25.01.00)\n\n### Getting Started\n\n#### Getting a JWT Access Token\n\n`POST https://authentication.api.lwolf.com/v1/login`\n\nAll APIs require an *Authorization* HTTP Header that contains a *Bearer {token}* as its value. The token is a JSON Web Token (JWT) and can be generated as needed from the Authentication API using a POST request to the `/v1/login` endpoint with your provided credentials / secrets.\n\nThis will provide a JWT token in the response which can then be used as your Bearer token in your Authorization header when making API calls.\n\n**Request Example**\n\n```json\n{\n  \"emailAddress\": \"api-aaaa111@apps.lwolf.com\",\n  \"password\": \"AAAA111\",\n  \"clientId\": \"GgP8g-zksBgWuXum!DbXh*qASYCsfNZF\"\n}\n```\n\n**cURL**\n\n```bash\ncurl --location --request POST 'https://authentication.api.lwolf.com/v1/login' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n\"emailAddress\": \"api-aaa111@apps.lwolf.com\",\n\"clientId\": \"AAAA111\",\n\"password\": \"GgP8g-zksBgWuXum!DbXh*qASYCsfNZF\"\n}'\n```\n\n**Response Example (200 OK)**\n\n```json\n{\n  \"token\": \"<JWT string>\",\n  \"expiresIn\": 86400\n}\n```\n\n### Searching Deals\n\n#### Using Field Search on Summaries\n\n`GET https://deals.api.lwolf.com/v1/search`\n\nThe Deals API supports searching deal summaries, compact and heavily indexed versions of deals, by a single field and value.\n\n**Example**\n\n```\nhttps://deals.api.lwolf.com/v1/deals/search?entityPath=deal&fieldName=bwId&searchText=12345\n```\n\n#### Using OData on Full Details\n\n`GET https://deals.api.lwolf.com/v1/deals`\n\nThe Deals API supports searching deals using a subset of OData queries ($filter, $top, $skip, $limit). Any top-level field can be used in a query however at the current time fields from nested objects is not supported. As well the use of the IN operator is not supported, however multiple OR operators can be used instead.\n\n**Example**\n\n```\nhttps://deals.api.lwolf.com/v1/deals?$filter=addressStreetNumber%20eq%20%27263%27%20and%20%20addressStreetName%20eq%20%27Wellington%20St%27%20and%20addressUnitNumber%20eq%20%27701%27\n```\n\nAPI for managing deals, commissions, conditions, and client contacts.\n\n## Roster API\n\nLone Wolf Technologies Roster API\n\n**API Endpoint:** `https://roster.api.lwolf.com/v1`\n\n**Schemes:** https\n\n**Version:** 1.0.0\n\n### Authentication\n\n**Bearer Token**\n\nUse the Authentication API to retrieve the JSON Web Token for all calls to this API. Pass the token as `Authorization: Bearer {token}` in the request header.\n\n### Members\n\n#### Add new member\n\n`POST /members`\n\nIf the 'id' is passed in this object, the API will attempt to use that for its member id. If 'id' is null or undefined, the API will generate one.\n\n**Request Example**\n\n```json\n{\n  \"id\": \"string (UUID)\",\n  \"bwId\": \"number (int32)\",\n  \"firstName\": \"string\",\n  \"middleName\": \"string\",\n  \"lastName\": \"string\",\n  \"number\": \"string\",\n  \"officeId\": \"string (UUID)\",\n  \"bwOfficeId\": \"number (int32)\",\n  \"inactiveDate\": \"string (date)\",\n  \"legalName\": \"string\",\n  \"primaryEmailAddress\": \"string\",\n  \"addressLine1\": \"string\",\n  \"addressLine2\": \"string\",\n  \"addressCity\": \"string\",\n  \"addressPostalCode\": \"string\",\n  \"addressProvinceCode\": \"string\",\n  \"addressCountryCode\": \"string\",\n  \"birthDate\": \"string (date)\",\n  \"typeId\": \"string\",\n  \"lwaId\": \"string (UUID)\",\n  \"memberTypeCode\": {\n    \"createdTimestamp\": \"string (date-time)\",\n    \"modifiedTimestamp\": \"string (date-time)\",\n    \"id\": \"string (UUID)\",\n    \"code\": \"string\",\n    \"name\": \"string\"\n  }\n}\n```\n\n| Response | Description |\n|---|---|\n| 201 Created | Member created |\n| 400 Bad Request | Invalid request. See response body for details. |\n| 401 Unauthorized | Unauthorized request. See response body for details. |\n| 403 Forbidden | Permission denied. See response body for details. |\n| 409 Conflict | Member already exists. |\n| 500 Internal Server Error | Unknown error. See response body for details. |\n\n**Response Example (201 Created)**\n\n```json\n{\n  \"createdTimestamp\": \"string (date-time)\",\n  \"modifiedTimestamp\": \"string (date-time)\",\n  \"id\": \"string (UUID)\",\n  \"version\": \"number (int32)\",\n  \"bwId\": \"number (int32)\",\n  \"firstName\": \"string\",\n  \"middleName\": \"string\",\n  \"lastName\": \"string\",\n  \"number\": \"string\",\n  \"officeId\": \"string (UUID)\",\n  \"bwOfficeId\": \"number (int32)\",\n  \"inactiveDate\": \"string (date)\",\n  \"legalName\": \"string\",\n  \"primaryEmailAddress\": \"string\",\n  \"addressLine1\": \"string\",\n  \"addressLine2\": \"string\",\n  \"addressCity\": \"string\",\n  \"addressPostalCode\": \"string\",\n  \"addressProvinceCode\": \"string\",\n  \"addressCountryCode\": \"string\",\n  \"birthDate\": \"string (date)\",\n  \"typeId\": \"string\",\n  \"lwaId\": \"string (UUID)\",\n  \"memberTypeCode\": {\n    \"createdTimestamp\": \"string (date-time)\",\n    \"modifiedTimestamp\": \"string (date-time)\",\n    \"id\": \"string (UUID)\",\n    \"code\": \"string\",\n    \"name\": \"string\"\n  }\n}\n```\n\n**Response Example (409 Conflict)**\n\n```json\n{\n  \"code\": \"integer (int32)\",\n  \"message\": \"string\",\n  \"details\": [\"string\"]\n}\n```\n\n#### Get list of members\n\n`GET /members`\n\n| Response | Description |\n|---|---|\n| 200 OK | Success |\n| 400 Bad Request | Invalid request. See response body for details. |\n| 401 Unauthorized | Unauthorized request. See response body for details. |\n| 403 Forbidden | Permission denied. See response body for details. |\n| 500 Internal Server Error | Unknown error. See response body for details. |\n\n**Response Example (200 OK)**\n\n```json\n[\n  {\n    \"createdTimestamp\": \"string (date-time)\",\n    \"modifiedTimestamp\": \"string (date-time)\",\n    \"id\": \"string (UUID)\",\n    \"version\": \"number (int32)\",\n    \"bwId\": \"number (int32)\",\n    \"firstName\": \"string\",\n    \"middleName\": \"string\",\n    \"lastName\": \"string\",\n    \"number\": \"string\",\n    \"officeId\": \"string (UUID)\",\n    \"bwOfficeId\": \"number (int32)\",\n    \"inactiveDate\": \"string (date)\",\n    \"legalName\": \"string\",\n    \"primaryEmailAddress\": \"string\",\n    \"addressLine1\": \"string\",\n    \"addressLine2\": \"string\",\n    \"addressCity\": \"string\",\n    \"addressPostalCode\": \"string\",\n    \"addressProvinceCode\": \"string\",\n    \"addressCountryCode\": \"string\",\n    \"birthDate\": \"string (date)\",\n    \"typeId\": \"string\",\n    \"lwaId\": \"string (UUID)\",\n    \"memberTypeCode\": {\n      \"createdTimestamp\": \"string (date-time)\",\n      \"modifiedTimestamp\": \"string (date-time)\",\n      \"id\": \"string (UUID)\",\n      \"code\": \"string\",\n      \"name\": \"string\"\n    }\n  }\n]\n```\n\n#### Delete a specific member\n\n`DELETE /members/{memberId}`\n\n**Path Parameters**\n\n| Parameter | Type | Description |\n|---|---|---|\n| memberId | string (UUID) | |\n\n| Response | Description |\n|---|---|\n| 200 OK | Member deleted. |\n| 400 Bad Request | Invalid request. See response body for details. |\n| 401 Unauthorized | Unauthorized request. See response body for details. |\n| 403 Forbidden | Permission denied. See response body for details. |\n| 404 Not Found | Member not found. |\n| 500 Internal Server Error | Unknown error. See response body for details. |\n\n**Response Example (404 Not Found)**\n\n```json\n{\n  \"code\": \"integer (int32)\",\n  \"message\": \"string\",\n  \"details\": [\"string\"]\n}\n```\n\n#### Get a specific member\n\n`GET /members/{memberId}`\n\n**Path Parameters**\n\n| Parameter | Type | Description |\n|---|---|---|\n| memberId | string (UUID) | |\n\n**Query Parameters**\n\n| Parameter | Type | Description |\n|---|---|---|\n| isBwId | boolean | Indicates whether the passed 'memberId' should be treated as the brokerWOLF id |\n\n| Response | Description |\n|---|---|\n| 200 OK | Member found. |\n| 400 Bad Request | Invalid request. See response body for details. |\n| 401 Unauthorized | Unauthorized request. See response body for details. |\n| 403 Forbidden | Permission denied. See response body for details. |\n| 404 Not Found | Member not found. |\n| 500 Internal Server Error | Unknown error. See response body for details. |\n\n#### Update a member property\n\n`PATCH /members/{memberId}`\n\nUpdates properties on the member entity. None of its child collections can be updated with this route.\n\n**Path Parameters**\n\n| Parameter | Type | Description |\n|---|---|---|\n| memberId | string (UUID) | |\n\n**Request Example**\n\n```json\n{\n  \"bwId\": \"number (int32)\",\n  \"firstName\": \"string\",\n  \"middleName\": \"string\",\n  \"lastName\": \"string\",\n  \"number\": \"string\",\n  \"officeId\": \"string (UUID)\",\n  \"bwOfficeId\": \"number (int32)\",\n  \"inactiveDate\": \"string (date)\",\n  \"legalName\": \"string\",\n  \"primaryEmailAddress\": \"string\",\n  \"addressLine1\": \"string\",\n  \"addressLine2\": \"string\",\n  \"addressCity\": \"string\",\n  \"addressPostalCode\": \"string\",\n  \"addressProvinceCode\": \"string\",\n  \"addressCountryCode\": \"string\",\n  \"birthDate\": \"string (date)\",\n  \"typeId\": \"string\",\n  \"lwaId\": \"string (UUID)\",\n  \"memberTypeCode\": {\n    \"createdTimestamp\": \"string (date-time)\",\n    \"modifiedTimestamp\": \"string (date-time)\",\n    \"id\": \"string (UUID)\",\n    \"code\": \"string\",\n    \"name\": \"string\"\n  }\n}\n```\n\n| Response | Description |\n|---|---|\n| 200 OK | Member updated. |\n| 400 Bad Request | Invalid request. See response body for details. |\n| 401 Unauthorized | Unauthorized request. See response body for details. |\n| 403 Forbidden | Permission denied. See response body for details. |\n| 404 Not Found | Member not found. |\n| 412 Precondition Failed | Optimistic concurrency check failed. The If-Match header is missing or it does not contain the version currently in the database. |\n| 500 Internal Server Error | Unknown error. See response body for details. |\n\n### Offices\n\n#### Add new office\n\n`POST /offices`\n\nIf the 'id' is passed in this object, the API will attempt to use that for its office id. If 'id' is null or undefined, the API will generate one.\n\n**Request Example**\n\n```json\n{\n  \"id\": \"string (UUID)\",\n  \"bwId\": \"number (int32)\",\n  \"name\": \"string\",\n  \"shortName\": \"string\",\n  \"inactiveDate\": \"string (date)\"\n}\n```\n\n| Response | Description |\n|---|---|\n| 201 Created | Office created |\n| 400 Bad Request | Invalid request. See response body for details. |\n| 401 Unauthorized | Unauthorized request. See response body for details. |\n| 403 Forbidden | Permission denied. See response body for details. |\n| 409 Conflict | Office already exists. |\n| 500 Internal Server Error | Unknown error. See response body for details. |\n\n**Response Example (201 Created)**\n\n```json\n{\n  \"createdTimestamp\": \"string (date-time)\",\n  \"modifiedTimestamp\": \"string (date-time)\",\n  \"id\": \"string (UUID)\",\n  \"version\": \"number (int32)\",\n  \"bwId\": \"number (int32)\",\n  \"name\": \"string\",\n  \"shortName\": \"string\",\n  \"inactiveDate\": \"string (date)\"\n}\n```\n\n#### Get list of offices\n\n`GET /offices`\n\n| Response | Description |\n|---|---|\n| 200 OK | Success |\n| 400 Bad Request | Invalid request. See response body for details. |\n| 401 Unauthorized | Unauthorized request. See response body for details. |\n| 403 Forbidden | Permission denied. See response body for details. |\n| 500 Internal Server Error | Unknown error. See response body for details. |\n\n**Response Example (200 OK)**\n\n```json\n[\n  {\n    \"createdTimestamp\": \"string (date-time)\",\n    \"modifiedTimestamp\": \"string (date-time)\",\n    \"version\": \"number (int32)\",\n    \"id\": \"string (UUID)\",\n    \"bwId\": \"number (int32)\",\n    \"name\": \"string\",\n    \"shortName\": \"string\",\n    \"inactiveDate\": \"string (date)\"\n  }\n]\n```\n\n#### Delete a specific office\n\n`DELETE /offices/{officeId}`\n\n**Path Parameters**\n\n| Parameter | Type | Description |\n|---|---|---|\n| officeId | string (UUID) | |\n\n| Response | Description |\n|---|---|\n| 200 OK | Office deleted. |\n| 400 Bad Request | Invalid request. See response body for details. |\n| 401 Unauthorized | Unauthorized request. See response body for details. |\n| 403 Forbidden | Permission denied. See response body for details. |\n| 404 Not Found | Office not found. |\n| 500 Internal Server Error | Unknown error. See response body for details. |\n\n#### Get a specific office\n\n`GET /offices/{officeId}`\n\n**Path Parameters**\n\n| Parameter | Type | Description |\n|---|---|---|\n| officeId | string (UUID) | |\n\n**Query Parameters**\n\n| Parameter | Type | Description |\n|---|---|---|\n| isBwId | boolean | Indicates whether the passed 'officeId' should be treated as the brokerWOLF id |\n\n| Response | Description |\n|---|---|\n| 200 OK | Office found. |\n| 400 Bad Request | Invalid request. See response body for details. |\n| 401 Unauthorized | Unauthorized request. See response body for details. |\n| 403 Forbidden | Permission denied. See response body for details. |\n| 404 Not Found | Office not found. |\n| 500 Internal Server Error | Unknown error. See response body for details. |\n\n#### Update an office property\n\n`PATCH /offices/{officeId}`\n\n**Path Parameters**\n\n| Parameter | Type | Description |\n|---|---|---|\n| officeId | string (UUID) | |\n\n| Response | Description |\n|---|---|\n| 200 OK | Office updated. |\n| 400 Bad Request | Invalid request. See response body for details. |\n| 401 Unauthorized | Unauthorized request. See response body for details. |\n| 403 Forbidden | Permission denied. See response body for details. |\n| 404 Not Found | Office not found. |\n| 412 Precondition Failed | Optimistic concurrency check failed. The If-Match header is missing or it does not contain the version currently in the database. |\n| 500 Internal Server Error | Unknown error. See response body for details. |\n\n#### Get list of office summaries\n\n`GET /offices/summary`\n\n| Response | Description |\n|---|---|\n| 200 OK | Success |\n| 400 Bad Request | Invalid request. See response body for details. |\n| 401 Unauthorized | Unauthorized request. See response body for details. |\n| 403 Forbidden | Permission denied. See response body for details. |\n| 500 Internal Server Error | Unknown error. See response body for details. |\n\n**Response Example (200 OK)**\n\n```json\n[\n  {\n    \"id\": \"string (UUID)\",\n    \"name\": \"string\",\n    \"shortName\": \"string\",\n    \"inactiveDate\": \"string (date)\"\n  }\n]\n```\n\n### Brokerages\n\n#### Add new brokerage\n\n`POST /brokerages`\n\nIf the 'id' is passed in this object, the API will attempt to use that for its brokerage id. If 'id' is null or undefined, the API will generate one. An internal token is needed to access this endpoint.\n\n**Request Example**\n\n```json\n{\n  \"createdTimestamp\": \"string (date-time)\",\n  \"modifiedTimestamp\": \"string (date-time)\",\n  \"name\": \"string\",\n  \"shortName\": \"string\",\n  \"id\": \"string\",\n  \"companyTypeCode\": \"string\",\n  \"addressPostalCode\": \"string\",\n  \"addressCountryCode\": \"string\"\n}\n```\n\n| Response | Description |\n|---|---|\n| 201 Created | Brokerage created |\n| 400 Bad Request | Invalid request. See response body for details. |\n| 401 Unauthorized | Unauthorized request. See response body for details. |\n| 403 Forbidden | Permission denied. See response body for details. |\n| 409 Conflict | Brokerage already exists. |\n| 500 Internal Server Error | Unknown error. See response body for details. |\n\n**Response Example (201 Created)**\n\n```json\n{\n  \"createdTimestamp\": \"string (date-time)\",\n  \"modifiedTimestamp\": \"string (date-time)\",\n  \"name\": \"string\",\n  \"shortName\": \"string\",\n  \"id\": \"string\",\n  \"companyTypeCode\": \"string\",\n  \"addressPostalCode\": \"string\",\n  \"addressCountryCode\": \"string\"\n}\n```\n\n#### Retrieve all brokerages\n\n`GET /brokerages`\n\nThis endpoint is internal only and requires an internal token. The response will be all brokerages in the database.\n\n**Query Parameters**\n\n| Parameter | Type | Description |\n|---|---|---|\n| filter | string | Filter that will be used to query the database. |\n\n| Response | Description |\n|---|---|\n| 200 OK | Success |\n| 400 Bad Request | Invalid request. See response body for details. |\n| 401 Unauthorized | Unauthorized request. See response body for details. |\n| 500 Internal Server Error | Unknown error. See response body for details. |\n\n#### Delete a specific brokerage\n\n`DELETE /brokerages/{clientId}`\n\n**Path Parameters**\n\n| Parameter | Type | Description |\n|---|---|---|\n| clientId | string (UUID) | |\n\n| Response | Description |\n|---|---|\n| 200 OK | Brokerage deleted. |\n| 400 Bad Request | Invalid request. See response body for details. |\n| 401 Unauthorized | Unauthorized request. See response body for details. |\n| 403 Forbidden | Permission denied. See response body for details. |\n| 404 Not Found | Brokerage not found. |\n| 500 Internal Server Error | Unknown error. See response body for details. |\n\n#### Get a specific brokerage\n\n`GET /brokerages/{clientId}`\n\n**Path Parameters**\n\n| Parameter | Type | Description |\n|---|---|---|\n| clientId | string | |\n\n| Response | Description |\n|---|---|\n| 200 OK | Brokerage found. |\n| 400 Bad Request | Invalid request. See response body for details. |\n| 401 Unauthorized | Unauthorized request. See response body for details. |\n| 403 Forbidden | Permission denied. See response body for details. |\n| 404 Not Found | Brokerage not found. |\n| 500 Internal Server Error | Unknown error. See response body for details. |\n\n### Member Types\n\n#### Get a specific Member Type\n\n`GET /member-types`\n\n**Path Parameters**\n\n| Parameter | Type | Description |\n|---|---|---|\n| id | string (UUID) | |\n\n| Response | Description |\n|---|---|\n| 200 OK | Member Type found. |\n| 400 Bad Request | Invalid request. See response body for details. |\n| 401 Unauthorized | Unauthorized request. See response body for details. |\n| 403 Forbidden | Permission denied. See response body for details. |\n| 404 Not Found | Brokerage not found. |\n| 500 Internal Server Error | Unknown error. See response body for details. |\n\n**Response Example (200 OK)**\n\n```json\n{\n  \"id\": \"string (UUID)\",\n  \"createdTimestamp\": \"string (date-time)\",\n  \"modifiedTimestamp\": \"string (date-time)\",\n  \"version\": \"number (int32)\",\n  \"code\": \"string\",\n  \"name\": \"string\"\n}\n```\n\n#### Retrieve all Member Types\n\n`GET /member-types`\n\nThis endpoint is internal only and requires an internal token. The response will be all brokerages in the database.\n\n**Query Parameters**\n\n| Parameter | Type | Description |\n|---|---|---|\n| filter | string | Filter that will be used to query the database. |\n\n| Response | Description |\n|---|---|\n| 200 OK | Success |\n| 400 Bad Request | Invalid request. See response body for details. |\n| 401 Unauthorized | Unauthorized request. See response body for details. |\n| 500 Internal Server Error | Unknown error. See response body for details. |\n\n### Schema Definitions\n\n#### HttpStatus400\n\nInvalid request. See response body for details.\n\n```json\n{\n  \"code\": \"integer (int32)\",\n  \"message\": \"string\",\n  \"details\": [\"string\"]\n}\n```\n\n#### HttpStatus401\n\nUnauthorized request. See response body for details.\n\n```json\n{\n  \"code\": \"integer (int32)\",\n  \"message\": \"string\",\n  \"details\": [\"string\"]\n}\n```\n\n#### HttpStatus403\n\nPermission denied. See response body for details.\n\n```json\n{\n  \"code\": \"integer (int32)\",\n  \"message\": \"string\",\n  \"details\": [\"string\"]\n}\n```\n\n#### HttpStatus412\n\nOptimistic concurrency check failed. The If-Match header is missing or it does not contain the version currently in the database.\n\n```json\n{\n  \"code\": \"integer (int32)\",\n  \"message\": \"string\",\n  \"details\": [\"string\"]\n}\n```\n\n#### HttpStatus500\n\nUnknown error. See response body for details.\n\n```json\n{\n  \"code\": \"integer (int32)\",\n  \"message\": \"string\",\n  \"details\": [\"string\"]\n}\n```\n\n#### ApiError\n\n| Field | Type | Description |\n|---|---|---|\n| code | integer (int32) | An error code. This is typically the same as the http status code but can be different in some cases. |\n| message | string | Simple message about the error. |\n| details | string[] | An array of strings holding more details about the error. |\n\n```json\n{\n  \"code\": \"integer (int32)\",\n  \"message\": \"string\",\n  \"details\": [\"string\"]\n}\n```\n\n#### Member\n\n| Field | Type | Description |\n|---|---|---|\n| createdTimestamp | string (date-time) | |\n| modifiedTimestamp | string (date-time) | |\n| id | string (UUID) | |\n| bwId | number (int32) | The brokerWOLF Id of the member. This should not be used by third party systems as this value could go away in the future. |\n| version | number (int32) | The version of the member in the database. Used for optimistic concurrency checking. |\n| firstName | string | |\n| middleName | string | |\n| lastName | string | |\n| number | string | The brokerage specified number. |\n| officeId | string (UUID) | |\n| bwOfficeId | number (int32) | The brokerWOLF Id of the office. This should not be used by third party systems as this value could go away in the future. |\n| inactiveDate | string (date) | The date the member went inactive. If this is null, the member is active. |\n| legalName | string | The legal name of member. |\n| primaryEmailAddress | string | The primary email address of a member. |\n| addressLine1 | string | The address of a member. |\n| addressLine2 | string | The second address of a member. |\n| addressCity | string | The city of a member. |\n| addressPostalCode | string | The postal code of a member. |\n| addressProvinceCode | string | The province code of a member. |\n| addressCountryCode | string | The country code of a member. |\n| birthDate | string | The birth date of a member. |\n| typeId | string | The type id of a member. |\n| lwaId | string | The lwaId of a member. |\n| memberTypeCode | string | The member type of a member. |\n\n#### Office\n\n| Field | Type | Description |\n|---|---|---|\n| createdTimestamp | string (date-time) | |\n| modifiedTimestamp | string (date-time) | |\n| id | string (UUID) | |\n| version | number (int32) | The version of the office in the database. Used for optimistic concurrency checking. |\n| bwId | number (int32) | The brokerWOLF Id of the office. This should not be used by third party systems as this value could go away in the future. |\n| name | string | Main name of the office. |\n| shortName | string | Short name for the office. |\n| inactiveDate | string (date) | The date the office went inactive. If this is null, the office is active. |\n\n#### Brokerage\n\n| Field | Type | Description |\n|---|---|---|\n| createdTimestamp | string (date-time) | |\n| modifiedTimestamp | string (date-time) | |\n| version | number (int32) | The version of the brokerage in the database. Used for optimistic concurrency checking. |\n| name | string | Main name of the brokerage. |\n| shortName | string | Short name for the brokerage. |\n| id | string | |\n| companyTypeCode | string | Company Type Code for the brokerage. |\n| addressPostalCode | string | Address Postal Code for the brokerage. |\n| addressCountryCode | string | Country Code for the brokerage. |\n\n#### Member Type\n\n| Field | Type | Description |\n|---|---|---|\n| createdTimestamp | string (date-time) | |\n| modifiedTimestamp | string (date-time) | |\n| id | string | |\n| version | number (int32) | The version of the brokerage in the database. Used for optimistic concurrency checking. |\n| code | string | Member type code. |\n| name | string | Name of the member type. |\n\n#### Office Summary\n\n| Field | Type | Description |\n|---|---|---|\n| id | string (UUID) | |\n| name | string | Main name of the office. |\n| shortName | string | Short name for the office. |\n| inactiveDate | string (date) | The date the office went inactive. If this is null, the office is active. |\n\n"
  },
  "security": [
    {
      "BearerToken": []
    }
  ],
  "components": {
    "securitySchemes": {
      "BearerToken": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "JSON Web Token obtained from the Authentication API (`POST /v1/login`). Pass the token as `Authorization: Bearer <token>` in every request. Tokens expire after the number of seconds specified in the `expiresIn` field of the login response."
      }
    },
    "schemas": {
      "Address": {
        "type": "object"
      },
      "PhoneNumber": {
        "type": "object"
      },
      "Condition": {
        "type": "object"
      },
      "ExternalAgent": {
        "type": "object"
      },
      "ConditionType": {
        "type": "object"
      },
      "Deposit": {
        "type": "object"
      },
      "EmailAddress": {
        "type": "object"
      },
      "Commission": {
        "type": "object"
      },
      "Classification": {
        "type": "object"
      },
      "ContactType": {
        "type": "object"
      },
      "PropertyType": {
        "type": "object"
      },
      "ClientContact": {
        "type": "object"
      },
      "ExternalCommission": {
        "type": "object"
      },
      "DealSyncStatus": {
        "type": "object"
      },
      "BusinessContact": {
        "type": "object"
      },
      "Deal": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "version": {
            "type": "integer",
            "format": "int32"
          },
          "createdTimestamp": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedTimestamp": {
            "type": "string",
            "format": "date-time"
          },
          "culture": {
            "type": "string"
          },
          "number": {
            "type": "string"
          },
          "mlsNumber": {
            "type": "string"
          },
          "statusCode": {
            "type": "string"
          },
          "classCode": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "addressStreetNumber": {
            "type": "string"
          },
          "addressStreetName": {
            "type": "string"
          },
          "addressStreetDirection": {
            "type": "string"
          },
          "addressUnitNumber": {
            "type": "string"
          },
          "addressCity": {
            "type": "string"
          },
          "addressProvinceCode": {
            "type": "string"
          },
          "addressPostalCode": {
            "type": "string"
          },
          "addressCountryCode": {
            "type": "string"
          },
          "offerDate": {
            "type": "string",
            "format": "date"
          },
          "closeDate": {
            "type": "string",
            "format": "date"
          },
          "entryDate": {
            "type": "string",
            "format": "date"
          },
          "finalizeDate": {
            "type": "string",
            "format": "date"
          },
          "firmDate": {
            "type": "string",
            "format": "date"
          },
          "closePrice": {
            "type": "number",
            "format": "float"
          },
          "legalDescription": {
            "type": "string"
          },
          "classification": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "createdTimestamp": {
                "type": "string",
                "format": "date-time"
              },
              "modifiedTimestamp": {
                "type": "string",
                "format": "date-time"
              },
              "code": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "endTypeCode": {
                "type": "string"
              },
              "endCount": {
                "type": "string"
              }
            }
          },
          "propertyType": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "createdTimestamp": {
                "type": "string",
                "format": "date-time"
              },
              "modifiedTimestamp": {
                "type": "string",
                "format": "date-time"
              },
              "code": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "shortName": {
                "type": "string"
              },
              "classCode": {
                "type": "string"
              }
            }
          },
          "businessContacts": {
            "type": "array",
            "items": {}
          },
          "client-contacts": {
            "type": "array",
            "items": {}
          },
          "conditions": {
            "type": "array",
            "items": {}
          },
          "deposits": {
            "type": "array",
            "items": {}
          },
          "externalAgents": {
            "type": "array",
            "items": {}
          },
          "tiers": {
            "type": "array",
            "items": {}
          }
        }
      },
      "SourceOfBusiness": {
        "type": "object"
      },
      "Tier": {
        "type": "object"
      },
      "DealSummary": {
        "type": "object"
      },
      "ApiError": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32"
          },
          "message": {
            "type": "string"
          },
          "details": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "Login": {
        "type": "object",
        "required": [
          "emailAddress",
          "password"
        ],
        "properties": {
          "emailAddress": {
            "type": "string",
            "format": "email",
            "description": "The email address for the user's account."
          },
          "password": {
            "type": "string",
            "description": "The user's password."
          },
          "clientId": {
            "type": "string",
            "description": "Penderis code for brokerWOLF logins. Extranet or penderis code for WOLFconnect logins. If not passed and the user belongs to only one client, that client is returned in the JWT. If the user belongs to multiple clients and this is not passed, no client information is included in the JWT."
          }
        }
      },
      "TokenInfo": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "description": "The JSON Web Token to use in the Authorization header for all requests to any API."
          },
          "expiresIn": {
            "type": "integer",
            "format": "int32",
            "description": "The number of seconds in which the token will expire."
          }
        }
      }
    }
  },
  "paths": {
    "/business-contacts/{businessContactId}": {
      "get": {
        "summary": "Get a business contact",
        "description": "Using the business contact guid in the request path, the method requests a business contact.",
        "tags": [
          "Business Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "businessContactId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved business contact successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessContact"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Business contact not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      },
      "patch": {
        "summary": "Update a business contact",
        "description": "Using the business contact guid in the request path, the method updates the list of changes specified in the request body.",
        "tags": [
          "Business Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "businessContactId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully updated the business contact.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessContact"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Business contact not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "412": {
            "description": "Optimistic concurrency check failed. The If-Match header is missing or it does not contain the version currently in the database."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BusinessContact"
              },
              "example": {
                "id": "string (UUID)",
                "contactType": "string",
                "companyName": "string",
                "prefix": "string",
                "firstName": "string",
                "middleName": "string",
                "lastName": "string",
                "suffix": "string",
                "endCode": "string",
                "addresses": [
                  {
                    "typeCode": "string",
                    "line1": "string",
                    "line2": "string",
                    "city": "string",
                    "provinceCode": "string",
                    "postalCode": "string",
                    "countryCode": "string"
                  }
                ],
                "phoneNumbers": [
                  {
                    "typeCode": "string",
                    "ext": "string",
                    "number": "string"
                  }
                ],
                "emailAddresses": [
                  {
                    "typeCode": "string",
                    "address": "string"
                  }
                ]
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete a business contact",
        "description": "Deletes the business contact specified using the business contact guid path variable.",
        "tags": [
          "Business Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "businessContactId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted the contact.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessContact"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Business contact not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/deals/{dealId}/business-contacts": {
      "get": {
        "summary": "Get all business contacts",
        "description": "Using the deal guid in the request path, the method requests the associated business contacts.",
        "tags": [
          "Business Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "dealId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved business contacts successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BusinessContact"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      },
      "post": {
        "summary": "Create a business contact",
        "description": "Using the dealId in the request path, the method creates a new business contact object.",
        "tags": [
          "Business Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "dealId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created business contact.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessContact"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "409": {
            "description": "Business contact already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BusinessContact"
              },
              "example": {
                "id": "string (UUID)",
                "contactType": "string",
                "companyName": "string",
                "prefix": "string",
                "firstName": "string",
                "middleName": "string",
                "lastName": "string",
                "suffix": "string",
                "endCode": "string",
                "addresses": [
                  {
                    "typeCode": "string",
                    "line1": "string",
                    "line2": "string",
                    "city": "string",
                    "provinceCode": "string",
                    "postalCode": "string",
                    "countryCode": "string"
                  }
                ],
                "phoneNumbers": [
                  {
                    "typeCode": "string",
                    "ext": "string",
                    "number": "string"
                  }
                ],
                "emailAddresses": [
                  {
                    "typeCode": "string",
                    "address": "string"
                  }
                ]
              }
            }
          }
        }
      }
    },
    "/business-contacts/{businessContactId}/phone-numbers": {
      "post": {
        "summary": "Create business contact phone number",
        "description": "Using the business contact id in the request path, the method creates the contact's phone number.",
        "tags": [
          "Business Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "businessContactId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created phone number successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PhoneNumber"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Business contact not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Phone number already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PhoneNumber"
              },
              "example": {
                "typeCode": "string",
                "ext": "string",
                "number": "string"
              }
            }
          }
        }
      }
    },
    "/business-contacts/{businessContactId}/email-addresses": {
      "post": {
        "summary": "Create business contact email address",
        "description": "Using the business contact id in the request path, the method creates the contact's email address.",
        "tags": [
          "Business Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "businessContactId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created email address successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmailAddress"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Business contact not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Email address already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmailAddress"
              },
              "example": {
                "typeCode": "string",
                "address": "string"
              }
            }
          }
        }
      }
    },
    "/business-contacts/{businessContactId}/addresses": {
      "post": {
        "summary": "Create business contact address",
        "description": "Using the business contact id in the request path, the method creates the contact's address.",
        "tags": [
          "Business Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "businessContactId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created address successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessContact"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Business contact not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Email address already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Address"
              },
              "example": {
                "typeCode": "string",
                "line1": "string",
                "line2": "string",
                "city": "string",
                "provinceCode": "string",
                "postalCode": "string",
                "countryCode": "string"
              }
            }
          }
        }
      }
    },
    "/business-contacts/{businessContactId}/email-addresses/{emailAddressTypeCode}": {
      "patch": {
        "summary": "Update business contact email address",
        "description": "Using the business contact id and email address type code in the request path, the method updates the email address fields specified in the request body.",
        "tags": [
          "Business Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "businessContactId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "emailAddressTypeCode",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully updated the email address",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessContact"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Business contact or email address not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Email address already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "412": {
            "description": "Optimistic concurrency check failed. The If-Match header is missing or it does not contain the version currently in the database."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmailAddress"
              },
              "example": {
                "typeCode": "string",
                "address": "string"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete business contact email address.",
        "description": "Deletes the business contact's email address specified using the business contact id and email address type code path variables.",
        "tags": [
          "Business Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "businessContactId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "emailAddressTypeCode",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted the email address.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessContact"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Business contact or email address not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/business-contacts/{businessContactId}/phone-numbers/{phoneNumberTypeCode}": {
      "patch": {
        "summary": "Update business contact phone number",
        "description": "Using the business contact id and phone number type code in the request path, the method updates the phone number.",
        "tags": [
          "Business Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "businessContactId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "phoneNumberTypeCode",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully updated the phone number",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessContact"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Business contact or phone number not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Phone number already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "412": {
            "description": "Optimistic concurrency check failed. The If-Match header is missing or it does not contain the version currently in the database."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PhoneNumber"
              },
              "example": {
                "typeCode": "string",
                "ext": "string",
                "number": "string"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete business contact phone number",
        "description": "Deletes the business contact's phone number specified using the business contact id and phone number type code path variables.",
        "tags": [
          "Business Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "businessContactId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "phoneNumberTypeCode",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted the phone number.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessContact"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Business contact or phone number not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/business-contacts/{businessContactId}/addresses/{addressTypeCode}": {
      "delete": {
        "summary": "Delete business contact address",
        "description": "Deletes the business contact address specified using the business contact id and address type code path variables.",
        "tags": [
          "Business Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "businessContactId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "addressTypeCode",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted the contact's address.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessContact"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Business contact or address not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/client-contacts/{clientContactId}": {
      "get": {
        "summary": "Get a client contact",
        "description": "Using the client contact guid in the request path, the method requests a client contact.",
        "tags": [
          "Client Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "clientContactId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved client contact successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientContact"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Client contact not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      },
      "patch": {
        "summary": "Update a client contact.",
        "description": "Update a client contact",
        "tags": [
          "Client Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "clientContactId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully updated the client contact.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientContact"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Client contact not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "412": {
            "description": "Optimistic concurrency check failed. The If-Match header is missing or it does not contain the version currently in the database."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClientContact"
              },
              "example": {
                "id": "string (UUID)",
                "type": "string",
                "companyName": "string",
                "prefix": "string",
                "firstName": "string",
                "middleName": "string",
                "lastName": "string",
                "suffix": "string",
                "endCode": "string",
                "movingOut": "boolean",
                "occupation": "string",
                "principalBusiness": "string",
                "addresses": [
                  {
                    "typeCode": "string",
                    "line1": "string",
                    "line2": "string",
                    "city": "string",
                    "provinceCode": "string",
                    "postalCode": "string",
                    "countryCode": "string"
                  }
                ],
                "phoneNumbers": [
                  {
                    "typeCode": "string",
                    "ext": "string",
                    "number": "string"
                  }
                ],
                "emailAddresses": [
                  {
                    "typeCode": "string",
                    "address": "string"
                  }
                ]
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete a client contact",
        "description": "Deletes a contact based on their contact GUID.",
        "tags": [
          "Client Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "clientContactId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted the contact.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientContact"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Client contact not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/deals/{dealId}/client-contacts": {
      "get": {
        "summary": "Get a client contact",
        "description": "Using the deal guid in the request path, the method requests a client contact.",
        "tags": [
          "Client Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "dealId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved client contacts successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ClientContact"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Client contact not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      },
      "post": {
        "summary": "Create a client contact",
        "description": "Creates a client contact in the given deal.",
        "tags": [
          "Client Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "dealId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Successfully created the contact.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientContact"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "409": {
            "description": "Client contact already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClientContact"
              },
              "example": {
                "id": "string (UUID)",
                "type": "string",
                "companyName": "string",
                "prefix": "string",
                "firstName": "string",
                "middleName": "string",
                "lastName": "string",
                "suffix": "string",
                "endCode": "string",
                "movingOut": "boolean",
                "occupation": "string",
                "principalBusiness": "string",
                "addresses": [
                  {
                    "typeCode": "string",
                    "line1": "string",
                    "line2": "string",
                    "city": "string",
                    "provinceCode": "string",
                    "postalCode": "string",
                    "countryCode": "string"
                  }
                ],
                "phoneNumbers": [
                  {
                    "typeCode": "string",
                    "ext": "string",
                    "number": "string"
                  }
                ],
                "emailAddresses": [
                  {
                    "typeCode": "string",
                    "address": "string"
                  }
                ]
              }
            }
          }
        }
      }
    },
    "/client-contacts/{clientContactId}/phone-numbers": {
      "post": {
        "summary": "Create client contact phone number",
        "description": "Using the client contact id in the request path, the method creates the contact's phone number.",
        "tags": [
          "Client Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "clientContactId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created phone number successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PhoneNumber"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Client contact not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Phone number already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PhoneNumber"
              },
              "example": {
                "typeCode": "string",
                "ext": "string",
                "number": "string"
              }
            }
          }
        }
      }
    },
    "/client-contacts/{clientContactId}/email-addresses": {
      "post": {
        "summary": "Create client contact email address",
        "description": "Using the client contact id in the request path, the method creates the contact's email address.",
        "tags": [
          "Client Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "clientContactId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created email address successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmailAddress"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Client contact not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Email address already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmailAddress"
              },
              "example": {
                "typeCode": "string",
                "address": "string"
              }
            }
          }
        }
      }
    },
    "/client-contacts/{clientContactId}/addresses": {
      "post": {
        "summary": "Create client contact address",
        "description": "Using the client contact id in the request path, the method creates the contact's address.",
        "tags": [
          "Client Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "clientContactId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created address successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientContact"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Client contact not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Email address already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Address"
              },
              "example": {
                "typeCode": "string",
                "line1": "string",
                "line2": "string",
                "city": "string",
                "provinceCode": "string",
                "postalCode": "string",
                "countryCode": "string"
              }
            }
          }
        }
      }
    },
    "/client-contacts/{clientContactId}/email-addresses/{emailAddressTypeCode}": {
      "patch": {
        "summary": "Update client contact email address",
        "description": "Using the client contact id and email address type code in the request path, the method updates the email address fields specified in the request body.",
        "tags": [
          "Client Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "clientContactId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "emailAddressTypeCode",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully updated the email address",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientContact"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Client contact or email address not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Email address already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "412": {
            "description": "Optimistic concurrency check failed. The If-Match header is missing or it does not contain the version currently in the database."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmailAddress"
              },
              "example": {
                "typeCode": "string",
                "address": "string"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete client contact email address.",
        "description": "Deletes the client contact's email address specified using the client contact id and email address type code path variables.",
        "tags": [
          "Client Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "clientContactId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "emailAddressTypeCode",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted the email address.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientContact"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Client contact or email address not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/client-contacts/{clientContactId}/phone-numbers/{phoneNumberTypeCode}": {
      "patch": {
        "summary": "Update client contact phone number",
        "description": "Using the client contact id and phone number type code in the request path, the method updates the phone number.",
        "tags": [
          "Client Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "clientContactId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "phoneNumberTypeCode",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully updated the phone number",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientContact"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Client contact or phone number not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Phone number already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "412": {
            "description": "Optimistic concurrency check failed. The If-Match header is missing or it does not contain the version currently in the database."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PhoneNumber"
              },
              "example": {
                "typeCode": "string",
                "ext": "string",
                "number": "string"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete client contact phone number",
        "description": "Deletes the client contact's phone number specified using the client contact id and phone number type code path variables.",
        "tags": [
          "Client Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "clientContactId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "phoneNumberTypeCode",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted the phone number.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientContact"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Client contact or phone number not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/client-contacts/{clientContactId}/addresses/{addressTypeCode}": {
      "delete": {
        "summary": "Delete client contact address",
        "description": "Deletes the client contact address specified using the client contact id and address type code path variables.",
        "tags": [
          "Client Contact"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "clientContactId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "addressTypeCode",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted the contact's address.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientContact"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Client contact or address not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/tiers/{tierId}/commissions": {
      "get": {
        "summary": "Get all commissions",
        "description": "Using the tier guid in the request path, the method requests the associated commissions.",
        "tags": [
          "Commission"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "tierId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved commission successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Commission"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      },
      "post": {
        "summary": "Create a commission",
        "description": "Creates a commission on a given tier.",
        "tags": [
          "Commission"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "tierId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Successfully upserted the commission.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Commission"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "409": {
            "description": "Commission already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Commission"
              },
              "example": {
                "id": "string (UUID)",
                "agentId": "string (UUID)",
                "officeName": "string",
                "prefix": "string",
                "firstName": "string",
                "middleName": "string",
                "lastName": "string",
                "suffix": "string",
                "endCode": "string",
                "endCount": "number (float)",
                "primary": "boolean",
                "amount": "number (float)",
                "percentage": "number (float)",
                "calculationMethod": "string"
              }
            }
          }
        }
      }
    },
    "/commissions/{commissionId}": {
      "get": {
        "summary": "Get a commission",
        "description": "Using the commission id guid in the request path, the method requests a commission.",
        "tags": [
          "Commission"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "commissionId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved commission successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Commission"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Commission not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      },
      "patch": {
        "summary": "Update a commission",
        "description": "Updates a commission using its commission guid.",
        "tags": [
          "Commission"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "commissionId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully updated the commission.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Commission"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Commission not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "412": {
            "description": "Optimistic concurrency check failed. The If-Match header is missing or it does not contain the version currently in the database."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Commission"
              },
              "example": {
                "id": "string (UUID)",
                "agentId": "string (UUID)",
                "officeName": "string",
                "prefix": "string",
                "firstName": "string",
                "middleName": "string",
                "lastName": "string",
                "suffix": "string",
                "endCode": "string",
                "endCount": "number (float)",
                "primary": "boolean",
                "amount": "number (float)",
                "percentage": "number (float)",
                "calculationMethod": "string"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete a commission",
        "description": "Deletes a commission using its guid.",
        "tags": [
          "Commission"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "commissionId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted the commission.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Commission"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Commission not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/conditions/{conditionId}": {
      "get": {
        "summary": "Get a condition",
        "description": "Using the condition guid in the request path, the method requests a condition.",
        "tags": [
          "Condition"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "conditionId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved condition successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Condition"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Condition not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      },
      "patch": {
        "summary": "Update a condition",
        "description": "Updates a condition based on its condition guid.",
        "tags": [
          "Condition"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "conditionId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully patched a condition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Condition"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Condition not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "412": {
            "description": "Optimistic concurrency check failed. The If-Match header is missing or it does not contain the version currently in the database."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Commission"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete a condition",
        "description": "Deletes a condition based on its condition guid.",
        "tags": [
          "Condition"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "conditionId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted a condition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Condition"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Condition not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/deals/{dealId}/conditions": {
      "get": {
        "summary": "Get all conditions",
        "description": "Using the deal guid in the request path, the method requests the associated conditions.",
        "tags": [
          "Condition"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "dealId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved conditions successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Condition"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      },
      "post": {
        "summary": "Create a condition",
        "description": "Creates a condition on a deal using a deal GUID.",
        "tags": [
          "Condition"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "dealId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Successfully created a condition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Condition"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "409": {
            "description": "Condition already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Condition"
              },
              "example": {
                "id": "string (UUID)",
                "description": "string",
                "completeDate": "string (date)",
                "dueDate": "string (date)"
              }
            }
          }
        }
      }
    },
    "/deals/{dealId}": {
      "get": {
        "summary": "Get a deal",
        "description": "Using the deal guid in the request path, the method requests a deal.",
        "tags": [
          "Deal"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "dealId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved deal successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Deal"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Deal not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "412": {
            "description": "Optimistic concurrency check failed. The If-Match header is missing or it does not contain the version currently in the database."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      },
      "patch": {
        "summary": "Update a deal",
        "description": "Updates a deal based on its deal id.",
        "tags": [
          "Deal"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "dealId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully patched a deal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Deal"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Deal not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "412": {
            "description": "Optimistic concurrency check failed. The If-Match header is missing or it does not contain the version currently in the database."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Deal"
              },
              "example": {
                "id": "string (UUID)",
                "culture": "string",
                "number": "string",
                "mlsNumber": "string",
                "statusCode": "string",
                "classCode": "string",
                "name": "string",
                "addressStreetNumber": "string",
                "addressStreetName": "string",
                "addressStreetDirection": "string",
                "addressUnitNumber": "string",
                "addressCity": "string",
                "addressProvinceCode": "string",
                "addressPostalCode": "string",
                "addressCountryCode": "string",
                "offerDate": "string (date)",
                "closeDate": "string (date)",
                "entryDate": "string (date)",
                "finalizeDate": "string (date)",
                "firmDate": "string (date)",
                "closePrice": "number (float)",
                "legalDescription": "string",
                "classification": {
                  "id": "string (UUID)",
                  "createdTimestamp": "string (date-time)",
                  "modifiedTimestamp": "string (date-time)",
                  "code": "string",
                  "name": "string",
                  "endTypeCode": "string",
                  "endCount": "string"
                },
                "propertyType": {
                  "id": "string (UUID)",
                  "createdTimestamp": "string (date-time)",
                  "modifiedTimestamp": "string (date-time)",
                  "code": "string",
                  "name": "string",
                  "shortName": "string",
                  "classCode": "string"
                },
                "businessContacts": [],
                "client-contacts": [],
                "conditions": [],
                "deposits": [],
                "externalAgents": [],
                "tiers": []
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete a deal",
        "description": "Deletes a deal based on its deal id.",
        "tags": [
          "Deal"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "dealId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted a deal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Deal"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Deal not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/deals": {
      "get": {
        "summary": "Get all deals",
        "description": "Requests all deals.",
        "tags": [
          "Deal"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Retrieved deals successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Deal"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      },
      "post": {
        "summary": "Create a deal",
        "description": "Creates a deal.",
        "tags": [
          "Deal"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Successfully created a deal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Deal"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "409": {
            "description": "Deal already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Deal"
              },
              "example": {
                "id": "string (UUID)",
                "culture": "string",
                "number": "string",
                "mlsNumber": "string",
                "statusCode": "string",
                "classCode": "string",
                "name": "string",
                "addressStreetNumber": "string",
                "addressStreetName": "string",
                "addressStreetDirection": "string",
                "addressUnitNumber": "string",
                "addressCity": "string",
                "addressProvinceCode": "string",
                "addressPostalCode": "string",
                "addressCountryCode": "string",
                "offerDate": "string (date)",
                "closeDate": "string (date)",
                "entryDate": "string (date)",
                "finalizeDate": "string (date)",
                "firmDate": "string (date)",
                "closePrice": "number (float)",
                "legalDescription": "string",
                "classification": {
                  "id": "string (UUID)",
                  "createdTimestamp": "string (date-time)",
                  "modifiedTimestamp": "string (date-time)",
                  "code": "string",
                  "name": "string",
                  "endTypeCode": "string",
                  "endCount": "string"
                },
                "propertyType": {
                  "id": "string (UUID)",
                  "createdTimestamp": "string (date-time)",
                  "modifiedTimestamp": "string (date-time)",
                  "code": "string",
                  "name": "string",
                  "shortName": "string",
                  "classCode": "string"
                },
                "businessContacts": [],
                "client-contacts": [],
                "conditions": [],
                "deposits": [],
                "externalAgents": [],
                "tiers": []
              }
            }
          }
        }
      }
    },
    "/deals/{dealId}/submit": {
      "post": {
        "summary": "Submit deal",
        "description": "Submits a deal with a deal id so that it will replicated in brokerWOLF",
        "tags": [
          "Deal"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "dealId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully submitted a deal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Deal"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Deal not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Deal"
              }
            }
          }
        }
      }
    },
    "/deals/{dealId}/history": {
      "get": {
        "summary": "Get deal history",
        "description": "Using the deal guid in the request path, the method requests a deal's history. History is a list of log entries.",
        "tags": [
          "Deal"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "dealId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved deal history successfully."
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Deal not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/deals/search": {
      "get": {
        "summary": "Search for deals",
        "description": "Using various request parameters, looks up a deal summary.",
        "tags": [
          "Deal"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "dealId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "entityPath",
            "in": "in header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fieldName",
            "in": "in header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "searchText",
            "in": "in header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "typeCodes",
            "in": "in header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderBy",
            "in": "in header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "direction",
            "in": "in header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved deal summary successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DealSummary"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/deals/{dealId}/bw-sync-status": {
      "get": {
        "summary": "Get the sync status of the deal with brokerWOLF",
        "description": "Using the deal guid in the request path, the method requests the sync status with Broker Wolf",
        "tags": [
          "Deal"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "dealId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved deal sync status successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DealSyncStatus"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Deal Sync Status not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "412": {
            "description": "Optimistic concurrency check failed. The If-Match header is missing or it does not contain the version currently in the database."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/deals/{dealId}/summary": {
      "get": {
        "summary": "Get the summary of a deal",
        "description": "Using the deal guid in the request path, the method requests a summary.",
        "tags": [
          "Deal"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "dealId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved deal summary successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DealSummary"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Deal Summary not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "412": {
            "description": "Optimistic concurrency check failed. The If-Match header is missing or it does not contain the version currently in the database."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/deposits/{depositId}": {
      "get": {
        "summary": "Get a deposit",
        "description": "Using the deposit guid in the request path, the method requests a deposit.",
        "tags": [
          "Deposit"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "depositId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved deposit successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Deposit"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Deposit not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      },
      "patch": {
        "summary": "Update a deposit",
        "description": "Updates a deposit based on deposit guid.",
        "tags": [
          "Deposit"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "depositId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully updated a deposit.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Deposit"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Deposit not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "412": {
            "description": "Optimistic concurrency check failed. The If-Match header is missing or it does not contain the version currently in the database."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Deposit"
              },
              "example": {
                "id": "string (UUID)",
                "date": "string (date)",
                "amount": "number (float)",
                "received": "boolean",
                "interest": "boolean",
                "held": "boolean",
                "heldBy": "string",
                "direct": "boolean",
                "reference": "string"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete a deposit",
        "description": "Deletes a deposit based on its deposit guid.",
        "tags": [
          "Deposit"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "depositId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted a deposit.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Deposit"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Deposit not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/deals/{dealId}/deposits": {
      "get": {
        "summary": "Get all deposits",
        "description": "Using the deal guid in the request path, the method requests the associated deposits.",
        "tags": [
          "Deposit"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "dealId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved deposits successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Deposit"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Deal not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      },
      "post": {
        "summary": "Create a deposit",
        "description": "Creates a deposit with a deal guid.",
        "tags": [
          "Deposit"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "dealId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Successfully created a deposit.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Deposit"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "409": {
            "description": "Deposit already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Deposit"
              },
              "example": {
                "id": "string (UUID)",
                "date": "string (date)",
                "amount": "number (float)",
                "received": "boolean",
                "interest": "boolean",
                "held": "boolean",
                "heldBy": "string",
                "direct": "boolean",
                "reference": "string"
              }
            }
          }
        }
      }
    },
    "/external-agents/{externalAgentId}": {
      "get": {
        "summary": "Get an external agent",
        "description": "Using the external agent guid in the request path, the method requests an external agent.",
        "tags": [
          "External Agent"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "externalAgentId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved external agent successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAgent"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "External agent not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      },
      "patch": {
        "summary": "Update an external agent",
        "description": "Updates an external agent based on their external agent guid.",
        "tags": [
          "External Agent"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "externalAgentId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully updated an external agent.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAgent"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "External agent not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "412": {
            "description": "Optimistic concurrency check failed. The If-Match header is missing or it does not contain the version currently in the database."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalAgent"
              },
              "example": {
                "id": "string (UUID)",
                "typeCode": "string",
                "companyName": "string",
                "prefix": "string",
                "firstName": "string",
                "middleName": "string",
                "lastName": "string",
                "suffix": "string",
                "endCode": "string",
                "payBroker": "boolean",
                "taxId": "string",
                "taxExempt": "boolean",
                "taxCharged": "boolean",
                "use1099": "boolean",
                "mlsId": "string",
                "addresses": [
                  {
                    "typeCode": "string",
                    "line1": "string",
                    "line2": "string",
                    "city": "string",
                    "provinceCode": "string",
                    "postalCode": "string",
                    "countryCode": "string"
                  }
                ],
                "phoneNumbers": [
                  {
                    "typeCode": "string",
                    "ext": "string",
                    "number": "string"
                  }
                ],
                "emailAddresses": [
                  {
                    "typeCode": "string",
                    "address": "string"
                  }
                ]
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete an external agent",
        "description": "Deletes an external agent using their external agent guid.",
        "tags": [
          "External Agent"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "externalAgentId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted an external agent.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAgent"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "External agent not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/deals/{dealId}/external-agents": {
      "get": {
        "summary": "Get all external agents",
        "description": "Using the deal guid in the request path, the method requests the associated external agents.",
        "tags": [
          "External Agent"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "dealId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved external agents successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ExternalAgent"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Deal not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      },
      "post": {
        "summary": "Create an external agent",
        "description": "Creates an external agent with a deal guid.",
        "tags": [
          "External Agent"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "dealId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Successfully created an external agent.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAgent"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "409": {
            "description": "External agent already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalAgent"
              },
              "example": {
                "id": "string (UUID)",
                "typeCode": "string",
                "companyName": "string",
                "prefix": "string",
                "firstName": "string",
                "middleName": "string",
                "lastName": "string",
                "suffix": "string",
                "endCode": "string",
                "payBroker": "boolean",
                "taxId": "string",
                "taxExempt": "boolean",
                "taxCharged": "boolean",
                "use1099": "boolean",
                "mlsId": "string",
                "addresses": [
                  {
                    "typeCode": "string",
                    "line1": "string",
                    "line2": "string",
                    "city": "string",
                    "provinceCode": "string",
                    "postalCode": "string",
                    "countryCode": "string"
                  }
                ],
                "phoneNumbers": [
                  {
                    "typeCode": "string",
                    "ext": "string",
                    "number": "string"
                  }
                ],
                "emailAddresses": [
                  {
                    "typeCode": "string",
                    "address": "string"
                  }
                ]
              }
            }
          }
        }
      }
    },
    "/external-agents/{externalAgentId}/phone-numbers": {
      "post": {
        "summary": "Create external agent phone number",
        "description": "Using the external agent id in the request path, the method creates the contact's phone number.",
        "tags": [
          "External Agent"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "externalAgentId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created phone number successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PhoneNumber"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "External agent not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Phone number already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PhoneNumber"
              },
              "example": {
                "typeCode": "string",
                "ext": "string",
                "number": "string"
              }
            }
          }
        }
      }
    },
    "/external-agents/{externalAgentId}/email-addresses": {
      "post": {
        "summary": "Create external agent email address",
        "description": "Using the external agent id in the request path, the method creates the contact's email address.",
        "tags": [
          "External Agent"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "externalAgentId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created email address successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmailAddress"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "External agent not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Email address already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmailAddress"
              },
              "example": {
                "typeCode": "string",
                "address": "string"
              }
            }
          }
        }
      }
    },
    "/external-agents/{externalAgentId}/addresses": {
      "post": {
        "summary": "Create external agent address",
        "description": "Using the external agent id in the request path, the method creates the contact's address.",
        "tags": [
          "External Agent"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "externalAgentId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created address successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAgent"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "External agent not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Email address already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Address"
              },
              "example": {
                "typeCode": "string",
                "line1": "string",
                "line2": "string",
                "city": "string",
                "provinceCode": "string",
                "postalCode": "string",
                "countryCode": "string"
              }
            }
          }
        }
      }
    },
    "/external-agents/{externalAgentId}/email-addresses/{emailAddressTypeCode}": {
      "patch": {
        "summary": "Update external agent email address",
        "description": "Using the external agent id and email address type code in the request path, the method updates the email address fields specified in the request body.",
        "tags": [
          "External Agent"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "externalAgentId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "emailAddressTypeCode",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully updated the email address",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAgent"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "External agent or email address not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Email address already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "412": {
            "description": "Optimistic concurrency check failed. The If-Match header is missing or it does not contain the version currently in the database."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmailAddress"
              },
              "example": {
                "typeCode": "string",
                "address": "string"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete external agent email address.",
        "description": "Deletes the external agent's email address specified using the external agent id and email address type code path variables.",
        "tags": [
          "External Agent"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "externalAgentId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "emailAddressTypeCode",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted the email address.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAgent"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "External agent or email address not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/external-agents/{externalAgentId}/phone-numbers/{phoneNumberTypeCode}": {
      "patch": {
        "summary": "Update external agent phone number",
        "description": "Using the external agent id and phone number type code in the request path, the method updates the phone number.",
        "tags": [
          "External Agent"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "externalAgentId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "phoneNumberTypeCode",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully updated the phone number",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAgent"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "External agent or phone number not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Phone number already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "412": {
            "description": "Optimistic concurrency check failed. The If-Match header is missing or it does not contain the version currently in the database."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PhoneNumber"
              },
              "example": {
                "typeCode": "string",
                "ext": "string",
                "number": "string"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete external agent phone number",
        "description": "Deletes the external agent's phone number specified using the external agent id and phone number type code path variables.",
        "tags": [
          "External Agent"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "externalAgentId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "phoneNumberTypeCode",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted the phone number.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAgent"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "External agent or phone number not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/external-agents/{externalAgentId}/addresses/{addressTypeCode}": {
      "delete": {
        "summary": "Delete external agent address",
        "description": "Deletes the external agent address specified using the external agent id and address type code path variables.",
        "tags": [
          "External Agent"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "externalAgentId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "addressTypeCode",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted the contact's address.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAgent"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "External agent or address not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/external-commissions/{externalCommissionId}": {
      "get": {
        "summary": "Get an external commission.",
        "description": "Using the external commission guid in the request path, the method requests an external commission.",
        "tags": [
          "External Commission"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "externalCommissionId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved external commission successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalCommission"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "External commission not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      },
      "patch": {
        "summary": "Update an external commission",
        "description": "Updates an external commission using its external commission guid.",
        "tags": [
          "External Commission"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "externalCommissionId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully updated an external commission.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalCommission"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "External commission not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "412": {
            "description": "Optimistic concurrency check failed. The If-Match header is missing or it does not contain the version currently in the database."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalCommission"
              },
              "example": {
                "id": "string (UUID)",
                "externalAgentId": "string (UUID)",
                "endCode": "string",
                "payBroker": "boolean",
                "amount": "number (float)",
                "percentage": "number (float)",
                "calculationMethod": "string"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete an external commission",
        "description": "Deletes an external commission using its external commission guid.",
        "tags": [
          "External Commission"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "externalCommissionId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted an external commission.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalCommission"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "External commission not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/tiers/{tierId}/external-commissions": {
      "get": {
        "summary": "Get all external commissions",
        "description": "Using the tier guid in the request path, the method requests the associated external commissions.",
        "tags": [
          "External Commission"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "tierId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved external commissions successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ExternalCommission"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Tier not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "412": {
            "description": "Optimistic concurrency check failed. The If-Match header is missing or it does not contain the version currently in the database."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      },
      "post": {
        "summary": "Create an external commission",
        "description": "Creates an external commission onto a tier using the tier guid.",
        "tags": [
          "External Commission"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "tierId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Successfully created an external commission.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalCommission"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Tier not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "External commission already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalCommission"
              },
              "example": {
                "id": "string (UUID)",
                "externalAgentId": "string (UUID)",
                "endCode": "string",
                "payBroker": "boolean",
                "amount": "number (float)",
                "percentage": "number (float)",
                "calculationMethod": "string"
              }
            }
          }
        }
      }
    },
    "/tiers/{tierId}": {
      "get": {
        "summary": "Get a tier",
        "description": "Using the tier guid in the request path, the method requests a tier.",
        "tags": [
          "Tier"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "tierId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved tier successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tier"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Tier not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      },
      "patch": {
        "summary": "Update a tier",
        "description": "Updates a tier using its tier guid.",
        "tags": [
          "Tier"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "tierId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully updated a tier.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tier"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Tier not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "412": {
            "description": "Optimistic concurrency check failed. The If-Match header is missing or it does not contain the version currently in the database."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Tier"
              },
              "example": {
                "id": "string (UUID)",
                "name": "string",
                "closePrice": "number (float)",
                "closeDate": "string (date)",
                "statusCode": "string",
                "sellingCommissionAmount": "number (float)",
                "sellingCommissionPercentage": "number (float)",
                "sellingCommissionCalculationMethod": "string",
                "buyingCommissionAmount": "number (float)",
                "buyingCommissionPercentage": "number (float)",
                "buyingCommissionCalculationMethod": "string",
                "classificationId": "string",
                "commissions": [],
                "externalCommissions": []
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete a tier",
        "description": "Deletes a tier using its tier guid.",
        "tags": [
          "Tier"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "tierId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted a tier.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tier"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Tier not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/deals/{dealId}/tiers": {
      "get": {
        "summary": "Get all tiers",
        "description": "Using the deal guid in the request path, the method requests the associated tiers.",
        "tags": [
          "Tier"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "dealId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved tiers successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Tier"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Deal not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      },
      "post": {
        "summary": "Create a tier",
        "description": "Creates a tier onto a deal using a deal guid.",
        "tags": [
          "Tier"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "dealId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Successfully created a tier.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tier"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Deal not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Tier already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Tier"
              },
              "example": {
                "id": "string (UUID)",
                "name": "string",
                "closePrice": "number (float)",
                "closeDate": "string (date)",
                "statusCode": "string",
                "sellingCommissionAmount": "number (float)",
                "sellingCommissionPercentage": "number (float)",
                "sellingCommissionCalculationMethod": "string",
                "buyingCommissionAmount": "number (float)",
                "buyingCommissionPercentage": "number (float)",
                "buyingCommissionCalculationMethod": "string",
                "classificationId": "string",
                "commissions": [],
                "externalCommissions": []
              }
            }
          }
        }
      }
    },
    "/tiers/calculate-tier": {
      "post": {
        "summary": "Calculate a tier",
        "description": "Calculate a tier's commissions.",
        "tags": [
          "Tier"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "tierId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully calculate a tier.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tier"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Tier not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "412": {
            "description": "Optimistic concurrency check failed. The If-Match header is missing or it does not contain the version currently in the database."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Tier"
              },
              "example": {
                "id": "string (UUID)",
                "name": "string",
                "closePrice": "number (float)",
                "closeDate": "string (date)",
                "statusCode": "string",
                "sellingCommissionAmount": "number (float)",
                "sellingCommissionPercentage": "number (float)",
                "sellingCommissionCalculationMethod": "string",
                "buyingCommissionAmount": "number (float)",
                "buyingCommissionPercentage": "number (float)",
                "buyingCommissionCalculationMethod": "string",
                "classificationId": "string",
                "commissions": [],
                "externalCommissions": []
              }
            }
          }
        }
      }
    },
    "/classifications": {
      "get": {
        "summary": "Get all classifications for the brokerage.",
        "description": "Retrieves all classifications for the brokerage.",
        "tags": [
          "Classification"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Classifications found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Classification"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/classifications/{classificationId}": {
      "get": {
        "summary": "Get a classification.",
        "description": "Retrieves a single classification.",
        "tags": [
          "Classification"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "classificationId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Classification found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Classification"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Classification not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/property-types": {
      "get": {
        "summary": "Get all property types for the brokerage.",
        "description": "Retrieves all property types for the brokerage.",
        "tags": [
          "Property Type"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Property Types found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PropertyType"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/property-types/{propertyTypeId}": {
      "get": {
        "summary": "Get a property type.",
        "description": "Retrieves a single property type.",
        "tags": [
          "Property Type"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "propertyTypeId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Property Type found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Classification"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Property Type not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/condition-types": {
      "get": {
        "summary": "Get all condition types for the brokerage.",
        "description": "Retrieves all condition types for the brokerage.",
        "tags": [
          "Condition Type"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Condition Types found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConditionType"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/condition-types/{conditionTypeId}": {
      "get": {
        "summary": "Get a condition type.",
        "description": "Retrieves a single condition type.",
        "tags": [
          "Condition Type"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "conditionTypeId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Condition Type found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConditionType"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Condition Type not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/contact-types": {
      "get": {
        "summary": "Get all contact types for the brokerage.",
        "description": "Retrieves all contact types for the brokerage.",
        "tags": [
          "Contact Type"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Contact Types found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactType"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/contact-types/{contactTypeId}": {
      "get": {
        "summary": "Get a contact type.",
        "description": "Retrieves a single contact type.",
        "tags": [
          "Contact Type"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "contactTypeId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Contact Type found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactType"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Contact Type not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/sources-of-business": {
      "get": {
        "summary": "Get all sources of business for the brokerage.",
        "description": "Retrieves all sources of business for the brokerage.",
        "tags": [
          "Source of Business"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sources of Business found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SourceOfBusiness"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/sources-of-business/{sourceOfBusinessId}": {
      "get": {
        "summary": "Get a source of business.",
        "description": "Retrieves a single source of business.",
        "tags": [
          "Sources Of Business"
        ],
        "security": [
          {
            "BearerToken": []
          }
        ],
        "parameters": [
          {
            "name": "sourceOfBusinessId",
            "in": "in path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Source of Business found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceOfBusiness"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details."
          },
          "401": {
            "description": "Unauthorized request. See response body for details."
          },
          "403": {
            "description": "Permission denied. See response body for details."
          },
          "404": {
            "description": "Source of Business not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details."
          }
        }
      }
    },
    "/v1/login": {
      "post": {
        "summary": "Returns a JWT along with other information for use in successive calls to our apps and APIs.",
        "description": "If the `clientId` property is not passed in, and the user is only attached to one client, that client will be returned in the JWT. If it is not passed in and the user is attached to multiple clients, then no client information will be passed back in the JWT.",
        "tags": [
          "Authentication"
        ],
        "security": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Login"
              },
              "example": {
                "emailAddress": "user@example.com",
                "password": "string",
                "clientId": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Login successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenInfo"
                },
                "example": {
                  "token": "string",
                  "expiresIn": 3600
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. See response body for details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unknown error. See response body for details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    }
  }
}