[{"_id":"654059080dbbbeae9b471319","referenceApi":"333dd2b4-bb0d-45ac-8c5c-389ffe8b38fe","title":"Firms API","openApi":"{\n  \"openapi\": \"3.0.1\",\n  \"info\": {\n    \"title\": \"Firms API\",\n    \"description\": \"The Firms API provides access to Firms metadata in the Tracker Company and TrackerMaster databases.\",\n    \"contact\": {\n      \"name\": \"devportal\"\n    },\n    \"version\": \"2.0\"\n  },\n  \"servers\": [\n    {\n      \"url\": \"https://api.thomsonreuters.com/legal-tracker/firms-api/v2\"\n    },\n    {\n      \"url\": \"https://api.thomsonreuters.co.uk/legal-tracker/firms-api/v2\"\n    },\n    {\n      \"url\": \"https://api.thomsonreuters.ca/legal-tracker/firms-api/v2\"\n    },\n    {\n      \"url\": \"https://api.thomsonreuters.com.au/legal-tracker/firms-api/v2\"\n    },\n    {\n      \"url\": \"https://api.thomsonreuters.de/legal-tracker/firms-api/v2\"\n    },\n    {\n      \"url\": \"https://api.thomsonreuters.ae/legal-tracker/firms-api/v2\"\n    }\n  ],\n  \"paths\": {\n    \"/alerts\": {\n      \"get\": {\n        \"tags\": [\n          \"Alerts\"\n        ],\n        \"summary\": \"Get firm alerts.\",\n        \"parameters\": [\n          {\n            \"name\": \"$top\",\n            \"in\": \"query\",\n            \"description\": \"Show only the first n items, see [Paging - Top](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptiontop)\",\n            \"schema\": {\n              \"maximum\": 1000,\n              \"minimum\": 1,\n              \"type\": \"integer\",\n              \"default\": 50\n            },\n            \"example\": 50\n          },\n          {\n            \"name\": \"$skip\",\n            \"in\": \"query\",\n            \"description\": \"Skip the first n items, see [Paging - Skip](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionskip)\",\n            \"schema\": {\n              \"minimum\": 0,\n              \"type\": \"integer\",\n              \"default\": 0\n            },\n            \"example\": 0\n          },\n          {\n            \"name\": \"$filter\",\n            \"in\": \"query\",\n            \"description\": \"Filter items by property values, see [Filtering](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionfilter)<br /><br /><i>Available operations:</i> eq, ne, gt, ge, lt, le, in, and, or, not<br /><i>Available functions:</i> contains, startswith, endswith, indexof<br /><i>Available properties:</i> id, firmId, description, linkUrl, createdDateTime, createdByUser, lastModifiedDateTime, lastModifiedByUser, createdByUser/id, createdByUser/name, createdByUser/email, lastModifiedByUser/id, lastModifiedByUser/name, lastModifiedByUser/email\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"nullable\": true\n            },\n            \"example\": \"id eq 111222\"\n          },\n          {\n            \"name\": \"$select\",\n            \"in\": \"query\",\n            \"description\": \"Select properties to be returned, see [Select](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionselect)\",\n            \"schema\": {\n              \"uniqueItems\": true,\n              \"type\": \"array\",\n              \"items\": {\n                \"enum\": [\n                  \"id\",\n                  \"firmId\",\n                  \"description\",\n                  \"linkUrl\",\n                  \"createdDateTime\",\n                  \"createdByUser\",\n                  \"lastModifiedDateTime\",\n                  \"lastModifiedByUser\"\n                ],\n                \"type\": \"string\"\n              }\n            }\n          },\n          {\n            \"name\": \"$orderby\",\n            \"in\": \"query\",\n            \"description\": \"Order items by property values, see [Sorting](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionorderby)\",\n            \"schema\": {\n              \"uniqueItems\": true,\n              \"type\": \"array\",\n              \"items\": {\n                \"enum\": [\n                  \"id\",\n                  \"firmId\",\n                  \"description\",\n                  \"linkUrl\",\n                  \"createdDateTime\",\n                  \"lastModifiedDateTime\",\n                  \"id desc\",\n                  \"firmId desc\",\n                  \"description desc\",\n                  \"linkUrl desc\",\n                  \"createdDateTime desc\",\n                  \"lastModifiedDateTime desc\"\n                ],\n                \"type\": \"string\"\n              }\n            }\n          },\n          {\n            \"name\": \"$expand\",\n            \"in\": \"query\",\n            \"description\": \"Expand a complex property, see [Expand](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionexpand)\",\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          },\n          {\n            \"name\": \"$count\",\n            \"in\": \"query\",\n            \"description\": \"Include count of items, see [Count](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptioncount)\",\n            \"schema\": {\n              \"type\": \"integer\"\n            }\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"A list of firm alerts is successfully returned.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/AlertCollection\"\n                }\n              }\n            }\n          },\n          \"400\": {\n            \"description\": \"FirmId is not provided in the request filter or it identifies a firm not connected to the company or there are some other invalid request parameters.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"401\": {\n            \"description\": \"Caller must authenticate.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"403\": {\n            \"description\": \"Caller does not have necessary permissions.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"500\": {\n            \"description\": \"Server error.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          }\n        }\n      },\n      \"post\": {\n        \"tags\": [\n          \"Alerts\"\n        ],\n        \"summary\": \"Create a new firm alert to halt invoice processing.\",\n        \"parameters\": [\n          {\n            \"name\": \"Prefer\",\n            \"in\": \"header\",\n            \"description\": \"* return=representation: This is the default. The server includes an entity representing the current state of the resource. In response to a successful request a status of 201 would be returned.\\n* return=minimal: The response will not include the entity in the response. A successful request would result in a status of 204 to be returned.\",\n            \"schema\": {\n              \"type\": \"string\"\n            },\n            \"example\": \"return=representation\"\n          }\n        ],\n        \"requestBody\": {\n          \"description\": \"The new firm alert.\",\n          \"content\": {\n            \"application/json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/NewAlert\"\n              }\n            }\n          },\n          \"required\": true\n        },\n        \"responses\": {\n          \"201\": {\n            \"description\": \"Record was created successfully.\",\n            \"headers\": {\n              \"ETag\": {\n                \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\n                \"schema\": {\n                  \"type\": \"string\",\n                  \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"\n                }\n              },\n              \"Location\": {\n                \"description\": \"URL to object.\",\n                \"schema\": {\n                  \"type\": \"string\",\n                  \"description\": \"URL to object.\"\n                }\n              }\n            },\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/Alert\"\n                }\n              }\n            }\n          },\n          \"204\": {\n            \"description\": \"Record was created successfully.\",\n            \"headers\": {\n              \"ETag\": {\n                \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\n                \"schema\": {\n                  \"type\": \"string\",\n                  \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"\n                }\n              }\n            }\n          },\n          \"400\": {\n            \"description\": \"invalid request parameters.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"401\": {\n            \"description\": \"Caller must authenticate.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"403\": {\n            \"description\": \"Caller does not have necessary permissions.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"500\": {\n            \"description\": \"Server error.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          }\n        }\n      }\n    },\n    \"/alerts/{id}\": {\n      \"get\": {\n        \"tags\": [\n          \"Alerts\"\n        ],\n        \"summary\": \"Retrieve information about an existing alert identified by the alert Tracker ID.\",\n        \"parameters\": [\n          {\n            \"name\": \"id\",\n            \"in\": \"path\",\n            \"description\": \"The firm alert identifier.\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"integer\",\n              \"format\": \"int32\"\n            }\n          },\n          {\n            \"name\": \"If-None-Match\",\n            \"in\": \"header\",\n            \"description\": \"Executes a request only if the passed ETag doesn't equal the current resource ETag (i.e. resource hasn't changed).\",\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"Successful operation.\",\n            \"headers\": {\n              \"ETag\": {\n                \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\n                \"schema\": {\n                  \"type\": \"string\",\n                  \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"\n                }\n              }\n            },\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/Alert\"\n                }\n              }\n            }\n          },\n          \"304\": {\n            \"description\": \"Firm alert is not modified.\"\n          },\n          \"400\": {\n            \"description\": \"Invalid alert identifier.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"401\": {\n            \"description\": \"Caller must authenticate.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"403\": {\n            \"description\": \"Caller does not have necessary permissions.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"404\": {\n            \"description\": \"Firm alert is not found.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"500\": {\n            \"description\": \"Server error.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          }\n        }\n      },\n      \"delete\": {\n        \"tags\": [\n          \"Alerts\"\n        ],\n        \"summary\": \"Delete a firm alert identified by the alert Tracker ID. The invoice processing will be resumed after the alert is deleted.\",\n        \"parameters\": [\n          {\n            \"name\": \"id\",\n            \"in\": \"path\",\n            \"description\": \"The firm alert identifier.\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"integer\",\n              \"format\": \"int32\"\n            }\n          },\n          {\n            \"name\": \"If-Match\",\n            \"in\": \"header\",\n            \"description\": \"The ETag for the record to perform a concurrency check.\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ],\n        \"responses\": {\n          \"204\": {\n            \"description\": \"Record was deleted successfully.\"\n          },\n          \"400\": {\n            \"description\": \"Invalid request.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"401\": {\n            \"description\": \"Caller must authenticate.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"403\": {\n            \"description\": \"Caller does not have necessary permissions.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"404\": {\n            \"description\": \"Firm alert is not found.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"412\": {\n            \"description\": \"ETag provided in the If-Match header is out of date.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"428\": {\n            \"description\": \"Missing the \\\"If-Match\\\" header.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"500\": {\n            \"description\": \"Server error.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          }\n        }\n      }\n    },\n    \"/firms\": {\n      \"get\": {\n        \"tags\": [\n          \"Firms\"\n        ],\n        \"summary\": \"Get firms connected to the company.\",\n        \"parameters\": [\n          {\n            \"name\": \"$top\",\n            \"in\": \"query\",\n            \"description\": \"Show only the first n items, see [Paging - Top](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptiontop)\",\n            \"schema\": {\n              \"maximum\": 1000,\n              \"minimum\": 1,\n              \"type\": \"integer\",\n              \"default\": 50\n            },\n            \"example\": 50\n          },\n          {\n            \"name\": \"$skip\",\n            \"in\": \"query\",\n            \"description\": \"Skip the first n items, see [Paging - Skip](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionskip)\",\n            \"schema\": {\n              \"minimum\": 0,\n              \"type\": \"integer\",\n              \"default\": 0\n            },\n            \"example\": 0\n          },\n          {\n            \"name\": \"$filter\",\n            \"in\": \"query\",\n            \"description\": \"Filter items by property values, see [Filtering](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionfilter)<br /><br /><i>Available operations:</i> eq, ne, gt, ge, lt, le, in, and, or, not<br /><i>Available functions:</i> contains, startswith, endswith, indexof<br /><i>Available properties:</i> id, firmName, status, active, classification, leadSystemAdmin, offices, users, leadSystemAdmin/id, leadSystemAdmin/name, leadSystemAdmin/email, offices/item, offices/item/id, offices/item/name, offices/item/firmId, offices/item/active, offices/item/address, offices/item/city, offices/item/state, offices/item/provinceRegion, offices/item/country, offices/item/generalPhone, offices/item/systemAdmin, offices/item/vendors, offices/item/systemAdmin/id, offices/item/systemAdmin/name, offices/item/systemAdmin/email, offices/item/vendors/item, offices/item/vendors/item/id, offices/item/vendors/item/name, offices/item/vendors/item/number, users/item, users/item/id, users/item/firstName, users/item/lastName, users/item/email, users/item/status, users/item/systemRole, users/item/firmOfficeId, users/item/position, users/item/averageRating\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"nullable\": true\n            },\n            \"example\": \"id eq 111222\"\n          },\n          {\n            \"name\": \"$select\",\n            \"in\": \"query\",\n            \"description\": \"Select properties to be returned, see [Select](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionselect)\",\n            \"schema\": {\n              \"uniqueItems\": true,\n              \"type\": \"array\",\n              \"items\": {\n                \"enum\": [\n                  \"id\",\n                  \"firmName\",\n                  \"status\",\n                  \"active\",\n                  \"classification\",\n                  \"leadSystemAdmin\",\n                  \"offices\",\n                  \"users\"\n                ],\n                \"type\": \"string\"\n              }\n            }\n          },\n          {\n            \"name\": \"$orderby\",\n            \"in\": \"query\",\n            \"description\": \"Order items by property values, see [Sorting](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionorderby)\",\n            \"schema\": {\n              \"uniqueItems\": true,\n              \"type\": \"array\",\n              \"items\": {\n                \"enum\": [\n                  \"id\",\n                  \"firmName\",\n                  \"status\",\n                  \"active\",\n                  \"classification\",\n                  \"id desc\",\n                  \"firmName desc\",\n                  \"status desc\",\n                  \"active desc\",\n                  \"classification desc\"\n                ],\n                \"type\": \"string\"\n              }\n            }\n          },\n          {\n            \"name\": \"$expand\",\n            \"in\": \"query\",\n            \"description\": \"Expand a complex property, see [Expand](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionexpand)\",\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          },\n          {\n            \"name\": \"$count\",\n            \"in\": \"query\",\n            \"description\": \"Include count of items, see [Count](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptioncount)\",\n            \"schema\": {\n              \"type\": \"integer\"\n            }\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"A list of firms is successfully returned.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/FirmCollection\"\n                }\n              }\n            }\n          },\n          \"400\": {\n            \"description\": \"Invalid request parameters.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"401\": {\n            \"description\": \"Caller must authenticate.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"403\": {\n            \"description\": \"Caller does not have necessary permissions.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"500\": {\n            \"description\": \"Server error.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          }\n        }\n      }\n    },\n    \"/firms/{id}\": {\n      \"get\": {\n        \"tags\": [\n          \"Firms\"\n        ],\n        \"summary\": \"Get a firm profile.\",\n        \"parameters\": [\n          {\n            \"name\": \"id\",\n            \"in\": \"path\",\n            \"description\": \"The firm identifier.\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"integer\",\n              \"format\": \"int32\"\n            }\n          },\n          {\n            \"name\": \"If-None-Match\",\n            \"in\": \"header\",\n            \"description\": \"Executes a request only if the passed ETag doesn't equal the current resource ETag (i.e. resource hasn't changed).\",\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"A firm profile is successfully returned.\",\n            \"headers\": {\n              \"ETag\": {\n                \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\n                \"schema\": {\n                  \"type\": \"string\",\n                  \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"\n                }\n              }\n            },\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/FirmProfile\"\n                }\n              }\n            }\n          },\n          \"304\": {\n            \"description\": \"Firm is not modified.\"\n          },\n          \"400\": {\n            \"description\": \"Invalid request parameters.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"401\": {\n            \"description\": \"Caller must authenticate.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"403\": {\n            \"description\": \"Caller does not have necessary permissions.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"404\": {\n            \"description\": \"Firm is not found.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"500\": {\n            \"description\": \"Server error.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          }\n        }\n      },\n      \"patch\": {\n        \"tags\": [\n          \"Firms\"\n        ],\n        \"summary\": \"Update a firm profile.\",\n        \"parameters\": [\n          {\n            \"name\": \"id\",\n            \"in\": \"path\",\n            \"description\": \"The firm identifier.\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"integer\",\n              \"format\": \"int32\"\n            }\n          },\n          {\n            \"name\": \"If-Match\",\n            \"in\": \"header\",\n            \"description\": \"The ETag for the record to perform a concurrency check.\",\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          },\n          {\n            \"name\": \"Prefer\",\n            \"in\": \"header\",\n            \"description\": \"* return=representation: This is the default. The server includes an entity representing the current state of the resource. In response to a successful request a status of 200 would be returned.\\n* return=minimal: The response will not include the entity in the response. A successful request would result in a status of 204 to be returned.\",\n            \"schema\": {\n              \"type\": \"string\"\n            },\n            \"example\": \"return=representation\"\n          }\n        ],\n        \"requestBody\": {\n          \"description\": \"The changes to apply.\",\n          \"content\": {\n            \"application/json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/FirmProfilePatchRequest\"\n              }\n            }\n          },\n          \"required\": true\n        },\n        \"responses\": {\n          \"200\": {\n            \"description\": \"The firm profile was successfully updated.\",\n            \"headers\": {\n              \"ETag\": {\n                \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\n                \"schema\": {\n                  \"type\": \"string\",\n                  \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"\n                }\n              }\n            },\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/FirmProfile\"\n                }\n              }\n            }\n          },\n          \"204\": {\n            \"description\": \"The firm profile was successfully updated.\",\n            \"headers\": {\n              \"ETag\": {\n                \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\n                \"schema\": {\n                  \"type\": \"string\",\n                  \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"\n                }\n              }\n            }\n          },\n          \"400\": {\n            \"description\": \"Invalid request parameters.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"401\": {\n            \"description\": \"Caller must authenticate.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"403\": {\n            \"description\": \"Caller does not have necessary permissions.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"404\": {\n            \"description\": \"Firm profile is not found.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"412\": {\n            \"description\": \"ETag provided in the If-Match header is out of date.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"500\": {\n            \"description\": \"Server error.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          }\n        }\n      }\n    },\n    \"/firms/{id}/offices/{officeId}\": {\n      \"get\": {\n        \"tags\": [\n          \"Firms\"\n        ],\n        \"summary\": \"Get an office profile.\",\n        \"parameters\": [\n          {\n            \"name\": \"id\",\n            \"in\": \"path\",\n            \"description\": \"The firm identifier.\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"integer\",\n              \"format\": \"int32\"\n            }\n          },\n          {\n            \"name\": \"officeId\",\n            \"in\": \"path\",\n            \"description\": \"The firm office identifier.\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"integer\",\n              \"format\": \"int32\"\n            }\n          },\n          {\n            \"name\": \"If-None-Match\",\n            \"in\": \"header\",\n            \"description\": \"Executes a request only if the passed ETag doesn't equal the current resource ETag (i.e. resource hasn't changed).\",\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"A firm office profile is successfully returned.\",\n            \"headers\": {\n              \"ETag\": {\n                \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\n                \"schema\": {\n                  \"type\": \"string\",\n                  \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"\n                }\n              }\n            },\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/FirmOfficeProfile\"\n                }\n              }\n            }\n          },\n          \"304\": {\n            \"description\": \"Firm office is not modified.\"\n          },\n          \"400\": {\n            \"description\": \"Invalid request parameters.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"401\": {\n            \"description\": \"Caller must authenticate.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"403\": {\n            \"description\": \"Caller does not have necessary permissions.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"404\": {\n            \"description\": \"Firm office is not found.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"500\": {\n            \"description\": \"Server error.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          }\n        }\n      },\n      \"patch\": {\n        \"tags\": [\n          \"Firms\"\n        ],\n        \"summary\": \"Update an office profile.\",\n        \"parameters\": [\n          {\n            \"name\": \"id\",\n            \"in\": \"path\",\n            \"description\": \"The firm identifier.\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"integer\",\n              \"format\": \"int32\"\n            }\n          },\n          {\n            \"name\": \"officeId\",\n            \"in\": \"path\",\n            \"description\": \"The firm office identifier.\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"integer\",\n              \"format\": \"int32\"\n            }\n          },\n          {\n            \"name\": \"If-Match\",\n            \"in\": \"header\",\n            \"description\": \"The ETag for the record to perform a concurrency check.\",\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          },\n          {\n            \"name\": \"Prefer\",\n            \"in\": \"header\",\n            \"description\": \"* return=representation: This is the default. The server includes an entity representing the current state of the resource. In response to a successful request a status of 200 would be returned.\\n* return=minimal: The response will not include the entity in the response. A successful request would result in a status of 204 to be returned.\",\n            \"schema\": {\n              \"type\": \"string\"\n            },\n            \"example\": \"return=representation\"\n          }\n        ],\n        \"requestBody\": {\n          \"description\": \"The changes to apply.\",\n          \"content\": {\n            \"application/json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/FirmOfficeProfilePatchRequest\"\n              }\n            }\n          },\n          \"required\": true\n        },\n        \"responses\": {\n          \"200\": {\n            \"description\": \"The firm office profile is successfully updated.\",\n            \"headers\": {\n              \"ETag\": {\n                \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\n                \"schema\": {\n                  \"type\": \"string\",\n                  \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"\n                }\n              }\n            },\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/FirmOfficeProfile\"\n                }\n              }\n            }\n          },\n          \"204\": {\n            \"description\": \"The firm office profile is successfully updated.\",\n            \"headers\": {\n              \"ETag\": {\n                \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\n                \"schema\": {\n                  \"type\": \"string\",\n                  \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"\n                }\n              }\n            }\n          },\n          \"400\": {\n            \"description\": \"invalid request parameters.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"401\": {\n            \"description\": \"Caller must authenticate.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"403\": {\n            \"description\": \"Caller does not have necessary permissions.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"404\": {\n            \"description\": \"Firm office is not found.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"412\": {\n            \"description\": \"ETag provided in the If-Match header is out of date.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"500\": {\n            \"description\": \"Server error.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          }\n        }\n      }\n    },\n    \"/portfolios\": {\n      \"get\": {\n        \"tags\": [\n          \"Portfolios\"\n        ],\n        \"summary\": \"Get firm portfolios for a firm connected to the company.\",\n        \"parameters\": [\n          {\n            \"name\": \"$top\",\n            \"in\": \"query\",\n            \"description\": \"Show only the first n items, see [Paging - Top](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptiontop)\",\n            \"schema\": {\n              \"maximum\": 1000,\n              \"minimum\": 1,\n              \"type\": \"integer\",\n              \"default\": 50\n            },\n            \"example\": 50\n          },\n          {\n            \"name\": \"$skip\",\n            \"in\": \"query\",\n            \"description\": \"Skip the first n items, see [Paging - Skip](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionskip)\",\n            \"schema\": {\n              \"minimum\": 0,\n              \"type\": \"integer\",\n              \"default\": 0\n            },\n            \"example\": 0\n          },\n          {\n            \"name\": \"$filter\",\n            \"in\": \"query\",\n            \"description\": \"Filter items by property values, see [Filtering](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionfilter)<br /><br /><i>Available operations:</i> eq, ne, gt, ge, lt, le, in, and, or, not<br /><i>Available functions:</i> contains, startswith, endswith, indexof<br /><i>Available properties:</i> id, firmId, active, name, description, portfolioManagementOption, includeTax, portfolioDateMode, startDateTime, endDateTime, totalFees, totalFeesAuditAction, totalFeesRejectDescription, totalFeesEmailAlertPct, totalExpenses, totalExpensesAuditAction, totalExpensesRejectDescription, totalCosts, totalCostsAuditAction, totalCostsRejectDescription, totalCostsEmailAlertPct, createdDateTime, createdBy, lastUpdatedDateTime, lastUpdatedBy, totalFees/value, totalFees/currency, totalExpenses/value, totalExpenses/currency, totalCosts/value, totalCosts/currency, createdBy/id, createdBy/name, createdBy/email, lastUpdatedBy/id, lastUpdatedBy/name, lastUpdatedBy/email\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"nullable\": true\n            },\n            \"example\": \"id eq 111222\"\n          },\n          {\n            \"name\": \"$select\",\n            \"in\": \"query\",\n            \"description\": \"Select properties to be returned, see [Select](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionselect)\",\n            \"schema\": {\n              \"uniqueItems\": true,\n              \"type\": \"array\",\n              \"items\": {\n                \"enum\": [\n                  \"id\",\n                  \"firmId\",\n                  \"active\",\n                  \"name\",\n                  \"description\",\n                  \"portfolioManagementOption\",\n                  \"includeTax\",\n                  \"portfolioDateMode\",\n                  \"startDateTime\",\n                  \"endDateTime\",\n                  \"totalFees\",\n                  \"totalFeesAuditAction\",\n                  \"totalFeesRejectDescription\",\n                  \"totalFeesEmailAlertPct\",\n                  \"totalExpenses\",\n                  \"totalExpensesAuditAction\",\n                  \"totalExpensesRejectDescription\",\n                  \"totalCosts\",\n                  \"totalCostsAuditAction\",\n                  \"totalCostsRejectDescription\",\n                  \"totalCostsEmailAlertPct\",\n                  \"createdDateTime\",\n                  \"createdBy\",\n                  \"lastUpdatedDateTime\",\n                  \"lastUpdatedBy\"\n                ],\n                \"type\": \"string\"\n              }\n            }\n          },\n          {\n            \"name\": \"$orderby\",\n            \"in\": \"query\",\n            \"description\": \"Order items by property values, see [Sorting](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionorderby)\",\n            \"schema\": {\n              \"uniqueItems\": true,\n              \"type\": \"array\",\n              \"items\": {\n                \"enum\": [\n                  \"id\",\n                  \"firmId\",\n                  \"active\",\n                  \"name\",\n                  \"description\",\n                  \"portfolioManagementOption\",\n                  \"includeTax\",\n                  \"portfolioDateMode\",\n                  \"startDateTime\",\n                  \"endDateTime\",\n                  \"totalFeesAuditAction\",\n                  \"totalFeesRejectDescription\",\n                  \"totalFeesEmailAlertPct\",\n                  \"totalExpensesAuditAction\",\n                  \"totalExpensesRejectDescription\",\n                  \"totalCostsAuditAction\",\n                  \"totalCostsRejectDescription\",\n                  \"totalCostsEmailAlertPct\",\n                  \"createdDateTime\",\n                  \"lastUpdatedDateTime\",\n                  \"id desc\",\n                  \"firmId desc\",\n                  \"active desc\",\n                  \"name desc\",\n                  \"description desc\",\n                  \"portfolioManagementOption desc\",\n                  \"includeTax desc\",\n                  \"portfolioDateMode desc\",\n                  \"startDateTime desc\",\n                  \"endDateTime desc\",\n                  \"totalFeesAuditAction desc\",\n                  \"totalFeesRejectDescription desc\",\n                  \"totalFeesEmailAlertPct desc\",\n                  \"totalExpensesAuditAction desc\",\n                  \"totalExpensesRejectDescription desc\",\n                  \"totalCostsAuditAction desc\",\n                  \"totalCostsRejectDescription desc\",\n                  \"totalCostsEmailAlertPct desc\",\n                  \"createdDateTime desc\",\n                  \"lastUpdatedDateTime desc\"\n                ],\n                \"type\": \"string\"\n              }\n            }\n          },\n          {\n            \"name\": \"$expand\",\n            \"in\": \"query\",\n            \"description\": \"Expand a complex property, see [Expand](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionexpand)\",\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          },\n          {\n            \"name\": \"$count\",\n            \"in\": \"query\",\n            \"description\": \"Include count of items, see [Count](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptioncount)\",\n            \"schema\": {\n              \"type\": \"integer\"\n            }\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"Successful operation.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/FirmPortfolioCollection\"\n                }\n              }\n            }\n          },\n          \"401\": {\n            \"description\": \"Caller must authenticate.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"403\": {\n            \"description\": \"Caller does not have necessary permissions.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"500\": {\n            \"description\": \"Server error.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"400\": {\n            \"description\": \"FirmId is not provided in the request filter or it identifies a firm not connected to the company or there are some other invalid request parameters.\"\n          }\n        }\n      },\n      \"post\": {\n        \"tags\": [\n          \"Portfolios\"\n        ],\n        \"summary\": \"Create a new firm portfolio record.\",\n        \"parameters\": [\n          {\n            \"name\": \"Prefer\",\n            \"in\": \"header\",\n            \"description\": \"* return=representation: This is the default. The server includes an entity representing the current state of the resource. In response to a successful request a status of 201 would be returned.\\n* return=minimal: The response will not include the entity in the response. A successful request would result in a status of 204 to be returned.\",\n            \"schema\": {\n              \"type\": \"string\"\n            },\n            \"example\": \"return=representation\"\n          }\n        ],\n        \"requestBody\": {\n          \"description\": \"The new firm portfolio.\",\n          \"content\": {\n            \"application/json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/FirmPortfolioCreateRequest\"\n              }\n            }\n          },\n          \"required\": true\n        },\n        \"responses\": {\n          \"201\": {\n            \"description\": \"Record was created successfully.\",\n            \"headers\": {\n              \"ETag\": {\n                \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\n                \"schema\": {\n                  \"type\": \"string\",\n                  \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"\n                }\n              },\n              \"Location\": {\n                \"description\": \"URL to object.\",\n                \"schema\": {\n                  \"type\": \"string\",\n                  \"description\": \"URL to object.\"\n                }\n              }\n            },\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/FirmPortfolio\"\n                }\n              }\n            }\n          },\n          \"204\": {\n            \"description\": \"Record was created successfully.\",\n            \"headers\": {\n              \"ETag\": {\n                \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\n                \"schema\": {\n                  \"type\": \"string\",\n                  \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"\n                }\n              }\n            }\n          },\n          \"400\": {\n            \"description\": \"invalid request parameters.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"401\": {\n            \"description\": \"Caller must authenticate.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"403\": {\n            \"description\": \"Caller does not have necessary permissions.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"500\": {\n            \"description\": \"Server error.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          }\n        }\n      }\n    },\n    \"/portfolios/{id}\": {\n      \"get\": {\n        \"tags\": [\n          \"Portfolios\"\n        ],\n        \"summary\": \"Retrieve information about an existing firm matter portfolio based on the portfolio Tracker ID.\",\n        \"parameters\": [\n          {\n            \"name\": \"id\",\n            \"in\": \"path\",\n            \"description\": \"The firm portfolio identifier.\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"integer\",\n              \"format\": \"int32\"\n            }\n          },\n          {\n            \"name\": \"If-None-Match\",\n            \"in\": \"header\",\n            \"description\": \"Executes a request only if the passed ETag doesn't equal the current resource ETag (i.e. resource hasn't changed).\",\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"Successful operation.\",\n            \"headers\": {\n              \"ETag\": {\n                \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\n                \"schema\": {\n                  \"type\": \"string\",\n                  \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"\n                }\n              }\n            },\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/FirmPortfolio\"\n                }\n              }\n            }\n          },\n          \"304\": {\n            \"description\": \"Firm portfolio is not modified.\"\n          },\n          \"400\": {\n            \"description\": \"Invalid request parameters.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"401\": {\n            \"description\": \"Caller must authenticate.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"403\": {\n            \"description\": \"Caller does not have necessary permissions.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"404\": {\n            \"description\": \"Firm portfolio is not found.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"500\": {\n            \"description\": \"Server error.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          }\n        }\n      },\n      \"put\": {\n        \"tags\": [\n          \"Portfolios\"\n        ],\n        \"summary\": \"Update an existing portfolio record identified by the portfolio Tracker ID.\",\n        \"parameters\": [\n          {\n            \"name\": \"id\",\n            \"in\": \"path\",\n            \"description\": \"The firm portfolio identifier.\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"integer\",\n              \"format\": \"int32\"\n            }\n          },\n          {\n            \"name\": \"If-Match\",\n            \"in\": \"header\",\n            \"description\": \"The ETag for the record to perform a concurrency check.\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          },\n          {\n            \"name\": \"Prefer\",\n            \"in\": \"header\",\n            \"description\": \"* return=representation: This is the default. The server includes an entity representing the current state of the resource. In response to a successful request a status of 200 would be returned.\\n* return=minimal: The response will not include the entity in the response. A successful request would result in a status of 204 to be returned.\",\n            \"schema\": {\n              \"type\": \"string\"\n            },\n            \"example\": \"return=representation\"\n          }\n        ],\n        \"requestBody\": {\n          \"description\": \"The changes to apply.\",\n          \"content\": {\n            \"application/json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/FirmPortfolioUpdateRequest\"\n              }\n            }\n          },\n          \"required\": true\n        },\n        \"responses\": {\n          \"200\": {\n            \"description\": \"The portfolio was successfully updated.\",\n            \"headers\": {\n              \"ETag\": {\n                \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\n                \"schema\": {\n                  \"type\": \"string\",\n                  \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"\n                }\n              }\n            },\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/FirmPortfolio\"\n                }\n              }\n            }\n          },\n          \"204\": {\n            \"description\": \"The portfolio was successfully updated.\",\n            \"headers\": {\n              \"ETag\": {\n                \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\n                \"schema\": {\n                  \"type\": \"string\",\n                  \"description\": \"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"\n                }\n              }\n            }\n          },\n          \"400\": {\n            \"description\": \"Invalid request parameters.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"401\": {\n            \"description\": \"Caller must authenticate.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"403\": {\n            \"description\": \"Caller does not have necessary permissions.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"404\": {\n            \"description\": \"Firm portfolio is not found.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"412\": {\n            \"description\": \"ETag provided in the If-Match header is out of date.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"428\": {\n            \"description\": \"Missing the \\\"If-Match\\\" header.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          },\n          \"500\": {\n            \"description\": \"Server error.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/ErrorResponse\"\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  },\n  \"components\": {\n    \"schemas\": {\n      \"AccrualsReqt\": {\n        \"enum\": [\n          \"Null\",\n          \"Optional\",\n          \"Never\"\n        ],\n        \"type\": \"string\"\n      },\n      \"Address\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"street1\": {\n            \"maxLength\": 150,\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"street2\": {\n            \"maxLength\": 150,\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"city\": {\n            \"maxLength\": 65,\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"country\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"state\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"provinceRegion\": {\n            \"maxLength\": 100,\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"zipCode\": {\n            \"maxLength\": 25,\n            \"type\": \"string\",\n            \"nullable\": true\n          }\n        },\n        \"additionalProperties\": false\n      },\n      \"Alert\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"id\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\"\n          },\n          \"firmId\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\"\n          },\n          \"description\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"linkUrl\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"createdDateTime\": {\n            \"type\": \"string\",\n            \"format\": \"date-time\",\n            \"nullable\": true\n          },\n          \"createdByUser\": {\n            \"$ref\": \"#/components/schemas/Contact\"\n          },\n          \"lastModifiedDateTime\": {\n            \"type\": \"string\",\n            \"format\": \"date-time\",\n            \"nullable\": true\n          },\n          \"lastModifiedByUser\": {\n            \"$ref\": \"#/components/schemas/Contact\"\n          }\n        },\n        \"additionalProperties\": false\n      },\n      \"AlertCollection\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"value\": {\n            \"type\": \"array\",\n            \"items\": {\n              \"$ref\": \"#/components/schemas/Alert\"\n            },\n            \"nullable\": true\n          }\n        },\n        \"additionalProperties\": false\n      },\n      \"BillingAddress\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"street1\": {\n            \"maxLength\": 150,\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"street2\": {\n            \"maxLength\": 150,\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"street3\": {\n            \"maxLength\": 150,\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"street4\": {\n            \"maxLength\": 150,\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"street5\": {\n            \"maxLength\": 150,\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"street6\": {\n            \"maxLength\": 150,\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"city\": {\n            \"maxLength\": 65,\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"country\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"state\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"provinceRegion\": {\n            \"maxLength\": 100,\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"zipCode\": {\n            \"maxLength\": 25,\n            \"type\": \"string\",\n            \"nullable\": true\n          }\n        },\n        \"additionalProperties\": false\n      },\n      \"Contact\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"id\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\"\n          },\n          \"name\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"email\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          }\n        },\n        \"additionalProperties\": false\n      },\n      \"CurrencyField\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"value\": {\n            \"type\": \"number\",\n            \"format\": \"double\",\n            \"nullable\": true\n          },\n          \"currency\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          }\n        },\n        \"additionalProperties\": false\n      },\n      \"CustomFieldType\": {\n        \"enum\": [\n          \"Text\",\n          \"File\"\n        ],\n        \"type\": \"string\"\n      },\n      \"EFile\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"id\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\"\n          },\n          \"fileName\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"fileSize\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\"\n          }\n        },\n        \"additionalProperties\": false\n      },\n      \"Error\": {\n        \"required\": [\n          \"code\",\n          \"message\"\n        ],\n        \"type\": \"object\",\n        \"properties\": {\n          \"code\": {\n            \"type\": \"string\"\n          },\n          \"message\": {\n            \"type\": \"string\"\n          },\n          \"target\": {\n            \"type\": \"string\"\n          },\n          \"details\": {\n            \"type\": \"array\",\n            \"items\": {\n              \"required\": [\n                \"code\",\n                \"message\"\n              ],\n              \"type\": \"object\",\n              \"properties\": {\n                \"code\": {\n                  \"type\": \"string\"\n                },\n                \"message\": {\n                  \"type\": \"string\"\n                },\n                \"target\": {\n                  \"type\": \"string\"\n                }\n              }\n            }\n          },\n          \"innerError\": {\n            \"required\": [\n              \"code\",\n              \"message\"\n            ],\n            \"type\": \"object\",\n            \"properties\": {\n              \"code\": {\n                \"type\": \"string\"\n              },\n              \"message\": {\n                \"type\": \"string\"\n              }\n            }\n          }\n        },\n        \"additionalProperties\": false\n      },\n      \"ErrorResponse\": {\n        \"required\": [\n          \"error\"\n        ],\n        \"type\": \"object\",\n        \"properties\": {\n          \"error\": {\n            \"$ref\": \"#/components/schemas/Error\"\n          }\n        },\n        \"additionalProperties\": false\n      },\n      \"EvaluationReqt\": {\n        \"enum\": [\n          \"Null\",\n          \"Optional\",\n          \"Never\"\n        ],\n        \"type\": \"string\"\n      },\n      \"Firm\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"id\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\"\n          },\n          \"firmName\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"status\": {\n            \"$ref\": \"#/components/schemas/FirmInfoStatus\"\n          },\n          \"active\": {\n            \"$ref\": \"#/components/schemas/FirmActiveStatus\"\n          },\n          \"classification\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"leadSystemAdmin\": {\n            \"$ref\": \"#/components/schemas/Contact\"\n          },\n          \"offices\": {\n            \"type\": \"array\",\n            \"items\": {\n              \"$ref\": \"#/components/schemas/FirmOffice\"\n            },\n            \"nullable\": true\n          },\n          \"users\": {\n            \"type\": \"array\",\n            \"items\": {\n              \"$ref\": \"#/components/schemas/FirmUser\"\n            },\n            \"nullable\": true\n          }\n        },\n        \"additionalProperties\": false\n      },\n      \"FirmActiveStatus\": {\n        \"enum\": [\n          \"Active\",\n          \"Restricted\",\n          \"Inactive\"\n        ],\n        \"type\": \"string\"\n      },\n      \"FirmCollection\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"value\": {\n            \"type\": \"array\",\n            \"items\": {\n              \"$ref\": \"#/components/schemas/Firm\"\n            },\n            \"nullable\": true\n          }\n        },\n        \"additionalProperties\": false\n      },\n      \"FirmCustomField\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"id\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\"\n          },\n          \"name\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"type\": {\n            \"$ref\": \"#/components/schemas/CustomFieldType\"\n          },\n          \"isEditable\": {\n            \"type\": \"boolean\"\n          },\n          \"textValue\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"fileValue\": {\n            \"$ref\": \"#/components/schemas/EFile\"\n          }\n        },\n        \"additionalProperties\": false\n      },\n      \"FirmInfoStatus\": {\n        \"enum\": [\n          \"Live\",\n          \"Memo\"\n        ],\n        \"type\": \"string\"\n      },\n      \"FirmOffice\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"id\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\"\n          },\n          \"name\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"firmId\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\"\n          },\n          \"active\": {\n            \"type\": \"boolean\"\n          },\n          \"address\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"city\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"state\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"provinceRegion\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"country\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"generalPhone\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"systemAdmin\": {\n            \"$ref\": \"#/components/schemas/Contact\"\n          },\n          \"vendors\": {\n            \"type\": \"array\",\n            \"items\": {\n              \"$ref\": \"#/components/schemas/FirmOfficeVendorNumber\"\n            },\n            \"nullable\": true\n          }\n        },\n        \"additionalProperties\": false\n      },\n      \"FirmOfficeProfile\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"id\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\"\n          },\n          \"firmId\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\"\n          },\n          \"active\": {\n            \"type\": \"boolean\"\n          },\n          \"officeName\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"address\": {\n            \"$ref\": \"#/components/schemas/Address\"\n          },\n          \"generalPhone\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"generalFax\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"taxId\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"vatId\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"gstId\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"hstId\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"pstId\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"qstId\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"salesTaxId\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"withholdingTaxId\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"managingPartner\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"representativeClients\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"isSendingLedes\": {\n            \"type\": \"boolean\"\n          },\n          \"officeSize\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"officeAdmin\": {\n            \"$ref\": \"#/components/schemas/Contact\"\n          },\n          \"backupOfficeAdmin\": {\n            \"$ref\": \"#/components/schemas/Contact\"\n          },\n          \"baseCurrency\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"practiceAreas\": {\n            \"type\": \"array\",\n            \"items\": {\n              \"type\": \"string\"\n            },\n            \"nullable\": true\n          },\n          \"billingAddress\": {\n            \"$ref\": \"#/components/schemas/BillingAddress\"\n          },\n          \"vendors\": {\n            \"type\": \"array\",\n            \"items\": {\n              \"$ref\": \"#/components/schemas/FirmOfficeVendorNumber\"\n            },\n            \"nullable\": true\n          },\n          \"notes\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"invoiceCurrenciesAllowed\": {\n            \"$ref\": \"#/components/schemas/InvoiceCurrenciesAllowed\"\n          },\n          \"invoiceCurrencies\": {\n            \"type\": \"array\",\n            \"items\": {\n              \"type\": \"string\"\n            },\n            \"nullable\": true\n          },\n          \"invoiceFormatsAllowed\": {\n            \"$ref\": \"#/components/schemas/InvoiceFormatsAllowed\"\n          },\n          \"ledesFormatsAllowed\": {\n            \"$ref\": \"#/components/schemas/LedesFormatsAllowed\"\n          },\n          \"invoiceTaxTypeAllowed\": {\n            \"$ref\": \"#/components/schemas/InvoiceTaxTypeAllowed\"\n          }\n        },\n        \"additionalProperties\": false\n      },\n      \"FirmOfficeProfilePatchRequest\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"vendors\": {\n            \"type\": \"array\",\n            \"items\": {\n              \"$ref\": \"#/components/schemas/FirmOfficeVendorNumber\"\n            },\n            \"description\": \"The updated Vendor information, given as a list of objects providing an id or name for\\r\\nthe field to be updated.\",\n            \"nullable\": true,\n            \"example\": [\n              {\n                \"name\": \"Vendor ID\",\n                \"number\": \"1234\"\n              }\n            ]\n          },\n          \"notes\": {\n            \"maxLength\": 200,\n            \"type\": \"string\",\n            \"description\": \"The updated company-specific firm office notes.\",\n            \"nullable\": true\n          },\n          \"invoiceCurrenciesAllowed\": {\n            \"$ref\": \"#/components/schemas/InvoiceCurrenciesAllowed\"\n          },\n          \"invoiceCurrencies\": {\n            \"type\": \"array\",\n            \"items\": {\n              \"type\": \"string\"\n            },\n            \"description\": \"If given, replace the collection of allowed currencies.\\r\\n\\r\\nValues must be provided if and only if InvoiceCurrenciesAllowed\\r\\nis set to SpecifiedCurrencies.\",\n            \"nullable\": true\n          },\n          \"invoiceFormatsAllowed\": {\n            \"$ref\": \"#/components/schemas/InvoiceFormatsAllowed\"\n          },\n          \"ledesFormatsAllowed\": {\n            \"$ref\": \"#/components/schemas/LedesFormatsAllowed\"\n          },\n          \"invoiceTaxTypeAllowed\": {\n            \"$ref\": \"#/components/schemas/InvoiceTaxTypeAllowed\"\n          }\n        },\n        \"additionalProperties\": false,\n        \"description\": \"A request to perform an update on non-null fields.\"\n      },\n      \"FirmOfficeSummary\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"id\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\"\n          },\n          \"name\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          }\n        },\n        \"additionalProperties\": false\n      },\n      \"FirmOfficeVendorNumber\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"id\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\"\n          },\n          \"name\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"number\": {\n            \"maxLength\": 200,\n            \"type\": \"string\",\n            \"nullable\": true\n          }\n        },\n        \"additionalProperties\": false\n      },\n      \"FirmPortfolio\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"id\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\"\n          },\n          \"firmId\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\"\n          },\n          \"active\": {\n            \"type\": \"boolean\"\n          },\n          \"name\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"description\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"portfolioManagementOption\": {\n            \"$ref\": \"#/components/schemas/PortfolioManagementOption\"\n          },\n          \"includeTax\": {\n            \"type\": \"boolean\"\n          },\n          \"portfolioDateMode\": {\n            \"$ref\": \"#/components/schemas/PortfolioDateMode\"\n          },\n          \"startDateTime\": {\n            \"type\": \"string\",\n            \"format\": \"date-time\",\n            \"nullable\": true\n          },\n          \"endDateTime\": {\n            \"type\": \"string\",\n            \"format\": \"date-time\",\n            \"nullable\": true\n          },\n          \"totalFees\": {\n            \"$ref\": \"#/components/schemas/CurrencyField\"\n          },\n          \"totalFeesAuditAction\": {\n            \"$ref\": \"#/components/schemas/PortfolioAuditAction\"\n          },\n          \"totalFeesRejectDescription\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"totalFeesEmailAlertPct\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\",\n            \"nullable\": true\n          },\n          \"totalExpenses\": {\n            \"$ref\": \"#/components/schemas/CurrencyField\"\n          },\n          \"totalExpensesAuditAction\": {\n            \"$ref\": \"#/components/schemas/PortfolioAuditAction\"\n          },\n          \"totalExpensesRejectDescription\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"totalCosts\": {\n            \"$ref\": \"#/components/schemas/CurrencyField\"\n          },\n          \"totalCostsAuditAction\": {\n            \"$ref\": \"#/components/schemas/PortfolioAuditAction\"\n          },\n          \"totalCostsRejectDescription\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"totalCostsEmailAlertPct\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\",\n            \"nullable\": true\n          },\n          \"createdDateTime\": {\n            \"type\": \"string\",\n            \"format\": \"date-time\",\n            \"nullable\": true\n          },\n          \"createdBy\": {\n            \"$ref\": \"#/components/schemas/Contact\"\n          },\n          \"lastUpdatedDateTime\": {\n            \"type\": \"string\",\n            \"format\": \"date-time\",\n            \"nullable\": true\n          },\n          \"lastUpdatedBy\": {\n            \"$ref\": \"#/components/schemas/Contact\"\n          }\n        },\n        \"additionalProperties\": false\n      },\n      \"FirmPortfolioCollection\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"value\": {\n            \"type\": \"array\",\n            \"items\": {\n              \"$ref\": \"#/components/schemas/FirmPortfolio\"\n            },\n            \"nullable\": true\n          }\n        },\n        \"additionalProperties\": false\n      },\n      \"FirmPortfolioCreateRequest\": {\n        \"required\": [\n          \"firmId\",\n          \"name\"\n        ],\n        \"type\": \"object\",\n        \"properties\": {\n          \"active\": {\n            \"type\": \"boolean\"\n          },\n          \"name\": {\n            \"maxLength\": 50,\n            \"type\": \"string\"\n          },\n          \"description\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"portfolioManagementOption\": {\n            \"$ref\": \"#/components/schemas/PortfolioManagementOption\"\n          },\n          \"includeTax\": {\n            \"type\": \"boolean\"\n          },\n          \"portfolioDateMode\": {\n            \"$ref\": \"#/components/schemas/PortfolioDateMode\"\n          },\n          \"startDateTime\": {\n            \"type\": \"string\",\n            \"format\": \"date-time\",\n            \"nullable\": true\n          },\n          \"endDateTime\": {\n            \"type\": \"string\",\n            \"format\": \"date-time\",\n            \"nullable\": true\n          },\n          \"totalFees\": {\n            \"type\": \"number\",\n            \"format\": \"double\",\n            \"nullable\": true\n          },\n          \"totalFeesAuditAction\": {\n            \"$ref\": \"#/components/schemas/PortfolioAuditAction\"\n          },\n          \"totalFeesRejectDescription\": {\n            \"maxLength\": 1000,\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"totalFeesEmailAlertPct\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\",\n            \"nullable\": true\n          },\n          \"totalExpenses\": {\n            \"type\": \"number\",\n            \"format\": \"double\",\n            \"nullable\": true\n          },\n          \"totalExpensesAuditAction\": {\n            \"$ref\": \"#/components/schemas/PortfolioAuditAction\"\n          },\n          \"totalExpensesRejectDescription\": {\n            \"maxLength\": 1000,\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"totalCosts\": {\n            \"type\": \"number\",\n            \"format\": \"double\",\n            \"nullable\": true\n          },\n          \"totalCostsAuditAction\": {\n            \"$ref\": \"#/components/schemas/PortfolioAuditAction\"\n          },\n          \"totalCostsRejectDescription\": {\n            \"maxLength\": 1000,\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"totalCostsEmailAlertPct\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\",\n            \"nullable\": true\n          },\n          \"firmId\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\"\n          }\n        },\n        \"additionalProperties\": false\n      },\n      \"FirmPortfolioUpdateRequest\": {\n        \"required\": [\n          \"name\"\n        ],\n        \"type\": \"object\",\n        \"properties\": {\n          \"active\": {\n            \"type\": \"boolean\"\n          },\n          \"name\": {\n            \"maxLength\": 50,\n            \"type\": \"string\"\n          },\n          \"description\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"portfolioManagementOption\": {\n            \"$ref\": \"#/components/schemas/PortfolioManagementOption\"\n          },\n          \"includeTax\": {\n            \"type\": \"boolean\"\n          },\n          \"portfolioDateMode\": {\n            \"$ref\": \"#/components/schemas/PortfolioDateMode\"\n          },\n          \"startDateTime\": {\n            \"type\": \"string\",\n            \"format\": \"date-time\",\n            \"nullable\": true\n          },\n          \"endDateTime\": {\n            \"type\": \"string\",\n            \"format\": \"date-time\",\n            \"nullable\": true\n          },\n          \"totalFees\": {\n            \"type\": \"number\",\n            \"format\": \"double\",\n            \"nullable\": true\n          },\n          \"totalFeesAuditAction\": {\n            \"$ref\": \"#/components/schemas/PortfolioAuditAction\"\n          },\n          \"totalFeesRejectDescription\": {\n            \"maxLength\": 1000,\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"totalFeesEmailAlertPct\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\",\n            \"nullable\": true\n          },\n          \"totalExpenses\": {\n            \"type\": \"number\",\n            \"format\": \"double\",\n            \"nullable\": true\n          },\n          \"totalExpensesAuditAction\": {\n            \"$ref\": \"#/components/schemas/PortfolioAuditAction\"\n          },\n          \"totalExpensesRejectDescription\": {\n            \"maxLength\": 1000,\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"totalCosts\": {\n            \"type\": \"number\",\n            \"format\": \"double\",\n            \"nullable\": true\n          },\n          \"totalCostsAuditAction\": {\n            \"$ref\": \"#/components/schemas/PortfolioAuditAction\"\n          },\n          \"totalCostsRejectDescription\": {\n            \"maxLength\": 1000,\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"totalCostsEmailAlertPct\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\",\n            \"nullable\": true\n          }\n        },\n        \"additionalProperties\": false\n      },\n      \"FirmProfile\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"id\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\"\n          },\n          \"globallyActive\": {\n            \"type\": \"boolean\"\n          },\n          \"active\": {\n            \"$ref\": \"#/components/schemas/FirmActiveStatus\"\n          },\n          \"status\": {\n            \"$ref\": \"#/components/schemas/FirmInfoStatus\"\n          },\n          \"fullFirmName\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"customFirmName\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"serviceProviderType\": {\n            \"$ref\": \"#/components/schemas/ServiceProviderType\"\n          },\n          \"firmHistory\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"website\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"mainOffice\": {\n            \"$ref\": \"#/components/schemas/FirmOfficeSummary\"\n          },\n          \"previousOrgNames\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"numberOfEmployees\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\",\n            \"nullable\": true\n          },\n          \"leadSystemAdmin\": {\n            \"$ref\": \"#/components/schemas/Contact\"\n          },\n          \"backupSystemAdmin\": {\n            \"$ref\": \"#/components/schemas/Contact\"\n          },\n          \"primaryBillingContact\": {\n            \"$ref\": \"#/components/schemas/Contact\"\n          },\n          \"backupBillingContact\": {\n            \"$ref\": \"#/components/schemas/Contact\"\n          },\n          \"firmClassification\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"matterBudgetRequirement\": {\n            \"$ref\": \"#/components/schemas/MatterBudgetReqt\"\n          },\n          \"accrualAndUnbilledAmountsRequirement\": {\n            \"$ref\": \"#/components/schemas/AccrualsReqt\"\n          },\n          \"evaluationRequirement\": {\n            \"$ref\": \"#/components/schemas/EvaluationReqt\"\n          },\n          \"invoiceCurrenciesAllowed\": {\n            \"$ref\": \"#/components/schemas/InvoiceCurrenciesAllowed\"\n          },\n          \"invoiceCurrencies\": {\n            \"type\": \"array\",\n            \"items\": {\n              \"type\": \"string\"\n            },\n            \"nullable\": true\n          },\n          \"invoiceFormatsAllowed\": {\n            \"$ref\": \"#/components/schemas/InvoiceFormatsAllowed\"\n          },\n          \"ledesFormatsAllowed\": {\n            \"$ref\": \"#/components/schemas/LedesFormatsAllowed\"\n          },\n          \"invoiceTaxTypeAllowed\": {\n            \"$ref\": \"#/components/schemas/InvoiceTaxTypeAllowed\"\n          },\n          \"notes\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"firmCustomFields\": {\n            \"type\": \"array\",\n            \"items\": {\n              \"$ref\": \"#/components/schemas/FirmCustomField\"\n            },\n            \"nullable\": true\n          }\n        },\n        \"additionalProperties\": false\n      },\n      \"FirmProfilePatchRequest\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"active\": {\n            \"$ref\": \"#/components/schemas/FirmActiveStatus\"\n          },\n          \"customFirmName\": {\n            \"maxLength\": 20,\n            \"minLength\": 1,\n            \"type\": \"string\",\n            \"description\": \"If given, change the company's name for this form.\",\n            \"nullable\": true\n          },\n          \"firmClassification\": {\n            \"minLength\": 1,\n            \"type\": \"string\",\n            \"description\": \"If given, update the company's firm classification.\",\n            \"nullable\": true\n          },\n          \"matterBudgetRequirement\": {\n            \"$ref\": \"#/components/schemas/MatterBudgetReqt\"\n          },\n          \"accrualAndUnbilledAmountsRequirement\": {\n            \"$ref\": \"#/components/schemas/AccrualsReqt\"\n          },\n          \"evaluationRequirement\": {\n            \"$ref\": \"#/components/schemas/EvaluationReqt\"\n          },\n          \"invoiceCurrenciesAllowed\": {\n            \"$ref\": \"#/components/schemas/InvoiceCurrenciesAllowed\"\n          },\n          \"invoiceCurrencies\": {\n            \"type\": \"array\",\n            \"items\": {\n              \"type\": \"string\"\n            },\n            \"description\": \"If given, replace the collection of allowed currencies.\\r\\n\\r\\nValues must be provided if and only if InvoiceCurrenciesAllowed\\r\\nis set to SpecifiedCurrencies.\",\n            \"nullable\": true\n          },\n          \"invoiceFormatsAllowed\": {\n            \"$ref\": \"#/components/schemas/InvoiceFormatsAllowed\"\n          },\n          \"ledesFormatsAllowed\": {\n            \"$ref\": \"#/components/schemas/LedesFormatsAllowed\"\n          },\n          \"invoiceTaxTypeAllowed\": {\n            \"$ref\": \"#/components/schemas/InvoiceTaxTypeAllowed\"\n          },\n          \"notes\": {\n            \"maxLength\": 500,\n            \"type\": \"string\",\n            \"description\": \"If given, update the company's firm notes.\",\n            \"nullable\": true\n          },\n          \"firmCustomFields\": {\n            \"type\": \"array\",\n            \"items\": {\n              \"$ref\": \"#/components/schemas/FirmCustomField\"\n            },\n            \"description\": \"Replace the custom field values for this firm with new values. Omitted values will\\r\\nbe deleted.\\r\\n\\r\\nCustom fields are matched on either database field ID or the unique field name.\",\n            \"nullable\": true\n          }\n        },\n        \"additionalProperties\": false,\n        \"description\": \"A request to perform an update on non-null fields.\"\n      },\n      \"FirmUser\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"id\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\"\n          },\n          \"firstName\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"lastName\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"email\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          },\n          \"status\": {\n            \"$ref\": \"#/components/schemas/UserStatus\"\n          },\n          \"systemRole\": {\n            \"$ref\": \"#/components/schemas/SystemRole\"\n          },\n          \"firmOfficeId\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\"\n          },\n          \"position\": {\n            \"$ref\": \"#/components/schemas/Position\"\n          },\n          \"averageRating\": {\n            \"type\": \"number\",\n            \"format\": \"double\"\n          }\n        },\n        \"additionalProperties\": false\n      },\n      \"InvoiceCurrenciesAllowed\": {\n        \"enum\": [\n          \"CompanyDefault\",\n          \"AllCurrenciesAllowed\",\n          \"SpecifiedCurrencies\",\n          \"FirmDefault\"\n        ],\n        \"type\": \"string\"\n      },\n      \"InvoiceFormatsAllowed\": {\n        \"enum\": [\n          \"CompanyDefault\",\n          \"AllFormatsAllowed\",\n          \"LedesOnly\",\n          \"FirmDefault\"\n        ],\n        \"type\": \"string\"\n      },\n      \"InvoiceTaxTypeAllowed\": {\n        \"enum\": [\n          \"CompanyDefault\",\n          \"FirmDefault\",\n          \"AllTaxTypesAllowed\",\n          \"NonStandardTaxTypesProhibited\",\n          \"NonStandardTaxTypesWithOtherProhibited\"\n        ],\n        \"type\": \"string\"\n      },\n      \"LedesFormatsAllowed\": {\n        \"enum\": [\n          \"CompanyDefault\",\n          \"FirmDefault\",\n          \"LedesAll\",\n          \"Ledes98B\",\n          \"Ledes98BI\",\n          \"LedesXML\"\n        ],\n        \"type\": \"string\"\n      },\n      \"MatterBudgetReqt\": {\n        \"enum\": [\n          \"Null\",\n          \"Optional\",\n          \"Never\"\n        ],\n        \"type\": \"string\"\n      },\n      \"NewAlert\": {\n        \"required\": [\n          \"description\",\n          \"firmId\"\n        ],\n        \"type\": \"object\",\n        \"properties\": {\n          \"firmId\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\"\n          },\n          \"description\": {\n            \"maxLength\": 150,\n            \"type\": \"string\"\n          },\n          \"linkUrl\": {\n            \"type\": \"string\",\n            \"nullable\": true\n          }\n        },\n        \"additionalProperties\": false\n      },\n      \"PortfolioAuditAction\": {\n        \"enum\": [\n          \"RedFlag\",\n          \"AutoReduce\",\n          \"AutoReject\"\n        ],\n        \"type\": \"string\"\n      },\n      \"PortfolioDateMode\": {\n        \"enum\": [\n          \"DatePosted\",\n          \"BillingPeriodEndDate\"\n        ],\n        \"type\": \"string\"\n      },\n      \"PortfolioManagementOption\": {\n        \"enum\": [\n          \"TotalCosts\",\n          \"FeesExpenses\"\n        ],\n        \"type\": \"string\"\n      },\n      \"Position\": {\n        \"enum\": [\n          \"Null\",\n          \"Partner\",\n          \"Associate\",\n          \"OfCounsel\",\n          \"Paralegal\",\n          \"LegalAssistant\",\n          \"BillingClerkOrManager\",\n          \"Other\",\n          \"Unspecified\"\n        ],\n        \"type\": \"string\"\n      },\n      \"ServiceProviderType\": {\n        \"enum\": [\n          \"AccidentReconstruction\",\n          \"Accountant\",\n          \"Arbitrator\",\n          \"Architect\",\n          \"ComputerForensics\",\n          \"Consultant\",\n          \"CopyServices\",\n          \"CourtReporter\",\n          \"Doctor\",\n          \"Economist\",\n          \"ElectronicDataDiscovery\",\n          \"Engineer\",\n          \"EnvironmentalTesting\",\n          \"ForensicAnimation\",\n          \"ForensicGraphics\",\n          \"IndependentAdjuster\",\n          \"InsuranceCompany\",\n          \"Laboratory\",\n          \"LawFirm\",\n          \"LegalServices\",\n          \"LitigationSupport\",\n          \"Lobbyist\",\n          \"Logistics\",\n          \"OccupationalTherapist\",\n          \"Other\",\n          \"PatentFilingService\",\n          \"Photocopying\",\n          \"Photographer\",\n          \"PhysicalTherapist\",\n          \"PrivateInvestigator\",\n          \"ProcessService\",\n          \"Psychologist\",\n          \"Research\",\n          \"TechnologyConsultant\",\n          \"TemporaryStaffingService\",\n          \"TrademarkService\",\n          \"TransferAgent\",\n          \"TranslationService\",\n          \"TrialConsultant\",\n          \"VideoDepositionService\",\n          \"VideoServices\",\n          \"Videographer\",\n          \"WitnessExpert\"\n        ],\n        \"type\": \"string\"\n      },\n      \"SystemRole\": {\n        \"enum\": [\n          \"Null\",\n          \"FirmAdmin\",\n          \"FirmOfficeAdmin\",\n          \"FirmUserWithBilling\",\n          \"ThirdPartyBiller\",\n          \"FirmUser\"\n        ],\n        \"type\": \"string\"\n      },\n      \"UserStatus\": {\n        \"enum\": [\n          \"Active\",\n          \"Inactive\"\n        ],\n        \"type\": \"string\"\n      }\n    },\n    \"securitySchemes\": {\n      \"OAuth2\": {\n        \"type\": \"oauth2\",\n        \"flows\": {\n          \"clientCredentials\": {\n            \"tokenUrl\": \"https://api.thomsonreuters.com/onepass/oauth2/token?grant_type=client_credentials\",\n            \"scopes\": { }\n          }\n        }\n      }\n    }\n  },\n  \"security\": [\n    {\n      \"OAuth2\": [ ]\n    }\n  ],\n  \"tags\": [\n    {\n      \"name\": \"Alerts\",\n      \"description\": \"Manage the firm alerts to control the firm invoice processing flow. The alerts are displayed on invoices submitted by firms or when the firm attempts to submit an invoice.\"\n    },\n    {\n      \"name\": \"Firms\",\n      \"description\": \"The Firms API provides access to get and manage Firms metadata.\"\n    },\n    {\n      \"name\": \"Portfolios\",\n      \"description\": \"Manage firm matter portfolios to track combined financial spending on all the matters assigned to a portfolio.\"\n    }\n  ]\n}","documents":[{"version":"2.0","title":"Firms API","openApi":"{\"openapi\":\"3.0.1\",\"info\":{\"title\":\"Firms API\",\"description\":\"The Firms API provides access to Firms metadata in the Tracker Company and TrackerMaster databases.\",\"contact\":{\"name\":\"devportal\"},\"version\":\"2.0\"},\"servers\":[{\"url\":\"https://api.thomsonreuters.com/legal-tracker/firms-api/v2\"},{\"url\":\"https://api.thomsonreuters.co.uk/legal-tracker/firms-api/v2\"},{\"url\":\"https://api.thomsonreuters.ca/legal-tracker/firms-api/v2\"},{\"url\":\"https://api.thomsonreuters.com.au/legal-tracker/firms-api/v2\"},{\"url\":\"https://api.thomsonreuters.de/legal-tracker/firms-api/v2\"},{\"url\":\"https://api.thomsonreuters.ae/legal-tracker/firms-api/v2\"}],\"paths\":{\"/alerts\":{\"get\":{\"tags\":[\"Alerts\"],\"summary\":\"Get firm alerts.\",\"parameters\":[{\"name\":\"$top\",\"in\":\"query\",\"description\":\"Show only the first n items, see [Paging - Top](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptiontop)\",\"schema\":{\"maximum\":1000,\"minimum\":1,\"type\":\"integer\",\"default\":50},\"example\":50},{\"name\":\"$skip\",\"in\":\"query\",\"description\":\"Skip the first n items, see [Paging - Skip](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionskip)\",\"schema\":{\"minimum\":0,\"type\":\"integer\",\"default\":0},\"example\":0},{\"name\":\"$filter\",\"in\":\"query\",\"description\":\"Filter items by property values, see [Filtering](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionfilter)<br /><br /><i>Available operations:</i> eq, ne, gt, ge, lt, le, in, and, or, not<br /><i>Available functions:</i> contains, startswith, endswith, indexof<br /><i>Available properties:</i> id, firmId, description, linkUrl, createdDateTime, createdByUser, lastModifiedDateTime, lastModifiedByUser, createdByUser/id, createdByUser/name, createdByUser/email, lastModifiedByUser/id, lastModifiedByUser/name, lastModifiedByUser/email\",\"schema\":{\"type\":\"string\",\"nullable\":true},\"example\":\"id eq 111222\"},{\"name\":\"$select\",\"in\":\"query\",\"description\":\"Select properties to be returned, see [Select](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionselect)\",\"schema\":{\"uniqueItems\":true,\"type\":\"array\",\"items\":{\"enum\":[\"id\",\"firmId\",\"description\",\"linkUrl\",\"createdDateTime\",\"createdByUser\",\"lastModifiedDateTime\",\"lastModifiedByUser\"],\"type\":\"string\"}}},{\"name\":\"$orderby\",\"in\":\"query\",\"description\":\"Order items by property values, see [Sorting](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionorderby)\",\"schema\":{\"uniqueItems\":true,\"type\":\"array\",\"items\":{\"enum\":[\"id\",\"firmId\",\"description\",\"linkUrl\",\"createdDateTime\",\"lastModifiedDateTime\",\"id desc\",\"firmId desc\",\"description desc\",\"linkUrl desc\",\"createdDateTime desc\",\"lastModifiedDateTime desc\"],\"type\":\"string\"}}},{\"name\":\"$expand\",\"in\":\"query\",\"description\":\"Expand a complex property, see [Expand](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionexpand)\",\"schema\":{\"type\":\"string\"}},{\"name\":\"$count\",\"in\":\"query\",\"description\":\"Include count of items, see [Count](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptioncount)\",\"schema\":{\"type\":\"integer\"}}],\"responses\":{\"200\":{\"description\":\"A list of firm alerts is successfully returned.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/AlertCollection\"}}}},\"400\":{\"description\":\"FirmId is not provided in the request filter or it identifies a firm not connected to the company or there are some other invalid request parameters.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"401\":{\"description\":\"Caller must authenticate.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"403\":{\"description\":\"Caller does not have necessary permissions.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"500\":{\"description\":\"Server error.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}}}},\"post\":{\"tags\":[\"Alerts\"],\"summary\":\"Create a new firm alert to halt invoice processing.\",\"parameters\":[{\"name\":\"Prefer\",\"in\":\"header\",\"description\":\"* return=representation: This is the default. The server includes an entity representing the current state of the resource. In response to a successful request a status of 201 would be returned.\\n* return=minimal: The response will not include the entity in the response. A successful request would result in a status of 204 to be returned.\",\"schema\":{\"type\":\"string\"},\"example\":\"return=representation\"}],\"requestBody\":{\"description\":\"The new firm alert.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/NewAlert\"}}},\"required\":true},\"responses\":{\"201\":{\"description\":\"Record was created successfully.\",\"headers\":{\"ETag\":{\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\"schema\":{\"type\":\"string\",\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"}},\"Location\":{\"description\":\"URL to object.\",\"schema\":{\"type\":\"string\",\"description\":\"URL to object.\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Alert\"}}}},\"204\":{\"description\":\"Record was created successfully.\",\"headers\":{\"ETag\":{\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\"schema\":{\"type\":\"string\",\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"}}}},\"400\":{\"description\":\"invalid request parameters.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"401\":{\"description\":\"Caller must authenticate.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"403\":{\"description\":\"Caller does not have necessary permissions.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"500\":{\"description\":\"Server error.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}}}}},\"/alerts/{id}\":{\"get\":{\"tags\":[\"Alerts\"],\"summary\":\"Retrieve information about an existing alert identified by the alert Tracker ID.\",\"parameters\":[{\"name\":\"id\",\"in\":\"path\",\"description\":\"The firm alert identifier.\",\"required\":true,\"schema\":{\"type\":\"integer\",\"format\":\"int32\"}},{\"name\":\"If-None-Match\",\"in\":\"header\",\"description\":\"Executes a request only if the passed ETag doesn't equal the current resource ETag (i.e. resource hasn't changed).\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"Successful operation.\",\"headers\":{\"ETag\":{\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\"schema\":{\"type\":\"string\",\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Alert\"}}}},\"304\":{\"description\":\"Firm alert is not modified.\"},\"400\":{\"description\":\"Invalid alert identifier.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"401\":{\"description\":\"Caller must authenticate.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"403\":{\"description\":\"Caller does not have necessary permissions.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"404\":{\"description\":\"Firm alert is not found.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"500\":{\"description\":\"Server error.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}}}},\"delete\":{\"tags\":[\"Alerts\"],\"summary\":\"Delete a firm alert identified by the alert Tracker ID. The invoice processing will be resumed after the alert is deleted.\",\"parameters\":[{\"name\":\"id\",\"in\":\"path\",\"description\":\"The firm alert identifier.\",\"required\":true,\"schema\":{\"type\":\"integer\",\"format\":\"int32\"}},{\"name\":\"If-Match\",\"in\":\"header\",\"description\":\"The ETag for the record to perform a concurrency check.\",\"required\":true,\"schema\":{\"type\":\"string\"}}],\"responses\":{\"204\":{\"description\":\"Record was deleted successfully.\"},\"400\":{\"description\":\"Invalid request.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"401\":{\"description\":\"Caller must authenticate.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"403\":{\"description\":\"Caller does not have necessary permissions.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"404\":{\"description\":\"Firm alert is not found.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"412\":{\"description\":\"ETag provided in the If-Match header is out of date.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"428\":{\"description\":\"Missing the \\\"If-Match\\\" header.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"500\":{\"description\":\"Server error.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}}}}},\"/firms\":{\"get\":{\"tags\":[\"Firms\"],\"summary\":\"Get firms connected to the company.\",\"parameters\":[{\"name\":\"$top\",\"in\":\"query\",\"description\":\"Show only the first n items, see [Paging - Top](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptiontop)\",\"schema\":{\"maximum\":1000,\"minimum\":1,\"type\":\"integer\",\"default\":50},\"example\":50},{\"name\":\"$skip\",\"in\":\"query\",\"description\":\"Skip the first n items, see [Paging - Skip](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionskip)\",\"schema\":{\"minimum\":0,\"type\":\"integer\",\"default\":0},\"example\":0},{\"name\":\"$filter\",\"in\":\"query\",\"description\":\"Filter items by property values, see [Filtering](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionfilter)<br /><br /><i>Available operations:</i> eq, ne, gt, ge, lt, le, in, and, or, not<br /><i>Available functions:</i> contains, startswith, endswith, indexof<br /><i>Available properties:</i> id, firmName, status, active, classification, leadSystemAdmin, offices, users, leadSystemAdmin/id, leadSystemAdmin/name, leadSystemAdmin/email, offices/item, offices/item/id, offices/item/name, offices/item/firmId, offices/item/active, offices/item/address, offices/item/city, offices/item/state, offices/item/provinceRegion, offices/item/country, offices/item/generalPhone, offices/item/systemAdmin, offices/item/vendors, offices/item/systemAdmin/id, offices/item/systemAdmin/name, offices/item/systemAdmin/email, offices/item/vendors/item, offices/item/vendors/item/id, offices/item/vendors/item/name, offices/item/vendors/item/number, users/item, users/item/id, users/item/firstName, users/item/lastName, users/item/email, users/item/status, users/item/systemRole, users/item/firmOfficeId, users/item/position, users/item/averageRating\",\"schema\":{\"type\":\"string\",\"nullable\":true},\"example\":\"id eq 111222\"},{\"name\":\"$select\",\"in\":\"query\",\"description\":\"Select properties to be returned, see [Select](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionselect)\",\"schema\":{\"uniqueItems\":true,\"type\":\"array\",\"items\":{\"enum\":[\"id\",\"firmName\",\"status\",\"active\",\"classification\",\"leadSystemAdmin\",\"offices\",\"users\"],\"type\":\"string\"}}},{\"name\":\"$orderby\",\"in\":\"query\",\"description\":\"Order items by property values, see [Sorting](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionorderby)\",\"schema\":{\"uniqueItems\":true,\"type\":\"array\",\"items\":{\"enum\":[\"id\",\"firmName\",\"status\",\"active\",\"classification\",\"id desc\",\"firmName desc\",\"status desc\",\"active desc\",\"classification desc\"],\"type\":\"string\"}}},{\"name\":\"$expand\",\"in\":\"query\",\"description\":\"Expand a complex property, see [Expand](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionexpand)\",\"schema\":{\"type\":\"string\"}},{\"name\":\"$count\",\"in\":\"query\",\"description\":\"Include count of items, see [Count](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptioncount)\",\"schema\":{\"type\":\"integer\"}}],\"responses\":{\"200\":{\"description\":\"A list of firms is successfully returned.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/FirmCollection\"}}}},\"400\":{\"description\":\"Invalid request parameters.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"401\":{\"description\":\"Caller must authenticate.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"403\":{\"description\":\"Caller does not have necessary permissions.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"500\":{\"description\":\"Server error.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}}}}},\"/firms/{id}\":{\"get\":{\"tags\":[\"Firms\"],\"summary\":\"Get a firm profile.\",\"parameters\":[{\"name\":\"id\",\"in\":\"path\",\"description\":\"The firm identifier.\",\"required\":true,\"schema\":{\"type\":\"integer\",\"format\":\"int32\"}},{\"name\":\"If-None-Match\",\"in\":\"header\",\"description\":\"Executes a request only if the passed ETag doesn't equal the current resource ETag (i.e. resource hasn't changed).\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"A firm profile is successfully returned.\",\"headers\":{\"ETag\":{\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\"schema\":{\"type\":\"string\",\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/FirmProfile\"}}}},\"304\":{\"description\":\"Firm is not modified.\"},\"400\":{\"description\":\"Invalid request parameters.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"401\":{\"description\":\"Caller must authenticate.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"403\":{\"description\":\"Caller does not have necessary permissions.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"404\":{\"description\":\"Firm is not found.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"500\":{\"description\":\"Server error.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}}}},\"patch\":{\"tags\":[\"Firms\"],\"summary\":\"Update a firm profile.\",\"parameters\":[{\"name\":\"id\",\"in\":\"path\",\"description\":\"The firm identifier.\",\"required\":true,\"schema\":{\"type\":\"integer\",\"format\":\"int32\"}},{\"name\":\"If-Match\",\"in\":\"header\",\"description\":\"The ETag for the record to perform a concurrency check.\",\"schema\":{\"type\":\"string\"}},{\"name\":\"Prefer\",\"in\":\"header\",\"description\":\"* return=representation: This is the default. The server includes an entity representing the current state of the resource. In response to a successful request a status of 200 would be returned.\\n* return=minimal: The response will not include the entity in the response. A successful request would result in a status of 204 to be returned.\",\"schema\":{\"type\":\"string\"},\"example\":\"return=representation\"}],\"requestBody\":{\"description\":\"The changes to apply.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/FirmProfilePatchRequest\"}}},\"required\":true},\"responses\":{\"200\":{\"description\":\"The firm profile was successfully updated.\",\"headers\":{\"ETag\":{\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\"schema\":{\"type\":\"string\",\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/FirmProfile\"}}}},\"204\":{\"description\":\"The firm profile was successfully updated.\",\"headers\":{\"ETag\":{\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\"schema\":{\"type\":\"string\",\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"}}}},\"400\":{\"description\":\"Invalid request parameters.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"401\":{\"description\":\"Caller must authenticate.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"403\":{\"description\":\"Caller does not have necessary permissions.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"404\":{\"description\":\"Firm profile is not found.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"412\":{\"description\":\"ETag provided in the If-Match header is out of date.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"500\":{\"description\":\"Server error.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}}}}},\"/firms/{id}/offices/{officeId}\":{\"get\":{\"tags\":[\"Firms\"],\"summary\":\"Get an office profile.\",\"parameters\":[{\"name\":\"id\",\"in\":\"path\",\"description\":\"The firm identifier.\",\"required\":true,\"schema\":{\"type\":\"integer\",\"format\":\"int32\"}},{\"name\":\"officeId\",\"in\":\"path\",\"description\":\"The firm office identifier.\",\"required\":true,\"schema\":{\"type\":\"integer\",\"format\":\"int32\"}},{\"name\":\"If-None-Match\",\"in\":\"header\",\"description\":\"Executes a request only if the passed ETag doesn't equal the current resource ETag (i.e. resource hasn't changed).\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"A firm office profile is successfully returned.\",\"headers\":{\"ETag\":{\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\"schema\":{\"type\":\"string\",\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/FirmOfficeProfile\"}}}},\"304\":{\"description\":\"Firm office is not modified.\"},\"400\":{\"description\":\"Invalid request parameters.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"401\":{\"description\":\"Caller must authenticate.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"403\":{\"description\":\"Caller does not have necessary permissions.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"404\":{\"description\":\"Firm office is not found.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"500\":{\"description\":\"Server error.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}}}},\"patch\":{\"tags\":[\"Firms\"],\"summary\":\"Update an office profile.\",\"parameters\":[{\"name\":\"id\",\"in\":\"path\",\"description\":\"The firm identifier.\",\"required\":true,\"schema\":{\"type\":\"integer\",\"format\":\"int32\"}},{\"name\":\"officeId\",\"in\":\"path\",\"description\":\"The firm office identifier.\",\"required\":true,\"schema\":{\"type\":\"integer\",\"format\":\"int32\"}},{\"name\":\"If-Match\",\"in\":\"header\",\"description\":\"The ETag for the record to perform a concurrency check.\",\"schema\":{\"type\":\"string\"}},{\"name\":\"Prefer\",\"in\":\"header\",\"description\":\"* return=representation: This is the default. The server includes an entity representing the current state of the resource. In response to a successful request a status of 200 would be returned.\\n* return=minimal: The response will not include the entity in the response. A successful request would result in a status of 204 to be returned.\",\"schema\":{\"type\":\"string\"},\"example\":\"return=representation\"}],\"requestBody\":{\"description\":\"The changes to apply.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/FirmOfficeProfilePatchRequest\"}}},\"required\":true},\"responses\":{\"200\":{\"description\":\"The firm office profile is successfully updated.\",\"headers\":{\"ETag\":{\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\"schema\":{\"type\":\"string\",\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/FirmOfficeProfile\"}}}},\"204\":{\"description\":\"The firm office profile is successfully updated.\",\"headers\":{\"ETag\":{\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\"schema\":{\"type\":\"string\",\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"}}}},\"400\":{\"description\":\"invalid request parameters.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"401\":{\"description\":\"Caller must authenticate.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"403\":{\"description\":\"Caller does not have necessary permissions.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"404\":{\"description\":\"Firm office is not found.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"412\":{\"description\":\"ETag provided in the If-Match header is out of date.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"500\":{\"description\":\"Server error.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}}}}},\"/portfolios\":{\"get\":{\"tags\":[\"Portfolios\"],\"summary\":\"Get firm portfolios for a firm connected to the company.\",\"parameters\":[{\"name\":\"$top\",\"in\":\"query\",\"description\":\"Show only the first n items, see [Paging - Top](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptiontop)\",\"schema\":{\"maximum\":1000,\"minimum\":1,\"type\":\"integer\",\"default\":50},\"example\":50},{\"name\":\"$skip\",\"in\":\"query\",\"description\":\"Skip the first n items, see [Paging - Skip](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionskip)\",\"schema\":{\"minimum\":0,\"type\":\"integer\",\"default\":0},\"example\":0},{\"name\":\"$filter\",\"in\":\"query\",\"description\":\"Filter items by property values, see [Filtering](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionfilter)<br /><br /><i>Available operations:</i> eq, ne, gt, ge, lt, le, in, and, or, not<br /><i>Available functions:</i> contains, startswith, endswith, indexof<br /><i>Available properties:</i> id, firmId, active, name, description, portfolioManagementOption, includeTax, portfolioDateMode, startDateTime, endDateTime, totalFees, totalFeesAuditAction, totalFeesRejectDescription, totalFeesEmailAlertPct, totalExpenses, totalExpensesAuditAction, totalExpensesRejectDescription, totalCosts, totalCostsAuditAction, totalCostsRejectDescription, totalCostsEmailAlertPct, createdDateTime, createdBy, lastUpdatedDateTime, lastUpdatedBy, totalFees/value, totalFees/currency, totalExpenses/value, totalExpenses/currency, totalCosts/value, totalCosts/currency, createdBy/id, createdBy/name, createdBy/email, lastUpdatedBy/id, lastUpdatedBy/name, lastUpdatedBy/email\",\"schema\":{\"type\":\"string\",\"nullable\":true},\"example\":\"id eq 111222\"},{\"name\":\"$select\",\"in\":\"query\",\"description\":\"Select properties to be returned, see [Select](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionselect)\",\"schema\":{\"uniqueItems\":true,\"type\":\"array\",\"items\":{\"enum\":[\"id\",\"firmId\",\"active\",\"name\",\"description\",\"portfolioManagementOption\",\"includeTax\",\"portfolioDateMode\",\"startDateTime\",\"endDateTime\",\"totalFees\",\"totalFeesAuditAction\",\"totalFeesRejectDescription\",\"totalFeesEmailAlertPct\",\"totalExpenses\",\"totalExpensesAuditAction\",\"totalExpensesRejectDescription\",\"totalCosts\",\"totalCostsAuditAction\",\"totalCostsRejectDescription\",\"totalCostsEmailAlertPct\",\"createdDateTime\",\"createdBy\",\"lastUpdatedDateTime\",\"lastUpdatedBy\"],\"type\":\"string\"}}},{\"name\":\"$orderby\",\"in\":\"query\",\"description\":\"Order items by property values, see [Sorting](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionorderby)\",\"schema\":{\"uniqueItems\":true,\"type\":\"array\",\"items\":{\"enum\":[\"id\",\"firmId\",\"active\",\"name\",\"description\",\"portfolioManagementOption\",\"includeTax\",\"portfolioDateMode\",\"startDateTime\",\"endDateTime\",\"totalFeesAuditAction\",\"totalFeesRejectDescription\",\"totalFeesEmailAlertPct\",\"totalExpensesAuditAction\",\"totalExpensesRejectDescription\",\"totalCostsAuditAction\",\"totalCostsRejectDescription\",\"totalCostsEmailAlertPct\",\"createdDateTime\",\"lastUpdatedDateTime\",\"id desc\",\"firmId desc\",\"active desc\",\"name desc\",\"description desc\",\"portfolioManagementOption desc\",\"includeTax desc\",\"portfolioDateMode desc\",\"startDateTime desc\",\"endDateTime desc\",\"totalFeesAuditAction desc\",\"totalFeesRejectDescription desc\",\"totalFeesEmailAlertPct desc\",\"totalExpensesAuditAction desc\",\"totalExpensesRejectDescription desc\",\"totalCostsAuditAction desc\",\"totalCostsRejectDescription desc\",\"totalCostsEmailAlertPct desc\",\"createdDateTime desc\",\"lastUpdatedDateTime desc\"],\"type\":\"string\"}}},{\"name\":\"$expand\",\"in\":\"query\",\"description\":\"Expand a complex property, see [Expand](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionexpand)\",\"schema\":{\"type\":\"string\"}},{\"name\":\"$count\",\"in\":\"query\",\"description\":\"Include count of items, see [Count](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptioncount)\",\"schema\":{\"type\":\"integer\"}}],\"responses\":{\"200\":{\"description\":\"Successful operation.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/FirmPortfolioCollection\"}}}},\"400\":{\"description\":\"FirmId is not provided in the request filter or it identifies a firm not connected to the company or there are some other invalid request parameters.\"},\"401\":{\"description\":\"Caller must authenticate.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"403\":{\"description\":\"Caller does not have necessary permissions.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"500\":{\"description\":\"Server error.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}}}},\"post\":{\"tags\":[\"Portfolios\"],\"summary\":\"Create a new firm portfolio record.\",\"parameters\":[{\"name\":\"Prefer\",\"in\":\"header\",\"description\":\"* return=representation: This is the default. The server includes an entity representing the current state of the resource. In response to a successful request a status of 201 would be returned.\\n* return=minimal: The response will not include the entity in the response. A successful request would result in a status of 204 to be returned.\",\"schema\":{\"type\":\"string\"},\"example\":\"return=representation\"}],\"requestBody\":{\"description\":\"The new firm portfolio.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/FirmPortfolioCreateRequest\"}}},\"required\":true},\"responses\":{\"201\":{\"description\":\"Record was created successfully.\",\"headers\":{\"ETag\":{\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\"schema\":{\"type\":\"string\",\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"}},\"Location\":{\"description\":\"URL to object.\",\"schema\":{\"type\":\"string\",\"description\":\"URL to object.\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/FirmPortfolio\"}}}},\"204\":{\"description\":\"Record was created successfully.\",\"headers\":{\"ETag\":{\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\"schema\":{\"type\":\"string\",\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"}}}},\"400\":{\"description\":\"invalid request parameters.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"401\":{\"description\":\"Caller must authenticate.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"403\":{\"description\":\"Caller does not have necessary permissions.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"500\":{\"description\":\"Server error.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}}}}},\"/portfolios/{id}\":{\"get\":{\"tags\":[\"Portfolios\"],\"summary\":\"Retrieve information about an existing firm matter portfolio based on the portfolio Tracker ID.\",\"parameters\":[{\"name\":\"id\",\"in\":\"path\",\"description\":\"The firm portfolio identifier.\",\"required\":true,\"schema\":{\"type\":\"integer\",\"format\":\"int32\"}},{\"name\":\"If-None-Match\",\"in\":\"header\",\"description\":\"Executes a request only if the passed ETag doesn't equal the current resource ETag (i.e. resource hasn't changed).\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"Successful operation.\",\"headers\":{\"ETag\":{\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\"schema\":{\"type\":\"string\",\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/FirmPortfolio\"}}}},\"304\":{\"description\":\"Firm portfolio is not modified.\"},\"400\":{\"description\":\"Invalid request parameters.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"401\":{\"description\":\"Caller must authenticate.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"403\":{\"description\":\"Caller does not have necessary permissions.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"404\":{\"description\":\"Firm portfolio is not found.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"500\":{\"description\":\"Server error.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}}}},\"put\":{\"tags\":[\"Portfolios\"],\"summary\":\"Update an existing portfolio record identified by the portfolio Tracker ID.\",\"parameters\":[{\"name\":\"id\",\"in\":\"path\",\"description\":\"The firm portfolio identifier.\",\"required\":true,\"schema\":{\"type\":\"integer\",\"format\":\"int32\"}},{\"name\":\"If-Match\",\"in\":\"header\",\"description\":\"The ETag for the record to perform a concurrency check.\",\"required\":true,\"schema\":{\"type\":\"string\"}},{\"name\":\"Prefer\",\"in\":\"header\",\"description\":\"* return=representation: This is the default. The server includes an entity representing the current state of the resource. In response to a successful request a status of 200 would be returned.\\n* return=minimal: The response will not include the entity in the response. A successful request would result in a status of 204 to be returned.\",\"schema\":{\"type\":\"string\"},\"example\":\"return=representation\"}],\"requestBody\":{\"description\":\"The changes to apply.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/FirmPortfolioUpdateRequest\"}}},\"required\":true},\"responses\":{\"200\":{\"description\":\"The portfolio was successfully updated.\",\"headers\":{\"ETag\":{\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\"schema\":{\"type\":\"string\",\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/FirmPortfolio\"}}}},\"204\":{\"description\":\"The portfolio was successfully updated.\",\"headers\":{\"ETag\":{\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\",\"schema\":{\"type\":\"string\",\"description\":\"Entity tag is part of HTTP provided for web cache validation problem, but also used for optimistic concurrency control.\"}}}},\"400\":{\"description\":\"Invalid request parameters.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"401\":{\"description\":\"Caller must authenticate.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"403\":{\"description\":\"Caller does not have necessary permissions.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"404\":{\"description\":\"Firm portfolio is not found.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"412\":{\"description\":\"ETag provided in the If-Match header is out of date.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"428\":{\"description\":\"Missing the \\\"If-Match\\\" header.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}},\"500\":{\"description\":\"Server error.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ErrorResponse\"}}}}}}}},\"components\":{\"schemas\":{\"AccrualsReqt\":{\"enum\":[\"Null\",\"Optional\",\"Never\"],\"type\":\"string\"},\"Address\":{\"type\":\"object\",\"properties\":{\"street1\":{\"maxLength\":150,\"type\":\"string\",\"nullable\":true},\"street2\":{\"maxLength\":150,\"type\":\"string\",\"nullable\":true},\"city\":{\"maxLength\":65,\"type\":\"string\",\"nullable\":true},\"country\":{\"type\":\"string\",\"nullable\":true},\"state\":{\"type\":\"string\",\"nullable\":true},\"provinceRegion\":{\"maxLength\":100,\"type\":\"string\",\"nullable\":true},\"zipCode\":{\"maxLength\":25,\"type\":\"string\",\"nullable\":true}},\"additionalProperties\":false},\"Alert\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"integer\",\"format\":\"int32\"},\"firmId\":{\"type\":\"integer\",\"format\":\"int32\"},\"description\":{\"type\":\"string\",\"nullable\":true},\"linkUrl\":{\"type\":\"string\",\"nullable\":true},\"createdDateTime\":{\"type\":\"string\",\"format\":\"date-time\",\"nullable\":true},\"createdByUser\":{\"$ref\":\"#/components/schemas/Contact\"},\"lastModifiedDateTime\":{\"type\":\"string\",\"format\":\"date-time\",\"nullable\":true},\"lastModifiedByUser\":{\"$ref\":\"#/components/schemas/Contact\"}},\"additionalProperties\":false},\"AlertCollection\":{\"type\":\"object\",\"properties\":{\"value\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/Alert\"},\"nullable\":true}},\"additionalProperties\":false},\"BillingAddress\":{\"type\":\"object\",\"properties\":{\"street1\":{\"maxLength\":150,\"type\":\"string\",\"nullable\":true},\"street2\":{\"maxLength\":150,\"type\":\"string\",\"nullable\":true},\"street3\":{\"maxLength\":150,\"type\":\"string\",\"nullable\":true},\"street4\":{\"maxLength\":150,\"type\":\"string\",\"nullable\":true},\"street5\":{\"maxLength\":150,\"type\":\"string\",\"nullable\":true},\"street6\":{\"maxLength\":150,\"type\":\"string\",\"nullable\":true},\"city\":{\"maxLength\":65,\"type\":\"string\",\"nullable\":true},\"country\":{\"type\":\"string\",\"nullable\":true},\"state\":{\"type\":\"string\",\"nullable\":true},\"provinceRegion\":{\"maxLength\":100,\"type\":\"string\",\"nullable\":true},\"zipCode\":{\"maxLength\":25,\"type\":\"string\",\"nullable\":true}},\"additionalProperties\":false},\"Contact\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"integer\",\"format\":\"int32\"},\"name\":{\"type\":\"string\",\"nullable\":true},\"email\":{\"type\":\"string\",\"nullable\":true}},\"additionalProperties\":false},\"CurrencyField\":{\"type\":\"object\",\"properties\":{\"value\":{\"type\":\"number\",\"format\":\"double\",\"nullable\":true},\"currency\":{\"type\":\"string\",\"nullable\":true}},\"additionalProperties\":false},\"CustomFieldType\":{\"enum\":[\"Text\",\"File\"],\"type\":\"string\"},\"EFile\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"integer\",\"format\":\"int32\"},\"fileName\":{\"type\":\"string\",\"nullable\":true},\"fileSize\":{\"type\":\"integer\",\"format\":\"int32\"}},\"additionalProperties\":false},\"Error\":{\"required\":[\"code\",\"message\"],\"type\":\"object\",\"properties\":{\"code\":{\"type\":\"string\"},\"message\":{\"type\":\"string\"},\"target\":{\"type\":\"string\"},\"details\":{\"type\":\"array\",\"items\":{\"required\":[\"code\",\"message\"],\"type\":\"object\",\"properties\":{\"code\":{\"type\":\"string\"},\"message\":{\"type\":\"string\"},\"target\":{\"type\":\"string\"}}}},\"innerError\":{\"required\":[\"code\",\"message\"],\"type\":\"object\",\"properties\":{\"code\":{\"type\":\"string\"},\"message\":{\"type\":\"string\"}}}},\"additionalProperties\":false},\"ErrorResponse\":{\"required\":[\"error\"],\"type\":\"object\",\"properties\":{\"error\":{\"$ref\":\"#/components/schemas/Error\"}},\"additionalProperties\":false},\"EvaluationReqt\":{\"enum\":[\"Null\",\"Optional\",\"Never\"],\"type\":\"string\"},\"Firm\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"integer\",\"format\":\"int32\"},\"firmName\":{\"type\":\"string\",\"nullable\":true},\"status\":{\"$ref\":\"#/components/schemas/FirmInfoStatus\"},\"active\":{\"$ref\":\"#/components/schemas/FirmActiveStatus\"},\"classification\":{\"type\":\"string\",\"nullable\":true},\"leadSystemAdmin\":{\"$ref\":\"#/components/schemas/Contact\"},\"offices\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/FirmOffice\"},\"nullable\":true},\"users\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/FirmUser\"},\"nullable\":true}},\"additionalProperties\":false},\"FirmActiveStatus\":{\"enum\":[\"Active\",\"Restricted\",\"Inactive\"],\"type\":\"string\"},\"FirmCollection\":{\"type\":\"object\",\"properties\":{\"value\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/Firm\"},\"nullable\":true}},\"additionalProperties\":false},\"FirmCustomField\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"integer\",\"format\":\"int32\"},\"name\":{\"type\":\"string\",\"nullable\":true},\"type\":{\"$ref\":\"#/components/schemas/CustomFieldType\"},\"isEditable\":{\"type\":\"boolean\"},\"textValue\":{\"type\":\"string\",\"nullable\":true},\"fileValue\":{\"$ref\":\"#/components/schemas/EFile\"}},\"additionalProperties\":false},\"FirmInfoStatus\":{\"enum\":[\"Live\",\"Memo\"],\"type\":\"string\"},\"FirmOffice\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"integer\",\"format\":\"int32\"},\"name\":{\"type\":\"string\",\"nullable\":true},\"firmId\":{\"type\":\"integer\",\"format\":\"int32\"},\"active\":{\"type\":\"boolean\"},\"address\":{\"type\":\"string\",\"nullable\":true},\"city\":{\"type\":\"string\",\"nullable\":true},\"state\":{\"type\":\"string\",\"nullable\":true},\"provinceRegion\":{\"type\":\"string\",\"nullable\":true},\"country\":{\"type\":\"string\",\"nullable\":true},\"generalPhone\":{\"type\":\"string\",\"nullable\":true},\"systemAdmin\":{\"$ref\":\"#/components/schemas/Contact\"},\"vendors\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/FirmOfficeVendorNumber\"},\"nullable\":true}},\"additionalProperties\":false},\"FirmOfficeProfile\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"integer\",\"format\":\"int32\"},\"firmId\":{\"type\":\"integer\",\"format\":\"int32\"},\"active\":{\"type\":\"boolean\"},\"officeName\":{\"type\":\"string\",\"nullable\":true},\"address\":{\"$ref\":\"#/components/schemas/Address\"},\"generalPhone\":{\"type\":\"string\",\"nullable\":true},\"generalFax\":{\"type\":\"string\",\"nullable\":true},\"taxId\":{\"type\":\"string\",\"nullable\":true},\"vatId\":{\"type\":\"string\",\"nullable\":true},\"gstId\":{\"type\":\"string\",\"nullable\":true},\"hstId\":{\"type\":\"string\",\"nullable\":true},\"pstId\":{\"type\":\"string\",\"nullable\":true},\"qstId\":{\"type\":\"string\",\"nullable\":true},\"salesTaxId\":{\"type\":\"string\",\"nullable\":true},\"withholdingTaxId\":{\"type\":\"string\",\"nullable\":true},\"managingPartner\":{\"type\":\"string\",\"nullable\":true},\"representativeClients\":{\"type\":\"string\",\"nullable\":true},\"isSendingLedes\":{\"type\":\"boolean\"},\"officeSize\":{\"type\":\"string\",\"nullable\":true},\"officeAdmin\":{\"$ref\":\"#/components/schemas/Contact\"},\"backupOfficeAdmin\":{\"$ref\":\"#/components/schemas/Contact\"},\"baseCurrency\":{\"type\":\"string\",\"nullable\":true},\"practiceAreas\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"nullable\":true},\"billingAddress\":{\"$ref\":\"#/components/schemas/BillingAddress\"},\"vendors\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/FirmOfficeVendorNumber\"},\"nullable\":true},\"notes\":{\"type\":\"string\",\"nullable\":true},\"invoiceCurrenciesAllowed\":{\"$ref\":\"#/components/schemas/InvoiceCurrenciesAllowed\"},\"invoiceCurrencies\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"nullable\":true},\"invoiceFormatsAllowed\":{\"$ref\":\"#/components/schemas/InvoiceFormatsAllowed\"},\"ledesFormatsAllowed\":{\"$ref\":\"#/components/schemas/LedesFormatsAllowed\"},\"invoiceTaxTypeAllowed\":{\"$ref\":\"#/components/schemas/InvoiceTaxTypeAllowed\"}},\"additionalProperties\":false},\"FirmOfficeProfilePatchRequest\":{\"type\":\"object\",\"properties\":{\"vendors\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/FirmOfficeVendorNumber\"},\"description\":\"The updated Vendor information, given as a list of objects providing an id or name for\\r\\nthe field to be updated.\",\"nullable\":true,\"example\":[{\"name\":\"Vendor ID\",\"number\":\"1234\"}]},\"notes\":{\"maxLength\":200,\"type\":\"string\",\"description\":\"The updated company-specific firm office notes.\",\"nullable\":true},\"invoiceCurrenciesAllowed\":{\"$ref\":\"#/components/schemas/InvoiceCurrenciesAllowed\"},\"invoiceCurrencies\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"If given, replace the collection of allowed currencies.\\r\\n\\r\\nValues must be provided if and only if InvoiceCurrenciesAllowed\\r\\nis set to SpecifiedCurrencies.\",\"nullable\":true},\"invoiceFormatsAllowed\":{\"$ref\":\"#/components/schemas/InvoiceFormatsAllowed\"},\"ledesFormatsAllowed\":{\"$ref\":\"#/components/schemas/LedesFormatsAllowed\"},\"invoiceTaxTypeAllowed\":{\"$ref\":\"#/components/schemas/InvoiceTaxTypeAllowed\"}},\"additionalProperties\":false,\"description\":\"A request to perform an update on non-null fields.\"},\"FirmOfficeSummary\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"integer\",\"format\":\"int32\"},\"name\":{\"type\":\"string\",\"nullable\":true}},\"additionalProperties\":false},\"FirmOfficeVendorNumber\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"integer\",\"format\":\"int32\"},\"name\":{\"type\":\"string\",\"nullable\":true},\"number\":{\"maxLength\":200,\"type\":\"string\",\"nullable\":true}},\"additionalProperties\":false},\"FirmPortfolio\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"integer\",\"format\":\"int32\"},\"firmId\":{\"type\":\"integer\",\"format\":\"int32\"},\"active\":{\"type\":\"boolean\"},\"name\":{\"type\":\"string\",\"nullable\":true},\"description\":{\"type\":\"string\",\"nullable\":true},\"portfolioManagementOption\":{\"$ref\":\"#/components/schemas/PortfolioManagementOption\"},\"includeTax\":{\"type\":\"boolean\"},\"portfolioDateMode\":{\"$ref\":\"#/components/schemas/PortfolioDateMode\"},\"startDateTime\":{\"type\":\"string\",\"format\":\"date-time\",\"nullable\":true},\"endDateTime\":{\"type\":\"string\",\"format\":\"date-time\",\"nullable\":true},\"totalFees\":{\"$ref\":\"#/components/schemas/CurrencyField\"},\"totalFeesAuditAction\":{\"$ref\":\"#/components/schemas/PortfolioAuditAction\"},\"totalFeesRejectDescription\":{\"type\":\"string\",\"nullable\":true},\"totalFeesEmailAlertPct\":{\"type\":\"integer\",\"format\":\"int32\",\"nullable\":true},\"totalExpenses\":{\"$ref\":\"#/components/schemas/CurrencyField\"},\"totalExpensesAuditAction\":{\"$ref\":\"#/components/schemas/PortfolioAuditAction\"},\"totalExpensesRejectDescription\":{\"type\":\"string\",\"nullable\":true},\"totalCosts\":{\"$ref\":\"#/components/schemas/CurrencyField\"},\"totalCostsAuditAction\":{\"$ref\":\"#/components/schemas/PortfolioAuditAction\"},\"totalCostsRejectDescription\":{\"type\":\"string\",\"nullable\":true},\"totalCostsEmailAlertPct\":{\"type\":\"integer\",\"format\":\"int32\",\"nullable\":true},\"createdDateTime\":{\"type\":\"string\",\"format\":\"date-time\",\"nullable\":true},\"createdBy\":{\"$ref\":\"#/components/schemas/Contact\"},\"lastUpdatedDateTime\":{\"type\":\"string\",\"format\":\"date-time\",\"nullable\":true},\"lastUpdatedBy\":{\"$ref\":\"#/components/schemas/Contact\"}},\"additionalProperties\":false},\"FirmPortfolioCollection\":{\"type\":\"object\",\"properties\":{\"value\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/FirmPortfolio\"},\"nullable\":true}},\"additionalProperties\":false},\"FirmPortfolioCreateRequest\":{\"required\":[\"firmId\",\"name\"],\"type\":\"object\",\"properties\":{\"active\":{\"type\":\"boolean\"},\"name\":{\"maxLength\":50,\"type\":\"string\"},\"description\":{\"type\":\"string\",\"nullable\":true},\"portfolioManagementOption\":{\"$ref\":\"#/components/schemas/PortfolioManagementOption\"},\"includeTax\":{\"type\":\"boolean\"},\"portfolioDateMode\":{\"$ref\":\"#/components/schemas/PortfolioDateMode\"},\"startDateTime\":{\"type\":\"string\",\"format\":\"date-time\",\"nullable\":true},\"endDateTime\":{\"type\":\"string\",\"format\":\"date-time\",\"nullable\":true},\"totalFees\":{\"type\":\"number\",\"format\":\"double\",\"nullable\":true},\"totalFeesAuditAction\":{\"$ref\":\"#/components/schemas/PortfolioAuditAction\"},\"totalFeesRejectDescription\":{\"maxLength\":1000,\"type\":\"string\",\"nullable\":true},\"totalFeesEmailAlertPct\":{\"type\":\"integer\",\"format\":\"int32\",\"nullable\":true},\"totalExpenses\":{\"type\":\"number\",\"format\":\"double\",\"nullable\":true},\"totalExpensesAuditAction\":{\"$ref\":\"#/components/schemas/PortfolioAuditAction\"},\"totalExpensesRejectDescription\":{\"maxLength\":1000,\"type\":\"string\",\"nullable\":true},\"totalCosts\":{\"type\":\"number\",\"format\":\"double\",\"nullable\":true},\"totalCostsAuditAction\":{\"$ref\":\"#/components/schemas/PortfolioAuditAction\"},\"totalCostsRejectDescription\":{\"maxLength\":1000,\"type\":\"string\",\"nullable\":true},\"totalCostsEmailAlertPct\":{\"type\":\"integer\",\"format\":\"int32\",\"nullable\":true},\"firmId\":{\"type\":\"integer\",\"format\":\"int32\"}},\"additionalProperties\":false},\"FirmPortfolioUpdateRequest\":{\"required\":[\"name\"],\"type\":\"object\",\"properties\":{\"active\":{\"type\":\"boolean\"},\"name\":{\"maxLength\":50,\"type\":\"string\"},\"description\":{\"type\":\"string\",\"nullable\":true},\"portfolioManagementOption\":{\"$ref\":\"#/components/schemas/PortfolioManagementOption\"},\"includeTax\":{\"type\":\"boolean\"},\"portfolioDateMode\":{\"$ref\":\"#/components/schemas/PortfolioDateMode\"},\"startDateTime\":{\"type\":\"string\",\"format\":\"date-time\",\"nullable\":true},\"endDateTime\":{\"type\":\"string\",\"format\":\"date-time\",\"nullable\":true},\"totalFees\":{\"type\":\"number\",\"format\":\"double\",\"nullable\":true},\"totalFeesAuditAction\":{\"$ref\":\"#/components/schemas/PortfolioAuditAction\"},\"totalFeesRejectDescription\":{\"maxLength\":1000,\"type\":\"string\",\"nullable\":true},\"totalFeesEmailAlertPct\":{\"type\":\"integer\",\"format\":\"int32\",\"nullable\":true},\"totalExpenses\":{\"type\":\"number\",\"format\":\"double\",\"nullable\":true},\"totalExpensesAuditAction\":{\"$ref\":\"#/components/schemas/PortfolioAuditAction\"},\"totalExpensesRejectDescription\":{\"maxLength\":1000,\"type\":\"string\",\"nullable\":true},\"totalCosts\":{\"type\":\"number\",\"format\":\"double\",\"nullable\":true},\"totalCostsAuditAction\":{\"$ref\":\"#/components/schemas/PortfolioAuditAction\"},\"totalCostsRejectDescription\":{\"maxLength\":1000,\"type\":\"string\",\"nullable\":true},\"totalCostsEmailAlertPct\":{\"type\":\"integer\",\"format\":\"int32\",\"nullable\":true}},\"additionalProperties\":false},\"FirmProfile\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"integer\",\"format\":\"int32\"},\"globallyActive\":{\"type\":\"boolean\"},\"active\":{\"$ref\":\"#/components/schemas/FirmActiveStatus\"},\"status\":{\"$ref\":\"#/components/schemas/FirmInfoStatus\"},\"fullFirmName\":{\"type\":\"string\",\"nullable\":true},\"customFirmName\":{\"type\":\"string\",\"nullable\":true},\"serviceProviderType\":{\"$ref\":\"#/components/schemas/ServiceProviderType\"},\"firmHistory\":{\"type\":\"string\",\"nullable\":true},\"website\":{\"type\":\"string\",\"nullable\":true},\"mainOffice\":{\"$ref\":\"#/components/schemas/FirmOfficeSummary\"},\"previousOrgNames\":{\"type\":\"string\",\"nullable\":true},\"numberOfEmployees\":{\"type\":\"integer\",\"format\":\"int32\",\"nullable\":true},\"leadSystemAdmin\":{\"$ref\":\"#/components/schemas/Contact\"},\"backupSystemAdmin\":{\"$ref\":\"#/components/schemas/Contact\"},\"primaryBillingContact\":{\"$ref\":\"#/components/schemas/Contact\"},\"backupBillingContact\":{\"$ref\":\"#/components/schemas/Contact\"},\"firmClassification\":{\"type\":\"string\",\"nullable\":true},\"matterBudgetRequirement\":{\"$ref\":\"#/components/schemas/MatterBudgetReqt\"},\"accrualAndUnbilledAmountsRequirement\":{\"$ref\":\"#/components/schemas/AccrualsReqt\"},\"evaluationRequirement\":{\"$ref\":\"#/components/schemas/EvaluationReqt\"},\"invoiceCurrenciesAllowed\":{\"$ref\":\"#/components/schemas/InvoiceCurrenciesAllowed\"},\"invoiceCurrencies\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"nullable\":true},\"invoiceFormatsAllowed\":{\"$ref\":\"#/components/schemas/InvoiceFormatsAllowed\"},\"ledesFormatsAllowed\":{\"$ref\":\"#/components/schemas/LedesFormatsAllowed\"},\"invoiceTaxTypeAllowed\":{\"$ref\":\"#/components/schemas/InvoiceTaxTypeAllowed\"},\"notes\":{\"type\":\"string\",\"nullable\":true},\"firmCustomFields\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/FirmCustomField\"},\"nullable\":true}},\"additionalProperties\":false},\"FirmProfilePatchRequest\":{\"type\":\"object\",\"properties\":{\"active\":{\"$ref\":\"#/components/schemas/FirmActiveStatus\"},\"customFirmName\":{\"maxLength\":20,\"minLength\":1,\"type\":\"string\",\"description\":\"If given, change the company's name for this form.\",\"nullable\":true},\"firmClassification\":{\"minLength\":1,\"type\":\"string\",\"description\":\"If given, update the company's firm classification.\",\"nullable\":true},\"matterBudgetRequirement\":{\"$ref\":\"#/components/schemas/MatterBudgetReqt\"},\"accrualAndUnbilledAmountsRequirement\":{\"$ref\":\"#/components/schemas/AccrualsReqt\"},\"evaluationRequirement\":{\"$ref\":\"#/components/schemas/EvaluationReqt\"},\"invoiceCurrenciesAllowed\":{\"$ref\":\"#/components/schemas/InvoiceCurrenciesAllowed\"},\"invoiceCurrencies\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"If given, replace the collection of allowed currencies.\\r\\n\\r\\nValues must be provided if and only if InvoiceCurrenciesAllowed\\r\\nis set to SpecifiedCurrencies.\",\"nullable\":true},\"invoiceFormatsAllowed\":{\"$ref\":\"#/components/schemas/InvoiceFormatsAllowed\"},\"ledesFormatsAllowed\":{\"$ref\":\"#/components/schemas/LedesFormatsAllowed\"},\"invoiceTaxTypeAllowed\":{\"$ref\":\"#/components/schemas/InvoiceTaxTypeAllowed\"},\"notes\":{\"maxLength\":500,\"type\":\"string\",\"description\":\"If given, update the company's firm notes.\",\"nullable\":true},\"firmCustomFields\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/FirmCustomField\"},\"description\":\"Replace the custom field values for this firm with new values. Omitted values will\\r\\nbe deleted.\\r\\n\\r\\nCustom fields are matched on either database field ID or the unique field name.\",\"nullable\":true}},\"additionalProperties\":false,\"description\":\"A request to perform an update on non-null fields.\"},\"FirmUser\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"integer\",\"format\":\"int32\"},\"firstName\":{\"type\":\"string\",\"nullable\":true},\"lastName\":{\"type\":\"string\",\"nullable\":true},\"email\":{\"type\":\"string\",\"nullable\":true},\"status\":{\"$ref\":\"#/components/schemas/UserStatus\"},\"systemRole\":{\"$ref\":\"#/components/schemas/SystemRole\"},\"firmOfficeId\":{\"type\":\"integer\",\"format\":\"int32\"},\"position\":{\"$ref\":\"#/components/schemas/Position\"},\"averageRating\":{\"type\":\"number\",\"format\":\"double\"}},\"additionalProperties\":false},\"InvoiceCurrenciesAllowed\":{\"enum\":[\"CompanyDefault\",\"AllCurrenciesAllowed\",\"SpecifiedCurrencies\",\"FirmDefault\"],\"type\":\"string\"},\"InvoiceFormatsAllowed\":{\"enum\":[\"CompanyDefault\",\"AllFormatsAllowed\",\"LedesOnly\",\"FirmDefault\"],\"type\":\"string\"},\"InvoiceTaxTypeAllowed\":{\"enum\":[\"CompanyDefault\",\"FirmDefault\",\"AllTaxTypesAllowed\",\"NonStandardTaxTypesProhibited\",\"NonStandardTaxTypesWithOtherProhibited\"],\"type\":\"string\"},\"LedesFormatsAllowed\":{\"enum\":[\"CompanyDefault\",\"FirmDefault\",\"LedesAll\",\"Ledes98B\",\"Ledes98BI\",\"LedesXML\"],\"type\":\"string\"},\"MatterBudgetReqt\":{\"enum\":[\"Null\",\"Optional\",\"Never\"],\"type\":\"string\"},\"NewAlert\":{\"required\":[\"description\",\"firmId\"],\"type\":\"object\",\"properties\":{\"firmId\":{\"type\":\"integer\",\"format\":\"int32\"},\"description\":{\"maxLength\":150,\"type\":\"string\"},\"linkUrl\":{\"type\":\"string\",\"nullable\":true}},\"additionalProperties\":false},\"PortfolioAuditAction\":{\"enum\":[\"RedFlag\",\"AutoReduce\",\"AutoReject\"],\"type\":\"string\"},\"PortfolioDateMode\":{\"enum\":[\"DatePosted\",\"BillingPeriodEndDate\"],\"type\":\"string\"},\"PortfolioManagementOption\":{\"enum\":[\"TotalCosts\",\"FeesExpenses\"],\"type\":\"string\"},\"Position\":{\"enum\":[\"Null\",\"Partner\",\"Associate\",\"OfCounsel\",\"Paralegal\",\"LegalAssistant\",\"BillingClerkOrManager\",\"Other\",\"Unspecified\"],\"type\":\"string\"},\"ServiceProviderType\":{\"enum\":[\"AccidentReconstruction\",\"Accountant\",\"Arbitrator\",\"Architect\",\"ComputerForensics\",\"Consultant\",\"CopyServices\",\"CourtReporter\",\"Doctor\",\"Economist\",\"ElectronicDataDiscovery\",\"Engineer\",\"EnvironmentalTesting\",\"ForensicAnimation\",\"ForensicGraphics\",\"IndependentAdjuster\",\"InsuranceCompany\",\"Laboratory\",\"LawFirm\",\"LegalServices\",\"LitigationSupport\",\"Lobbyist\",\"Logistics\",\"OccupationalTherapist\",\"Other\",\"PatentFilingService\",\"Photocopying\",\"Photographer\",\"PhysicalTherapist\",\"PrivateInvestigator\",\"ProcessService\",\"Psychologist\",\"Research\",\"TechnologyConsultant\",\"TemporaryStaffingService\",\"TrademarkService\",\"TransferAgent\",\"TranslationService\",\"TrialConsultant\",\"VideoDepositionService\",\"VideoServices\",\"Videographer\",\"WitnessExpert\"],\"type\":\"string\"},\"SystemRole\":{\"enum\":[\"Null\",\"FirmAdmin\",\"FirmOfficeAdmin\",\"FirmUserWithBilling\",\"ThirdPartyBiller\",\"FirmUser\"],\"type\":\"string\"},\"UserStatus\":{\"enum\":[\"Active\",\"Inactive\"],\"type\":\"string\"}},\"securitySchemes\":{\"OAuth2\":{\"type\":\"oauth2\",\"flows\":{\"clientCredentials\":{\"tokenUrl\":\"https://api.thomsonreuters.com/onepass/oauth2/token?grant_type=client_credentials\",\"scopes\":{}}}},\"Token\":{\"type\":\"http\",\"description\":\"Access token (TR Account)\",\"scheme\":\"bearer\"}}},\"security\":[{\"OAuth2\":[]},{\"Token\":[]}],\"tags\":[{\"name\":\"Alerts\",\"description\":\"Manage the firm alerts to control the firm invoice processing flow. The alerts are displayed on invoices submitted by firms or when the firm attempts to submit an invoice.\"},{\"name\":\"Firms\",\"description\":\"The Firms API provides access to get and manage Firms metadata.\"},{\"name\":\"Portfolios\",\"description\":\"Manage firm matter portfolios to track combined financial spending on all the matters assigned to a portfolio.\"}]}"}]}]