{
  "x-generator": "NSwag v14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))",
  "openapi": "3.0.0",
  "info": {
    "title": "API Reference",
    "description": "## Status Codes and Errors\r\n\r\n<div class=\"row\">\r\n    <div class=\"col-xs-12\">\r\n        <p>Striven REST API uses standard HTTP codes when returning API response.Error details are are provided in the response body whereever applicable.</p>\r\n        <p>\r\n            <table class=\"table table-responsive\">\r\n                <thead>\r\n                    <tr>\r\n                        <th style=\"text-align: left;\">Status Code</th>\r\n                        <th style=\"text-align: left;\">Description</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr>\r\n                        <td>200 OK</td>\r\n                        <td>The API call is successful.</td>\r\n                    </tr>\r\n                    <tr>\r\n                        <td>400 Bad Request</td>\r\n                        <td>The parameters supplied with the request are invalid. Response body will contain details about which parameter is incorrect.</td>\r\n                    </tr>\r\n                    <tr>\r\n                        <td>401 Unauthorized</td>\r\n                        <td>OAuth access token is invalid.It might have been expired.</td>\r\n                    </tr>\r\n                    <tr>\r\n                        <td>404 Not Found</td>\r\n                        <td>The requested resource is not found.</td>\r\n                    </tr>\r\n                    <tr>\r\n                        <td>429 Too Many Requests</td>\r\n                        <td>Too many requests were sent to the API in a given amount of time.See the <a href=\"#overview--rate-limits\"> rate limits</a> that correspond to your Striven plan for details.</td>\r\n                    </tr>\r\n                    <tr>\r\n                        <td>500 Internal Server Error</td>\r\n                        <td>\r\n                            Unexpected error occured at the API server.These errors are logged in system and will be reviewed and fixed as they occur.\r\n                        </td>\r\n                    </tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n    </div>\r\n</div>\r\n\r\n## Static Items\r\n<div class=\"row\">\r\n    <div class=\"col-xs-12\">\r\n        <p>\r\n            This page lists all the Static List items like Status and Types that are returned with a API response or needs to be supplied with an API request\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">Bill Credit Status</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>165</td><td>Active</td></tr>\r\n                    <tr><td>166</td><td>Voided</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">Bill Payment CC Charge Status</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>151</td><td>Active</td></tr>\r\n                    <tr><td>152</td><td>Voided</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">Bill Payment Check Status</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>143</td><td>Active</td></tr>\r\n                    <tr><td>144</td><td>Voided</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">Bill Status</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>124</td><td>Pending Review</td></tr>\r\n                    <tr><td>125</td><td>To Be Paid</td></tr>\r\n                    <tr><td>126</td><td>Paid</td></tr>\r\n                    <tr><td>127</td><td>Canceled</td></tr>\r\n                    <tr><td>128</td><td>Denied</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">Credit Memo Status</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>163</td><td>Active</td></tr>\r\n                    <tr><td>164</td><td>Voided</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">Customer Asset Status</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>15</td><td>Out of Service</td></tr>\r\n                    <tr><td>16</td><td>In Service</td></tr>\r\n                    <tr><td>17</td><td>Retired</td></tr>\r\n                    <tr><td>148</td><td>Unsupported</td></tr>\r\n                    <tr><td>191</td><td>Inactive</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">Customer/Vendor Status</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>1</td><td>Prospect</td></tr>\r\n                    <tr><td>2</td><td>Active</td></tr>\r\n                    <tr><td>3</td><td>Deleted</td></tr>\r\n                    <tr><td>4</td><td>Lost</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">Customer/Vendor Types</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>1</td><td>Customer</td></tr>\r\n                    <tr><td>2</td><td>Vendor</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">GL Account Types</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>1</td><td>Income</td></tr>\r\n                    <tr><td>2</td><td>Expense</td></tr>\r\n                    <tr><td>3</td><td>Fixed Asset</td></tr>\r\n                    <tr><td>4</td><td>Bank</td></tr>\r\n                    <tr><td>5</td><td>Loan</td></tr>\r\n                    <tr><td>6</td><td>Credit Card</td></tr>\r\n                    <tr><td>7</td><td>Equity</td></tr>\r\n                    <tr><td>8</td><td>Accounts Receivable</td></tr>\r\n                    <tr><td>9</td><td>Accounts Payable</td></tr>\r\n                    <tr><td>10</td><td>Cost of Goods Sold</td></tr>\r\n                    <tr><td>11</td><td>Other Asset</td></tr>\r\n                    <tr><td>12</td><td>Other Current Asset</td></tr>\r\n                    <tr><td>13</td><td>Other Current Liability</td></tr>\r\n                    <tr><td>14</td><td>Long Term Liability</td></tr>\r\n                    <tr><td>15</td><td>Other Income</td></tr>\r\n                    <tr><td>16</td><td>Other Expense</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">Inventory Adjustment Types</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>1</td><td>Quantity</td></tr>\r\n                    <tr><td>2</td><td>Value</td></tr>\r\n                    <tr><td>3</td><td>Quantity and Value</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">Invoice Status</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>160</td><td>Active</td></tr>\r\n                    <tr><td>161</td><td>Voided</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">Item Build Status</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>182</td><td>Incomplete</td></tr>\r\n                    <tr><td>186</td><td>Pending</td></tr>\r\n                    <tr><td>170</td><td>Finalized</td></tr>\r\n                    <tr><td>171</td><td>Voided</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">Journal Entry Status</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>145</td><td>Active</td></tr>\r\n                    <tr><td>146</td><td>Voided</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">Milestone Status</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>43</td><td>Pending</td></tr>\r\n                    <tr><td>44</td><td>Done</td></tr>\r\n                    <tr><td>66</td><td>Canceled</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">Order Invoice Status</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>167</td><td>No</td></tr>\r\n                    <tr><td>168</td><td>Partial</td></tr>\r\n                    <tr><td>169</td><td>Full</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">Order Line Item Status</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>30</td><td>Pending</td></tr>\r\n                    <tr><td>31</td><td>Ordered</td></tr>\r\n                    <tr><td>32</td><td>Shipped</td></tr>\r\n                    <tr><td>33</td><td>Canceled</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">Order Status</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>18</td><td>Incomplete</td></tr>\r\n                    <tr><td>19</td><td>Quoted</td></tr>\r\n                    <tr><td>20</td><td>Pending Approval</td></tr>\r\n                    <tr><td>21</td><td>Declined</td></tr>\r\n                    <tr><td>22</td><td>Approved</td></tr>\r\n                    <tr><td>23</td><td>Canceled</td></tr>\r\n                    <tr><td>24</td><td>Lost</td></tr>\r\n                    <tr><td>25</td><td>In Progress</td></tr>\r\n                    <tr><td>27</td><td>Completed</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">Payment Status</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>69</td><td>Pending</td></tr>\r\n                    <tr><td>70</td><td>Approved</td></tr>\r\n                    <tr><td>71</td><td>Failed</td></tr>\r\n                    <tr><td>75</td><td>Voided</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">Phone Number Types</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>1</td><td>Mobile</td></tr>\r\n                    <tr><td>2</td><td>Work</td></tr>\r\n                    <tr><td>3</td><td>Home</td></tr>\r\n                    <tr><td>4</td><td>Fax</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">PO Status</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>105</td><td>Incomplete</td></tr>\r\n                    <tr><td>106</td><td>Pending</td></tr>\r\n                    <tr><td>107</td><td>Declined</td></tr>\r\n                    <tr><td>108</td><td>Approved</td></tr>\r\n                    <tr><td>109</td><td>In Progress</td></tr>\r\n                    <tr><td>110</td><td>Fulfilled</td></tr>\r\n                    <tr><td>111</td><td>Canceled</td></tr>\r\n                    <tr><td>132</td><td>Closed</td></tr>\r\n                    <tr><td>199</td><td>Pending Approval</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">PO Line Item Status</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>113</td><td>Pending</td></tr>\r\n                    <tr><td>114</td><td>Ordered</td></tr>\r\n                    <tr><td>115</td><td>Received</td></tr>\r\n                    <tr><td>116</td><td>Canceled</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">Project Status</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>34</td><td>Pending</td></tr>\r\n                    <tr><td>36</td><td>In Progress</td></tr>\r\n                    <tr><td>37</td><td>Done</td></tr>\r\n                    <tr><td>38</td><td>Canceled</td></tr>\r\n                    <tr><td>180</td><td>On Hold</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">SubContracted Work Status</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>140</td><td>Pending</td></tr>\r\n                    <tr><td>141</td><td>In Progress</td></tr>\r\n                    <tr><td>142</td><td>Done</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">Task Status</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>48</td><td>Open</td></tr>\r\n                    <tr><td>50</td><td>Done</td></tr>\r\n                    <tr><td>51</td><td>Canceled</td></tr>\r\n                    <tr><td>68</td><td>On Hold</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">Vendor PO Status</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>117</td><td>Pending</td></tr>\r\n                    <tr><td>118</td><td>Accepted</td></tr>\r\n                    <tr><td>119</td><td>Declined</td></tr>\r\n                    <tr><td>120</td><td>Partially Fulfilled</td></tr>\r\n                    <tr><td>121</td><td>Fulfilled</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th colspan=\"2\">Time Entry Status</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr><td>196</td><td>Pending Approval</td></tr>\r\n                    <tr><td>197</td><td>Approved</td></tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n    </div>\r\n</div>\r\n\r\n## Rate Limits\r\n<div class=\"row\">\r\n    <div class=\"col-xs-12\">\r\n        <p>\r\n            To ensure the reliability of the API, and to keep it available to all users, the Striven API enforces rate limits based on your Striven plan.\r\n            We enforce both a per-minute rate limit, and a daily usage limit. Daily usage tracking resets at midnight UTC.\r\n        </p>\r\n        <p>\r\n            Requests that exceed either limit will receive a <code>429 Too Many Requests</code>\r\n            response, which contains the standard <code>Retry-After</code> header that indicates how many seconds a client should wait before retrying the request.\r\n            Limits are allocated per tenant, so if a tenant has multiple clients consuming the API, an individual client could receive a <code>429</code> response without necessarily exceeding the rate themselves.\r\n        </p>\r\n        <p>\r\n            If you upgrade to the Enterprise plan, please allow 60 minutes for your rate limits to be increased.\r\n        </p>\r\n        <p>\r\n            <table class=\"table table-responsive static-list-table\">\r\n                <thead>\r\n                    <tr>\r\n                        <th>Striven Plan</th>\r\n                        <th>Max Requests per Minute</th>\r\n                        <th>Max Requests per Day</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody>\r\n                    <tr>\r\n                        <td>Standard</td>\r\n                        <td>100</td>\r\n                        <td>5000</td>\r\n                    </tr>\r\n                    <tr>\r\n                        <td>Enterprise</td>\r\n                        <td>500</td>\r\n                        <td>25,000</td>\r\n                    </tr>\r\n                </tbody>\r\n            </table>\r\n        </p>\r\n        <section id=\"example\">\r\n            <h2>Example</h2>\r\n            <p>\r\n                This is a sample response a tenant on the Standard plan would receive when they exceed the per-minute Rate Limit.\r\n            </p>\r\n            <h3>Request</h3>\r\n            <pre class=\"rate-limit-pre\">\r\n                GET https://api.striven.com/v1/shipping-methods HTTP/1.1\r\n                Authorization: Bearer [your-access-token]\r\n            </pre>\r\n            <h3>Response</h3>\r\n            <pre class=\"rate-limit-pre\">\r\n                HTTP/1.1 429 Too Many Requests\r\n                Content-Type: application/json\r\n                Retry-After: 60\r\n                {\r\n                    \"message\": \"You have reached the per-minute API usage limit for your Striven plan. The Standard plan allows 100 API calls per minute. Please wait 1 minute, or contact your administrator to upgrade to the Enterprise plan. If you upgrade to the Enterprise plan, please allow 60 minutes for this change to take effect.\"\r\n                }\r\n            </pre>\r\n        </section>\r\n    </div>\r\n</div>\r\n\r\n## Maintenance Schedule\r\n<h4>Striven API might not be available during the following maintenance schedule.</h4>\r\n<div>\r\n    <table class=\"table static-list-table\">\r\n        <thead class=\"hidden-sm hidden-xs\">\r\n            <tr>\r\n                <th>Event</th>\r\n                <th>When</th>\r\n                <th>Description</th>\r\n            </tr>\r\n        </thead>\r\n        <tbody>\r\n            <tr>\r\n                <td>Maintenance Window</td>\r\n                <td>Every week Saturday from 2AM - 6AM Eastern Standard Time</td>\r\n                <td>During this time Striven infrastructure goes under scheduled maintenance.</td>\r\n            </tr>\r\n            <tr>\r\n                <td>Release</td>\r\n                <td>Based on the announcement made. Mostly, Sundays 7 AM Eastern Standard Time</td>\r\n                <td>During this time a newer version of Striven is released.</td>\r\n            </tr>\r\n        </tbody>\r\n    </table>\r\n</div>\r\n<style>\r\n    .static-list-table {\r\n        width: 100%;\r\n    }\r\n        .static-list-table tr {\r\n            text-align: left;\r\n        }\r\n        .static-list-table td:first-child {\r\n            width: 30%;\r\n        }\r\n    .rate-limit-pre {\r\n        white-space: pre-wrap;\r\n        word-break: break-word;\r\n    }\r\n</style>",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://api.striven.com"
    }
  ],
  "paths": {
    "/v2/tasks/search": {
      "post": {
        "tags": [
          "Tasks"
        ],
        "summary": "Searches for tasks using the search filters.",
        "description": "\n\n**Required Permissions:** Tasks - Read, Tasks - Read & Write",
        "operationId": "TasksV2_Search",
        "requestBody": {
          "x-name": "searchParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TaskSearchParams"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "Tasks",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfTaskResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/tasks/{id}": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "summary": "Gets task detail by id.",
        "description": "\n\n**Required Permissions:** Tasks - Read, Tasks - Read & Write",
        "operationId": "TasksV2_Get",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Task Id",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Task Details for given Task Id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskDetail"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "patch": {
        "tags": [
          "Tasks"
        ],
        "summary": "Updates tasks partially with supplied information.",
        "description": "You may only provide the properties that needs updating instead of whole object in the body. For example, in order to update Title, just supply Title in the request body.\n\n**Required Permissions:** Tasks - Read & Write",
        "operationId": "TasksV2_UpdateTask",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "obj",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TaskPatch"
                  }
                ]
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/tasks": {
      "post": {
        "tags": [
          "Tasks"
        ],
        "summary": "Creates a new task.",
        "description": "\n\n**Required Permissions:** Tasks - Read & Write",
        "operationId": "TasksV2_Create",
        "requestBody": {
          "x-name": "task",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TaskCreateParameters"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskDetail"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/tasks/{id}/assignments": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "summary": "Gets task assignments by task id.",
        "description": "\n\n**Required Permissions:** Tasks - Read, Tasks - Read & Write",
        "operationId": "TasksV2_GetAssignments",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TaskAssignment"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Tasks"
        ],
        "summary": "Deletes a task assignment.",
        "description": "\n\n**Required Permissions:** Tasks - Read & Write",
        "operationId": "TasksV2_DeleteAssignment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "assignment",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TaskAssignment"
                  }
                ]
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Tasks"
        ],
        "summary": "Adds an assignment to task.",
        "description": "\n\n**Required Permissions:** Tasks - Read & Write",
        "operationId": "TasksV2_CreateAssignment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "assignment",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TaskAssignment"
                  }
                ]
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/tasks/types": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "summary": "Gets task types based on the active parameter.",
        "description": "\n\n**Required Permissions:** Tasks - Read, Tasks - Read & Write",
        "operationId": "TasksV2_GetTypes",
        "parameters": [
          {
            "name": "active",
            "in": "query",
            "schema": {
              "type": "boolean",
              "nullable": true
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TaskType"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/tasks/priorities": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "summary": "Gets task priorities based on the active parameter.",
        "description": "\n\n**Required Permissions:** Tasks - Read, Tasks - Read & Write",
        "operationId": "TasksV2_GetPriorities",
        "parameters": [
          {
            "name": "active",
            "in": "query",
            "schema": {
              "type": "boolean",
              "nullable": true
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TaskPriority"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/tasks/{id}/custom-statuses": {
      "put": {
        "tags": [
          "Tasks"
        ],
        "summary": "Updates custom status of the task",
        "description": "\n\n**Required Permissions:** Tasks - Read & Write",
        "operationId": "TasksV2_UpdateCustomStatus",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "customStatus",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TaskCustomStatus"
                  }
                ]
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/tasks/{id}/mark-open": {
      "post": {
        "tags": [
          "Tasks"
        ],
        "summary": "Marks task status open.",
        "description": "\n\n**Required Permissions:** Tasks - Read & Write",
        "operationId": "TasksV2_MarkStatusOpen",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/tasks/{id}/mark-on-hold": {
      "post": {
        "tags": [
          "Tasks"
        ],
        "summary": "Marks task status on hold.",
        "description": "\n\n**Required Permissions:** Tasks - Read & Write",
        "operationId": "TasksV2_MarkStatusOnHold",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/tasks/{id}/mark-canceled": {
      "post": {
        "tags": [
          "Tasks"
        ],
        "summary": "Marks task status canceled.",
        "description": "\n\n**Required Permissions:** Tasks - Read & Write",
        "operationId": "TasksV2_MarkStatusCanceled",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/tasks/{id}/mark-done": {
      "post": {
        "tags": [
          "Tasks"
        ],
        "summary": "Marks task status done.",
        "description": "\n\n**Required Permissions:** Tasks - Read & Write",
        "operationId": "TasksV2_MarkStatusDone",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "customFields",
          "description": "Task Status Done related Custom Fields",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/CustomFieldValue"
                }
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/tasks/{id}/attachments": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "summary": "Gets all attachments for a task.",
        "description": "\n\n**Required Permissions:** Tasks - Read, Tasks - Read & Write",
        "operationId": "TasksV2_GetAttachments",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "TaskId for which to look for attachments",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "List of Attachments",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfAttachment"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Tasks"
        ],
        "summary": "Uploads an attachment to the task.",
        "description": "This API expects a multipart/form-data encoded request containing the full contents of the file to be uploaded.\n\n**Required Permissions:** Tasks - Read & Write",
        "operationId": "TasksV2_UploadAttachment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID for the Task to which the attachment is being uploaded.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "HTTP Status OK is returned with success and failure message if any",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/tasks/{id}/attachments/{attachmentId}": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "summary": "Downloads an attachment for a task by attachment id.",
        "description": "\n\n**Required Permissions:** Tasks - Read, Tasks - Read & Write",
        "operationId": "TasksV2_DownloadAttachment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Task id",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "attachmentId",
            "in": "path",
            "required": true,
            "description": "Attachment id",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/tasks/{id}/customer-assets": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "summary": "Gets all customer assets for a task.",
        "description": "\n\n**Required Permissions:** Tasks - Read, Tasks - Read & Write",
        "operationId": "TasksV2_GetCustomerAssets",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "TaskId for which to look for cusomer assets",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "List of customer assets",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IdNamePair"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Tasks"
        ],
        "summary": "Adds customer asset for a task.",
        "description": "\n\n**Required Permissions:** Tasks - Read & Write",
        "operationId": "TasksV2_AddCustomerAssets",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "assetId",
          "content": {
            "application/json": {
              "schema": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Tasks"
        ],
        "summary": "Deletes a customer asset to the task.",
        "description": "\n\n**Required Permissions:** Tasks - Read & Write",
        "operationId": "TasksV2_DeleteCustomerAsset",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "assetId",
          "content": {
            "application/json": {
              "schema": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/tasks/{id}/contacts": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "summary": "Gets all task contacts.",
        "description": "\n\n**Required Permissions:** Tasks - Read, Tasks - Read & Write",
        "operationId": "TasksV2_GetTaskContacts",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TaskContact"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Tasks"
        ],
        "summary": "Adds a contact to task.",
        "description": "\n\n**Required Permissions:** Tasks - Read & Write",
        "operationId": "TasksV2_AddTaskContact",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "contactId",
          "content": {
            "application/json": {
              "schema": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Tasks"
        ],
        "summary": "Deletes a contact for a task.",
        "description": "\n\n**Required Permissions:** Tasks - Read & Write",
        "operationId": "TasksV2_DeleteTaskContact",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "contactId",
          "content": {
            "application/json": {
              "schema": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/tasks/types/{id}/custom-fields": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "summary": "Gets the custom field definitions for the task type id.",
        "description": "\n\n**Required Permissions:** Tasks - Read, Tasks - Read & Write",
        "operationId": "TasksV2_GetTypeCustomFieldMetaData",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide task type id to get list of available custom fields.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomFieldMeta"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/tasks/types/{id}/mark-done-custom-fields": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "summary": "Gets the mark done custom field definitions for the task type id.",
        "description": "\n\n**Required Permissions:** Tasks - Read, Tasks - Read & Write",
        "operationId": "TasksV2_GetMarkDoneCustomFieldMetaData",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide task type id to get list of available mark done custom fields.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomFieldMeta"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/tasks/{id}/custom-fields": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "summary": "Gets the custom fields for a task.",
        "description": "\n\n**Required Permissions:** Tasks - Read, Tasks - Read & Write",
        "operationId": "TasksV2_GetCustomFields",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide task id to get list of available custom fields.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomFieldValue"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Tasks"
        ],
        "summary": "Saves the custom fields for the specified id.",
        "description": "\n\n**Required Permissions:** Tasks - Read & Write",
        "operationId": "TasksV2_SaveCustomFields",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide id to save custom fields for.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "customFields",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/CustomFieldValue"
                }
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/tasks/{id}/mark-done-custom-fields": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "summary": "Gets the mark done custom fields for a task.",
        "description": "\n\n**Required Permissions:** Tasks - Read, Tasks - Read & Write",
        "operationId": "TasksV2_GetMarkDoneCustomFields",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide task id to get list of available mark done custom fields.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomFieldValue"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/tasks/{id}/checklist-items": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "summary": "Gets all checklist items for a task.",
        "description": "\n\n**Required Permissions:** Tasks - Read, Tasks - Read & Write",
        "operationId": "TasksV2_GetCheckListItems",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CheckListItem"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/tasks/{id}/checklist-items/{checkListItemId}": {
      "post": {
        "tags": [
          "Tasks"
        ],
        "summary": "Checks off checklist item and adds notes to a task.",
        "description": "\n\n**Required Permissions:** Tasks - Read & Write",
        "operationId": "TasksV2_CheckOffCheckListItem",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "checkListItemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "requestBody": {
          "x-name": "notes",
          "content": {
            "application/json": {
              "schema": {
                "type": "string",
                "nullable": true
              }
            }
          },
          "x-position": 3
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/tasks/{id}/time-entries": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "summary": "Get Task Time Entries based on Task Id",
        "description": "\n\n**Required Permissions:** Time Entry - Read, Time Entry - Read & Write",
        "operationId": "TasksV2_GetTimeEnteries",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TimeEntry"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Tasks"
        ],
        "summary": "Save Time Entry for a Task",
        "description": "\n\n**Required Permissions:** Time Entry - Read & Write",
        "operationId": "TasksV2_Save",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "timeEntryParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TimeEntryCreateParams"
                  }
                ]
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TimeEntry"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/tasks/{id}/time-entries/{entryId}": {
      "put": {
        "tags": [
          "Tasks"
        ],
        "summary": "Edit Time Entry for a Task",
        "description": "\n\n**Required Permissions:** Time Entry - Read & Write",
        "operationId": "TasksV2_UpdateTimeEntry",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "entryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "requestBody": {
          "x-name": "timeEntryParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TimeEntryUpdateParams"
                  }
                ]
              }
            }
          },
          "x-position": 3
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TimeEntry"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/projects/{id}": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Gets project detail by id.",
        "description": "\n\n**Required Permissions:** Projects - Read, Projects - Read & Write",
        "operationId": "ProjectsV2_Get",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Project Id",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Project details for given Project Id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectDetail"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/projects": {
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Creates a new project.",
        "description": "\n\n**Required Permissions:** Projects - Read & Write",
        "operationId": "ProjectsV2_Create",
        "requestBody": {
          "x-name": "project",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ProjectCreateParameters"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectDetail"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/projects/types": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Gets project types based on the active parameter.",
        "description": "\n\n**Required Permissions:** Projects - Read, Projects - Read & Write",
        "operationId": "ProjectsV2_GetTypes",
        "parameters": [
          {
            "name": "active",
            "in": "query",
            "schema": {
              "type": "boolean",
              "nullable": true
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProjectType"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/projects/priorities": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Gets project priorities based on the active parameter.",
        "description": "\n\n**Required Permissions:** Projects - Read, Projects - Read & Write",
        "operationId": "ProjectsV2_GetPriorities",
        "parameters": [
          {
            "name": "active",
            "in": "query",
            "schema": {
              "type": "boolean",
              "nullable": true
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProjectPriority"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/projects/custom-fields": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Gets the custom field definitions for the project id.",
        "description": "\n\n**Required Permissions:** Projects - Read, Projects - Read & Write",
        "operationId": "ProjectsV2_GetCustomFieldMetaData",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomFieldMeta"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/projects/types/{id}/custom-fields": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Gets the custom field definitions for the project type id.",
        "description": "\n\n**Required Permissions:** Projects - Read, Projects - Read & Write",
        "operationId": "ProjectsV2_GetTypeCustomFieldMetaData",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide project type id to get list of available custom fields.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomFieldMeta"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/projects/{id}/custom-fields-values": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Gets list of custom fields for the project specified by project id.",
        "description": "\n\n**Required Permissions:** Projects - Read, Projects - Read & Write",
        "operationId": "ProjectsV2_GetCustomFieldValues",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide project id to get list of available custom fields and values.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomFieldValue"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Saves the custom fields for the specified id.",
        "description": "\n\n**Required Permissions:** Projects - Read & Write",
        "operationId": "ProjectsV2_SaveCustomFieldValues",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide project id to save custom field values for.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "customFields",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/CustomFieldValue"
                }
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/projects/{id}/associate-order/{orderId}": {
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Associates a sales order to the project.",
        "description": "\n\n**Required Permissions:** Projects - Read & Write, Sales Orders - Read & Write",
        "operationId": "ProjectsV2_AssociateOrder",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Project Id",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "description": "Sales Order Id",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "Sales order associated to the project",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/project-milestones/{id}": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Gets details of a project milestone.",
        "description": "\n\n**Required Permissions:** Projects - Read, Projects - Read & Write",
        "operationId": "ProjectsV2_GetMilestone",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Project Milestone Id",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Project milestone details for given Project Milestone Id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MilestoneDetail"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "put": {
        "tags": [
          "Projects"
        ],
        "summary": "Updates a project milestone.",
        "description": "\n\n**Required Permissions:** Projects - Read & Write",
        "operationId": "ProjectsV2_UpdateMilestone",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Project Milestone Id",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "milestone",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MilestoneUpdateParameters"
                  }
                ]
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "Project milestone details for the updated milestone",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MilestoneDetail"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/project-milestones": {
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Creates a project milestone.",
        "description": "\n\n**Required Permissions:** Projects - Read & Write",
        "operationId": "ProjectsV2_CreateMilestone",
        "requestBody": {
          "x-name": "milestone",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MilestoneCreateParameters"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "Project milestone details for the newly created milestone",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MilestoneDetail"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/assignment-categories": {
      "get": {
        "tags": [
          "Assignment Categories"
        ],
        "summary": "Gets list of all assignment categories",
        "description": "\n\n**Required Permissions:** Assignment Categories - Read",
        "operationId": "AssignmentCategories_GetAssignmentCategories",
        "responses": {
          "200": {
            "description": "List of assignment categories ",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfAssignmentCategory"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/bill-payment-cc-charges/search": {
      "post": {
        "tags": [
          "Bill Payment CC Charges"
        ],
        "summary": "Gets list of Bill Payment CC Charges using the search filters passed in the request body.",
        "description": "\n\n**Required Permissions:** Bill Payments - Read, Bill Payments - Read & Write",
        "operationId": "BillPaymentCCChargesV2_Search",
        "requestBody": {
          "x-name": "searchParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/BillPaymentCCChargeSearchParams"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "List of Bill Payment CC Charges",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfBillPaymentCCChargeResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/bill-payment-cc-charges/{id}": {
      "get": {
        "tags": [
          "Bill Payment CC Charges"
        ],
        "summary": "Gets Bill Payment CC Charge detail by id.",
        "description": "\n\n**Required Permissions:** Bill Payments - Read, Bill Payments - Read & Write",
        "operationId": "BillPaymentCCChargesV2_Get",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "CC Charge Id",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Bill Payment CC Charge Details for given CC Charge Id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillPaymentCCChargeDetail"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/bill-payment-cc-charges": {
      "post": {
        "tags": [
          "Bill Payment CC Charges"
        ],
        "summary": "Creates a new Bill Payment CC Charge.",
        "description": "API Key requires Edit Transactions Prior Closing Date permission to edit a Bill Payment CC Charge if it has TxnDate prior to the closing date.\n\n**Required Permissions:** Bill Payments - Read & Write",
        "operationId": "BillPaymentCCChargesV2_Save",
        "requestBody": {
          "x-name": "ccChargeParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/BillPaymentCCChargeCreateParams"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "Bill Payment CC Charge Details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillPaymentCCChargeDetail"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/bill-payment-cc-charges/{id}/applied-bills": {
      "get": {
        "tags": [
          "Bill Payment CC Charges"
        ],
        "summary": "Gets bills applied by Bill Payment CC Charge id.",
        "description": "\n\n**Required Permissions:** Bill Payments - Read, Bill Payments - Read & Write",
        "operationId": "BillPaymentCCChargesV2_GetAppliedBills",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "CC Charge Id",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "List of Bills applied to the Bill Payment CC Charge",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AppliedToBills"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/bill-payment-cc-charges/{id}/apply-bills": {
      "post": {
        "tags": [
          "Bill Payment CC Charges"
        ],
        "summary": "Applies Bill Payment CC Charge to specified bills.",
        "description": "\n\n**Required Permissions:** Bill Payments - Read & Write",
        "operationId": "BillPaymentCCChargesV2_ApplyToBills",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "CC Charge Id",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "bills",
          "description": "List of bills that the Bill Payment CC Charge will apply to",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/AppliedToBills"
                }
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "Bills applied to Bill Payment CC Charge for given CC Charge Id",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AppliedToBills"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/bill-payment-cc-charges/{id}/unapply-bill/{billId}": {
      "post": {
        "tags": [
          "Bill Payment CC Charges"
        ],
        "summary": "Unapply bill from Bill Payment CC Charge",
        "description": "\n\n**Required Permissions:** Bill Payments - Read & Write",
        "operationId": "BillPaymentCCChargesV2_UnapplyBill",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "billId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "Bill successfully unapplied from the Bill Payment CC Charge",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/bill-payment-cc-charges/{id}/void": {
      "post": {
        "tags": [
          "Bill Payment CC Charges"
        ],
        "summary": "Voids Bill Paymewnt CC Charge specified by id.",
        "description": "This action cannot be undone.\n            API Key requires Edit Transactions Prior Closing Date permission to edit a Bill Payment CC Charges if it has TxnDate prior to the closing date.\n\n**Required Permissions:** Bill Payments - Read & Write",
        "operationId": "BillPaymentCCChargesV2_VoidBillPaymentCCCharge",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide CC Charge id to be used for void",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Bill Payment CC Charge successfully voided",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/bill-payment-checks/search": {
      "post": {
        "tags": [
          "Bill Payment Checks"
        ],
        "summary": "Search Bill Payment Checks. It doesn’t include other types of checks.",
        "description": "\n\n**Required Permissions:** Bill Payments - Read, Bill Payments - Read & Write",
        "operationId": "BillPaymentChecksV2_Search",
        "requestBody": {
          "x-name": "searchParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/BillPaymentCheckSearchParams"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "List of Bill Payment Checks",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfBillPaymentCheckResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/bill-payment-checks/{id}": {
      "get": {
        "tags": [
          "Bill Payment Checks"
        ],
        "summary": "Gets bill payment check detail by id.",
        "description": "\n\n**Required Permissions:** Bill Payments - Read, Bill Payments - Read & Write",
        "operationId": "BillPaymentChecksV2_Get",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Check Id",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Bill Payment Check Details for given Check Id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillPaymentCheckDetail"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/bill-payment-checks": {
      "post": {
        "tags": [
          "Bill Payment Checks"
        ],
        "summary": "Creates a new bill payment check.",
        "description": "API Key requires Edit Transactions Prior Closing Date permission to edit a bill payment checks if it has TxnDate prior to the closing date.\n\n**Required Permissions:** Bill Payments - Read & Write",
        "operationId": "BillPaymentChecksV2_Save",
        "requestBody": {
          "x-name": "checkParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/BillPaymentCheckCreateParams"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "Bill Payment Check Details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillPaymentCheckDetail"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/bill-payment-checks/{id}/applied-bills": {
      "get": {
        "tags": [
          "Bill Payment Checks"
        ],
        "summary": "Gets bills applied by bill payment check id.",
        "description": "\n\n**Required Permissions:** Bill Payments - Read, Bill Payments - Read & Write",
        "operationId": "BillPaymentChecksV2_GetAppliedBills",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Check Id",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Bills applied to bill payment check for given check Id",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AppliedToBills"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/bill-payment-checks/{id}/apply-bills": {
      "post": {
        "tags": [
          "Bill Payment Checks"
        ],
        "summary": "Applies bill payment check to specified bills.",
        "description": "\n\n**Required Permissions:** Bill Payments - Read & Write",
        "operationId": "BillPaymentChecksV2_ApplyToBills",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Check Id",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "bills",
          "description": "List of bills that the bill payment check will apply to",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/AppliedToBills"
                }
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "Bills applied to bill payment check for given check Id",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AppliedToBills"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/bill-payment-checks/{id}/unapply-bill/{billId}": {
      "post": {
        "tags": [
          "Bill Payment Checks"
        ],
        "summary": "Unapply bill from bill payment check",
        "description": "\n\n**Required Permissions:** Bill Payments - Read & Write",
        "operationId": "BillPaymentChecksV2_UnapplyBill",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "billId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "Bill successfully unapplied from the Bill Payment Check",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/bill-payment-checks/{id}/void": {
      "post": {
        "tags": [
          "Bill Payment Checks"
        ],
        "summary": "Voids bill paymewnt check specified by id.",
        "description": "This action cannot be undone.\n            API Key requires Edit Transactions Prior Closing Date permission to edit a bill payment checks if it has TxnDate prior to the closing date.\n\n**Required Permissions:** Bill Payments - Read & Write",
        "operationId": "BillPaymentChecksV2_VoidBillPaymentCheck",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide check id to be used for void",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Bill Payment Check successfully voided",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/unit-of-measure-sets": {
      "get": {
        "tags": [
          "Unit Of Measure Sets"
        ],
        "summary": "Gets list of all available active/inactive Unit Of Measure Sets",
        "description": "\n\n**Required Permissions:** Unit Of Measure Sets - Read",
        "operationId": "UnitOfMeasureSetsV2_GetUOMSets",
        "responses": {
          "200": {
            "description": "List of Unit Of Measure Sets",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfUOMSetSearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/Tasks/Search": {
      "post": {
        "tags": [
          "Tasks"
        ],
        "summary": "Searches for tasks using the search filters.",
        "description": "This API is deprecated. Please use v2 version of endpoint v2/tasks/search.\n\n**Required Permissions:** Tasks - Read, Tasks - Read & Write",
        "operationId": "Tasks_Search",
        "requestBody": {
          "x-name": "searchParam",
          "description": "All available search parameters",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TaskSearchParameters"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfTaskSearchResult"
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/Tasks/{TaskID}": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "summary": "Gets Task detail by TaskID.",
        "description": "This API is deprecated. Please use v2/tasks/{id} instead.\n\n**Required Permissions:** Tasks - Read, Tasks - Read & Write",
        "operationId": "Tasks_Get",
        "parameters": [
          {
            "name": "TaskID",
            "in": "path",
            "required": true,
            "description": "Provide TaskID to get details for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Task"
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/Tasks/{TaskID}/Attachments": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "summary": "Gets all attachments for a task.",
        "description": "This API is deprecated. Please use v2/tasks/{id}/attachments instead.\n\n**Required Permissions:** Tasks - Read, Tasks - Read & Write",
        "operationId": "Tasks_GetAttachments",
        "parameters": [
          {
            "name": "TaskID",
            "in": "path",
            "required": true,
            "description": "TaskID for which to look for attachments",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "List of Attachments",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfAttachment2"
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Tasks"
        ],
        "summary": "Uploads attachment to a specified Task.",
        "description": "This API is deprecated. Please use v2/tasks/{id}/attachments instead.\n\n**Required Permissions:** Tasks - Read & Write",
        "operationId": "Tasks_UploadAttachment",
        "parameters": [
          {
            "name": "TaskID",
            "in": "path",
            "required": true,
            "description": "ID for the Task to which the attachment is being uploaded. Submit Multipart Content with attachments in Request Body",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "HTTP Status OK is returned with success and failure message if any",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/Tasks/{id}/Attachments/{attachmentId}": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "summary": "Downloads a task's attachment specified by AttachmentID and TaskID.",
        "description": "This API is deprecated. Please use v2/tasks/{id}/attachments/{attachmentId} instead.\n\n**Required Permissions:** Tasks - Read, Tasks - Read & Write",
        "operationId": "Tasks_DownloadAttachment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "TaskID to which the attachment belongs",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "attachmentId",
            "in": "path",
            "required": true,
            "description": "ID for the attachement that needs download",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "This API returns NotFound (404) id the attachment specified is not found. Returns OK (200) with the attachment in response body",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/Tasks/types": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "summary": "Gets all task types.",
        "description": "This API is deprecated. Please use v2 version of endpoint v2/tasks/types instead.\n\n**Required Permissions:** Tasks - Read, Tasks - Read & Write",
        "operationId": "Tasks_GetTypes",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TaskType2"
                  }
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/Tasks/priorities": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "summary": "Gets all task priorities.",
        "description": "This API is deprecated. Please use v2/tasks/priorities instead.\n\n**Required Permissions:** Tasks - Read, Tasks - Read & Write",
        "operationId": "Tasks_GetPriorities",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskPriority2"
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/Tasks/create": {
      "post": {
        "tags": [
          "Tasks"
        ],
        "summary": "Create a new task.",
        "description": "This API is deprecated. Please use v2/tasks instead.\n\n**Required Permissions:** Tasks - Read & Write",
        "operationId": "Tasks_CreateTask",
        "requestBody": {
          "x-name": "taskParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TaskCreateParams"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/Tasks/{id}/custom-fields": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "summary": "Gets list of custom fields for the task specified by task id.",
        "description": "This API is deprecated. Please use v2/tasks/{id}/custom-fields instead.\n\n**Required Permissions:** Tasks - Read, Tasks - Read & Write",
        "operationId": "Tasks_GetTaskCustomFields",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide task id to get custom fields.  Use id = 0 to get list of custom fields for the entity.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomField"
                  }
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Tasks"
        ],
        "summary": "Saves the custom fields for the specified id.",
        "description": "This API is deprecated. Please use v2/tasks/{id}/custom-fields instead.\n\n**Required Permissions:** Tasks - Read & Write",
        "operationId": "Tasks_SaveCustomFields",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide id to save custom fields for.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "customFields",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/CustomField"
                }
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/Tasks/types/{id}/custom-fields": {
      "get": {
        "tags": [
          "Tasks"
        ],
        "summary": "Gets the custom field definitions for the task type id.",
        "description": "This API is deprecated. Please use v2/tasks/types/{id}/custom-fields instead.\n\n**Required Permissions:** Tasks - Read, Tasks - Read & Write",
        "operationId": "Tasks_GetCustomFieldsForTaskType",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide task type id to get list of available custom fields.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomField"
                  }
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/pools": {
      "get": {
        "tags": [
          "Pools"
        ],
        "summary": "Gets a list of available active pools in the system.",
        "description": "\n\n**Required Permissions:** Pools - Read",
        "operationId": "Pools_GetPools",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Pool"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/payment-terms": {
      "get": {
        "tags": [
          "Payment Terms"
        ],
        "summary": "Gets list of all available active/inactive payment terms.",
        "description": "\n\n**Required Permissions:** Payment Terms - Read",
        "operationId": "PaymentTerms_GetPaymentTerms",
        "parameters": [
          {
            "name": "excludeDiscounts",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfPaymentTerm"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/sales-orders/{id}": {
      "get": {
        "tags": [
          "Sales Orders"
        ],
        "summary": "Gets sales order details by id.",
        "description": "\n\n**Required Permissions:** Sales Orders - Read, Sales Orders - Read & Write",
        "operationId": "SalesOrders_GetSalesOrder",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide Item id to get details for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrder"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/sales-orders/search": {
      "post": {
        "tags": [
          "Sales Orders"
        ],
        "summary": "Search for sales orders using the search filters.",
        "description": "\n\n**Required Permissions:** Sales Orders - Read, Sales Orders - Read & Write",
        "operationId": "SalesOrders_GetSalesOrders",
        "requestBody": {
          "x-name": "searchParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SalesOrderSearchParameters"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfSalesOrderSearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/sales-orders": {
      "post": {
        "tags": [
          "Sales Orders"
        ],
        "summary": "Creates new or updates existing non-contract managed sales order.",
        "description": "This API performs full update for an existing sales order so ensure that all parameters and IDs are correctly supplied when using this api for update.\n\n**Required Permissions:** Sales Orders - Read & Write",
        "operationId": "SalesOrders_SaveSalesOrder",
        "requestBody": {
          "x-name": "salesOrder",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SalesOrder"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrder"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/sales-orders/{id}/mark-complete": {
      "post": {
        "tags": [
          "Sales Orders"
        ],
        "summary": "Marks a sales order complete.",
        "description": "This API provides the ability to notify the order contact about the sales order status change and generate an invoice for the remaining items that have not been invoiced yet.\n\n**Required Permissions:** Sales Orders - Read & Write",
        "operationId": "SalesOrders_MarkSalesOrderComplete",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "salesOrderParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SalesOrderMarkCompleteParameters"
                  }
                ]
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrder"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/sales-orders/{id}/mark-canceled": {
      "post": {
        "tags": [
          "Sales Orders"
        ],
        "summary": "Marks a sales order cancelled.",
        "description": "This API provides the ability to notify the order contact about the sales order status change.\n\n**Required Permissions:** Sales Orders - Read & Write",
        "operationId": "SalesOrders_MarkSalesOrderCanceled",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "salesOrderParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SalesOrderMarkCancelledParameters"
                  }
                ]
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrder"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/sales-orders/{id}/notes": {
      "get": {
        "tags": [
          "Sales Orders"
        ],
        "summary": "Gets list of notes for the sales order specified by sales order id.",
        "description": "\n\n**Required Permissions:** Sales Orders - Read, Sales Orders - Read & Write",
        "operationId": "SalesOrders_GetSalesOrderNotes",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide sales order id to get notes for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "PageIndex",
            "in": "query",
            "required": true,
            "description": "0 based index for Page Number",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "No. of records to fetch, default value is 100",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 100
            },
            "x-position": 3
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NotesLog"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/sales-orders/{id}/attachments": {
      "get": {
        "tags": [
          "Sales Orders"
        ],
        "summary": "Gets list of attachments for the sales order specified by sales order id.",
        "description": "\n\n**Required Permissions:** Sales Orders - Read, Sales Orders - Read & Write",
        "operationId": "SalesOrders_GetAttachments",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide sales order id to get attachments for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfAttachment2"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Sales Orders"
        ],
        "summary": "Uploads attachment to a specified sales order.",
        "description": "This API expects a multipart/form-data encoded request containing the full contents of the file to be uploaded.\nThe \"Approved Orders - Edit Attachments\" permission is required to upload attachments to approved, contract-managed sales orders.\n\n**Required Permissions:** Sales Orders - Read & Write",
        "operationId": "SalesOrders_UploadAttachment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID for the sales order to which the attachment is being uploaded.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "HTTP Status OK is returned with success and failure message if any",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/sales-orders/{id}/attachments/{attachmentId}": {
      "get": {
        "tags": [
          "Sales Orders"
        ],
        "summary": "Downloads a sales order's attachment specified by attachment id and sales order id.",
        "description": "This API returns NotFound (404) if the attachment specified is not found. Returns OK (200) with the attachment in response body\n\n**Required Permissions:** Sales Orders - Read, Sales Orders - Read & Write",
        "operationId": "SalesOrders_DownloadAttachment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Sales order id to which the attachment belongs to",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "attachmentId",
            "in": "path",
            "required": true,
            "description": "ID for the attachement that needs download",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/sales-orders/{id}/custom-fields": {
      "get": {
        "tags": [
          "Sales Orders"
        ],
        "summary": "Gets list of custom fields for the specified id.",
        "description": "\n\n**Required Permissions:** Sales Orders - Read, Sales Orders - Read & Write",
        "operationId": "SalesOrders_GetCustomFields",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide id to get custom fields. Use id = 0 to get list of custom fields for the entity.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomField"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Sales Orders"
        ],
        "summary": "Saves the custom fields for the specified id.",
        "description": "\n\n**Required Permissions:** Sales Orders - Read & Write",
        "operationId": "SalesOrders_SaveCustomFields",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide id to save custom fields for.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "customFields",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/CustomField"
                }
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/sales-orders/formats": {
      "get": {
        "tags": [
          "Sales Orders"
        ],
        "summary": "Get list of all available active sales order formats.",
        "description": "\n\n**Required Permissions:** Sales Orders - Read, Sales Orders - Read & Write",
        "operationId": "SalesOrders_GetSalesOrderFormats",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IdNamePair"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/sales-orders/{id}/format/{formatId}": {
      "get": {
        "tags": [
          "Sales Orders"
        ],
        "summary": "Downloads a sales order's format specified by format id and sales order id.",
        "description": "This API returns NotFound (404) if the format specified is not found. Returns OK (200) with the format in response body\n\n**Required Permissions:** Sales Orders - Read, Sales Orders - Read & Write",
        "operationId": "SalesOrders_DownloadFormat",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "sales order id to which the format belongs",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "formatId",
            "in": "path",
            "required": true,
            "description": "ID for the format that needs download",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/sales-orders/{id}/assignments": {
      "get": {
        "tags": [
          "Sales Orders"
        ],
        "summary": "Gets Active list of assignments for the sales order specified by the sales order id.",
        "description": "\n\n**Required Permissions:** Sales Orders - Read, Sales Orders - Read & Write",
        "operationId": "SalesOrders_GetAssignments",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Returns Assignment for a sales order ",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfAssignment"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/sales-order-types": {
      "get": {
        "tags": [
          "Sales Order Types"
        ],
        "summary": "Gets list of all available sales order types.",
        "description": "\n\n**Required Permissions:** Sales Orders - Read, Sales Orders - Read & Write",
        "operationId": "SalesOrderTypes_GetSalesOrderTypes",
        "parameters": [
          {
            "name": "excludeContractManagedTypes",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfSalesOrderTypeSearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/reports/{accessKey}": {
      "get": {
        "tags": [
          "Custom Reports"
        ],
        "summary": "Gets data from Striven Reports.",
        "operationId": "CustomReports_GetJSON",
        "parameters": [
          {
            "name": "accessKey",
            "in": "path",
            "required": true,
            "description": "Provide access key to get details for",
            "schema": {
              "type": "string",
              "nullable": true
            },
            "x-position": 1
          },
          {
            "name": "pageIndex",
            "in": "query",
            "description": "Defines the page index of the result set. Default value is 0.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            },
            "x-position": 2
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Defines the page size of the result set. Defaults to the maximum record count.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            },
            "x-position": 3
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v2/reports/text/{accessKey}": {
      "get": {
        "tags": [
          "Custom Reports"
        ],
        "summary": "Gets data from Striven Reports in Text format.",
        "operationId": "CustomReports_GetText",
        "parameters": [
          {
            "name": "accessKey",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "nullable": true
            },
            "x-position": 1
          },
          {
            "name": "pageIndex",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            },
            "x-position": 2
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            },
            "x-position": 3
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/purchase-orders/search": {
      "post": {
        "tags": [
          "Purchase Orders"
        ],
        "summary": "Search for purchase orders using the search filters.",
        "description": "\n\n**Required Permissions:** Purchase Orders - Read, Purchase Orders - Read & Write",
        "operationId": "PurchaseOrders_Search",
        "requestBody": {
          "x-name": "searchParam",
          "description": "All available search parameters",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PurchaseOrderSearchParameters"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfPurchaseOrderSearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/purchase-orders/{id}": {
      "get": {
        "tags": [
          "Purchase Orders"
        ],
        "summary": "Gets purchase order details by id.",
        "description": "\n\n**Required Permissions:** Purchase Orders - Read, Purchase Orders - Read & Write",
        "operationId": "PurchaseOrders_GetPurchaseOrder",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PurchaseOrder"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/purchase-orders": {
      "post": {
        "tags": [
          "Purchase Orders"
        ],
        "summary": "Creates new or updates existing non-contract managed purchase order.",
        "description": "This API performs full update for an existing purchase order so ensure that all parameters and IDs are correctly supplied when using this api for update.\n\n**Required Permissions:** Purchase Orders - Read & Write",
        "operationId": "PurchaseOrders_SavePurchaseOrder",
        "requestBody": {
          "x-name": "purchaseOrder",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PurchaseOrder"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PurchaseOrder"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/purchase-orders/{id}/close-po": {
      "post": {
        "tags": [
          "Purchase Orders"
        ],
        "summary": "Marks the PO as closed and also provides the ability to bill for the remaining items on close.",
        "description": "\n\n**Required Permissions:** Purchase Orders - Read & Write",
        "operationId": "PurchaseOrders_MarkPurchaseOrderClosed",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "purchaseOrderParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PurchaseOrderMarkClosedParameters"
                  }
                ]
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PurchaseOrder"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/purchase-orders/{id}/bill-remaining": {
      "post": {
        "tags": [
          "Purchase Orders"
        ],
        "summary": "Creates a bill for all the remaining items that haven’t been billed for in the PO.",
        "description": "All defaults from the PO are used to create the bill.\n\n**Required Permissions:** Purchase Orders - Read & Write",
        "operationId": "PurchaseOrders_BillRemainingItems",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Bill"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/purchase-orders/{id}/notes": {
      "get": {
        "tags": [
          "Purchase Orders"
        ],
        "summary": "Gets all notes for a purchase order.",
        "description": "\n\n**Required Permissions:** Purchase Orders - Read, Purchase Orders - Read & Write",
        "operationId": "PurchaseOrders_GetNotes",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "POID for which to look for notes",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": true,
            "description": "0 based index for Page Number",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "No. of records to fetch, default value is 100",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 100
            },
            "x-position": 3
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NotesLog"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/purchase-orders/{id}/attachments": {
      "get": {
        "tags": [
          "Purchase Orders"
        ],
        "summary": "Gets all attachments for a purchase order.",
        "description": "\n\n**Required Permissions:** Purchase Orders - Read, Purchase Orders - Read & Write",
        "operationId": "PurchaseOrders_GetAttachments",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "OrderID for which to look for attachments",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "List of Attachments",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfAttachment2"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/purchase-orders/{id}/attachments/{attachmentId}": {
      "get": {
        "tags": [
          "Purchase Orders"
        ],
        "summary": "Downloads a purchase orders's attachment specified by attachment id and PO id.",
        "description": "\n\n**Required Permissions:** Purchase Orders - Read, Purchase Orders - Read & Write",
        "operationId": "PurchaseOrders_DownloadAttachment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "POID to which the attachment belongs",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "attachmentId",
            "in": "path",
            "required": true,
            "description": "ID for the attachement that needs download",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "Returns NotFound (404) id the attachment specified is not found. Returns OK (200) with the attachment in response body",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/purchase-orders/{id}/custom-fields": {
      "get": {
        "tags": [
          "Purchase Orders"
        ],
        "summary": "Gets list of custom fields for the specified id.",
        "description": "\n\n**Required Permissions:** Purchase Orders - Read, Purchase Orders - Read & Write",
        "operationId": "PurchaseOrders_GetCustomFields",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide id to get custom fields. Use id = 0 to get list of custom fields for the entity.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomField"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Purchase Orders"
        ],
        "summary": "Saves the custom fields for the specified id.",
        "description": "\n\n**Required Permissions:** Purchase Orders - Read & Write",
        "operationId": "PurchaseOrders_SaveCustomFields",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide id to save custom fields for.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "customFields",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/CustomField"
                }
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/purchase-orders/formats": {
      "get": {
        "tags": [
          "Purchase Orders"
        ],
        "summary": "Get list of all available active purchase order formats.",
        "description": "\n\n**Required Permissions:** Purchase Orders - Read, Purchase Orders - Read & Write",
        "operationId": "PurchaseOrders_GetPurchaseOrderFormats",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IdNamePair"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/purchase-orders/{id}/format/{formatId}": {
      "get": {
        "tags": [
          "Purchase Orders"
        ],
        "summary": "Downloads a purchase order's format specified by format id and purchase order id.",
        "description": "\n\n**Required Permissions:** Purchase Orders - Read, Purchase Orders - Read & Write",
        "operationId": "PurchaseOrders_DownloadFormat",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "purchase order id to which the format belongs",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "formatId",
            "in": "path",
            "required": true,
            "description": "ID for the format that needs download",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "Returns NotFound (404) if the format specified is not found. Returns OK (200) with the format in response body",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/purchase-orders/{id}/email-vendor-contact": {
      "post": {
        "tags": [
          "Purchase Orders"
        ],
        "summary": "Emails the purchase order to the contact set on the PO in the format specified by the id.",
        "description": "To get the formats refer to GET v1/purchase-orders/formats.\n\n**Required Permissions:** Purchase Orders - Read & Write",
        "operationId": "PurchaseOrders_EmailVendorContact",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "formatId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/purchase-order-types": {
      "get": {
        "tags": [
          "Purchase Order Types"
        ],
        "summary": "Gets list of all available purchase order types.",
        "description": "\n\n**Required Permissions:** Purchase Orders - Read, Purchase Orders - Read & Write",
        "operationId": "PurchaseOrderTypes_GetPurchaseOrderTypes",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfPurchaseOrderTypeSearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/projects/{id}/hub/content-groups": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Gets the hub content groups for a particular project.",
        "description": "\n\n**Required Permissions:** Projects - Read, Projects - Read & Write",
        "operationId": "Projects_GetProjectHubContentGroups",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HubContentGroupResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/projects/{id}/hub/content-groups/{groupId}/documents": {
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Uploads a document to the project's hub.",
        "description": "This API expects a multipart/form-data encoded request containing the full contents of the file to be uploaded.\nIf you want to upload documents to a group by its name, then specify the group name in the header with this key: Content-Group-Name. \nIf the group does not exist, then a new group with this name will be created. In this case you don't have to pass groupId as URI parameter.\nIf the content group Id or Name are not provided the the system will upload the document to the default content group.\nSpecify the Overwrite-Existing-Files header (true|false) to overwrite the existing file(s). Specify Visible-On-Portal header (true|false) to set visibility of uploaded documents on the Striven Customer/Vendor Portal.\n\n**Required Permissions:** Projects - Read & Write",
        "operationId": "Projects_UploadCustomerDocuments",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/projects/{id}/hub/documents": {
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Uploads a document to the project's hub.",
        "description": "This API expects a multipart/form-data encoded request containing the full contents of the file to be uploaded.\nIf you want to upload documents to a group by its name, then specify the group name in the header with this key: Content-Group-Name. \nIf the group does not exist, then a new group with this name will be created. In this case you don't have to pass groupId as URI parameter.\nIf the content group Id or Name are not provided the the system will upload the document to the default content group.\nSpecify the Overwrite-Existing-Files header (true|false) to overwrite the existing file(s). Specify Visible-On-Portal header (true|false) to set visibility of uploaded documents on the Striven Customer/Vendor Portal.\n\n**Required Permissions:** Projects - Read & Write",
        "operationId": "Projects_UploadCustomerDocuments2",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "groupId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/projects/{id}": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Get Project details by ProjectId.",
        "description": "This API is deprecated. Please use v2/projects/{id} instead.\n\n**Required Permissions:** Projects - Read, Projects - Read & Write",
        "operationId": "Projects_Get",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide Project Id to get details for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Returns Project Details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Project"
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/projects/{id}/custom-statuses": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Gets all custom statuses of a project.",
        "description": "\n\n**Required Permissions:** Projects - Read, Projects - Read & Write",
        "operationId": "Projects_GetCustomStatuses",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide Project Id to get details for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Returns Project Details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectCustomStatusResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/projects/search": {
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Searches for projects using the search filters.",
        "description": "\n\n**Required Permissions:** Projects - Read, Projects - Read & Write",
        "operationId": "Projects_Search",
        "requestBody": {
          "x-name": "searchParams",
          "description": "All available search parameters",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ProjectSearchParameters"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "Returns Project Details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfProjectSearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/projects/{id}/assignments": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Gets Active list of assignments for the project specified by the project id.",
        "description": "\n\n**Required Permissions:** Projects - Read, Projects - Read & Write",
        "operationId": "Projects_GetAssignments",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Returns Assignment for a project ",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfAssignment"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/appointments/{id}": {
      "get": {
        "tags": [
          "Appointments"
        ],
        "summary": "Gets appointment details by id.",
        "description": "\n\n**Required Permissions:** Appointments - Read",
        "operationId": "Appointments_GetAppointment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide appointment id to get details",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Appointment"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/appointments/search": {
      "post": {
        "tags": [
          "Appointments"
        ],
        "summary": "Search for appointments using the search filters.",
        "description": "\n\n**Required Permissions:** Appointments - Read",
        "operationId": "Appointments_SearchAppointment",
        "requestBody": {
          "x-name": "appointmentSearchParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AppointmentSearchParams"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfAppointmentSearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/appointments/types": {
      "get": {
        "tags": [
          "Appointments"
        ],
        "summary": "Gets all appointment types.",
        "description": "\n\n**Required Permissions:** Appointments - Read",
        "operationId": "Appointments_GetAppointmentTypes",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AppointmentType"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/employees": {
      "get": {
        "tags": [
          "Employees"
        ],
        "summary": "Gets a list of available active employees in the system.",
        "description": "\n\n**Required Permissions:** Employees - Read, Employees - Read & Write",
        "operationId": "Employees_GetEmployeesAll",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EmployeeSearchResult"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/employees/{id}": {
      "get": {
        "tags": [
          "Employees"
        ],
        "summary": "Gets employee details by id.",
        "description": "\n\n**Required Permissions:** Employees - Read, Employees - Read & Write",
        "operationId": "Employees_GetEmployees",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Employee"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/employees/{id}/custom-fields": {
      "get": {
        "tags": [
          "Employees"
        ],
        "summary": "Gets the custom fields for an employee.",
        "description": "\n\n**Required Permissions:** Employees - Read, Employees - Read & Write",
        "operationId": "Employees_GetCustomFields",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide employee id to get list of available custom fields.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomFieldValue"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Employees"
        ],
        "summary": "Saves the custom fields for the specified id.",
        "description": "\n\n**Required Permissions:** Employees - Read & Write",
        "operationId": "Employees_SaveCustomFields",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "customFields",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/CustomFieldValue"
                }
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/contacts/{id}": {
      "get": {
        "tags": [
          "Contacts"
        ],
        "summary": "Gets contact details by id including customer and vendor associations.",
        "description": "\n\n**Required Permissions:** Contacts - Read, Contacts - Read & Write",
        "operationId": "Contacts_GetContact",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide contact id to get details for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/contacts/search": {
      "post": {
        "tags": [
          "Contacts"
        ],
        "summary": "Search for available contacts using the search filters.",
        "description": "\n\n**Required Permissions:** Contacts - Read, Contacts - Read & Write",
        "operationId": "Contacts_GetContacts",
        "requestBody": {
          "x-name": "searchParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ContactSearchParameters"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfContactSearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/contacts": {
      "post": {
        "tags": [
          "Contacts"
        ],
        "summary": "Creates or updates a contact.",
        "description": "\n\n**Required Permissions:** Contacts - Read & Write",
        "operationId": "Contacts_Post",
        "requestBody": {
          "x-name": "contact",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Contact"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Contact"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/contacts/{id}/associate-customer": {
      "post": {
        "tags": [
          "Contacts"
        ],
        "summary": "Associates an existing contact with an existing customer.",
        "description": "User should know the ContactId and CustomerId prior to creating association.\nif there is an existing asssociation between the contact and customer, the association will be updated with the information supplied.\n\n**Required Permissions:** Contacts - Read & Write",
        "operationId": "Contacts_PostCustomerAssociation",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Id for the contact to associate with a customer",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "assoc",
          "description": "Association object indicating the CustomerId, and other details related to the association",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CustomerContactAssociation"
                  }
                ]
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/contacts/{id}/associate-vendor": {
      "post": {
        "tags": [
          "Contacts"
        ],
        "summary": "Associates an existing contact with an existing vendor.",
        "description": "User should know the ContactId and VendorId prior to creating association.\nif there is an existing asssociation between the contact and vendor, the association will be updated with the information supplied\n\n**Required Permissions:** Contacts - Read & Write",
        "operationId": "Contacts_PostVendorAssociation",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Id for the contact to associate with a vendor",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "assoc",
          "description": "Association object indicating the VendorId, and other details related to the association",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/VendorContactAssociation"
                  }
                ]
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/vendor-locations/search": {
      "post": {
        "tags": [
          "Vendor Locations"
        ],
        "summary": "Search for vendor locations using the search filters.",
        "description": "\n\n**Required Permissions:** Vendors - Read, Vendors - Read & Write",
        "operationId": "VendorLocations_GetCustomerLocations",
        "requestBody": {
          "x-name": "searchParams",
          "description": "Vendor Locations search parameters",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/VendorLocationSearchParameters"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfVendorLocations"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/customer-locations/search": {
      "post": {
        "tags": [
          "Customer Locations"
        ],
        "summary": "search for available customer locations using the search filters.",
        "description": "\n\n**Required Permissions:** Customers - Read, Customers - Read & Write",
        "operationId": "CustomerLocations_GetCustomerLocations",
        "requestBody": {
          "x-name": "searchParams",
          "description": "Customer Locations search parameters",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CustomerLocationSearchParameters"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfCustomerLocations"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/customers/{id}": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Gets customer details by id.",
        "description": "\n\n**Required Permissions:** Customers - Read, Customers - Read & Write",
        "operationId": "Customers_GetCustomer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide customer id to get details for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/customers/search": {
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Search for available customers using the search filters.",
        "description": "\n\n**Required Permissions:** Customers - Read, Customers - Read & Write",
        "operationId": "Customers_GetCustomers",
        "requestBody": {
          "x-name": "searchParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CustomerSearchParameters"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfCustomerSearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/customers": {
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Allows customer creation and full update.",
        "description": "Customer Name, Status are required.\nAvailable Categories, ReferralSource, Industry can be pulled using different API's listed in API Help Page.\nPlease ensure all the properties are correctly supplied in the request body when performing and update, This is an full update so existing customer will be updated fully with the object being supplied with this request\nAlso ensure correct PhoneID, EmailID are being used when updating a customer. If incorrect ID's are used you will get a validation error. If you wish to add new Phone/Email use 0 as ID.\n\n**Required Permissions:** Customers - Read & Write",
        "operationId": "Customers_Post",
        "requestBody": {
          "x-name": "customer",
          "description": "Use ID = 0 to create a customer, use existing ID to update.\n            ",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Customer"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/customers/create": {
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Creates a customer.",
        "description": "\n\n**Required Permissions:** Customers - Read & Write",
        "operationId": "Customers_CreateCustomer",
        "requestBody": {
          "x-name": "customer",
          "description": "First Name or Customer Name is required.\n            Available Categories, ReferralSource, Industry can be pulled using different API's listed in API Help Page.\n            ",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CustomerCreate"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/customers/{id}/location": {
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Creates or updates a customer location.",
        "description": "Allows customer location creation and full update.\n\n**Required Permissions:** Customers - Read & Write",
        "operationId": "Customers_CreateCustomerLocation",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "custLocationParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CustomerLocation"
                  }
                ]
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerLocation"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/customers/{id}/contacts": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Gets list of contacts associated with the customer specified by customer id.",
        "description": "\n\n**Required Permissions:** Customers - Read, Customers - Read & Write",
        "operationId": "Customers_GetCustomerContacts",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide customer id to get contacts for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfCustomerContact"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/customers/{id}/price-list": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Gets list of price list items associated with the customer specified by customer id.",
        "description": "\n\n**Required Permissions:** Customers - Read, Customers - Read & Write",
        "operationId": "Customers_GetCustomerPriceList",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide customer id to get price list for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfCustomerPriceList"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/customers/{id}/price-list/items/{itemId}": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Gets price list item associated with the specified customer and item id.",
        "description": "\n\n**Required Permissions:** Customers - Read, Customers - Read & Write",
        "operationId": "Customers_GetCustomerPriceListItem",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide customer id to get price for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "itemId",
            "in": "path",
            "required": true,
            "description": "Provide item id to get price for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerPriceListItem"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/customers/{id}/locations": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Gets list of locations for the customer specified by customer id.",
        "description": "\n\n**Required Permissions:** Customers - Read, Customers - Read & Write",
        "operationId": "Customers_GetCustomerLocations",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide customer id to get locations for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfCustomerLocations"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/customers/{id}/payment-profiles": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Gets list of payment profiles for the customer specified by customer id.",
        "description": "\n\n**Required Permissions:** Customers - Read, Customers - Read & Write",
        "operationId": "Customers_GetCustomerPaymentProfiles",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide customer id to get payment profiles for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfCustomerPaymentProfiles"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/customers/{id}/custom-fields": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Gets list of custom fields for the customer specified by customer id.",
        "description": "\n\n**Required Permissions:** Customers - Read, Customers - Read & Write",
        "operationId": "Customers_GetCustomerCustomFields",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide customer id to get custom fields.  Use id = 0 to get list of custom fields for the entity.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomField"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Saves the custom fields for the specified id.",
        "description": "\n\n**Required Permissions:** Customers - Read & Write",
        "operationId": "Customers_SaveCustomFields",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide id to save custom fields for.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "customFields",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/CustomField"
                }
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/customers/{id}/hub/content-groups": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Gets the hub content groups for a particular customer.",
        "description": "\n\n**Required Permissions:** Customers - Read, Customers - Read & Write",
        "operationId": "Customers_GetCustomerHubContentGroups",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HubContentGroupResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/customers/{id}/hub/content-groups/{groupId}/documents": {
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Uploads a document to the customer's hub.",
        "description": "This API expects a multipart/form-data encoded request containing the full contents of the file to be uploaded.\nIf you want to upload documents to a group by its name, then specify the group name in the header with this key: Content-Group-Name. \nIf the group does not exist, then a new group with this name will be created. In this case you don't have to pass groupId as URI parameter.\nIf the content group Id or Name are not provided the the system will upload the document to the default content group.\nSpecify the Overwrite-Existing-Files header (true|false) to overwrite the existing file(s).\n\n**Required Permissions:** Customers - Read & Write",
        "operationId": "Customers_UploadCustomerDocuments",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/customers/{id}/hub/documents": {
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Uploads a document to the customer's hub.",
        "description": "This API expects a multipart/form-data encoded request containing the full contents of the file to be uploaded.\nIf you want to upload documents to a group by its name, then specify the group name in the header with this key: Content-Group-Name. \nIf the group does not exist, then a new group with this name will be created. In this case you don't have to pass groupId as URI parameter.\nIf the content group Id or Name are not provided the the system will upload the document to the default content group.\nSpecify the Overwrite-Existing-Files header (true|false) to overwrite the existing file(s).\n\n**Required Permissions:** Customers - Read & Write",
        "operationId": "Customers_UploadCustomerDocuments2",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "groupId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/customers/{id}/assignments": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Gets Active list of assignments for the customer specified by the customer id.",
        "description": "\n\n**Required Permissions:** Customers - Read, Customers - Read & Write",
        "operationId": "Customers_GetAssignments",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Returns Assignment for a customer ",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfAssignment"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/industries": {
      "get": {
        "tags": [
          "Industries"
        ],
        "summary": "Gets list of available active/inactive industries.",
        "description": "\n\n**Required Permissions:** Industries - Read",
        "operationId": "Industries_GetIndustries",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfIndustrySearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/opportunities": {
      "post": {
        "tags": [
          "Opportunities"
        ],
        "summary": "Creates a new opportunity.",
        "description": "\n\n**Required Permissions:** Opportunities - Read & Write",
        "operationId": "Opportunities_Post",
        "requestBody": {
          "x-name": "opportunity",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Opportunity"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Opportunity"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/opportunities/{id}": {
      "get": {
        "tags": [
          "Opportunities"
        ],
        "summary": "Gets opportunity details by id.",
        "description": "\n\n**Required Permissions:** Opportunities - Read, Opportunities - Read & Write",
        "operationId": "Opportunities_GetOpportunity",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Opportunity"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/opportunities/search": {
      "post": {
        "tags": [
          "Opportunities"
        ],
        "summary": "Search for opportunities using the search filters.",
        "description": "\n\n**Required Permissions:** Opportunities - Read, Opportunities - Read & Write",
        "operationId": "Opportunities_SearchOpportunities",
        "requestBody": {
          "x-name": "searchParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/OpportunitySearchParameters"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfOpportunitySearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/opportunities/{id}/custom-fields": {
      "get": {
        "tags": [
          "Opportunities"
        ],
        "summary": "Gets list of custom fields for the opportunity specified by opportunity id.",
        "description": "\n\n**Required Permissions:** Opportunities - Read, Opportunities - Read & Write",
        "operationId": "Opportunities_GetOpportunityCustomFields",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide opportunity id to get custom fields.  Use id = 0 to get list of custom fields for the entity.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomField"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Opportunities"
        ],
        "summary": "Saves the custom fields for the specified id.",
        "description": "\n\n**Required Permissions:** Opportunities - Read & Write",
        "operationId": "Opportunities_SaveCustomFields",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide id to save custom fields for.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "customFields",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/CustomField"
                }
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/opportunities/types": {
      "get": {
        "tags": [
          "Opportunities"
        ],
        "summary": "Gets list of opportunity types along with stages associated to those types.",
        "description": "\n\n**Required Permissions:** Opportunities - Read, Opportunities - Read & Write",
        "operationId": "Opportunities_GetOpportunityTypes",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OpportunityType"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/opportunities/priorities": {
      "get": {
        "tags": [
          "Opportunities"
        ],
        "summary": "Gets list of opportunity priorities.",
        "description": "\n\n**Required Permissions:** Opportunities - Read, Opportunities - Read & Write",
        "operationId": "Opportunities_GetOpportunityPriorities",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OpportunityPriority"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/referral-sources": {
      "get": {
        "tags": [
          "Referral Sources"
        ],
        "summary": "Gets list of available active/inactive referral sources.",
        "description": "\n\n**Required Permissions:** Referral Sources - Read",
        "operationId": "ReferralSources_GetReferralSources",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfReferralSourceSearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/vendors/{id}": {
      "get": {
        "tags": [
          "Vendors"
        ],
        "summary": "Gets vendor details by id.",
        "description": "\n\n**Required Permissions:** Vendors - Read, Vendors - Read & Write",
        "operationId": "Vendors_GetVendor",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide vendor id to get details for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vendor"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/vendors/search": {
      "post": {
        "tags": [
          "Vendors"
        ],
        "summary": "Search for available vendors using the search filters.",
        "description": "\n\n**Required Permissions:** Vendors - Read, Vendors - Read & Write",
        "operationId": "Vendors_GetVendors",
        "requestBody": {
          "x-name": "searchParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/VendorSearchParameters"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfVendorSearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/vendors": {
      "post": {
        "tags": [
          "Vendors"
        ],
        "summary": "Creates or updates a vendor.",
        "description": "Vendor Name, Status are required.\n            Available Categories, ReferralSource, Industry can be pulled using different API's listed in API Help Page.\n            Please ensure all the properties are correctly supplied in the request body when performing and update, This is an full update so existing vendor will be updated fully with the object being supplied with this request\n            Also ensure correct PhoneID, EmailID are being used when updating a vendor. If incorrect ID's are used you will get a validation error. If you wish to add new Phone/Email use 0 as ID.\n\n**Required Permissions:** Vendors - Read & Write",
        "operationId": "Vendors_Post",
        "requestBody": {
          "x-name": "vendor",
          "description": "Use ID = 0 to create a vendor, use existing ID to update.\n            ",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Vendor"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vendor"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/vendors/{id}/contacts": {
      "get": {
        "tags": [
          "Vendors"
        ],
        "summary": "Gets list of contacts associated with the vendor specified by vendor id.",
        "description": "\n\n**Required Permissions:** Vendors - Read, Vendors - Read & Write",
        "operationId": "Vendors_GetVendorContacts",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide vendor id to get contacts for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfVendorContact"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/vendors/{id}/cost-list": {
      "get": {
        "tags": [
          "Vendors"
        ],
        "summary": "Gets list of cost list items associated with the vendor specified by vendor id.",
        "description": "\n\n**Required Permissions:** Vendors - Read, Vendors - Read & Write",
        "operationId": "Vendors_GetVendorCostList",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide vendor id to get cost list for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfVendorCostList"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/vendors/{id}/cost-list/items/{itemId}": {
      "get": {
        "tags": [
          "Vendors"
        ],
        "summary": "Gets cost list item associated with the specified vendor and item id.",
        "description": "\n\n**Required Permissions:** Vendors - Read, Vendors - Read & Write",
        "operationId": "Vendors_GetVendorCostListItem",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide vendor id to get cost for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "itemId",
            "in": "path",
            "required": true,
            "description": "Provide item id to get cost for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorCostList"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/vendors/{id}/locations": {
      "get": {
        "tags": [
          "Vendors"
        ],
        "summary": "Gets list of locations for the vendor specified by vendor id.",
        "description": "\n\n**Required Permissions:** Vendors - Read, Vendors - Read & Write",
        "operationId": "Vendors_GetVendorLocations",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide vendor id to get locations for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfVendorLocation"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/vendors/{id}/custom-fields": {
      "get": {
        "tags": [
          "Vendors"
        ],
        "summary": "Gets list of custom fields for the vendor specified by vendor id.",
        "description": "\n\n**Required Permissions:** Vendors - Read, Vendors - Read & Write",
        "operationId": "Vendors_GetVendorCustomFields",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide vendor id to get custom fields.  Use id = 0 to get list of custom fields for the entity.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomField"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Vendors"
        ],
        "summary": "Saves the custom fields for the specified id.",
        "description": "\n\n**Required Permissions:** Vendors - Read & Write",
        "operationId": "Vendors_SaveCustomFields",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide id to save custom fields for.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "customFields",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/CustomField"
                }
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/vendors/{id}/hub/content-groups": {
      "get": {
        "tags": [
          "Vendors"
        ],
        "summary": "Gets the hub content groups for a particular vendor.",
        "description": "\n\n**Required Permissions:** Vendors - Read, Vendors - Read & Write",
        "operationId": "Vendors_GetVendorHubContentGroups",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HubContentGroupResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/vendors/{id}/hub/content-groups/{groupId}/documents": {
      "post": {
        "tags": [
          "Vendors"
        ],
        "summary": "Uploads a document to the vendor's hub.",
        "description": "This API expects a multipart/form-data encoded request containing the full contents of the file to be uploaded.\nIf you want to upload documents to a group by its name, then specify the group name in the header with this key: Content-Group-Name.\nIf the group does not exist, then a new group with this name will be created. In this case you don't have to pass groupId as URI parameter.\nIf the content group Id or Name are not provided the the system will upload the document to the default content group.\nSpecify the Overwrite-Existing-Files header (true|false) to overwrite the existing file(s).\n\n**Required Permissions:** Vendors - Read & Write",
        "operationId": "Vendors_UploadVendorDocuments",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/vendors/{id}/hub/documents": {
      "post": {
        "tags": [
          "Vendors"
        ],
        "summary": "Uploads a document to the vendor's hub.",
        "description": "This API expects a multipart/form-data encoded request containing the full contents of the file to be uploaded.\nIf you want to upload documents to a group by its name, then specify the group name in the header with this key: Content-Group-Name.\nIf the group does not exist, then a new group with this name will be created. In this case you don't have to pass groupId as URI parameter.\nIf the content group Id or Name are not provided the the system will upload the document to the default content group.\nSpecify the Overwrite-Existing-Files header (true|false) to overwrite the existing file(s).\n\n**Required Permissions:** Vendors - Read & Write",
        "operationId": "Vendors_UploadVendorDocuments2",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "groupId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/vendors/{id}/assignments": {
      "get": {
        "tags": [
          "Vendors"
        ],
        "summary": "Gets Active list of assignments for the vendors specified by the vendor id.",
        "description": "\n\n**Required Permissions:** Vendors - Read, Vendors - Read & Write",
        "operationId": "Vendors_GetAssignments",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Returns Assignment for a vendor ",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfAssignment"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/customer-categories": {
      "get": {
        "tags": [
          "Categories"
        ],
        "summary": "Gets list of all available active/inactive customer categories.",
        "description": "\n\n**Required Permissions:** Customers - Read, Customers - Read & Write",
        "operationId": "Categories_GetCustomerCategories",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfCategory"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/item-categories": {
      "get": {
        "tags": [
          "Categories"
        ],
        "summary": "Gets list of all available active/inactive item categories.",
        "description": "\n\n**Required Permissions:** Items - Read, Items - Read & Write",
        "operationId": "Categories_GetItemCategories",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfCategory"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/vendor-categories": {
      "get": {
        "tags": [
          "Categories"
        ],
        "summary": "Gets list of all available active/inactive vendor categories.",
        "description": "\n\n**Required Permissions:** Vendors - Read, Vendors - Read & Write",
        "operationId": "Categories_GetVendorCategories",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfCategory"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/opportunity-categories": {
      "get": {
        "tags": [
          "Categories"
        ],
        "summary": "Gets list of all available active/inactive opportunity categories.",
        "description": "\n\n**Required Permissions:** Opportunities - Read, Opportunities - Read & Write",
        "operationId": "Categories_GetOpportunityCategories",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Category"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/company/profile": {
      "get": {
        "tags": [
          "Company"
        ],
        "summary": "Gets company profile information.",
        "description": "\n\n**Required Permissions:** Company - Read",
        "operationId": "Company_GetCompanyProfile",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyProfile"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/custom-lists": {
      "get": {
        "tags": [
          "Custom List"
        ],
        "summary": "Gets list of all types of custom lists.",
        "description": "\n\n**Required Permissions:** Custom Lists - Read",
        "operationId": "CustomList_GetCustomListTypes",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfListItemType"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/custom-lists/{id}/list-items": {
      "get": {
        "tags": [
          "Custom List"
        ],
        "summary": "Gets the list of choices for a custom list type.",
        "description": "\n\n**Required Permissions:** Custom Lists - Read",
        "operationId": "CustomList_GetCustomList",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "listItemTypeId",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfListItem"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/invoice-formats": {
      "get": {
        "tags": [
          "Formats"
        ],
        "summary": "Get list of all available active/inactive invoice formats.",
        "description": "\n\n**Required Permissions:** Invoices - Read, Invoices - Read & Write",
        "operationId": "Formats_GetInvoiceFormats",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Formats"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/company-locations": {
      "get": {
        "tags": [
          "Company Locations"
        ],
        "summary": "Gets list of company locations.",
        "description": "\n\n**Required Permissions:** Company - Read",
        "operationId": "CompanyLocations_GetCompanyLocations",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfCompanyLocationSearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/customer-assets/{id}": {
      "get": {
        "tags": [
          "Customer Assets"
        ],
        "summary": "Gets customer asset details by id.",
        "description": "\n\n**Required Permissions:** Customer Assets - Read, Customer Assets - Read & Write",
        "operationId": "CustomerAssets_GetCustomerAsset",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "provide asset id to get details",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerAsset"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/customer-assets": {
      "post": {
        "tags": [
          "Customer Assets"
        ],
        "summary": "Creates new or updates existing customer asset.",
        "description": "This API performs full update for an existing customer asset, \nso ensure that all parameters and IDs are correctly supplied when using this API for an update.\n\n**Required Permissions:** Customer Assets - Read & Write",
        "operationId": "CustomerAssets_SaveCustomerAsset",
        "requestBody": {
          "x-name": "customerAssetParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CustomerAsset"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerAsset"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/customer-assets/search": {
      "post": {
        "tags": [
          "Customer Assets"
        ],
        "summary": "Search for customer assets using the search filters.",
        "description": "\n\n**Required Permissions:** Customer Assets - Read, Customer Assets - Read & Write",
        "operationId": "CustomerAssets_SearchCustomerAssets",
        "requestBody": {
          "x-name": "searchParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CustomerAssetSearchParameters"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfCustomerAssetSearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/customer-assets/types": {
      "get": {
        "tags": [
          "Customer Assets"
        ],
        "summary": "Gets a list of all available asset types.",
        "description": "\n\n**Required Permissions:** Customer Assets - Read, Customer Assets - Read & Write",
        "operationId": "CustomerAssets_GetCustomerAssetTypes",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfCustomerAssetTypeSearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/customer-assets/{id}/custom-fields": {
      "get": {
        "tags": [
          "Customer Assets"
        ],
        "summary": "Gets list of custom fields for the asset specified by customer asset id.",
        "description": "\n\n**Required Permissions:** Customer Assets - Read, Customer Assets - Read & Write",
        "operationId": "CustomerAssets_GetCustomFields",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide customer asset id to get custom fields.  Use id = 0 to get list of custom fields for the entity.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomField"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Customer Assets"
        ],
        "summary": "Saves the custom fields for the specified id.",
        "description": "\n\n**Required Permissions:** Customer Assets - Read & Write",
        "operationId": "CustomerAssets_SaveCustomFields",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide id to save custom fields for.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "customFields",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/CustomField"
                }
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/customer-assets/types/{assetTypeId}/custom-fields": {
      "get": {
        "tags": [
          "Customer Assets"
        ],
        "summary": "Gets the custom field definitions for the customer asset type id.",
        "description": "\n\n**Required Permissions:** Customer Assets - Read, Customer Assets - Read & Write",
        "operationId": "CustomerAssets_GetCustomFieldsForAssetType",
        "parameters": [
          {
            "name": "assetTypeId",
            "in": "path",
            "required": true,
            "description": "Provide customer asset type id to get list of available custom fields.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomField"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/customer-assets/{id}/update-status": {
      "post": {
        "tags": [
          "Customer Assets"
        ],
        "summary": "Updates the status and sets the Status Note.",
        "description": "\n\n**Required Permissions:** Customer Assets - Read & Write",
        "operationId": "CustomerAssets_UpdateStatus",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Id of the Asset to update",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "param",
          "description": "Status of the Asset to update",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CustomerAssetStatusParameters"
                  }
                ]
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/customer-assets/{id}/maintenance-schedule": {
      "post": {
        "tags": [
          "Customer Assets"
        ],
        "summary": "Creates or updates a Maintenance Schedule entry for an Asset.",
        "description": "\n\n**Required Permissions:** Customer Assets - Read & Write",
        "operationId": "CustomerAssets_MaintenanceSchedule",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID of the related Asset",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "maintenance",
          "description": "Object describing the Maintenance Schedule.",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CustomerAssetMaintenance"
                  }
                ]
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/bill-credits/{id}": {
      "get": {
        "tags": [
          "Bill Credits"
        ],
        "summary": "Gets bill credit details by id.",
        "description": "\n\n**Required Permissions:** Bill Credits - Read, Bill Credits - Read & Write",
        "operationId": "BillCredits_GetBillCredit",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillCredit"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/bill-credits/search": {
      "post": {
        "tags": [
          "Bill Credits"
        ],
        "summary": "Gets list of bill credits using the search filters passed in the request body.",
        "description": "\n\n**Required Permissions:** Bill Credits - Read, Bill Credits - Read & Write",
        "operationId": "BillCredits_GetBillCredits",
        "requestBody": {
          "x-name": "searchParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/BillCreditSearchParameters"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfBillCreditSearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/bill-credits": {
      "post": {
        "tags": [
          "Bill Credits"
        ],
        "summary": "Creates new or updates existing bill credit.",
        "description": "This API performs full update for an existing bill credit so ensure that all parameters and IDs are correctly supplied when using this api for update. If AppliedToBills property is set, the bill credit will be applied to the specified bills.\n            API Key requires Edit Transactions Prior Closing Date permission to edit a bill credit if it has TxnDate prior to the closing date.\n\n**Required Permissions:** Bill Credits - Read & Write",
        "operationId": "BillCredits_SaveBillCredit",
        "requestBody": {
          "x-name": "billCredit",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/BillCredit"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillCredit"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/bill-credits/{id}/apply": {
      "post": {
        "tags": [
          "Bill Credits"
        ],
        "summary": "Applies bill credits unapplied amount to specified open bills.",
        "description": "\n\n**Required Permissions:** Bill Credits - Read & Write",
        "operationId": "BillCredits_ApplyBillCredit",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide bill credit id to be used for apply",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "applyToBills",
          "description": "Array of bills the bill credit is being applied to",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/AppliedToTxn"
                }
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/bill-credits/{id}/void": {
      "post": {
        "tags": [
          "Bill Credits"
        ],
        "summary": "Voids bill credit specified by id.",
        "description": "This action cannot be undone. API Key requires Edit Transactions Prior Closing Date permission to edit a bill credit if it has TxnDate prior to the closing date.\n\n**Required Permissions:** Bill Credits - Read & Write",
        "operationId": "BillCredits_VoidBillCredit",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide bill credit id to be used for void",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/bill-credits/{id}/notes": {
      "get": {
        "tags": [
          "Bill Credits"
        ],
        "summary": "Gets list of notes for the bill credit specified by bill credit id.",
        "description": "\n\n**Required Permissions:** Bill Credits - Read, Bill Credits - Read & Write",
        "operationId": "BillCredits_GetBillCreditNotes",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide bill credit id to get notes for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "PageIndex",
            "in": "query",
            "required": true,
            "description": "0 based index for Page Number",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "No. of records to fetch, default value is 100",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 100
            },
            "x-position": 3
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NotesLog"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/bill-credits/{id}/attachments": {
      "get": {
        "tags": [
          "Bill Credits"
        ],
        "summary": "Gets list of attachments for the bill credit specified by bill credit id.",
        "description": "\n\n**Required Permissions:** Bill Credits - Read, Bill Credits - Read & Write",
        "operationId": "BillCredits_GetAttachments",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide bill credit id to get attachments for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfAttachment2"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Bill Credits"
        ],
        "summary": "Uploads attachment to a specified bill credit.",
        "description": "This API expects a multipart/form-data encoded request containing the full contents of the file to be uploaded.\n\n**Required Permissions:** Bill Credits - Read & Write",
        "operationId": "BillCredits_UploadAttachment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID for the bill credit to which the attachment is being uploaded.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "HTTP Status OK is returned with success and failure message if any",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/bill-credits/{id}/attachments/{attachmentId}": {
      "get": {
        "tags": [
          "Bill Credits"
        ],
        "summary": "Downloads a bill credit's attachment specified by attachment id and bill credit id.",
        "description": "This API returns NotFound (404) if the attachment specified is not found. Returns OK (200) with the attachment in response body.\n\n**Required Permissions:** Bill Credits - Read, Bill Credits - Read & Write",
        "operationId": "BillCredits_DownloadAttachment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Bill credit id to which the attachment belongs to",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "attachmentId",
            "in": "path",
            "required": true,
            "description": "ID for the attachement that needs download",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/credit-memos/{id}": {
      "get": {
        "tags": [
          "Credit Memos"
        ],
        "summary": "Gets credit memo details by id.",
        "description": "\n\n**Required Permissions:** Credit Memos - Read, Credit Memos - Read & Write",
        "operationId": "CreditMemos_Get",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreditMemo"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/credit-memos/search": {
      "post": {
        "tags": [
          "Credit Memos"
        ],
        "summary": "Search for credit memo using the search filters passed in request body.",
        "description": "\n\n**Required Permissions:** Credit Memos - Read, Credit Memos - Read & Write",
        "operationId": "CreditMemos_GetList",
        "requestBody": {
          "x-name": "searchParams",
          "description": "All available search parameters",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CreditMemoSearchParameters"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfCreditMemoSearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/credit-memos": {
      "post": {
        "tags": [
          "Credit Memos"
        ],
        "summary": "Creates new or updates existing Credit Memo.",
        "description": "This API performs full update for an existing credit memo so ensure that all parameters and IDs are correctly supplied when using this api for update.\n            API Key requires Edit Transactions Prior Closing Date permission to edit a credit memo if it has TxnDate prior to the closing date.\n\n**Required Permissions:** Credit Memos - Read & Write",
        "operationId": "CreditMemos_Save",
        "requestBody": {
          "x-name": "creditMemoParams",
          "description": "Use id=0 to create new Credit Memo. If id is a non-zero positive value, this will attempt an update on existing Credit Memo which matches the supplied id. ",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CreditMemo"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreditMemo"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/credit-memos/{id}/apply": {
      "post": {
        "tags": [
          "Credit Memos"
        ],
        "summary": "Applies credit memo unapplied amount to specified open invoices.",
        "description": "\n\n**Required Permissions:** Credit Memos - Read & Write",
        "operationId": "CreditMemos_ApplyToInvoices",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide credit memo id to be used for apply",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "applyToInvoices",
          "description": "Array of invoices the credit memo is being applied to",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/AppliedToTxn"
                }
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/credit-memos/{id}/auto-apply": {
      "post": {
        "tags": [
          "Credit Memos"
        ],
        "summary": "Auto applies credit memo unapplied amount to open invoices starting with oldest date and greater open balance.",
        "description": "\n\n**Required Permissions:** Credit Memos - Read & Write",
        "operationId": "CreditMemos_AutoApply",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide credit memo id to be used for apply",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/credit-memos/{id}/void": {
      "post": {
        "tags": [
          "Credit Memos"
        ],
        "summary": "Voids CreditMemo specified by id.",
        "description": "This action cannot be undone. API Key requires Edit Transactions Prior Closing Date permission to edit a credit memo if it has TxnDate prior to the closing date.\n\n**Required Permissions:** Credit Memos - Read & Write",
        "operationId": "CreditMemos_VoidCreditMemo",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide CreditMemo id to be used for void",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/credit-memos/{id}/attachments": {
      "get": {
        "tags": [
          "Credit Memos"
        ],
        "summary": "Gets list of attachments for the Credit Memo specified by Credit Memo id.",
        "description": "\n\n**Required Permissions:** Credit Memos - Read, Credit Memos - Read & Write",
        "operationId": "CreditMemos_GetAttachments",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide Credit Memo id to get attachments for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfAttachment2"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Credit Memos"
        ],
        "summary": "Uploads attachment to a specified Credit Memo",
        "description": "This API expects a multipart/form-data encoded request containing the full contents of the file to be uploaded.\n\n**Required Permissions:** Credit Memos - Read & Write",
        "operationId": "CreditMemos_UploadAttachment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID for the Credit Memo to which the attachment is being uploaded.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "HTTP Status OK is returned with success and failure message if any",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/credit-memos/{id}/attachments/{attachmentId}": {
      "get": {
        "tags": [
          "Credit Memos"
        ],
        "summary": "Downloads a Credit Memo's attachment specified by attachment id and Credit Memo id.",
        "description": "This API returns NotFound (404) if the attachment specified is not found. Returns OK (200) with the attachment in response body.\n\n**Required Permissions:** Credit Memos - Read, Credit Memos - Read & Write",
        "operationId": "CreditMemos_DownloadAttachment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Credit Memo id to which the attachment belongs to",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "attachmentId",
            "in": "path",
            "required": true,
            "description": "ID for the attachement that needs download",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/gl-accounts": {
      "post": {
        "tags": [
          "GL Accounts"
        ],
        "summary": "Creates new or updates existing gl account.",
        "description": "This API performs full update of an existing gl account. Ensure that all parameters and IDs are correctly supplied.\n\n**Required Permissions:** Chart Of Accounts - Read & Write",
        "operationId": "GLAccounts_Save",
        "requestBody": {
          "x-name": "glAccount",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/GLAccount"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GLAccount"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/gl-accounts/{id}": {
      "get": {
        "tags": [
          "GL Accounts"
        ],
        "summary": "Gets a GL Acccount by id.",
        "description": "\n\n**Required Permissions:** Chart Of Accounts - Read, Chart Of Accounts - Read & Write",
        "operationId": "GLAccounts_Get",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GLAccount"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/gl-accounts/search": {
      "post": {
        "tags": [
          "GL Accounts"
        ],
        "summary": "Search GL Accounts based on filters.",
        "description": "\n\n**Required Permissions:** Chart Of Accounts - Read, Chart Of Accounts - Read & Write",
        "operationId": "GLAccounts_GetList",
        "requestBody": {
          "x-name": "searchParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/GLAccountSearchParameters"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfGLAccountSearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/glaccounts": {
      "get": {
        "tags": [
          "GL Accounts"
        ],
        "summary": "Gets the GL Accounts.",
        "description": "This method is deprecated. Please use v1/gl-accounts/search instead.\n\n**Required Permissions:** Chart Of Accounts - Read, Chart Of Accounts - Read & Write",
        "operationId": "GLAccounts_SearchGLAccounts",
        "responses": {
          "200": {
            "description": "list of active GL Accounts",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GLAccountsSearchResult"
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/glcategories": {
      "get": {
        "tags": [
          "GL Categories"
        ],
        "summary": "Gets all active GLCategories.",
        "description": "This method is deprecated. Please use v1/classes instead.\n\n**Required Permissions:** Classes - Read",
        "operationId": "GLCategories_GetGLCategories",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GLCategoriesSearchResult"
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/classes": {
      "get": {
        "tags": [
          "Classes"
        ],
        "summary": "Gets list of all available active/inactive classes",
        "description": "\n\n**Required Permissions:** Classes - Read",
        "operationId": "Classes_GetClasses",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfClassesSearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/inventory/adjustments": {
      "post": {
        "tags": [
          "Inventory Adjustments"
        ],
        "summary": "Creates new quantity/value inventory adjustments.",
        "description": "This API does not update the existing inventory adjustments. \n            API Key requires Edit Transactions Prior Closing Date permission to edit a inventory adjustments if it has TxnDate prior to the closing date.\n\n**Required Permissions:** Inventory Adjustments - Read & Write",
        "operationId": "InventoryAdjustments_SaveInventoryAdjystments",
        "requestBody": {
          "x-name": "adjustment",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/InventoryAdjustment"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryAdjustment"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/inventory-locations": {
      "get": {
        "tags": [
          "Inventory Locations"
        ],
        "summary": "Gets list of all available active/inactive inventory locations.",
        "description": "\n\n**Required Permissions:** Inventory Locations - Read",
        "operationId": "InventoryLocations_GetInventoryLocations",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfInventoryLocationSearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/item-builds/{id}": {
      "get": {
        "tags": [
          "Item Builds"
        ],
        "summary": "Gets item build details by id.",
        "description": "\n\n**Required Permissions:** Item Builds - Read, Item Builds - Read & Write",
        "operationId": "ItemBuilds_GetItemBuild",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide Build id to get details for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemBuild"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/item-builds/search": {
      "post": {
        "tags": [
          "Item Builds"
        ],
        "summary": "Search for available builds using the search filters.",
        "description": "\n\n**Required Permissions:** Item Builds - Read, Item Builds - Read & Write",
        "operationId": "ItemBuilds_GetList",
        "requestBody": {
          "x-name": "searchParams",
          "description": "All available search parameters",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ItemBuildSearchParameters"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfItemBuildSearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/item-builds": {
      "post": {
        "tags": [
          "Item Builds"
        ],
        "summary": "Creates new or updates existing builds.",
        "description": "This API performs a full update for an existing build, so ensure that all parameters and IDs are correctly supplied when using this api for update. Update is only valid for Builds with Incomplete/Pending Status. When creating a build IF the status is pending or finalized, validation will be performed if the quantity to be built is not available. An error will be returned in that case.\n            API Key requires Edit Transactions Prior Closing Date permission to edit a item builds if it has TxnDate prior to the closing date.\n\n**Required Permissions:** Item Builds - Read & Write",
        "operationId": "ItemBuilds_SaveItemBuild",
        "requestBody": {
          "x-name": "itemBuildParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ItemBuild"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemBuild"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/item-builds/{id}/mark-finalized": {
      "post": {
        "tags": [
          "Item Builds"
        ],
        "summary": "Marks the build as finalized.",
        "description": "This API performs validation and marks the build as finalized if validations are met and if the status is pending/incomplete. Postings will also be generated.\n            API Key requires Edit Transactions Prior Closing Date permission to edit a item builds if it has TxnDate prior to the closing date.\n\n**Required Permissions:** Item Builds - Read & Write",
        "operationId": "ItemBuilds_MarkItemBuildFinalized",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemBuild"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/item-builds/{id}/mark-pending": {
      "post": {
        "tags": [
          "Item Builds"
        ],
        "summary": "Marks the build as pending.",
        "description": "This API performs validation and marks the build as pending if the status is incomplete.\n            API Key requires Edit Transactions Prior Closing Date permission to edit a item builds if it has TxnDate prior to the closing date.\n\n**Required Permissions:** Item Builds - Read & Write",
        "operationId": "ItemBuilds_MarkItemBuildPending",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemBuild"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/item-builds/{id}/void": {
      "post": {
        "tags": [
          "Item Builds"
        ],
        "summary": "Voids build specified by id.",
        "description": "This action cannot be undone. API Key requires Edit Transactions Prior Closing Date permission to edit a item builds if it has TxnDate prior to the closing date.\n\n**Required Permissions:** Item Builds - Read & Write",
        "operationId": "ItemBuilds_VoidItemBuild",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide build id to be used for void",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/item-builds/{id}/attachments": {
      "get": {
        "tags": [
          "Item Builds"
        ],
        "summary": "Gets list of attachments for the build specified by build id.",
        "description": "\n\n**Required Permissions:** Item Builds - Read, Item Builds - Read & Write",
        "operationId": "ItemBuilds_GetAttachments",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide build id to get attachments for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfAttachment2"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Item Builds"
        ],
        "summary": "Uploads attachment to a specified build.",
        "description": "This API expects a multipart/form-data encoded request containing the full contents of the file to be uploaded.\n\n**Required Permissions:** Item Builds - Read & Write",
        "operationId": "ItemBuilds_UploadAttachment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID for the item build to which the attachment is being uploaded.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "HTTP Status OK is returned with success and failure message if any",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/item-builds/{id}/attachments/{attachmentId}": {
      "get": {
        "tags": [
          "Item Builds"
        ],
        "summary": "Downloads a build's attachment specified by attachment id and build id.",
        "description": "This API returns NotFound (404) if the attachment specified is not found. Returns OK (200) with the attachment in response body.\n\n**Required Permissions:** Item Builds - Read, Item Builds - Read & Write",
        "operationId": "ItemBuilds_DownloadAttachment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "build id to which the attachment belongs",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "attachmentId",
            "in": "path",
            "required": true,
            "description": "ID for the attachement that needs download",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/item-builds/{id}/custom-fields": {
      "get": {
        "tags": [
          "Item Builds"
        ],
        "summary": "Gets list of custom fields for the build specified by build id.",
        "description": "\n\n**Required Permissions:** Item Builds - Read, Item Builds - Read & Write",
        "operationId": "ItemBuilds_GetCustomerCustomFields",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide build id to get custom fields.  Use id = 0 to get list of custom fields for the entity.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomField"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Item Builds"
        ],
        "summary": "Saves the custom fields for the specified id.",
        "description": "\n\n**Required Permissions:** Item Builds - Read & Write",
        "operationId": "ItemBuilds_SaveCustomFields",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide id to save custom fields for.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "customFields",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/CustomField"
                }
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/items/{id}": {
      "get": {
        "tags": [
          "Items"
        ],
        "summary": "Gets Item details by id.",
        "description": "\n\n**Required Permissions:** Items - Read, Items - Read & Write",
        "operationId": "Items_GetItem",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide Item id to get details for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Item"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/items/{id}/deactivate": {
      "post": {
        "tags": [
          "Items"
        ],
        "summary": "Deactivates an item",
        "description": "\n\n**Required Permissions:** Items - Read & Write",
        "operationId": "Items_DeactivateItem",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide Item Id to deactivate.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/items/search": {
      "post": {
        "tags": [
          "Items"
        ],
        "summary": "Gets list of available items using the search filters.",
        "description": "\n\n**Required Permissions:** Items - Read, Items - Read & Write",
        "operationId": "Items_GetItems",
        "requestBody": {
          "x-name": "searchParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ItemSearchParameters"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfItemSearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/items": {
      "post": {
        "tags": [
          "Items"
        ],
        "summary": "Creates new or updates existing item.",
        "description": "This API performs full update for an existing item so ensure that all parameters and IDs are correctly supplied when using this api for update.\n\n**Required Permissions:** Items - Read & Write",
        "operationId": "Items_SaveItem",
        "requestBody": {
          "x-name": "item",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Item"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Item"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/items/{itemId}/inventory-locations": {
      "get": {
        "tags": [
          "Items"
        ],
        "summary": "Returns Inventory locations with Qty On Hand and Qty Available for an item.",
        "description": "If UoM tracking is ON, then the returned numbers are in base unit for that item.\n\n**Required Permissions:** Items - Read, Items - Read & Write",
        "operationId": "Items_GetInventoryLocation",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "asOfDate",
            "in": "query",
            "description": "Optional. Defaults to Today.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ItemInventoryLocation"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/items/{id}/custom-fields": {
      "get": {
        "tags": [
          "Items"
        ],
        "summary": "Gets list of custom fields for the item specified by item id.",
        "description": "\n\n**Required Permissions:** Items - Read, Items - Read & Write",
        "operationId": "Items_GetCustomerCustomFields",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide item id to get custom fields.  Use id = 0 to get list of custom fields for the entity.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomField"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Items"
        ],
        "summary": "Saves the custom fields for the specified id.",
        "description": "\n\n**Required Permissions:** Items - Read & Write",
        "operationId": "Items_SaveCustomFields",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide id to save custom fields for.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "customFields",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/CustomField"
                }
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/items/{id}/images": {
      "post": {
        "tags": [
          "Items"
        ],
        "summary": "Uploads images for an item.",
        "description": "This API expects a multipart/form-data encoded request containing the full contents of the file to be uploaded. \nOptionally set one as the default. (If no default is set, the first one will be automatically chosen if there is currently no default).\nUse Default-Filename to set which file is default. The filename is the name of the original file with extension.\n\n**Required Permissions:** Items - Read & Write",
        "operationId": "Items_UploadAttachment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The id of the item",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "get": {
        "tags": [
          "Items"
        ],
        "summary": "Gets list of images for the item specified by item id.",
        "description": "\n\n**Required Permissions:** Items - Read, Items - Read & Write",
        "operationId": "Items_GetImages",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide invoice id to get attachments for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfAttachment2"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/items/{id}/images/{imageId}": {
      "get": {
        "tags": [
          "Items"
        ],
        "summary": "Downloads an item's image specified by id and image id.",
        "description": "This API returns NotFound (404) if the image specified is not found. Returns OK (200) with the image in response body.\n\n**Required Permissions:** Items - Read, Items - Read & Write",
        "operationId": "Items_DownloadImage",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "item id to which the attachment belongs",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "imageId",
            "in": "path",
            "required": true,
            "description": "id of the image to download",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Items"
        ],
        "summary": "Deletes an image from the item.",
        "description": "The default image can be deleted if it is the only image.\n\n**Required Permissions:** Items - Read & Write",
        "operationId": "Items_DeleteImage",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "imageId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "Returns BadRequest (400) if the image cannot be deleted (i.e. it is the default image), NotFound (404) if the id cannot be found, or OK(200) if successful",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/items/{id}/images/{imageId}/set-default": {
      "post": {
        "tags": [
          "Items"
        ],
        "summary": "Sets an image as default.",
        "description": "\n\n**Required Permissions:** Items - Read & Write",
        "operationId": "Items_SetImageAsDefault",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "imageId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/item-types": {
      "get": {
        "tags": [
          "Item Types"
        ],
        "summary": "Gets list of all available item types.",
        "description": "\n\n**Required Permissions:** Items - Read, Items - Read & Write",
        "operationId": "ItemTypes_GetItemTypes",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfItemTypeSearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/journal-entries": {
      "post": {
        "tags": [
          "Journal Entries"
        ],
        "summary": "Creates new or updates existing Journal Entry.",
        "description": "This API performs full update for an existing journal entry so ensure that all parameters and IDs are correctly supplied when using this api for update. \n            API Key requires Edit Transactions Prior Closing Date permission to edit a journal entry if it has TxnDate prior to the closing date.\n\n**Required Permissions:** Journal Entries - Read & Write",
        "operationId": "JournalEntries_SaveJournalEntry",
        "requestBody": {
          "x-name": "jeParams",
          "description": "Use JournalEntryID=0 to create new Journal Entry. If JournalEntryID is a non-zero positive value, this will attempt an update on existing journal entry which matches the supplied id. ",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/JournalEntry"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/journal-entries/{id}/void": {
      "post": {
        "tags": [
          "Journal Entries"
        ],
        "summary": "Voids Journal Entry specified by id.",
        "description": "This action cannot be undone. API Key requires Edit Transactions Prior Closing Date permission to edit a journal entry if it has TxnDate prior to the closing date.\n\n**Required Permissions:** Journal Entries - Read & Write",
        "operationId": "JournalEntries_VoidJournalEntry",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide JournalEntry id to be used for void",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/payment-methods": {
      "get": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "Gets list of available payment methods that doesn't require processing.",
        "description": "\n\n**Required Permissions:** Payment Methods - Read",
        "operationId": "PaymentMethods_GetPaymentMethods",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfPaymentMethods"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/payment-processing-methods": {
      "get": {
        "tags": [
          "Payment Processing Methods"
        ],
        "summary": "Gets list of available payment processing methods.",
        "description": "\n\n**Required Permissions:** Payment Processing Methods - Read",
        "operationId": "PaymentProcessingMethods_GetPaymentProcessingMethods",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfPaymentProcessingMethods"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/payments/{id}": {
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "Gets payment details by id.",
        "description": "\n\n**Required Permissions:** Payments - Read, Payments - Read & Write",
        "operationId": "Payments_GetPayment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Payment"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/payments/search": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Gets list of payments using the search filters.",
        "description": "\n\n**Required Permissions:** Payments - Read, Payments - Read & Write",
        "operationId": "Payments_GetPayments",
        "requestBody": {
          "x-name": "searchParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PaymentSearchParameters"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfPaymentSearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/payments": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Creates a new payment.",
        "description": "If the AutoApply flag is set to true, the payment will be auto-applied to open invoices if there are any. If AppliedToInvoices property is set, the payment will be applied to the specified invoices. Update operation is not available.\n            API Key requires Edit Transactions Prior Closing Date permission to edit a payment if it has TxnDate prior to the closing date.\n\n**Required Permissions:** Payments - Read & Write",
        "operationId": "Payments_SavePayment",
        "requestBody": {
          "x-name": "payment",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Payment"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Payment"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/payments/{id}/apply": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Applies payment unapplied amount to specified open invoices.",
        "description": "\n\n**Required Permissions:** Payments - Read & Write",
        "operationId": "Payments_ApplyPayment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide payment id to be used for apply",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "applyToInvoices",
          "description": "Array of invoices the payment is being applied to",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/AppliedToTxn"
                }
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/payments/{id}/auto-apply": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Auto applies payment unapplied amount to open invoices starting with oldest date and greater open balance.",
        "description": "\n\n**Required Permissions:** Payments - Read & Write",
        "operationId": "Payments_AutoApplyPayment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide payment id to be used for apply",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/payments/{id}/void": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Voids payment specified by id.",
        "description": "This action cannot be undone. API Key requires Edit Transactions Prior Closing Date permission to edit a payment if it has TxnDate prior to the closing date.\n\n**Required Permissions:** Payments - Read & Write",
        "operationId": "Payments_VoidPayment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide payment id to be used for void",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/payments/{id}/attachments": {
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "Gets list of attachments for the payment specified by payment id.",
        "description": "\n\n**Required Permissions:** Payments - Read, Payments - Read & Write",
        "operationId": "Payments_GetAttachments",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide payment id to get attachments for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfAttachment2"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Uploads attachment to a specified payment.",
        "description": "This endpoint expects a multipart/form-data encoded request containing the full contents of the file to be uploaded.\n\n**Required Permissions:** Payments - Read & Write",
        "operationId": "Payments_UploadAttachment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID for the payment to which the attachment is being uploaded.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "HTTP Status OK is returned with success and failure message if any",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/payments/{id}/attachments/{attachmentId}": {
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "Downloads a payment's attachment specified by attachment id and payment id.",
        "description": "Returns NotFound (404) if the attachment specified is not found. Returns OK (200) with the attachment in response body.\n\n**Required Permissions:** Payments - Read, Payments - Read & Write",
        "operationId": "Payments_DownloadAttachment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Payment id to which the attachment belongs to",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "attachmentId",
            "in": "path",
            "required": true,
            "description": "ID for the attachement that needs download",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/shipping-methods": {
      "get": {
        "tags": [
          "Shipping Methods"
        ],
        "summary": "Gets all the available shipping methods.",
        "description": "\n\n**Required Permissions:** Shipping Methods - Read",
        "operationId": "ShippingMethods_GetShippingMethods",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ShippingMethods"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/bills/{id}": {
      "get": {
        "tags": [
          "Bills"
        ],
        "summary": "Gets bill details by id.",
        "description": "\n\n**Required Permissions:** Bills - Read, Bills - Read & Write",
        "operationId": "Bills_GetBill",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide Bill id to get details for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Bill"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/bills/search": {
      "post": {
        "tags": [
          "Bills"
        ],
        "summary": "Gets list of bills using the search filters passed in the request body.",
        "description": "\n\n**Required Permissions:** Bills - Read, Bills - Read & Write",
        "operationId": "Bills_GetBills",
        "requestBody": {
          "x-name": "searchParams",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/BillSearchParameters"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfBillSearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/bills": {
      "post": {
        "tags": [
          "Bills"
        ],
        "summary": "Creates new or updates existing bill.",
        "description": "This API performs full update for an existing bill so ensure that all parameters and IDs are correctly supplied when using this api for update.\n            API Key requires Edit Transactions Prior Closing Date permission to edit a bill if it has TxnDate prior to the closing date.\n\n**Required Permissions:** Bills - Read & Write",
        "operationId": "Bills_SaveBill",
        "requestBody": {
          "x-name": "bill",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Bill"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Bill"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/bills/{id}/void": {
      "post": {
        "tags": [
          "Bills"
        ],
        "summary": "Voids bill specified by id.",
        "description": "This action cannot be undone. API Key requires Edit Transactions Prior Closing Date permission to edit a bill if it has TxnDate prior to the closing date.\n\n**Required Permissions:** Bills - Read & Write",
        "operationId": "Bills_VoidBill",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide bill id to be used for void",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/bills/{id}/notes": {
      "get": {
        "tags": [
          "Bills"
        ],
        "summary": "Gets list of notes for the bill specified by bill id.",
        "description": "\n\n**Required Permissions:** Bills - Read, Bills - Read & Write",
        "operationId": "Bills_GetBillNotes",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide bill id to get notes for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "PageIndex",
            "in": "query",
            "required": true,
            "description": "0 based index for Page Number",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "No. of records to fetch, default value is 100",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 100
            },
            "x-position": 3
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NotesLog"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/bills/{id}/attachments": {
      "get": {
        "tags": [
          "Bills"
        ],
        "summary": "Gets list of attachments for the bill specified by bill id.",
        "description": "\n\n**Required Permissions:** Bills - Read, Bills - Read & Write",
        "operationId": "Bills_GetAttachments",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide bill id to get attachments for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfAttachment2"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Bills"
        ],
        "summary": "Uploads attachment to a specified bill.",
        "description": "This API expects a multipart/form-data encoded request containing the full contents of the file to be uploaded.\n\n**Required Permissions:** Bills - Read & Write",
        "operationId": "Bills_UploadAttachment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID for the bill to which the attachment is being uploaded.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "HTTP Status OK is returned with success and failure message if any",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/bills/{id}/attachments/{attachmentId}": {
      "get": {
        "tags": [
          "Bills"
        ],
        "summary": "Downloads a bill's attachment specified by attachment id and bill id.",
        "description": "This API returns NotFound (404) if the attachment specified is not found. Returns OK (200) with the attachment in response body.\n\n**Required Permissions:** Bills - Read, Bills - Read & Write",
        "operationId": "Bills_DownloadAttachment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Bill id to which the attachment belongs to",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "attachmentId",
            "in": "path",
            "required": true,
            "description": "ID for the attachement that needs download",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/invoices/{id}": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "summary": "Gets invoice details by id.",
        "description": "\n\n**Required Permissions:** Invoices - Read, Invoices - Read & Write",
        "operationId": "Invoices_Get",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invoice"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/invoices/search": {
      "post": {
        "tags": [
          "Invoices"
        ],
        "summary": "Search for invoices based on the filters.",
        "description": "\n\n**Required Permissions:** Invoices - Read, Invoices - Read & Write",
        "operationId": "Invoices_GetList",
        "requestBody": {
          "x-name": "searchParams",
          "description": "All available search parameters",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/InvoiceSearchParameters"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfInvoiceSearchResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/invoices": {
      "post": {
        "tags": [
          "Invoices"
        ],
        "summary": "Creates new or updates existing Invoice.",
        "description": "This API performs full update for an existing invoice so ensure that all parameters and IDs are correctly supplied when using this api for update.\n            API Key requires Edit Transactions Prior Closing Date permission to edit an invoice if it has TxnDate prior to the closing date.\n\n**Required Permissions:** Invoices - Read & Write",
        "operationId": "Invoices_Save",
        "requestBody": {
          "x-name": "invoiceParams",
          "description": "Use InvoiceId=0 to create new Invoice. If InvoiceID is a non-zero positive value, this will attempt an update on existing invoice which matches the supplied id. ",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Invoice"
                  }
                ]
              }
            }
          },
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invoice"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/invoices/{id}/void": {
      "post": {
        "tags": [
          "Invoices"
        ],
        "summary": "Voids Invoice specified by id.",
        "description": "This action cannot be undone. API Key requires Edit Transactions Prior Closing Date permission to edit an invoice if it has TxnDate prior to the closing date.\n\n**Required Permissions:** Invoices - Read & Write",
        "operationId": "Invoices_VoidInvoice",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide Invoice id to be used for void",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/invoices/{id}/attachments": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "summary": "Gets list of attachments for the invoice specified by invoice id.",
        "description": "\n\n**Required Permissions:** Invoices - Read, Invoices - Read & Write",
        "operationId": "Invoices_GetAttachments",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Provide invoice id to get attachments for",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultOfAttachment2"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Invoices"
        ],
        "summary": "Uploads attachment to a specified invoice.",
        "description": "This API expects a multipart/form-data encoded request containing the full contents of the file to be uploaded.\n\n**Required Permissions:** Invoices - Read & Write",
        "operationId": "Invoices_UploadAttachment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID for the invoice to which the attachment is being uploaded.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "HTTP Status OK is returned with success and failure message if any",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/invoices/{id}/attachments/{attachmentId}": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "summary": "Downloads an invoice's attachment specified by attachment id and invoice id.",
        "description": "This API returns NotFound (404) if the attachment specified is not found. Returns OK (200) with the attachment in response body.\n\n**Required Permissions:** Invoices - Read, Invoices - Read & Write",
        "operationId": "Invoices_DownloadAttachment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "invoice id to which the attachment belongs to",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "attachmentId",
            "in": "path",
            "required": true,
            "description": "ID for the attachement that needs download",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/invoices/{id}/format": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "summary": "Downloads an invoice's format related to the invoice specified by invoice id.",
        "description": "This API returns NotFound (404) if the format specified is not found. Returns OK (200) with the format in response body.\n\n**Required Permissions:** Invoices - Read, Invoices - Read & Write",
        "operationId": "Invoices_DownloadFormat",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "invoice id to which the format belongs",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    },
    "/v1/invoices/{id}/format/{formatId}": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "summary": "Downloads an invoice's format specified by format id and invoice id.",
        "description": "This API returns NotFound (404) if the format specified is not found. Returns OK (200) with the format in response body.\n\n**Required Permissions:** Invoices - Read, Invoices - Read & Write",
        "operationId": "Invoices_DownloadFormat2",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "invoice id to which the format belongs",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          },
          {
            "name": "formatId",
            "in": "path",
            "required": true,
            "description": "ID for the format that needs download",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "SearchResultOfTaskResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/TaskResult"
            }
          }
        }
      },
      "TaskResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Title": {
            "type": "string",
            "nullable": true
          },
          "Customer": {
            "description": "Customer associated to the task",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerRef"
              }
            ]
          },
          "Type": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Status": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "DateCreated": {
            "type": "string",
            "description": "Created date and time will be in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "Last updated date and time will be in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "CustomerRef": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AccountRef"
          },
          {
            "type": "object",
            "additionalProperties": false
          }
        ]
      },
      "AccountRef": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Number": {
            "type": "string",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "IdNamePair": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "TaskSearchParams": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSearchParameters"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Title": {
                "type": "string",
                "description": "Task Title",
                "nullable": true
              },
              "Customer": {
                "description": "Customer associated with the Task. If provided, tasks will be filtered based on the customer Id or Number or Name. If all of them are provided, Id takes the first precedence, then the Number and then the Name. ",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CustomerRef"
                  }
                ]
              },
              "Type": {
                "type": "array",
                "description": "Collection of Taks Type",
                "nullable": true,
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Status": {
                "type": "array",
                "description": "Collection of Task Status",
                "nullable": true,
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "AssignedTo": {
                "description": "Tasks will be filtered based on the assigned to Id or Name. If both of them are provided, Id takes the first precedence. ",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TaskAssignment"
                  }
                ]
              },
              "RequestedBy": {
                "description": "Tasks will be filtered based on the requested by Id or Name. If both of them are provided, Id takes the first precedence. ",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TaskRequestedBy"
                  }
                ]
              },
              "Project": {
                "description": "Project associated with the Task. If provided, tasks will be filtered based on the project Id or Name. If both of them are provided, Id takes the first precedence. ",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/IdNamePair"
                  }
                ]
              },
              "StatusChange": {
                "description": "Filters tasks based on Changed Status Id and Status Changed Date. ",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/StatusUpdateRange"
                  }
                ]
              },
              "DateCreatedRange": {
                "description": "Filters tasks based on created date.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateOffsetRange"
                  }
                ]
              },
              "LastUpdatedDateRange": {
                "description": "Filters tasks based on last updated date.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateOffsetRange"
                  }
                ]
              }
            }
          }
        ]
      },
      "TaskAssignment": {
        "type": "object",
        "description": "Task Assignment",
        "additionalProperties": false,
        "required": [
          "Type"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of an Employee, Contact, Pool or Team.",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Name of an Employee, Contact, Pool or Team.",
            "nullable": true
          },
          "Type": {
            "type": "string",
            "description": "Type is required. Accepted values are [employee|contact|pool|team].",
            "minLength": 1,
            "pattern": "employee|contact|pool|team"
          }
        }
      },
      "TaskRequestedBy": {
        "type": "object",
        "description": "Requested By for Task",
        "additionalProperties": false,
        "required": [
          "Type"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of an employee or a contact.",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Name of an employee or a contact.",
            "nullable": true
          },
          "Type": {
            "type": "string",
            "description": "Type is required. Accepted values are [employee|contact].",
            "minLength": 1,
            "pattern": "employee|contact"
          }
        }
      },
      "StatusUpdateRange": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "StatusId": {
            "type": "integer",
            "format": "int32"
          },
          "From": {
            "type": "string",
            "description": "Date and time in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          },
          "To": {
            "type": "string",
            "description": "Date and time in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "DateOffsetRange": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "DateFrom": {
            "type": "string",
            "description": "Date and time in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          },
          "DateTo": {
            "type": "string",
            "description": "Date and time in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "BaseSearchParameters": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "PageIndex": {
            "type": "integer",
            "description": "zero-based page number",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "description": "Default value is 100",
            "format": "int32",
            "maximum": 1000.0,
            "minimum": 1.0
          },
          "SortExpression": {
            "type": "string",
            "description": "Specify the field name to sort the result set by. It can be one of the fields returned by the search.",
            "nullable": true
          },
          "SortOrder": {
            "type": "integer",
            "description": "Specify Sort Order. Ascending=1, Descending=2.\nDefault value is 1 (Ascending)",
            "format": "int32",
            "maximum": 2.0,
            "minimum": 1.0
          }
        }
      },
      "TaskDetail": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Task unique Id - auto generated by the system",
            "format": "int32"
          },
          "Title": {
            "type": "string",
            "nullable": true
          },
          "Type": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Status": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Priority": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Customer": {
            "description": "Customer associated with the task",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerRef"
              }
            ]
          },
          "Location": {
            "description": "Customer location associated with the task",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "Budget": {
            "type": "number",
            "format": "decimal"
          },
          "TaskPercentageComplete": {
            "type": "number",
            "format": "decimal"
          },
          "StartDateTime": {
            "type": "string",
            "description": "Start date and time in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          },
          "DueDateTime": {
            "type": "string",
            "description": "Due date and time in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          },
          "SalesOrder": {
            "description": "Sales Order associated to the task",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SalesOrderRef"
              }
            ]
          },
          "Project": {
            "description": "Project associated to the task",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Milestone": {
            "description": "Milestone associated to the task",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "RequestedBy": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/TaskRequestedBy"
              }
            ]
          },
          "InfoCustomFields": {
            "type": "array",
            "description": "List of task information custom fields related to task type",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomFieldValue"
            }
          },
          "MarkDoneCustomFields": {
            "type": "array",
            "description": "List of custom fields for marking task done",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomFieldValue"
            }
          },
          "Assignments": {
            "type": "array",
            "description": "List of task assignments",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/TaskAssignment"
            }
          },
          "Candidates": {
            "type": "array",
            "description": "List of associated candidates",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/IdNamePair"
            }
          },
          "Assets": {
            "type": "array",
            "description": "List of customer assets",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/IdNamePair"
            }
          },
          "UseSubContractor": {
            "type": "boolean"
          },
          "PurchaseOrder": {
            "description": "Purchase order associated to a subcontracted task",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/PurchaseOrderRef"
              }
            ]
          },
          "SubcontractedWorkStatus": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Labels": {
            "type": "array",
            "description": "All the labels applied to the task",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/IdNamePair"
            }
          },
          "AttachmentCount": {
            "type": "integer",
            "description": "Read-only. The number of attachments uploaded to the task.",
            "format": "int32"
          },
          "DateCreated": {
            "type": "string",
            "description": "Created date and time will be in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          },
          "CreatedBy": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/StrivenUser"
              }
            ]
          },
          "DateModified": {
            "type": "string",
            "description": "Modified date and time will be in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          },
          "ModifiedBy": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/StrivenUser"
              }
            ]
          }
        }
      },
      "SalesOrderRef": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Number": {
            "type": "string",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CustomFieldValue": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Id"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of custom field.",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "readOnly": true,
            "description": "Name of the custom field.",
            "nullable": true
          },
          "Value": {
            "type": "string",
            "description": "Represents the value of Custom Field",
            "nullable": true
          },
          "ValueText": {
            "type": "string",
            "description": "Represents the text value of the custom field. Example: If the field type is Existing List and the source is Employee (SourceId = 4) then ValueText will be the employee's name.",
            "nullable": true
          }
        }
      },
      "PurchaseOrderRef": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Number": {
            "type": "string",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "StrivenUser": {
        "type": "object",
        "description": "Person represented as user of Striven",
        "additionalProperties": false,
        "required": [
          "Type"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of an employee, contact or a candidate. 0 in case of system.",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Name of an employee, contact or a candidate. \"System\" in case of a system.",
            "nullable": true
          },
          "Type": {
            "type": "string",
            "description": "Accepted values are [employee|contact|candidate|system].",
            "minLength": 1,
            "pattern": "employee|contact|candidate|system"
          }
        }
      },
      "TaskCreateParameters": {
        "type": "object",
        "description": "Task Create Parameters",
        "additionalProperties": false,
        "required": [
          "Title"
        ],
        "properties": {
          "Title": {
            "type": "string",
            "minLength": 1
          },
          "Type": {
            "description": "Task Type accepts id or name. If both are provided id takes the precedence. ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Priority": {
            "description": "Task Priority accepts id or name. If both are provided id takes the precedence.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Customer": {
            "description": "Customer to be associated with the task. Accepts id, number or name. If all of them are provided, id takes the first precedence, then the number and then the name.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerRef"
              }
            ]
          },
          "Location": {
            "description": "Customer Location to be associated with the task. Location is accepted only if the task type includes location. Accepts id or name. If both are provided id takes the precedence. ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "Budget": {
            "type": "number",
            "description": "Budget is only accepted if the task type includes budget. Budget should be greater than or equal to zero. ",
            "format": "decimal"
          },
          "TaskPercentageComplete": {
            "type": "number",
            "description": "Task completed percentage is only accepted if the task type includes budget. ",
            "format": "decimal",
            "maximum": 100.0,
            "minimum": 0.0
          },
          "StartDateTime": {
            "type": "string",
            "description": "Start date is only accepted if the task type includes start date. Accepts time part if the task type includes time for start date. Date and time will be accepted in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          },
          "DueDateTime": {
            "type": "string",
            "description": "Time part for due date is accepted only if the task type includes time for due date. Date and time will be accepted in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          },
          "SalesOrder": {
            "description": "Sales Order to be associated with the task. Accepts id, number or name. If all of them are provided, id takes the first precedence, then the number and then the name.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SalesOrderRef"
              }
            ]
          },
          "Project": {
            "description": "Project to be associated with the task, accepts id or name. If both are provided id takes the precedence. ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Milestone": {
            "description": "Milestone to be associated with the task, accepts id or name. If both are provided id takes the precedence. ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "RequestedBy": {
            "description": "Requested By is only accepted if the task type includes requested by.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/TaskRequestedBy"
              }
            ]
          },
          "Assignments": {
            "type": "array",
            "description": "List of Assignments.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/TaskAssignment"
            }
          },
          "UseSubContractor": {
            "type": "boolean",
            "description": "Accepts only if the task type can be a subcontracted work."
          },
          "PurchaseOrder": {
            "description": "Purchase Order to be associated with the task. Accepts id, number or name. If all of them are provided, id takes the first precedence, then the number and then the name.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/PurchaseOrderRef"
              }
            ]
          }
        }
      },
      "TaskType": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Task type unique id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Task type name",
            "nullable": true
          },
          "Active": {
            "type": "boolean"
          }
        }
      },
      "TaskPriority": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Priority unique id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Priority name",
            "nullable": true
          },
          "IsDefault": {
            "type": "boolean"
          },
          "Active": {
            "type": "boolean"
          }
        }
      },
      "TaskCustomStatus": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Custom status Id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Custom status name",
            "nullable": true
          }
        }
      },
      "SearchResultOfAttachment": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/Attachment"
            }
          }
        }
      },
      "Attachment": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Attachment unique id",
            "format": "int32"
          },
          "FileName": {
            "type": "string",
            "nullable": true
          },
          "OriginalFileName": {
            "type": "string",
            "nullable": true
          },
          "FilePath": {
            "type": "string",
            "nullable": true
          },
          "UploadedBy": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/StrivenUser"
              }
            ]
          },
          "VisibleOnPortal": {
            "type": "boolean"
          },
          "IsDefault": {
            "type": "boolean"
          },
          "DateCreated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "TaskPatch": {
        "type": "object",
        "description": "You may only provide the properties that needs updating instead of whole object in the body. For example, in order to update Title, just supply Title in the request body.    /// You may supply null as the value of attribute to clear it from the task. Clearing is only allowed if the field is not required based on task type settings. Any parameter that are not include per task type configuration will be ignored.",
        "additionalProperties": false,
        "properties": {
          "Title": {
            "type": "string",
            "description": "Task title. This parameter is required and cannot be cleared.",
            "nullable": true
          },
          "Type": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Priority": {
            "description": "Task priority. This parameter is required and cannot be cleared.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Budget": {
            "type": "number",
            "description": "Only accepted if the task type includes budget. Required when task type requires budget.",
            "format": "decimal"
          },
          "TaskPercentageComplete": {
            "type": "number",
            "description": "Percentage complete is only applicable when budget is greater than 0.",
            "format": "decimal"
          },
          "StartDateTime": {
            "type": "string",
            "description": "Start date and time in ISO 8601 format. Accepted if task type includes Start Date. Time part is only accepted if task type includes start time. If no timezone information is provided, tenant's timezone will be assumed.\nRequired if task type requires Start Date.",
            "format": "date-time",
            "nullable": true
          },
          "DueDateTime": {
            "type": "string",
            "description": "Due date and time in ISO 8601 format. Time part is only accepted if task type includes due time. If no timezone information is provided, tenant's timezone will be assumed.\nRequired if task type requires Due Date.",
            "format": "date-time",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "Customer": {
            "description": "The customer/vendor associated with the task. Required if task type requires Customer.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerRef"
              }
            ]
          },
          "Location": {
            "description": "Location of task for the customer selected. Only accepted if task type includes location, required if the task type requires location. ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "SalesOrder": {
            "description": "Sales Order related to the task. Only accepted if task type includes sales order. Required if task type requires sales order. The provided sales order must be related to the customer linked to the task and also match other status configuration based on task type settings.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SalesOrderRef"
              }
            ]
          },
          "Project": {
            "description": "Project related to the task. Only accepted if task type includes project. ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Milestone": {
            "description": "Milestone related to the task. Milestone must be related to the project linked to the task.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "RequestedBy": {
            "description": "Requested By either, cane be an employee or a contact that is related to customer linked on the task. Only accepted if task type includes Requested By, required if task type requires Requested By.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/TaskRequestedBy"
              }
            ]
          },
          "UseSubContractor": {
            "type": "boolean",
            "description": "Accepts if task type can be a sub contracted work."
          },
          "PurchaseOrder": {
            "description": "Purchase Order related to subcontracted task. Only accepted and requried when UseSubcontractor flag is set to true",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/PurchaseOrderRef"
              }
            ]
          }
        }
      },
      "TaskContact": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Contact unique id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Contact name",
            "nullable": true
          },
          "IsRequestedBy": {
            "type": "boolean",
            "description": "Says whether the contact is set as Requested By to the task"
          }
        }
      },
      "CustomFieldMeta": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Custom field id",
            "format": "int32"
          },
          "FieldName": {
            "type": "string",
            "description": "Custom field name",
            "nullable": true
          },
          "FieldType": {
            "description": "Id and name of the field type",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "DisplayType": {
            "description": "Id and name of the display type. If \"None\", then it is the default display type for the field type.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "SourceId": {
            "type": "integer",
            "description": "Source id for lists",
            "format": "int32",
            "nullable": true
          },
          "IsRequired": {
            "type": "boolean",
            "description": "Indicates that this field is required"
          }
        }
      },
      "CheckListItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int64"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Notes": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "TimeEntry": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "EntryId": {
            "type": "integer",
            "readOnly": true,
            "description": "Read-only - Time Entry Id",
            "format": "int32"
          },
          "Type": {
            "description": "Time Entry Type ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Category": {
            "description": "Time Entry Category",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Item": {
            "description": "Item associated with the time entry",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "PayType": {
            "description": "Pay Type associated with the time entry",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Customer": {
            "description": "Customer associated with the time entry",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerRef"
              }
            ]
          },
          "SalesOrder": {
            "description": "Sales Order associated with the time entry",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SalesOrderRef"
              }
            ]
          },
          "Task": {
            "description": "Task associated with the time entry ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Notes": {
            "type": "string",
            "description": "Time Entry Notes ",
            "nullable": true
          },
          "Date": {
            "type": "string",
            "description": "Time Entry Date",
            "format": "date-time",
            "nullable": true
          },
          "Hours": {
            "type": "number",
            "description": "Time Entry Hours",
            "format": "decimal"
          },
          "Billable": {
            "type": "boolean",
            "description": "Indicates whether the time entry is billable or not "
          },
          "Billed": {
            "type": "boolean",
            "readOnly": true,
            "description": "Read-only - Indicates whether the time entry has been billed or not"
          },
          "Status": {
            "readOnly": true,
            "description": "Read-only - The status of the time entry ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "DateCreated": {
            "type": "string",
            "readOnly": true,
            "description": "Read-only - The date and time (in company time zone) when the Time Entry was created",
            "format": "date-time",
            "nullable": true
          },
          "CreatedBy": {
            "readOnly": true,
            "description": "Read-only - employee who created the Time Entry",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LastUpdatedDate": {
            "type": "string",
            "readOnly": true,
            "description": "Read-only - The date and time (in company time zone) when the Time Entry was last updated",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedBy": {
            "readOnly": true,
            "description": "Read-only - employee who last updated the Time Entry",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "DateApproved": {
            "type": "string",
            "readOnly": true,
            "description": "Read-only - The date and time (in company time zone) when the Time Entry was approved.",
            "format": "date-time",
            "nullable": true
          },
          "ApprovedBy": {
            "readOnly": true,
            "description": "Read-only - employee who approved the Time Entry",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          }
        }
      },
      "TimeEntryCreateParams": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Employee": {
            "description": "Employee associated with the time entry ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Item": {
            "description": "Item associated with the time entry",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "PayType": {
            "description": "Pay type associated with the time entry  ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Customer": {
            "description": "Customer associated with the time entry",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerRef"
              }
            ]
          },
          "SalesOrder": {
            "description": "Sales Order associated with the time entry",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SalesOrderRef"
              }
            ]
          },
          "Date": {
            "type": "string",
            "description": "Time Entry Date ",
            "format": "date-time"
          },
          "Hours": {
            "type": "number",
            "description": "Time entry Hours",
            "format": "decimal",
            "maximum": 24.0,
            "minimum": 1.0
          },
          "Billable": {
            "type": "boolean",
            "description": "Indicates whether the time entry is billable or not. "
          },
          "Notes": {
            "type": "string",
            "description": "Time Entry Notes ",
            "nullable": true
          },
          "Status": {
            "description": "Time Entry Status ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          }
        }
      },
      "TimeEntryUpdateParams": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Item": {
            "description": "Item associated with the time entry",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "PayType": {
            "description": "Pay Type associated with the time entry",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Customer": {
            "description": "Customer associated with the time entry",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerRef"
              }
            ]
          },
          "SalesOrder": {
            "description": "Sales Order associated with the time entry",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SalesOrderRef"
              }
            ]
          },
          "Hours": {
            "type": "number",
            "description": "Time Entry hours",
            "format": "decimal",
            "maximum": 24.0,
            "minimum": 1.0
          },
          "Billable": {
            "type": "boolean",
            "description": "Indicates whether the time entry is billable or not "
          },
          "Notes": {
            "type": "string",
            "description": "Time Entry Notes ",
            "nullable": true
          },
          "Status": {
            "description": "Time Entry Status",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          }
        }
      },
      "ProjectDetail": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Customer": {
            "description": "Customer associated with the project",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerRef"
              }
            ]
          },
          "Location": {
            "description": "Customer location associated with the project",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/LocationRef"
              }
            ]
          },
          "Contact": {
            "description": "Customer contact associated with the project",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Departments": {
            "type": "array",
            "description": "List of departments",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/IdNamePair"
            }
          },
          "Type": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Status": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "StatusNote": {
            "type": "string",
            "nullable": true
          },
          "Priority": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "StartDate": {
            "type": "string",
            "description": "Start date and time in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          },
          "EndDate": {
            "type": "string",
            "description": "End date and time in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          },
          "Budget": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "BudgetHours": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "Objective": {
            "type": "string",
            "nullable": true
          },
          "InternalNotes": {
            "type": "string",
            "nullable": true
          },
          "Reviewed": {
            "type": "boolean",
            "nullable": true
          },
          "OnTarget": {
            "type": "boolean",
            "nullable": true
          },
          "CustomFields": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomFieldValue"
            }
          },
          "DateCreated": {
            "type": "string",
            "description": "Created date and time will be in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          },
          "CreatedBy": {
            "description": "Employee who created the project",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/StrivenUser"
              }
            ]
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "Last Updated date and time will be in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedBy": {
            "description": "Employee who last updated the project",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/StrivenUser"
              }
            ]
          }
        }
      },
      "LocationRef": {
        "type": "object",
        "description": "Account Location Ref class",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Location Id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Location Name",
            "nullable": true
          },
          "Address": {
            "type": "string",
            "description": "Location Address",
            "nullable": true
          }
        }
      },
      "ProjectCreateParameters": {
        "type": "object",
        "description": "Project Create Parameters",
        "additionalProperties": false,
        "required": [
          "Name"
        ],
        "properties": {
          "Name": {
            "type": "string",
            "minLength": 1
          },
          "Type": {
            "description": "Project Type accepts id or name. If both are provided id takes the precedence.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Priority": {
            "description": "Project Priority accepts id or name. If both are provided id takes the precedence. If no priority is provided, the default priority will be saved.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Customer": {
            "description": "Customer to be associated with the project. Accepts id, number or name. If all are provided, id takes the first precedence, then number, then name.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerRef"
              }
            ]
          },
          "Location": {
            "description": "Customer location to be associated with the project. Accepts id, name or address. If all are provided, id takes the first precedence, then name, then address.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/LocationRef"
              }
            ]
          },
          "Contact": {
            "description": "Customer Contact to be associated with the project. Accepts id or name. If both are provided id takes the precedence.\n ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Departments": {
            "type": "array",
            "description": "List of departments to be associated with the project. Accepts department id or name. If both are provided id takes precedence.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/IdNamePair"
            }
          },
          "StartDate": {
            "type": "string",
            "description": "Start date in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          },
          "EndDate": {
            "type": "string",
            "description": "End date in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          },
          "Budget": {
            "type": "number",
            "description": "Project budget amount. Must be between -922,337,203,685,476.9 and 922,337,203,685,476.9.",
            "format": "decimal",
            "maximum": 922337203685476.9,
            "minimum": -922337203685476.9,
            "nullable": true
          },
          "BudgetHours": {
            "type": "number",
            "description": "Project budget hours. Must be between -999999999999999900000 and 999999999999999900000.",
            "format": "decimal",
            "maximum": 999999999999999900000.0,
            "minimum": -999999999999999900000.0,
            "nullable": true
          },
          "Objective": {
            "type": "string",
            "nullable": true
          },
          "InternalNotes": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ProjectType": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Project type unique id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Project type name",
            "nullable": true
          },
          "Active": {
            "type": "boolean"
          }
        }
      },
      "ProjectPriority": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Priority unique id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Priority name",
            "nullable": true
          },
          "IsDefault": {
            "type": "boolean"
          },
          "Active": {
            "type": "boolean"
          }
        }
      },
      "MilestoneDetail": {
        "type": "object",
        "description": "Milestone of a project.",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Project": {
            "description": "Project the milestone belongs to",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "StartDate": {
            "type": "string",
            "description": "Start date and time in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          },
          "EndDate": {
            "type": "string",
            "description": "End date and time in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          },
          "Status": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "PersonResponsible": {
            "description": "Employee responsible for the milestone",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/StrivenUser"
              }
            ]
          },
          "Notes": {
            "type": "string",
            "nullable": true
          },
          "VisibleOnPortal": {
            "type": "boolean",
            "description": "Indicates whether the milestone is visible on the customer portal"
          },
          "DateCreated": {
            "type": "string",
            "description": "Created date and time will be in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          },
          "CreatedBy": {
            "description": "Employee who created the milestone",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/StrivenUser"
              }
            ]
          },
          "LastUpdateDate": {
            "type": "string",
            "description": "Last Updated date and time will be in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedBy": {
            "description": "Employee who last updated the milestone",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/StrivenUser"
              }
            ]
          }
        }
      },
      "MilestoneCreateParameters": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MilestoneParameters"
          },
          {
            "type": "object",
            "description": "Project Milestone Create Parameters",
            "additionalProperties": false,
            "required": [
              "Project"
            ],
            "properties": {
              "Project": {
                "description": "Required. Project the milestone will be created for. Accepts id or name. If both are provided id takes the precedence.",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/IdNamePair"
                  }
                ]
              }
            }
          }
        ]
      },
      "MilestoneParameters": {
        "type": "object",
        "description": "Properties shared by the project milestone create and update parameters.",
        "x-abstract": true,
        "additionalProperties": false,
        "required": [
          "Name"
        ],
        "properties": {
          "Name": {
            "type": "string",
            "minLength": 1
          },
          "StartDate": {
            "type": "string",
            "description": "Start date in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          },
          "EndDate": {
            "type": "string",
            "description": "End date in ISO 8601 format. Cannot be earlier than the start date.",
            "format": "date-time",
            "nullable": true
          },
          "PersonResponsible": {
            "description": "Employee responsible for the milestone. ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/StrivenUser"
              }
            ]
          },
          "Notes": {
            "type": "string",
            "nullable": true
          },
          "VisibleOnPortal": {
            "type": "boolean",
            "description": "Indicates whether the milestone is visible on the customer portal. Defaults to false when omitted or passed as null.",
            "nullable": true
          }
        }
      },
      "MilestoneUpdateParameters": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MilestoneParameters"
          },
          {
            "type": "object",
            "description": "Project Milestone Update Parameters. Performs a full update, replacing the entire milestone. Required parameters must be\nsupplied with valid values. Any optional parameters that are omitted from the request body or passed as null will be\ncleared from the milestone. The project a milestone belongs to and its status cannot be changed and are not accepted here.",
            "additionalProperties": false
          }
        ]
      },
      "SearchResultOfAssignmentCategory": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/AssignmentCategory"
            }
          }
        }
      },
      "AssignmentCategory": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of the assignment category",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Name of the assignment category",
            "nullable": true
          },
          "Type": {
            "type": "string",
            "description": "Pattern: customer-vendor|contact|employee|pool|team",
            "nullable": true
          },
          "DefaultForCustomers": {
            "type": "boolean",
            "description": "Indicates whether the assignment category is set as default while creating customers"
          },
          "DefaultForProjects": {
            "type": "boolean",
            "description": "Indicates whether the assignment category is set as default while creating projects"
          },
          "Active": {
            "type": "boolean"
          }
        }
      },
      "SearchResultOfBillPaymentCCChargeResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/BillPaymentCCChargeResult"
            }
          }
        }
      },
      "BillPaymentCCChargeResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Charge Id",
            "format": "int32"
          },
          "ReferenceNumber": {
            "type": "string",
            "description": "Bill Payment CC Charge reference number",
            "nullable": true
          },
          "Vendor": {
            "description": "Vendor associated to the Bill Payment CC Charge",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/VendorRef"
              }
            ]
          },
          "CreditCardAccount": {
            "description": "Credit Card Account related to the Bill Payment CC Charge",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ChartOfAccountRef"
              }
            ]
          },
          "Status": {
            "description": "Bill Payment CC Charge Status",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "ChargeDate": {
            "type": "string",
            "description": "Charge Date",
            "format": "date-time",
            "nullable": true
          },
          "Amount": {
            "type": "number",
            "description": "Amount Paid",
            "format": "decimal",
            "nullable": true
          },
          "Currency": {
            "description": "Currency",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency"
              }
            ]
          },
          "OpenBalance": {
            "type": "number",
            "description": "Open Balance",
            "format": "decimal",
            "nullable": true
          },
          "DateCreated": {
            "type": "string",
            "description": "Created date and time will be in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdateDate": {
            "type": "string",
            "description": "Last updated date and time will be in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "VendorRef": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Vendor Id",
            "format": "int32"
          },
          "Number": {
            "type": "string",
            "description": "Vendor Number",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "description": "Vendor Name",
            "nullable": true
          }
        }
      },
      "ChartOfAccountRef": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Chart of Account Id",
            "format": "int32"
          },
          "Number": {
            "type": "string",
            "description": "Chart of Account Number",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "description": "Chart of Account Name",
            "nullable": true
          },
          "ExtendedName": {
            "type": "string",
            "description": "Chart of Account Full Name",
            "nullable": true
          }
        }
      },
      "Currency": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CurrencyISOCode": {
            "type": "string",
            "description": "ISO currency symbol",
            "nullable": true
          },
          "ExchangeRate": {
            "type": "number",
            "description": "Exchange rate ",
            "format": "decimal",
            "maximum": 999999999998.0,
            "minimum": 0.000001
          }
        }
      },
      "BillPaymentCCChargeSearchParams": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSearchParameters"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Vendor": {
                "description": "Searchable by Id, name and number",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/VendorRef"
                  }
                ]
              },
              "CreditCardAccount": {
                "description": "Searchable by Id, number, name, or extended name",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChartOfAccountRef"
                  }
                ]
              },
              "Status": {
                "type": "array",
                "description": "Collection of Bill Payment CC Charges Status",
                "nullable": true,
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "HasOpenBalance": {
                "type": "boolean",
                "description": "Filters Bill Payment CC Charges based on if it has open balance or not.",
                "nullable": true
              },
              "ChargeDateRange": {
                "description": "Filters Bill Payment CC Charges based on charge date.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "DateCreatedRange": {
                "description": "Filters Bill Payment CC Charges based on created date.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateOffsetRange"
                  }
                ]
              },
              "LastUpdatedDateRange": {
                "description": "Filters Bill Payment CC Charges on last updated date.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateOffsetRange"
                  }
                ]
              }
            }
          }
        ]
      },
      "DateRange": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "DateFrom": {
            "type": "string",
            "description": "Date and time field.",
            "format": "date-time",
            "nullable": true
          },
          "DateTo": {
            "type": "string",
            "description": "Date and time field.",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "BillPaymentCCChargeDetail": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Bill Payment CC Charge unique Id - auto generated by the system",
            "format": "int32"
          },
          "ReferenceNumber": {
            "type": "string",
            "description": "Bill Payment CC Charge reference number. ",
            "nullable": true
          },
          "Vendor": {
            "description": "Vendor associated to the Bill Payment CC Charge.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/VendorRef"
              }
            ]
          },
          "CreditCardAccount": {
            "description": "Bill Payment CC Charge credit card account",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ChartOfAccountRef"
              }
            ]
          },
          "ChargeDate": {
            "type": "string",
            "description": "Bill Payment CC Charge charge date",
            "format": "date-time"
          },
          "Amount": {
            "type": "number",
            "description": "Bill Payment CC Charge amount",
            "format": "decimal"
          },
          "Currency": {
            "readOnly": true,
            "description": "Read-only - Currency Information.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency"
              }
            ]
          },
          "OpenBalance": {
            "type": "number",
            "description": "Bill Payment CC Charge open balance",
            "format": "decimal"
          },
          "Memo": {
            "type": "string",
            "description": "Bill Payment CC Charge memo",
            "nullable": true
          },
          "Status": {
            "readOnly": true,
            "description": "Read-only - The status of the Bill Payment CC Charge. ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "IsHistoricalNonposting": {
            "type": "boolean",
            "readOnly": true,
            "description": "Read-only. Indicates whether the Bill Payment CC Charge is a historical non-posting transaction or not."
          },
          "AppliedToBills": {
            "type": "array",
            "description": "List of bills applied to the Bill Payment CC Charge",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/AppliedToBills"
            }
          },
          "DateCreated": {
            "type": "string",
            "readOnly": true,
            "description": "Read-only - The date and time (in company time zone) when the Bill Payment CC Charge was created.",
            "format": "date-time",
            "nullable": true
          },
          "CreatedBy": {
            "readOnly": true,
            "description": "Read-only - employee who created the Bill Payment CC Charge",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/StrivenUser"
              }
            ]
          },
          "LastUpdatedDate": {
            "type": "string",
            "readOnly": true,
            "description": "Read-only - The date and time (in company time zone) when the Bill Payment CC Charge was last updated",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedBy": {
            "readOnly": true,
            "description": "Read-only - employee who last updated the Bill Payment CC Charge",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/StrivenUser"
              }
            ]
          },
          "Reviewed": {
            "type": "boolean",
            "readOnly": true,
            "description": "Read-only - whether Bill Payment CC Charge was reviewed"
          },
          "DateReviewed": {
            "type": "string",
            "readOnly": true,
            "description": "Read-only - The date and time (in company time zone) when the Bill Payment CC Charge was reviewed.",
            "format": "date-time",
            "nullable": true
          },
          "ReviewedBy": {
            "readOnly": true,
            "description": "Read-only - employee who reviewed the Bill Payment CC Charge",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/StrivenUser"
              }
            ]
          }
        }
      },
      "AppliedToBills": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Bill Id",
            "format": "int32"
          },
          "Number": {
            "type": "string",
            "description": "Read-only. Bill number",
            "nullable": true
          },
          "BillTotal": {
            "type": "number",
            "description": "Read-only. Bill Total",
            "format": "decimal"
          },
          "Discount": {
            "type": "number",
            "description": "Read-only. Bill payment discount applied to the bill",
            "format": "decimal"
          },
          "Credit": {
            "type": "number",
            "description": "Read-only. Total credit applied to the bill",
            "format": "decimal"
          },
          "AmountApplied": {
            "type": "number",
            "description": "Bill payment amount applied to the bill",
            "format": "decimal",
            "maximum": 922337203685477.5,
            "minimum": 0.01
          },
          "DateApplied": {
            "type": "string",
            "description": "Read-only. The date when the bill payment was applied to the bill.",
            "format": "date-time"
          }
        }
      },
      "BillPaymentCCChargeCreateParams": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "CreditCardAccount",
          "Vendor",
          "Amount"
        ],
        "properties": {
          "CreditCardAccount": {
            "description": "Either Id, number, extended name, or name can be passed. Only Chart of Account of type Credit Card is allowed.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ChartOfAccountRef"
              }
            ]
          },
          "Vendor": {
            "description": "Either Id, name or number can be passed. If multi currency turned on, Vendor should be in Home Currency.",
            "allOf": [
              {
                "$ref": "#/components/schemas/VendorRef"
              }
            ]
          },
          "ReferenceNumber": {
            "type": "string",
            "description": "Bill Payment CC Charge Reference Number",
            "nullable": true
          },
          "ChargeDate": {
            "type": "string",
            "description": "Bill Payment CC Charge Charge Date",
            "format": "date-time",
            "nullable": true
          },
          "Amount": {
            "type": "number",
            "description": "Bill Payment CC Charge Total. Bill Payment CC Charge Total should be more than or equal to Total of AppliedToBills AmountApplied.",
            "format": "decimal",
            "maximum": 922337203685477.5,
            "minimum": 0.01
          },
          "Memo": {
            "type": "string",
            "description": "Bill Payment CC Charge memo",
            "nullable": true
          },
          "AppliedToBills": {
            "type": "array",
            "description": "Bills should have the same vendor as the Vendor of the Bill Payment CC Charges.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/AppliedToBills"
            }
          }
        }
      },
      "SearchResultOfBillPaymentCheckResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/BillPaymentCheckResult"
            }
          }
        }
      },
      "BillPaymentCheckResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Check id",
            "format": "int32"
          },
          "Number": {
            "type": "string",
            "description": "Bill payment check number",
            "nullable": true
          },
          "Vendor": {
            "description": "Vendor associated to the bill payment check",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/VendorRef"
              }
            ]
          },
          "BankAccount": {
            "description": "Bank Account related to the bill payment check",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ChartOfAccountRef"
              }
            ]
          },
          "Status": {
            "description": "Bill payment check Status",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "CheckDate": {
            "type": "string",
            "description": "Check Date",
            "format": "date-time",
            "nullable": true
          },
          "Amount": {
            "type": "number",
            "description": "Amount Paid",
            "format": "decimal",
            "nullable": true
          },
          "Currency": {
            "description": "Currency",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency"
              }
            ]
          },
          "OpenBalance": {
            "type": "number",
            "description": "Open Balance",
            "format": "decimal",
            "nullable": true
          },
          "DateCreated": {
            "type": "string",
            "description": "Created date and time will be in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdateDate": {
            "type": "string",
            "description": "Last updated date and time will be in ISO 8601 format.",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "BillPaymentCheckSearchParams": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSearchParameters"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Vendor": {
                "description": "Vendor associated to the bill payment check. If provided, bill payment checks will be filtered based on the vendor Id or Number or Name. If all of them are provided, Id takes the first precedence, then the Number and then the Name.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/VendorRef"
                  }
                ]
              },
              "BankAccount": {
                "description": "Filters bill payment checks based on the bank account. If provided, bill payment checks will be filtered based on the bank account Id or Number or Name. If all of them are provided, Id takes the first precedence, then the Number and then the Name.\n            ",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChartOfAccountRef"
                  }
                ]
              },
              "Status": {
                "type": "array",
                "description": "Collection of bill payment check status",
                "nullable": true,
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "HasOpenBalance": {
                "type": "boolean",
                "description": "Filters bill payment checks based on if it has open balance or not.",
                "nullable": true
              },
              "CheckDateRange": {
                "description": "Filters bill payment checks based on check date.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "DateCreatedRange": {
                "description": "Filters bill payment checks based on created date.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateOffsetRange"
                  }
                ]
              },
              "LastUpdatedDateRange": {
                "description": "Filters bill payment checks based on last updated date.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateOffsetRange"
                  }
                ]
              }
            }
          }
        ]
      },
      "BillPaymentCheckDetail": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Bill payment check unique Id - auto generated by the system",
            "format": "int32"
          },
          "Number": {
            "type": "string",
            "description": "Bill payment check number. If to be printed, it shows [To be Printed]",
            "nullable": true
          },
          "Vendor": {
            "description": "Vendor associated to the bill payment check. If provided, bill payment checks will be filtered based on the vendor Id or Number or Name. If all of them are provided, Id takes the first precedence, then the Number and then the Name.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/VendorRef"
              }
            ]
          },
          "BankAccount": {
            "description": "Bill payment check gl account",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ChartOfAccountRef"
              }
            ]
          },
          "CheckDate": {
            "type": "string",
            "description": "Bill payment check date",
            "format": "date-time"
          },
          "Amount": {
            "type": "number",
            "description": "Bill payment check amount",
            "format": "decimal"
          },
          "Currency": {
            "description": "Read-only - Currency Information.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency"
              }
            ]
          },
          "OpenBalance": {
            "type": "number",
            "description": "Bill payment check open balance",
            "format": "decimal"
          },
          "RemitToLocation": {
            "description": "Bill payment check remit to location",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/LocationRef"
              }
            ]
          },
          "Memo": {
            "type": "string",
            "description": "Bill payment check memo",
            "nullable": true
          },
          "ToBePrinted": {
            "type": "boolean",
            "description": "Whether this bill payment check is queued to be printed"
          },
          "Status": {
            "description": "Read-only - The status of the bill payment check. Status codes are: Active=143, Voided=144. ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "IsHistoricalNonposting": {
            "type": "boolean",
            "description": "Read-only. Indicates whether the bill payment check is a historical non-posting transaction or not."
          },
          "AppliedToBills": {
            "type": "array",
            "description": "List of bills applied to the bill payment check",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/AppliedToBills"
            }
          },
          "DateCreated": {
            "type": "string",
            "description": "Read-only - The date and time (in company time zone) when the bill payment check was created.",
            "format": "date-time",
            "nullable": true
          },
          "CreatedBy": {
            "description": "Read-only - employee who created the bill payment check",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/StrivenUser"
              }
            ]
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "Read-only - The date and time (in company time zone) when the bill payment check was last updated",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedBy": {
            "description": "Read-only - employee who last updated the bill payment check",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/StrivenUser"
              }
            ]
          },
          "Reviewed": {
            "type": "boolean",
            "description": "Read-only - whether bill payment check was reviewed"
          },
          "DateReviewed": {
            "type": "string",
            "description": "Read-only - The date and time (in company time zone) when the bill payment check was reviewed.",
            "format": "date-time",
            "nullable": true
          },
          "ReviewedBy": {
            "description": "Read-only - employee who reviewed the bill payment check",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/StrivenUser"
              }
            ]
          }
        }
      },
      "BillPaymentCheckCreateParams": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "BankAccount",
          "Vendor",
          "Amount"
        ],
        "properties": {
          "BankAccount": {
            "description": "Either Id, name or number can be passed. Only Chart of Account of type Bank is allowed.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ChartOfAccountRef"
              }
            ]
          },
          "Vendor": {
            "description": "Either Id, name or number can be passed. If multi currency turned on, Vendor should be in Home Currency.",
            "allOf": [
              {
                "$ref": "#/components/schemas/VendorRef"
              }
            ]
          },
          "RemitToLocation": {
            "description": "Either Id, name or address can be passed. If not passed, the primary location of the vendor will be used.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/LocationRef"
              }
            ]
          },
          "ToBePrinted": {
            "type": "boolean",
            "description": "Whether this bill payment check is queued to be printed"
          },
          "Number": {
            "type": "string",
            "description": "Auto generated by the system if blank. If to be printed, it gets ignored.",
            "nullable": true
          },
          "AllowDuplicateCheckNumber": {
            "type": "boolean",
            "description": "Set to true if you want to skip duplicate check for the Check Number."
          },
          "CheckDate": {
            "type": "string",
            "description": "Bill payment check date",
            "format": "date-time",
            "nullable": true
          },
          "Amount": {
            "type": "number",
            "description": "Bill Payment Check Total. Bill Payment Check Total should be more than or equals to Total of AppliedToBills AmountApplied.",
            "format": "decimal",
            "maximum": 922337203685477.5,
            "minimum": 0.01
          },
          "Memo": {
            "type": "string",
            "description": "Bill payment check memo",
            "nullable": true
          },
          "AppliedToBills": {
            "type": "array",
            "description": "Bills should have the same vendor as the Vendor of the Bill Payment Check.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/AppliedToBills"
            }
          }
        }
      },
      "SearchResultOfUOMSetSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/UOMSetSearchResult"
            }
          }
        }
      },
      "UOMSetSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int64"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Active": {
            "type": "boolean"
          },
          "RelatedUnits": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/UOMRelatedUnits"
            }
          }
        }
      },
      "UOMRelatedUnits": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int64"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Abbrevation": {
            "type": "string",
            "nullable": true
          },
          "NumberOfBaseUnits": {
            "type": "number",
            "format": "decimal"
          },
          "IsBaseUnit": {
            "type": "boolean"
          },
          "IsSalesDefault": {
            "type": "boolean"
          },
          "IsPurchaseDefault": {
            "type": "boolean"
          }
        }
      },
      "SearchResultOfTaskSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/TaskSearchResult"
            }
          }
        }
      },
      "TaskSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "TaskName": {
            "type": "string",
            "nullable": true
          },
          "AccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "AccountName": {
            "type": "string",
            "nullable": true
          },
          "AssignedTo": {
            "type": "string",
            "nullable": true
          },
          "DateCreated": {
            "type": "string",
            "description": "The date and time (in company time zone) when the task was created.",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "The date and time (in company time zone) when the task was last updated.",
            "format": "date-time",
            "nullable": true
          },
          "Status": {
            "type": "string",
            "nullable": true
          },
          "StatusId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "AttachmentCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "AttachmentLastUploaded": {
            "type": "string",
            "description": "The date and time (in company time zone) when the attachment was last uploaded.",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "TaskSearchParameters": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSearchParameters"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "TaskName": {
                "type": "string",
                "nullable": true
              },
              "TaskType": {
                "type": "array",
                "description": "Collection of Task Type Ids. ",
                "nullable": true,
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "AccountId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "DueDateRange": {
                "description": "The date and time (in company time zone) when the task was dued.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "Project": {
                "description": "If both Id and Name are provided then Id takes precedence. ",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/IdNamePair"
                  }
                ]
              },
              "DateCreatedFrom": {
                "type": "string",
                "description": "The date and time (in company time zone) when the task was created.",
                "format": "date-time",
                "nullable": true
              },
              "DateCreatedTo": {
                "type": "string",
                "description": "The date and time (in company time zone) when the task was created.",
                "format": "date-time",
                "nullable": true
              },
              "StatusChangedTo": {
                "type": "integer",
                "description": "If provided, Status Changed To should be one of Task statuses.",
                "format": "int32",
                "nullable": true
              },
              "StatusChangedDateFrom": {
                "type": "string",
                "description": "The date and time (in company time zone) when the status of task was changed.",
                "format": "date-time",
                "nullable": true
              },
              "StatusChangedDateTo": {
                "type": "string",
                "description": "The date and time (in company time zone) when the status of task was changed.",
                "format": "date-time",
                "nullable": true
              },
              "LastUpdatedDateFrom": {
                "type": "string",
                "description": "The date and time (in company time zone) when the task was last updated.",
                "format": "date-time",
                "nullable": true
              },
              "LastUpdatedDateTo": {
                "type": "string",
                "description": "The date and time (in company time zone) when the task was last updated.",
                "format": "date-time",
                "nullable": true
              }
            }
          }
        ]
      },
      "Task": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "TaskName": {
            "type": "string",
            "nullable": true
          },
          "TaskTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "TaskTypeName": {
            "type": "string",
            "nullable": true
          },
          "AccountId": {
            "type": "integer",
            "format": "int32"
          },
          "AccountName": {
            "type": "string",
            "nullable": true
          },
          "LocationId": {
            "type": "integer",
            "format": "int32"
          },
          "LocationName": {
            "type": "string",
            "nullable": true
          },
          "TaskDescription": {
            "type": "string",
            "nullable": true
          },
          "BudgetHours": {
            "type": "number",
            "format": "decimal"
          },
          "TaskPercentComplete": {
            "type": "number",
            "format": "decimal"
          },
          "DateRequested": {
            "type": "string",
            "format": "date-time"
          },
          "DesiredEndDate": {
            "type": "string",
            "description": "The date and time (in company time zone)",
            "format": "date-time"
          },
          "DesiredStartDate": {
            "type": "string",
            "description": "The date and time (in company time zone)",
            "format": "date-time"
          },
          "StatusId": {
            "type": "integer",
            "format": "int32"
          },
          "Status": {
            "type": "string",
            "nullable": true
          },
          "PriorityId": {
            "type": "integer",
            "format": "int32"
          },
          "PriorityName": {
            "type": "string",
            "nullable": true
          },
          "DivisionId": {
            "type": "integer",
            "format": "int32"
          },
          "AssignedTo": {
            "type": "string",
            "nullable": true
          },
          "IsRecurring": {
            "type": "boolean"
          },
          "IsSticky": {
            "type": "boolean"
          },
          "RequestedBy": {
            "type": "integer",
            "format": "int32"
          },
          "RequestedByName": {
            "type": "string",
            "nullable": true
          },
          "OrderId": {
            "type": "integer",
            "format": "int32"
          },
          "OrderName": {
            "type": "string",
            "nullable": true
          },
          "ProjectId": {
            "type": "integer",
            "format": "int32"
          },
          "ProjectName": {
            "type": "string",
            "nullable": true
          },
          "MilestoneId": {
            "type": "integer",
            "format": "int32"
          },
          "MilestoneName": {
            "type": "string",
            "nullable": true
          },
          "UseSubcontractor": {
            "type": "boolean"
          },
          "AssignedVendorId": {
            "type": "integer",
            "format": "int32"
          },
          "AssignedVendorName": {
            "type": "string",
            "nullable": true
          },
          "POId": {
            "type": "integer",
            "format": "int32"
          },
          "POName": {
            "type": "string",
            "nullable": true
          },
          "POStatus": {
            "type": "string",
            "nullable": true
          },
          "SubContractedWorkStatusId": {
            "type": "integer",
            "format": "int32"
          },
          "SubContractedWorkStatus": {
            "type": "string",
            "nullable": true
          },
          "CreatedBy": {
            "type": "integer",
            "format": "int32"
          },
          "DateCreated": {
            "type": "string",
            "description": "The date and time (in company time zone)",
            "format": "date-time"
          },
          "ModifiedBy": {
            "type": "integer",
            "format": "int32"
          },
          "DateModified": {
            "type": "string",
            "description": "The date and time (in company time zone)",
            "format": "date-time"
          },
          "AttachmentCount": {
            "type": "integer",
            "format": "int32"
          },
          "NotesLogCount": {
            "type": "integer",
            "format": "int32"
          },
          "CustomFields": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          }
        }
      },
      "CustomField": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Id"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of custom field.",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "readOnly": true,
            "description": "Name of the custom field.",
            "nullable": true
          },
          "FieldType": {
            "readOnly": true,
            "description": "Defines custom field data type.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "SourceId": {
            "type": "integer",
            "readOnly": true,
            "description": "Data source of the custom field when the field type is Custom List or Existing List. Example: If the field type is Existing List, SourceId = 4 means the data source of the field is Employees.",
            "format": "int32"
          },
          "Value": {
            "type": "string",
            "description": "Represents the value of Custom Field",
            "nullable": true
          },
          "ValueText": {
            "type": "string",
            "description": "Represents the text value of the custom field. Example: If the field type is Existing List and the source is Employee (SourceId = 4) then ValueText will be the employee's name.",
            "nullable": true
          },
          "IsRequired": {
            "type": "boolean",
            "readOnly": true,
            "description": "Defines if the custom field is a required field."
          }
        }
      },
      "SearchResultOfAttachment2": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/Attachment2"
            }
          }
        }
      },
      "Attachment2": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "FileName": {
            "type": "string",
            "nullable": true
          },
          "OriginalFileName": {
            "type": "string",
            "nullable": true
          },
          "FilePath": {
            "type": "string",
            "nullable": true
          },
          "UploadedBy": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "VisibleOnPortal": {
            "type": "boolean"
          },
          "IsDefault": {
            "type": "boolean"
          },
          "DateCreated": {
            "type": "string",
            "description": "The date and time (in company time zone) when the attachment was created.",
            "format": "date-time"
          }
        }
      },
      "TaskType2": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TaskTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "TaskTypeName": {
            "type": "string",
            "nullable": true
          },
          "IsDefault": {
            "type": "boolean"
          }
        }
      },
      "TaskPriority2": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TaskPriorityId": {
            "type": "integer",
            "format": "int32"
          },
          "PriorityName": {
            "type": "string",
            "nullable": true
          },
          "IsDefault": {
            "type": "boolean"
          }
        }
      },
      "TaskCreateParams": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "TaskName"
        ],
        "properties": {
          "TaskName": {
            "type": "string",
            "minLength": 1
          },
          "TaskTypeID": {
            "type": "integer",
            "format": "int32"
          },
          "PriorityID": {
            "type": "integer",
            "format": "int32"
          },
          "DueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "RequestedByObjectID": {
            "type": "integer",
            "description": "RequestedByObjectID property will be deprecated in the future. \nRequestedByObjectID will be derived from RequestedByEmail property.",
            "format": "int32",
            "deprecated": true
          },
          "RequestedByKeyID": {
            "type": "integer",
            "description": "RequestedByKeyID property will be deprecated in the future. \nRequestedByKeyID will be derived from RequestedByEmail property",
            "format": "int32",
            "deprecated": true
          },
          "AccountID": {
            "type": "integer",
            "format": "int32"
          },
          "OrderID": {
            "type": "integer",
            "format": "int32"
          },
          "ProjectID": {
            "type": "integer",
            "format": "int32"
          },
          "MilestoneID": {
            "type": "integer",
            "format": "int32"
          },
          "TaskDesc": {
            "type": "string",
            "nullable": true
          },
          "AssignedToObjectID": {
            "type": "integer",
            "description": "Assigned to ObjectID -\nFor Employees: ObjectID = 4,\nFor Teams: ObjectID = 12,\nFor Pools: ObjectID = 30,\nFor Contacts: ObjectID = 20",
            "format": "int32"
          },
          "AssignedToKeyID": {
            "type": "integer",
            "format": "int32"
          },
          "AssignToUserByDefault": {
            "type": "boolean",
            "description": "AssignToUserByDefault property will be deprecated in the future. \nIf AssignedToObjectID and AssignedToKeyID values are not provided, then the task will be assigned as per default setup at task type configuration, or to the user creating the task if no defaults are set up for the task type.",
            "deprecated": true
          },
          "DeriveRequestedByUsingEmailFrom": {
            "type": "boolean"
          },
          "RequestedByEmail": {
            "type": "string",
            "nullable": true
          },
          "StatusID": {
            "description": "48 - Open,\n50 - Done,\n68 - On Hold,\n41 - Canceled,\nDefaults to 48 - Open if not supplied",
            "allOf": [
              {
                "$ref": "#/components/schemas/SuiteStatus"
              }
            ]
          }
        }
      },
      "SuiteStatus": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "AccountPending",
          "AccountActive",
          "AccountInactive",
          "AccountLost",
          "AssetReservationStatusReserved",
          "AssetReservationStatusCheckedOut",
          "AssetReservationStatusReturned",
          "AssetReservationStatusConfirmedReturn",
          "AssetReservationStatusCancelled",
          "TimeOffPendingApproval",
          "TimeOffApproved",
          "TimeOffDenied",
          "TimeOffCancelled",
          "CustomerAssetPending",
          "CustomerAssetInService",
          "CustomerAssetRetired",
          "OrderIncomplete",
          "OrderQuoted",
          "OrderPendingApproval",
          "OrderDeclined",
          "OrderApproved",
          "OrderCancelled",
          "OrderLost",
          "OrderInProgress",
          "OrderCompleted",
          "ProjectPending",
          "ProjectInProgress",
          "ProjectDone",
          "ProjectCancelled",
          "MilestonePending",
          "MilestoneDone",
          "AppointmentScheduled",
          "AppointmentDone",
          "AppointmentCancelled",
          "TaskOpen",
          "TaskDone",
          "TaskCancelled",
          "AssetReservationStatusConfirmCheckout",
          "CompanyAssetPending",
          "CompanyAssetInService",
          "CompanyAssetRetired",
          "ReimbursementRequestPending",
          "ReimbursementRequestApproved",
          "ReimbursementRequestPaid",
          "ReimbursementRequestDenied",
          "ReimbursementRequestCancelled",
          "PortalRequestOpen",
          "PortalRequestClosed",
          "MilestoneCancelled",
          "TaskOnHold",
          "PaymentPending",
          "PaymentApproved",
          "PaymentFailed",
          "PaymentVoided",
          "OpportunityStatusOpen",
          "OpportunityStatusClose",
          "EmailCampaignPending",
          "EmailCampaignSent",
          "EmailCampaignSkipped",
          "EmailCampaignSnooze",
          "CandidateApplicationPending",
          "CandidateApplicationInProgress",
          "CandidateApplicationClosed",
          "CandidateApplicationCancelled",
          "CandidateApplicationStepPending",
          "CandidateApplicationStepCompleted",
          "CandidateApplicationStepSkipped",
          "CandidateApplicationOnHold",
          "TimeSheetPendingApproval",
          "TimeSheetApproved",
          "LeadStatusPending",
          "LeadStatusConverted",
          "POStatusIncomplete",
          "POStatusPending",
          "POStatusDeclined",
          "POStatusApproved",
          "POStatusInProgress",
          "POStatusFulfilled",
          "POStatusCanceled",
          "LeadStatusInactive",
          "POLineItemStatusPending",
          "POLineItemStatusOrdered",
          "POLineItemStatusReceived",
          "POLineItemStatusCancelled",
          "VendorPOStatusPending",
          "VendorPOStatusAccepted",
          "VendorPOStatusDeclined",
          "VendorPOStatusPartiallyFulfilled",
          "VendorPOStatusFulfilled",
          "DepositDeposited",
          "DepositVoided",
          "BillPendingReview",
          "BillToBePaid",
          "BillPaid",
          "BillCancelled",
          "BillDenied",
          "ItemReceiptActive",
          "ItemReceiptVoided",
          "POStatusClosed",
          "SubcontractedWorkStatusPending",
          "SubcontractedWorkStatusInProgress",
          "SubcontractedWorkStatusDone",
          "ManualCheckActive",
          "ManualCheckVoided",
          "JournalEntryActive",
          "JournalEntryVoided",
          "CustomerAssetUnsupported",
          "FundTransferActive",
          "FundTransferVoided",
          "CCChargeActive",
          "CCChargeVoided",
          "ReconciliationPending",
          "ReconciliationReconciled",
          "InventoryAdjustmentPosted",
          "InventoryAdjustmentVoided",
          "InventoryTransferActive",
          "InventoryTransferVoided",
          "InvoiceActive",
          "InvoiceVoided",
          "CreditMemoActive",
          "CreditMemoVoided",
          "BillCreditActive",
          "BillCreditVoided",
          "OrderInvoiceStatusNo",
          "OrderInvoiceStatusPartial",
          "OrderInvoiceStatusFull",
          "ItemBuildFinalized",
          "ItemBuildVoided",
          "SalesReceiptActive",
          "SalesReceiptVoided",
          "PriceUpdateRequestPending",
          "PriceUpdateRequestInProgress",
          "PriceUpdateRequestProcessed",
          "MonthlyStatementRequestPending",
          "MonthlyStatementRequestProcessed",
          "TimeSheetDeleted",
          "ProjectOnHold",
          "ReconciliationUndone",
          "ItemBuildIncomplete",
          "ClockedIn",
          "ClockedOut",
          "Deleted",
          "ItemBuildPending",
          "WorkflowActionQueued",
          "WorkflowActionProcessed",
          "WorkflowActionSnoozed",
          "WorkflowActionCanceled",
          "CustomerAssetInactive",
          "WorkflowActionSkipped",
          "PaymentIntentPending",
          "PaymentIntentSuccess",
          "PaymentIntentCanceled",
          "TimeEntryPendingApproval",
          "TimeEntryApproved",
          "TimeSheetPartiallyApproved",
          "POStatusPendingApproval"
        ],
        "enum": [
          1,
          2,
          3,
          4,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          27,
          34,
          36,
          37,
          38,
          43,
          44,
          45,
          46,
          47,
          48,
          50,
          51,
          52,
          53,
          54,
          55,
          56,
          57,
          58,
          59,
          60,
          61,
          62,
          66,
          68,
          69,
          70,
          71,
          75,
          77,
          78,
          79,
          80,
          81,
          82,
          85,
          86,
          88,
          89,
          90,
          91,
          92,
          93,
          94,
          95,
          102,
          103,
          105,
          106,
          107,
          108,
          109,
          110,
          111,
          112,
          113,
          114,
          115,
          116,
          117,
          118,
          119,
          120,
          121,
          122,
          123,
          124,
          125,
          126,
          127,
          128,
          129,
          130,
          132,
          140,
          141,
          142,
          143,
          144,
          145,
          146,
          148,
          149,
          150,
          151,
          152,
          153,
          154,
          155,
          156,
          157,
          158,
          160,
          161,
          163,
          164,
          165,
          166,
          167,
          168,
          169,
          170,
          171,
          172,
          173,
          174,
          175,
          176,
          177,
          178,
          179,
          180,
          181,
          182,
          183,
          184,
          185,
          186,
          187,
          188,
          189,
          190,
          191,
          192,
          193,
          194,
          195,
          196,
          197,
          198,
          199
        ]
      },
      "Pool": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "IsDefault": {
            "type": "boolean"
          }
        }
      },
      "SearchResultOfPaymentTerm": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/PaymentTerm"
            }
          }
        }
      },
      "PaymentTerm": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "TermDays": {
            "type": "integer",
            "format": "int32"
          },
          "IsDefault": {
            "type": "boolean"
          },
          "Active": {
            "type": "boolean"
          }
        }
      },
      "SalesOrder": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Type",
          "Customer"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Sales order unique id - auto generated by the system.",
            "format": "int32"
          },
          "Type": {
            "description": "The sales order type.",
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Customer": {
            "description": "The customer associated with the sales order.",
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerRef"
              }
            ]
          },
          "BillToLocation": {
            "description": "The customer bill to location. This is required when \"Require Bill To and Ship To Address for Sales Orders, Invoices, Credit Memos, and Sales Receipts\" AR setting is turned on. Default location will be used in case is not specified and it's required.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "ShipToLocation": {
            "description": "The customer ship to location. This is required when \"Require Bill To and Ship To Address for Sales Orders, Invoices, Credit Memos, and Sales Receipts\" AR setting is turned on. Default location will be used in case is not specified and it's required.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "ShipVia": {
            "description": "Ship Via",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "TrackingNumber": {
            "type": "string",
            "description": "Shipment tracking number.",
            "nullable": true
          },
          "Contact": {
            "description": "Contact associated with the sales order.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Project": {
            "description": "Project associated with the sales order.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "SalesRep": {
            "description": "Sales rep associated with the sales order.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "OrderDate": {
            "type": "string",
            "description": "Order date - required. Today's date will be used in case is not specified.",
            "format": "date-time"
          },
          "OrderNumber": {
            "type": "string",
            "description": "Order number - auto generated by the system for new orders if not provided. Required on update.",
            "nullable": true
          },
          "OrderName": {
            "type": "string",
            "description": "Order name - required based on sales order type settings. Order date will be used in case is not specified.",
            "nullable": true
          },
          "CustomerPONumber": {
            "type": "string",
            "description": "Customer PO number.",
            "nullable": true
          },
          "ToBePrinted": {
            "type": "boolean",
            "description": "Whether this sales order is queued to be printed."
          },
          "TargetDate": {
            "type": "string",
            "description": "Target date - required based on sales order type settings.",
            "format": "date-time",
            "nullable": true
          },
          "PaymentTerm": {
            "description": "Payment term. One of the following settings will be used in case is not specified: Customer level, Type level, Global level default. Required when none of these are set.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "ARGLAccount": {
            "description": "Accounts Receivable associated with the sales order. Required when more than one AR account is available.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "InvoiceFormat": {
            "description": "Invoice Format - required if more than one available.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Format": {
            "description": "Sales Order Format - If not specified, the default format for the sales order type will be selected. ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "CustomerNotes": {
            "description": "Customer Notes.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Note"
              }
            ]
          },
          "InternalNotes": {
            "description": "Internal Notes.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Note"
              }
            ]
          },
          "LineItemsClass": {
            "description": "Class. Is only required if class tracking is turned on and is flagged as required.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "SalesTax": {
            "description": "Tax - The following settings will be used in case is not specified: Shipping to location address, Global level default. Required when none of these are set.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "OrderTotal": {
            "type": "number",
            "description": "Read-only. Order total.",
            "format": "decimal"
          },
          "Status": {
            "description": "The status of the sales order.\nFor new orders, this property is optional. If not provided, it will be set to the \"order creation status\" defined at the order type level.\nThe status of new orders can explicitly set to any of the following: Incomplete (18), Quoted (19), Pending Approval (20), Approved (22)\nThis property is read-only for existing orders.  ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "InvoiceStatus": {
            "description": "Read-only. The invoiced status of the sales order.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "IsChangeOrder": {
            "type": "boolean",
            "description": "Whether or not sales order is a change order"
          },
          "ParentId": {
            "type": "integer",
            "description": "Parent sales order Id",
            "format": "int32"
          },
          "IsRecurring": {
            "type": "boolean",
            "description": "Whether or not sales order is recurring."
          },
          "LineItems": {
            "type": "array",
            "description": "Sales order line items.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/SalesOrderLineItem"
            }
          },
          "CustomFields": {
            "type": "array",
            "description": "Sales Order Custom Fields.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          },
          "NotesLogCount": {
            "type": "integer",
            "description": "Read-only. The number of notes logged to the sales order.",
            "format": "int32"
          },
          "AttachmentCount": {
            "type": "integer",
            "description": "Read-only. The number of attachments uploaded to the sales order.",
            "format": "int32"
          },
          "DateCreated": {
            "type": "string",
            "description": "Read-only. The date and time (in company time zone) when the sales order was created.",
            "format": "date-time"
          },
          "CreatedBy": {
            "description": "The person who created the sales order.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "Read-only. The date and time (in company time zone) when the sales order was last updated.",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedBy": {
            "description": "Read-only - The person who last updated the sales order.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Currency": {
            "description": "Read-only - Currency Information.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency2"
              }
            ]
          }
        }
      },
      "Note": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Note Id",
            "format": "int32"
          },
          "NotesHtml": {
            "type": "string",
            "description": "Note with Html formatting.",
            "nullable": true
          },
          "NotesText": {
            "type": "string",
            "description": "Note in plain text format.",
            "nullable": true
          }
        }
      },
      "SalesOrderLineItem": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Item",
          "Qty",
          "Price"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The sales order line item id",
            "format": "int32"
          },
          "Item": {
            "description": "The item for this Line Item",
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "InventoryLocation": {
            "description": "The item inventory location. Required for Inventory and Manufactured item types when there are more than one locations.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Description": {
            "type": "string",
            "description": "line item description",
            "nullable": true
          },
          "Qty": {
            "type": "number",
            "description": "item quantity",
            "format": "decimal",
            "maximum": 9999999999998.0,
            "minimum": -9999999999998.0
          },
          "UnitOfMeasure": {
            "description": "Unit of Measure (only applicable if Unit of Measure tracking is enabled)\nId: must correspond to the Unit of Measure set configured at the item level\nName: (readonly) Unit of Measure Abbreviation\nExtendedName: (readonly) Unit of Measure full name",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/LongIdNameExtended"
              }
            ]
          },
          "Price": {
            "type": "number",
            "description": "item price",
            "format": "decimal",
            "maximum": 9999999999998.0,
            "minimum": -9999999999998.0
          },
          "ShippingPrice": {
            "type": "number",
            "description": "price to ship item",
            "format": "decimal",
            "maximum": 9999999999999998.0,
            "minimum": -9999999999999998.0
          },
          "Taxable": {
            "type": "boolean",
            "description": "whether or not item is taxable"
          },
          "FulfillmentDate": {
            "type": "string",
            "description": "date item was fulfilled",
            "format": "date-time",
            "nullable": true
          },
          "Class": {
            "description": "required if class tracking is on",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "ItemGroupLineItems": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/SalesOrderItemGroupLineItem"
            }
          },
          "CustomColumns": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomColumn"
            }
          }
        }
      },
      "LongIdNameExtended": {
        "allOf": [
          {
            "$ref": "#/components/schemas/LongIdNamePair"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "ExtendedName": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      },
      "LongIdNamePair": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int64"
          },
          "Name": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "SalesOrderItemGroupLineItem": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Item",
          "Qty"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Sales Order Item Group Line Item Id",
            "format": "int32"
          },
          "Item": {
            "description": "Item",
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Qty": {
            "type": "number",
            "description": "Quantity",
            "format": "decimal",
            "maximum": 9999999999998.0,
            "minimum": -9999999999998.0
          },
          "UnitOfMeasure": {
            "description": "Unit of Measure (only applicable if Unit of Measure tracking is enabled)\nId: must correspond to the Unit of Measure set configured at the item level\nName: (readonly) Unit of Measure Abbreviation\nExtendedName: (readonly) Unit of Measure full name",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/LongIdNameExtended"
              }
            ]
          },
          "Price": {
            "type": "number",
            "description": "Price",
            "format": "decimal",
            "maximum": 9999999999998.0,
            "minimum": -9999999999998.0
          },
          "Class": {
            "description": "Class. Is only required if class tracking is turned on at the line item level and is flagged as required.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "InventoryLocation": {
            "description": "The item inventory location. Required for Inventory and Manufactured item types when there are more than one locations.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          }
        }
      },
      "CustomColumn": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "FieldType": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "SourceId": {
            "type": "integer",
            "format": "int32"
          },
          "Value": {
            "type": "string",
            "nullable": true
          },
          "ValueText": {
            "type": "string",
            "nullable": true
          },
          "IsRequired": {
            "type": "boolean"
          }
        }
      },
      "Currency2": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CurrencyISOCode": {
            "type": "string",
            "nullable": true
          },
          "ExchangeRate": {
            "type": "number",
            "format": "decimal"
          }
        }
      },
      "SearchResultOfSalesOrderSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/SalesOrderSearchResult"
            }
          }
        }
      },
      "SalesOrderSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Number": {
            "type": "string",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Customer": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Status": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "DateCreated": {
            "type": "string",
            "description": "The date and time (in company time zone) when the sales order was created.",
            "format": "date-time"
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "The date and time (in company time zone) when the sales order was last updated.",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "SalesOrderSearchParameters": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSearchParameters"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Number": {
                "type": "string",
                "nullable": true
              },
              "Name": {
                "type": "string",
                "nullable": true
              },
              "CustomerId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "StatusChangedTo": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "StatusChangedDateRange": {
                "description": "The date and time (in company time zone) when the sales order status was changed.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "DateCreatedRange": {
                "description": "The date and time (in company time zone) when the sales order was created.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "LastUpdatedDateRange": {
                "description": "The date and time (in company time zone) when the sales order was last updated.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              }
            }
          }
        ]
      },
      "SalesOrderMarkCompleteParameters": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OrderStatusUpdateParameters"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Invoice": {
                "type": "boolean",
                "description": "If a sales order does not get billed automatically as per settings, then setting this field to true will generate an invoice for the remaining items that have not been invoiced related to this order. \nIf an order is set to automatically invoice, this field is ignored. If all items have been invoiced earlier, then no invoice will be generated. \nDefault is false."
              },
              "SendInvoiceNotification": {
                "type": "boolean",
                "description": "If set to true, this will send out an email notification to the invoice recipients set up for the customer, if an invoice did get generated as a result of marking the order as complete. \nDefault is false."
              },
              "MarkRelatedOpenChangeOrdersComplete": {
                "type": "boolean",
                "description": "This is only applicable for parent orders where open change orders exist. If set to true, this will mark all the change orders which are in In Progress or Approved status as complete.",
                "nullable": true
              }
            }
          }
        ]
      },
      "OrderStatusUpdateParameters": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Notify": {
            "type": "boolean",
            "description": "If set to true, this will send out an email notification to the order contact if it is set up for the order. \nDefault is false."
          }
        }
      },
      "SalesOrderMarkCancelledParameters": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OrderStatusUpdateParameters"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "CancelRelatedOpenChangeOrders": {
                "type": "boolean",
                "description": "This is only applicable for parent orders where open change orders exist. If set to true, this will cancel all the change orders which are in In Progress or Approved status."
              }
            }
          }
        ]
      },
      "NotesLog": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Notes": {
            "type": "string",
            "nullable": true
          },
          "CreatedBy": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          }
        }
      },
      "SearchResultOfAssignment": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/Assignment"
            }
          }
        }
      },
      "Assignment": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of the assignment. The entity can be identified by looking into type. The combination of id, type, and category is unique.",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Name of the assignment.The entity can be identified by looking into type. The combination of id, type, and category is unique.",
            "nullable": true
          },
          "Type": {
            "type": "string",
            "description": "Pattern: customer-vendor|contact|employee|pool|team",
            "nullable": true
          },
          "Category": {
            "description": "Assignment Category",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Primary": {
            "type": "boolean"
          },
          "VisibleOnPortal": {
            "type": "boolean",
            "description": "Indicates whether the assignment is visible on the customer/vendor portal."
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "Active": {
            "type": "boolean"
          },
          "DateCreated": {
            "type": "string",
            "description": "Read-only. The date and time (in company time zone) when the assignment was created.",
            "format": "date-time"
          },
          "CreatedBy": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "Read-only. The date and time (in company time zone) when the assignment was last updated.",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedBy": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          }
        }
      },
      "SearchResultOfSalesOrderTypeSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/SalesOrderTypeSearchResult"
            }
          }
        }
      },
      "SalesOrderTypeSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "IsDefault": {
            "type": "boolean"
          },
          "Active": {
            "type": "boolean"
          }
        }
      },
      "SearchResultOfPurchaseOrderSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/PurchaseOrderSearchResult"
            }
          }
        }
      },
      "PurchaseOrderSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "PONumber": {
            "type": "string",
            "nullable": true
          },
          "POName": {
            "type": "string",
            "nullable": true
          },
          "VendorId": {
            "type": "integer",
            "format": "int32"
          },
          "Vendor": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "POTotal": {
            "type": "number",
            "format": "decimal"
          },
          "DateCreated": {
            "type": "string",
            "description": "The date and time (in company time zone) when the purchase order was created.",
            "format": "date-time"
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "The date and time (in company time zone) when the purchase order was last updated.",
            "format": "date-time",
            "nullable": true
          },
          "Currency": {
            "description": "Currency Information",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency2"
              }
            ]
          }
        }
      },
      "PurchaseOrderSearchParameters": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSearchParameters"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "PONumber": {
                "type": "string",
                "nullable": true
              },
              "POName": {
                "type": "string",
                "nullable": true
              },
              "VendorId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "DateCreatedFrom": {
                "type": "string",
                "description": "The date and time (in company time zone) when the purchase order was created.",
                "format": "date-time",
                "nullable": true
              },
              "DateCreatedTo": {
                "type": "string",
                "description": "The date and time (in company time zone) when the purchase order was created.",
                "format": "date-time",
                "nullable": true
              },
              "StatusChangedTo": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "StatusChangedDateFrom": {
                "type": "string",
                "description": "The date and time (in company time zone) when the purchase order status was changed.",
                "format": "date-time",
                "nullable": true
              },
              "StatusChangedDateTo": {
                "type": "string",
                "description": "The date and time (in company time zone) when the purchase order status was changed.",
                "format": "date-time",
                "nullable": true
              },
              "LastUpdatedDateFrom": {
                "type": "string",
                "description": "The date and time (in company time zone) when the purchase order was last updated.",
                "format": "date-time",
                "nullable": true
              },
              "LastUpdatedDateTo": {
                "type": "string",
                "description": "The date and time (in company time zone) when the purchase order was last updated.",
                "format": "date-time",
                "nullable": true
              }
            }
          }
        ]
      },
      "PurchaseOrder": {
        "type": "object",
        "description": "PurchaseOrder",
        "additionalProperties": false,
        "required": [
          "LineItems"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Read-only. Purchase order unique id - auto generated by the system.",
            "format": "int32"
          },
          "Type": {
            "description": "The purchase order type.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Vendor": {
            "description": "The vendor associated with the purchase orde. If null, there is no specified vendor yet.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/VendorRef2"
              }
            ]
          },
          "PONumber": {
            "type": "string",
            "description": "Purchase order number - auto generated by the system for new orders if not provided. Required on update.",
            "nullable": true
          },
          "Title": {
            "type": "string",
            "description": "Purchase order title.",
            "nullable": true
          },
          "PromiseDate": {
            "type": "string",
            "description": "The date promised. If the PO type allows, this will also contain the time.",
            "format": "date-time",
            "nullable": true
          },
          "RequestedBy": {
            "description": "Purchase order requested by.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Contact": {
            "description": "Vendor Contact associated with the purchase order.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "IsBlanketPO": {
            "type": "boolean",
            "description": "Read-only. Indicates that this is a blanket PO"
          },
          "IsFixedCostPO": {
            "type": "boolean",
            "description": "Read-only. Indicates that this is a fixed cost PO"
          },
          "AllowPartialFulfilment": {
            "type": "boolean",
            "description": "Read-only. Allows the vendor to partially fulfill this PO"
          },
          "PODate": {
            "type": "string",
            "description": "Purchase order date - required. Today's date will be used in case is not specified.",
            "format": "date-time"
          },
          "PaymentTerm": {
            "description": "Payment term.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "APGLAccount": {
            "description": "Accounts Payable associated with the purchase order. Required when more than one AP account is available.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "ShipToLocation": {
            "description": "The company location to where shipments should be made",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "DropShipPO": {
            "type": "boolean",
            "description": "Whether this purchase order is a dropship.",
            "nullable": true
          },
          "DropShipCustomer": {
            "description": "The dropship customer.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerRef"
              }
            ]
          },
          "DropShipLocation": {
            "description": "The dropship location to where shipments should be made.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "ShipVia": {
            "description": "Ship Via",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "VendorNotes": {
            "description": "Vendor notes.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Note"
              }
            ]
          },
          "InternalNotes": {
            "description": "Internal notes.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Note"
              }
            ]
          },
          "LineItemsClass": {
            "description": "Class. Is only required if class tracking is turned on and is flagged as required.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "POTotal": {
            "type": "number",
            "description": "Read-only. The total of the purchase order. This can be null. If that is the \ncase, then the PO is TBD",
            "format": "decimal",
            "nullable": true
          },
          "Status": {
            "description": "Read-only. The internal status of the purchase order.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "VendorStatus": {
            "description": "Read-only. Vendor PO status",
            "deprecated": true,
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "IsRecurring": {
            "type": "boolean",
            "description": "Read-only. Whether or not purchase order is recurring."
          },
          "LineItems": {
            "type": "array",
            "description": "Purchase order line items.",
            "items": {
              "$ref": "#/components/schemas/PurchaseOrderLineItem"
            }
          },
          "CustomFields": {
            "type": "array",
            "description": "Custom fields",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          },
          "ReviewedDate": {
            "type": "string",
            "description": "Read-only. The date the PO was internally approved",
            "format": "date-time",
            "nullable": true
          },
          "AcceptedByContact": {
            "description": "Read-only. The contact of the vendor that accepted the PO",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "ApprovedDate": {
            "type": "string",
            "description": "Read-only. The date the PO was accepted",
            "format": "date-time",
            "nullable": true
          },
          "NotesLogCount": {
            "type": "integer",
            "description": "Read-only. Indicates the number of notes logged",
            "format": "int32"
          },
          "AttachmentCount": {
            "type": "integer",
            "description": "Read-only. Indicates the number of attachments",
            "format": "int32"
          },
          "DateCreated": {
            "type": "string",
            "description": "Read-only. The date and time (in company time zone) when the purchase order was created.",
            "format": "date-time"
          },
          "CreatedBy": {
            "description": "The person who created the purchase order.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "Read-only. The date and time (in company time zone) when the purchase order was last updated.",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedBy": {
            "description": "Read-only. The person who last updated the purchase order.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Currency": {
            "description": "Read-only. Currency Information.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency2"
              }
            ]
          },
          "RequiresInternalReview": {
            "type": "boolean",
            "description": "Read-only. Indicates the Purchase order requires internal review "
          }
        }
      },
      "VendorRef2": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AccountRef"
          },
          {
            "type": "object",
            "additionalProperties": false
          }
        ]
      },
      "PurchaseOrderLineItem": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Item"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The purchase order line item id",
            "format": "int32"
          },
          "Item": {
            "description": "The item for this Line Item",
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "InventoryLocation": {
            "description": "The item inventory location. Required for Inventory item type when there are more than one locations.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Customer": {
            "description": "Customer",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Order": {
            "description": "Order",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Description": {
            "type": "string",
            "description": "line item description",
            "nullable": true
          },
          "Qty": {
            "type": "number",
            "description": "Item quantity",
            "format": "decimal",
            "maximum": 9999999999998.0,
            "minimum": -9999999999998.0,
            "nullable": true
          },
          "UnitOfMeasure": {
            "description": "Unit of Measure (only applicable if Unit of Measure tracking is enabled)\nId: Unit of Measure unique identifier. \nName: (readonly) Unit of Measure Abbreviation\nExtendedName: (readonly) Unit of Measure full name",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/LongIdNameExtended"
              }
            ]
          },
          "UnitCost": {
            "type": "number",
            "description": "The cost per unit",
            "format": "decimal",
            "maximum": 9999999999998.0,
            "minimum": -9999999999998.0,
            "nullable": true
          },
          "Class": {
            "description": "required if class tracking is on",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Status": {
            "description": "Status of the line item",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "BilledQty": {
            "type": "number",
            "description": "Read-only. Indicates how much of the line item has already been billed in terms of quantity",
            "format": "decimal",
            "nullable": true
          },
          "CustomColumns": {
            "type": "array",
            "description": "Custom Columns",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomColumn"
            }
          }
        }
      },
      "PurchaseOrderMarkClosedParameters": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Bill": {
            "type": "boolean",
            "description": "If this is set to true then a bill will be generated for all remaining items that have not been billed in the PO. \nIf all items have been billed earlier, then no bill will be generated. \nDefault is false."
          }
        }
      },
      "Bill": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "TxnDate",
          "Vendor",
          "LineItems"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Read-only. Bill unique id - auto generated by the system.",
            "format": "int32"
          },
          "TxnNumber": {
            "type": "string",
            "description": "Read-only. Bill number - auto generated by the system.",
            "nullable": true
          },
          "TxnDate": {
            "type": "string",
            "description": "Date bill was issued.",
            "format": "date-time",
            "minLength": 1
          },
          "DueDate": {
            "type": "string",
            "description": "Date bill is due. Either Due Date or Payment Term is required.",
            "format": "date-time",
            "nullable": true
          },
          "PaymentTerm": {
            "description": "Payment term which based on the TxnDate will calculate the DueDate. Either Due Date or Payment Term is required.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Vendor": {
            "description": "The vendor for whom the bill is created for.",
            "allOf": [
              {
                "$ref": "#/components/schemas/VendorRef2"
              }
            ]
          },
          "VendorLocation": {
            "description": "The vendor location for whom the bill is created for.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "ShippingMethod": {
            "description": "Shipping method for inventory items.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "TrackingLink": {
            "type": "string",
            "description": "Shipment tracking link.",
            "nullable": true
          },
          "RequestedBy": {
            "description": "The person who requested the bill.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "ReferenceNumber": {
            "type": "string",
            "description": "Bill reference number.",
            "nullable": true
          },
          "Memo": {
            "type": "string",
            "description": "Memo to provide additional information for the bill.",
            "nullable": true
          },
          "BillTotal": {
            "type": "number",
            "description": "Read-only. Total of bill.",
            "format": "decimal"
          },
          "OpenBalance": {
            "type": "number",
            "description": "Read-only. The amount of the bill that has not been paid yet.",
            "format": "decimal"
          },
          "APGLAccount": {
            "description": "Accounts Payable associated with the bill. Required when more than one AP account is available.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LineItemsGLCategory": {
            "description": "GL category. Is only required if category tracking is turned on and is flagged as required.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Status": {
            "description": "Read-only. The status of the bill. ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "IsItemReceipt": {
            "type": "boolean",
            "description": "Indicates whether the transaction is a Bill or Item Receipt (Bill Pending)."
          },
          "Currency": {
            "description": "Read-only. Currency Information.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency2"
              }
            ]
          },
          "LineItems": {
            "type": "array",
            "description": "Bill line items: items and expenses.",
            "items": {
              "$ref": "#/components/schemas/BillLineItem"
            }
          },
          "NotesLogCount": {
            "type": "integer",
            "description": "Read-only. The number of notes logged to the bill.",
            "format": "int32"
          },
          "AttachmentCount": {
            "type": "integer",
            "description": "Read-only. The number of attachments uploaded to the bill.",
            "format": "int32"
          },
          "DateCreated": {
            "type": "string",
            "description": "Read-only. The date and time (in company time zone) when the bill was created.",
            "format": "date-time"
          },
          "CreatedBy": {
            "description": "The person who created the bill.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "Read-only. The date and time (in company time zone) when the bill was last updated.",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedBy": {
            "description": "Read-only. The person who last updated the bill.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Reviewed": {
            "type": "boolean",
            "description": "Read-only. Indicates whether the bill has been reviewed or not."
          },
          "DateReviewed": {
            "type": "string",
            "description": "Read-only. The date and time (in company time zone) when the bill was reviewed.",
            "format": "date-time",
            "nullable": true
          },
          "ReviewedBy": {
            "description": "Read-only. The person who reviewed the bill.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Format": {
            "description": "The format for printing this bill. Default will be used if not passed. Not Required.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "IsHistoricalNonposting": {
            "type": "boolean",
            "description": "Read-only. Indicates whether the bill is a historical non-posting transaction or not."
          }
        }
      },
      "BillLineItem": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Qty",
          "Cost"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The bill line item id",
            "format": "int64"
          },
          "IsExpense": {
            "type": "boolean",
            "description": "Read-only. Indicates whether the line item is of expense type or not."
          },
          "Item": {
            "description": "The item being billed. Required for non expense type of line items.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "GLAccount": {
            "description": "The expense account being billed. Required for expense type of line items.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Qty": {
            "type": "number",
            "description": "The item quantity being billed. For expense line items the value is set to 1.",
            "format": "decimal",
            "maximum": 9999999999998.0,
            "minimum": -9999999999998.0
          },
          "UnitOfMeasure": {
            "description": "Unit of Measure (only applicable if Unit of Measure tracking is enabled)\nId: must correspond to the Unit of Measure set configured at the item level\nName: (readonly) Unit of Measure Abbreviation\nExtendedName: (readonly) Unit of Measure full name",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/LongIdNameExtended"
              }
            ]
          },
          "Cost": {
            "type": "number",
            "description": "The unit cost of the item being billed.",
            "format": "decimal",
            "maximum": 9999999999998.0,
            "minimum": -9999999999998.0
          },
          "Description": {
            "type": "string",
            "description": "The description of the line item.",
            "nullable": true
          },
          "Customer": {
            "description": "The customer being charged for this line item. Is only required if line item is flagged as billable.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Order": {
            "description": "The order related to the customer being charged for this line item.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "PurchaseOrderLineItemId": {
            "type": "integer",
            "description": "Purchase Order LineItem Id. If provided, the system will associate the bill to the purchase order related to the purchase order line item. To get the PO Line item id use the GET v1/purchase-orders/{id} and get the lineitems.",
            "format": "int32"
          },
          "Billable": {
            "type": "boolean",
            "description": "Indicates whether the line item will be charged to a customer or not."
          },
          "Billed": {
            "type": "boolean",
            "description": "Read-only. Indicates whether the line item has been charged to the customer or not."
          },
          "GLCategory": {
            "description": "GL category. Is only required if category tracking is turned on at the line item level and is flagged as required.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "InventoryLocation": {
            "description": "The item inventory location. Required for Inventory item type when there are more than one locations.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "CustomColumns": {
            "type": "array",
            "description": "Custom Columns",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomColumn"
            }
          }
        }
      },
      "SearchResultOfPurchaseOrderTypeSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/PurchaseOrderTypeSearchResult"
            }
          }
        }
      },
      "PurchaseOrderTypeSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "IsDefault": {
            "type": "boolean"
          },
          "Active": {
            "type": "boolean"
          }
        }
      },
      "HubContentGroupResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "IsDefault": {
            "type": "boolean"
          }
        }
      },
      "Project": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Customer": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerRef"
              }
            ]
          },
          "Location": {
            "description": "Customer location associated with the project",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Contact": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Divisions": {
            "type": "array",
            "description": "List of divisions or departments",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/IdNamePair"
            }
          },
          "Type": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Status": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "StatusNote": {
            "type": "string",
            "nullable": true
          },
          "Priority": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "StartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "EndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Budget": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "Objective": {
            "type": "string",
            "nullable": true
          },
          "InternalNotes": {
            "type": "string",
            "nullable": true
          },
          "CustomFields": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          },
          "DateCreated": {
            "type": "string",
            "description": "The date and time (in company time zone) when the project was created.",
            "format": "date-time"
          },
          "CreatedBy": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "The date and time (in company time zone) when the project was last updated.",
            "format": "date-time"
          },
          "LastUpdatedBy": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          }
        }
      },
      "ProjectCustomStatusResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of the custom status\n            ",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Name of the custom status",
            "nullable": true
          },
          "TaskStatus": {
            "description": "48 - Open,\n50 - Done,",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          }
        }
      },
      "SearchResultOfProjectSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ProjectSearchResult"
            }
          }
        }
      },
      "ProjectSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Customer": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerRef"
              }
            ]
          },
          "Type": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Status": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "DateCreated": {
            "type": "string",
            "description": "The date and time (in company time zone) when the project was created.",
            "format": "date-time"
          },
          "CreatedBy": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "The date and time (in company time zone) when the project was last updated.",
            "format": "date-time"
          },
          "LastUpdatedBy": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          }
        }
      },
      "ProjectSearchParameters": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSearchParameters"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string",
                "nullable": true
              },
              "Customer": {
                "description": "If provided, projects will be filtered based on the customer Id or Number or Name. If all of them are provided, Id takes the first precedence, then the number and then the name. All matching projects will be returned. ",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CustomerRef"
                  }
                ]
              },
              "Status": {
                "type": "array",
                "description": "Collection of Status Ids",
                "nullable": true,
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Type": {
                "type": "array",
                "description": "Collection of Type Ids",
                "nullable": true,
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "DateCreatedRange": {
                "description": "The date and time (in company time zone) when the project was created.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "LastUpdatedRange": {
                "description": "The date and time (in company time zone) when the project was last updated.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "SortExpression": {
                "type": "string",
                "description": "Available Sort Expresstions: [Name Default  ASC, Type, DateCreated, LastUpdatedDate]",
                "nullable": true
              }
            }
          }
        ]
      },
      "Appointment": {
        "type": "object",
        "description": "Appointment",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Appointment Id",
            "format": "int32"
          },
          "Subject": {
            "type": "string",
            "description": "Appointment Subject",
            "nullable": true
          },
          "MeetingTime": {
            "description": "The appointment meeting time (in company time zone).",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/DateRange"
              }
            ]
          },
          "Notes": {
            "type": "string",
            "description": "Appointment Notes",
            "nullable": true
          },
          "CustomerVendors": {
            "type": "array",
            "description": "List of Customer/Vendor added to appointment",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/AccountRef"
            }
          },
          "Organizer": {
            "description": "Appointment Organizer Info",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Attendee"
              }
            ]
          },
          "Attendees": {
            "type": "array",
            "description": "Appointment Attendees",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/Attendee"
            }
          },
          "DateCreated": {
            "type": "string",
            "description": "Read-only. The date and time (in company time zone) when the appointment was created.",
            "format": "date-time"
          },
          "CreatedBy": {
            "description": "The person who created the appointment.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "Read-only. The date and time (in company time zone) when the appointment was last updated.",
            "format": "date-time"
          },
          "LastUpdatedBy": {
            "description": "The person who last updated the appointment.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          }
        }
      },
      "Attendee": {
        "type": "object",
        "description": "Attendee",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Attendee Id",
            "format": "int32"
          },
          "Type": {
            "type": "string",
            "description": "Attendee type Id",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "description": "Attendee Name",
            "nullable": true
          },
          "Email": {
            "description": "Attendee Email",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/EmailAddress"
              }
            ]
          },
          "Phone": {
            "description": "Attendee Primary Phone No",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Phone"
              }
            ]
          }
        }
      },
      "EmailAddress": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Email"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Email": {
            "type": "string",
            "minLength": 1,
            "pattern": "^[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?$"
          },
          "IsPrimary": {
            "type": "boolean"
          },
          "Active": {
            "type": "boolean"
          }
        }
      },
      "Phone": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "PhoneType",
          "Number"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "PhoneType": {
            "$ref": "#/components/schemas/IdNamePair"
          },
          "CountryDialCode": {
            "type": "integer",
            "format": "int32"
          },
          "Number": {
            "type": "string",
            "minLength": 1
          },
          "Extension": {
            "type": "string",
            "nullable": true
          },
          "IsPreferred": {
            "type": "boolean"
          },
          "Active": {
            "type": "boolean"
          }
        }
      },
      "SearchResultOfAppointmentSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/AppointmentSearchResult"
            }
          }
        }
      },
      "AppointmentSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Appointment Id",
            "format": "int32"
          },
          "Subject": {
            "type": "string",
            "description": "Subject.",
            "nullable": true
          },
          "Type": {
            "description": "Appointment Type",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Status": {
            "description": "Status Type",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "MeetingTime": {
            "description": "The appointment meeting time (in company time zone)",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/DateRange"
              }
            ]
          },
          "DateCreated": {
            "type": "string",
            "description": "The date and time (in company time zone) when the appointment was created.",
            "format": "date-time"
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "The date and time (in company time zone) when the appointment was update.",
            "format": "date-time"
          }
        }
      },
      "AppointmentSearchParams": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSearchParameters"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Subject": {
                "type": "string",
                "description": " ",
                "nullable": true
              },
              "AppointmentTypeIds": {
                "type": "array",
                "description": "Search by Appointment Type Ids. ",
                "nullable": true,
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "EmployeeIds": {
                "type": "array",
                "description": "Search by Employee Ids. ",
                "nullable": true,
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "MeetingTime": {
                "description": "The appointment meeting time (in company time zone).",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "Status": {
                "type": "integer",
                "description": "Searches by the Appointment Status (45 - Scheduled, Done - 46, Cancelled - 47)",
                "format": "int32",
                "nullable": true
              }
            }
          }
        ]
      },
      "AppointmentType": {
        "type": "object",
        "description": "Appointment Type",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Appointment Type Id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Appointment Type Name",
            "nullable": true
          },
          "DefaultDuration": {
            "type": "integer",
            "description": "Default duration in minutes",
            "format": "int32",
            "nullable": true
          },
          "IncludeInWorkLoadCalculations": {
            "type": "boolean",
            "description": "Include in workload calculations",
            "nullable": true
          },
          "AllowCandidateAttendees": {
            "type": "boolean",
            "description": "Allow adding candidate as attendees"
          },
          "Active": {
            "type": "boolean",
            "description": "true is active false is inactive",
            "nullable": true
          }
        }
      },
      "EmployeeSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Read-only. Employee unique id - auto generated by the system.",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Complete Name of the Employee.",
            "nullable": true
          },
          "Email": {
            "type": "string",
            "description": "Primary Email address of the Employee.",
            "nullable": true
          },
          "IsSystemUser": {
            "type": "boolean",
            "description": "Identifies if the Employee is a Striven System User."
          },
          "DateCreated": {
            "type": "string",
            "description": "Read-only. The date and time (in company time zone) when the employee was created.",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "Read-only. The date and time (in company time zone) when the employee was last updated.",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "Employee": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Employee Id",
            "format": "int32"
          },
          "EmployeeNumber": {
            "type": "string",
            "description": "Employee Number",
            "nullable": true
          },
          "Prefix": {
            "type": "string",
            "description": "Employee Prefix Name",
            "nullable": true
          },
          "Firstname": {
            "type": "string",
            "description": "Employee First Name",
            "nullable": true
          },
          "MiddleName": {
            "type": "string",
            "description": "Employee Middle Name",
            "nullable": true
          },
          "Lastname": {
            "type": "string",
            "description": "Employee Last Name\n            ",
            "nullable": true
          },
          "Suffix": {
            "type": "string",
            "description": "Employee Suffix Name",
            "nullable": true
          },
          "Birthdate": {
            "type": "string",
            "description": "Employee Birth Date",
            "format": "date-time",
            "nullable": true
          },
          "StartDate": {
            "type": "string",
            "description": "The date and time (in company time zone) when the employee was joined.",
            "format": "date-time"
          },
          "SystemUser": {
            "type": "boolean",
            "description": "Is the employee a system user?"
          },
          "Status": {
            "type": "boolean",
            "description": "true is active, false is inactive\n            "
          },
          "Phones": {
            "type": "array",
            "description": "Employee Phone numbers. Preferred phone number is the primary phone.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/Phone"
            }
          },
          "Emails": {
            "type": "array",
            "description": "Employee Email List, primary email is marked.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/EmailAddress"
            }
          },
          "Address": {
            "description": "Employee Address",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ]
          },
          "CustomFields": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          },
          "MeetingLink": {
            "type": "string",
            "description": "Meeting Link",
            "nullable": true
          },
          "MeetingJoiningInfo": {
            "type": "string",
            "description": "Meeting Joining Information",
            "nullable": true
          },
          "ScheduleAppointmentLink": {
            "type": "string",
            "description": "Schedule Appointment Link",
            "nullable": true
          },
          "ScheduleAppointmentLinkText": {
            "type": "string",
            "description": "Schedule Appointment Link Text",
            "nullable": true
          },
          "Manager": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Location": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "JobTitle": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Division": {
            "description": "Division or Department",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "JobType": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "NonExemptEmployee": {
            "type": "boolean",
            "description": "Non-Exempt Employee"
          },
          "DateCreated": {
            "type": "string",
            "description": "The date and time (in company time zone) when the employee was created",
            "format": "date-time"
          },
          "CreatedBy": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "The date and time (in company time zone) when the employee was last updated",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedBy": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "DefaultClass": {
            "description": "Employee Default Class",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "DefaultInventoryLocation": {
            "description": "Employee Default Inventory Location",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          }
        }
      },
      "Address": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Address1"
        ],
        "properties": {
          "Address1": {
            "type": "string",
            "minLength": 1
          },
          "Address2": {
            "type": "string",
            "nullable": true
          },
          "Address3": {
            "type": "string",
            "nullable": true
          },
          "City": {
            "type": "string",
            "nullable": true
          },
          "State": {
            "type": "string",
            "nullable": true
          },
          "PostalCode": {
            "type": "string",
            "nullable": true
          },
          "Country": {
            "type": "string",
            "description": "Country - use 2-character country code (ISO Alpha-2)",
            "nullable": true
          },
          "Latitude": {
            "type": "number",
            "format": "decimal"
          },
          "Longitude": {
            "type": "number",
            "format": "decimal"
          },
          "FullAddress": {
            "type": "string",
            "description": "Read-only",
            "nullable": true
          }
        }
      },
      "ContactDetails": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Contact"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "CustomerAssociations": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/CustomerContactAssociation"
                }
              },
              "VendorAssociations": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/VendorContactAssociation"
                }
              }
            }
          }
        ]
      },
      "CustomerContactAssociation": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Customer"
        ],
        "properties": {
          "Customer": {
            "description": "ID for the associated customer",
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "ContactTitle": {
            "type": "string",
            "description": "Title assigned to contact for the associated customer",
            "nullable": true
          },
          "IsPrimary": {
            "type": "boolean",
            "description": "Indicate if the contact is primary. If set to true, other primary contact (if any) will be revoked."
          },
          "Active": {
            "type": "boolean",
            "description": "Indicate if the association is active. Setting false will deactivate the association"
          }
        }
      },
      "VendorContactAssociation": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Vendor"
        ],
        "properties": {
          "Vendor": {
            "description": "ID for the associated vendor",
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "ContactTitle": {
            "type": "string",
            "description": "Title assigned to contact for the associated vendor",
            "nullable": true
          },
          "IsPrimary": {
            "type": "boolean",
            "description": "Indicate if the contact is primary. If set to true, other primary contact (if any) will be revoked."
          },
          "Active": {
            "type": "boolean",
            "description": "Indicate if the association is active. Setting false will deactivate the association"
          }
        }
      },
      "Contact": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "FirstName"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "FirstName": {
            "type": "string",
            "minLength": 1
          },
          "LastName": {
            "type": "string",
            "nullable": true
          },
          "Phones": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/Phone"
            }
          },
          "Emails": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/EmailAddress"
            }
          },
          "Address": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ]
          },
          "CustomFields": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          }
        }
      },
      "SearchResultOfContactSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ContactSearchResult"
            }
          }
        }
      },
      "ContactSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "FirstName": {
            "type": "string",
            "nullable": true
          },
          "LastName": {
            "type": "string",
            "nullable": true
          },
          "DateCreated": {
            "type": "string",
            "description": "The date and time (in company time zone) when the contact was created.",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "he date and time (in company time zone) when the contact was last updated.",
            "format": "date-time",
            "nullable": true
          },
          "Active": {
            "type": "boolean"
          }
        }
      },
      "ContactSearchParameters": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSearchParameters"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string",
                "nullable": true
              },
              "Email": {
                "type": "string",
                "nullable": true
              },
              "Phone": {
                "type": "string",
                "nullable": true
              },
              "AccountName": {
                "type": "string",
                "description": "Name of a customer or vendor to which the contacts should be associated to. This will do a like search on customer and vendor name.",
                "nullable": true
              },
              "Active": {
                "type": "boolean",
                "description": "Value can be True, False or Null. Passing Null will return both active and inactive contacts. Default Value is Null.",
                "nullable": true
              },
              "DateCreatedRange": {
                "description": "The date and time (in company time zone) when the contact was created.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "LastUpdatedDateRange": {
                "description": "The date and time (in company time zone) when the contact was last updated.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              }
            }
          }
        ]
      },
      "SearchResultOfVendorLocations": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/VendorLocations"
            }
          }
        }
      },
      "VendorLocations": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Vendor": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/VendorRef2"
              }
            ]
          },
          "IsPrimary": {
            "type": "boolean"
          },
          "Address": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ]
          }
        }
      },
      "VendorLocationSearchParameters": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSearchParameters"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string",
                "nullable": true
              },
              "Active": {
                "type": "boolean",
                "description": "If not provided, gets all the active/inactive locations",
                "nullable": true
              },
              "Vendor": {
                "description": "If provided, vendor locations will be filtered based on the vendor Id or Number or Name. If all of them are provided, Id takes the first precedence, then the number and then the name. All matching vendor locations will be returned. ",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/VendorRef2"
                  }
                ]
              },
              "DateCreatedRange": {
                "description": "The date and time (in company time zone) when the location was created.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "LastUpdatedDateRange": {
                "description": "The date and time (in company time zone) when the location was last updated.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "Phone": {
                "type": "string",
                "description": "vendor locations will be filtered by matching all the phone numbers added to the locations.",
                "nullable": true
              },
              "SortExpression": {
                "type": "string",
                "description": "Available Sort Expresstions: [LocationName Default  ASC, DateCreated, LastUpdateDate]",
                "nullable": true
              }
            }
          }
        ]
      },
      "SearchResultOfCustomerLocations": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomerLocations"
            }
          }
        }
      },
      "CustomerLocations": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Customer": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerRef"
              }
            ]
          },
          "IsPrimary": {
            "type": "boolean"
          },
          "Address": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ]
          }
        }
      },
      "CustomerLocationSearchParameters": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSearchParameters"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string",
                "nullable": true
              },
              "Active": {
                "type": "boolean",
                "description": "If not provided, gets all the active/inactive locations",
                "nullable": true
              },
              "Customer": {
                "description": "If provided, customer locations will be filtered based on the customer Id or Number or Name. If all of them are provided, Id takes the first precedence, then the number and then the name. All matching customer locations will be returned. ",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CustomerRef"
                  }
                ]
              },
              "DateCreatedRange": {
                "description": "The date and time (in company time zone) when the location was created.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "LastUpdatedDateRange": {
                "description": "The date and time (in company time zone) when the location was last updated.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "Phone": {
                "type": "string",
                "description": "customer locations will be filtered by matching all the phone numbers added to the locations.",
                "nullable": true
              },
              "SortExpression": {
                "type": "string",
                "description": "Available Sort Expresstions: [LocationName Default  ASC, DateCreated, LastUpdateDate]",
                "nullable": true
              }
            }
          }
        ]
      },
      "Customer": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Name",
          "Status"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "minLength": 1
          },
          "Number": {
            "type": "string",
            "nullable": true
          },
          "IsVendor": {
            "type": "boolean"
          },
          "IsConsumerAccount": {
            "type": "boolean"
          },
          "PrimaryContact": {
            "description": "Read-only",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Status": {
            "$ref": "#/components/schemas/IdNamePair"
          },
          "Categories": {
            "type": "array",
            "description": "This is required based on CRM Settings setup in the application",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/IdNamePair"
            }
          },
          "ReferralSource": {
            "description": "This is required based on CRM Settings setup in the application",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Industry": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "CustomerSince": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "OnCreditHold": {
            "type": "boolean",
            "description": "This property will be deprecated in the future",
            "deprecated": true
          },
          "CreditLimit": {
            "type": "number",
            "format": "decimal"
          },
          "WebSite": {
            "type": "string",
            "pattern": "^([a-zA-Z]{3,})\\:\\/\\/([a-zA-Z0-9\\.\\-]+(\\:[a-zA-Z0-9\\.&amp;%\\$\\-]+)*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|localhost|([a-zA-Z0-9\\-]+\\.)*[a-zA-Z0-9\\-]+\\.([a-zA-Z]{2,}))(\\:[0-9]+)*([\\/]{0,1}($|[a-zA-Z0-9\\@\\[\\]\\.\\,\\?\\'\\\\\\+&amp;%\\$#\\=~_\\-{}\\:!]+))*$",
            "nullable": true
          },
          "IsTaxExempt": {
            "type": "boolean"
          },
          "IsFinanceChargeExempt": {
            "type": "boolean"
          },
          "PaymentTerm": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "BillToLocation": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "ShipToLocation": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Phones": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/Phone"
            }
          },
          "PrimaryAddress": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ]
          },
          "PriceList": {
            "description": "Price List",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "CustomFields": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          },
          "DateCreated": {
            "type": "string",
            "description": "Read-only - The date and time (in company time zone) when the customer was created.",
            "format": "date-time"
          },
          "CreatedBy": {
            "description": "Read-only - Created by",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "Read-only - The date and time (in company time zone) when the customer was last updated.",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedBy": {
            "description": "Read-only - Last Updated By",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Currency": {
            "description": "Read-only - Currency Information.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency2"
              }
            ]
          }
        }
      },
      "SearchResultOfCustomerSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomerSearchResult"
            }
          }
        }
      },
      "CustomerSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Number": {
            "type": "string",
            "nullable": true
          },
          "Status": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "CustomerSince": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "FullAddress": {
            "type": "string",
            "nullable": true
          },
          "CountryDialCode": {
            "type": "integer",
            "format": "int32"
          },
          "PhoneNumber": {
            "type": "string",
            "nullable": true
          },
          "PhoneExtension": {
            "type": "string",
            "nullable": true
          },
          "PhoneNumberTypeId": {
            "type": "integer",
            "format": "byte"
          },
          "PaymentTerms": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "DateCreated": {
            "type": "string",
            "description": "The date and time (in company time zone) when the customer was created.",
            "format": "date-time"
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "The date and time (in company time zone) when the customer was last updated.",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "CustomerSearchParameters": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSearchParameters"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string",
                "nullable": true
              },
              "Number": {
                "type": "string",
                "nullable": true
              },
              "ContactName": {
                "type": "string",
                "nullable": true
              },
              "Phone": {
                "type": "string",
                "nullable": true
              },
              "Address": {
                "type": "string",
                "description": "Specifies the address",
                "nullable": true
              },
              "Status": {
                "type": "array",
                "description": "Searches by the customer status (can be one or more of the following, 1 - Prospect, 2 - Active, 3 - Deleted, 4 - Lost)",
                "nullable": true,
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "DateCreatedRange": {
                "description": "The date and time (in company time zone) when the customer was created.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "LastUpdatedDateRange": {
                "description": "The date and time (in company time zone) when the customer was last updated.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              }
            }
          }
        ]
      },
      "CustomerCreate": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "FirstName": {
            "type": "string",
            "description": "First Name is required if a Consumer Account or Email is provided",
            "nullable": true
          },
          "LastName": {
            "type": "string",
            "nullable": true
          },
          "Email": {
            "type": "string",
            "pattern": "^[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?$",
            "nullable": true
          },
          "CustomerName": {
            "type": "string",
            "description": "Customer Name is required if not a Consumer Account",
            "nullable": true
          },
          "CustomerNumber": {
            "type": "string",
            "nullable": true
          },
          "IsConsumerAccount": {
            "type": "boolean",
            "description": "This will be set to true if First Name is provided and Customer Name is not provided",
            "nullable": true
          },
          "IsVendor": {
            "type": "boolean",
            "description": "This flag will set Customer as also a Vendor"
          },
          "Status": {
            "description": "If not provided, this will be set based on CRM Settings setup in the application",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Categories": {
            "type": "array",
            "description": "This is required based on CRM Settings setup in the application. Category will be matched based on id first, if id is not present it will be matched based on name.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/IdNamePair"
            }
          },
          "ReferralSource": {
            "description": "This is required based on CRM Settings setup in the application. Referral Source will be matched based on id first, if id is not present it will be matched based on name.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Industry": {
            "description": "Industry will be matched based on id first, if id is not present it will be matched based on name. If a match is not found, it will be ignored.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "CustomerSince": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "CreditLimit": {
            "type": "number",
            "format": "decimal"
          },
          "WebSite": {
            "type": "string",
            "description": "If valid Website is not provided, this will be ignored. (Ex. https://www.example.com)",
            "nullable": true
          },
          "PrimaryLocation": {
            "description": "If provided, this address will be set as primary.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Location"
              }
            ]
          },
          "BillToLocation": {
            "description": "If Primary Location is not provided and Bill To Location is provided, this address will be set as primary.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Location"
              }
            ]
          },
          "ShipToLocation": {
            "description": "If both Primary Location and Bill To Location is not provided and Ship To Location is provided, then this address will be set as primary.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Location"
              }
            ]
          },
          "ShipToSameAsBillTo": {
            "type": "boolean",
            "description": "If passed as true, bill to location is required. Bill to location will be set as ship to location and any parameter passed for ship to location will be ignored."
          },
          "CountryDialCode": {
            "type": "integer",
            "format": "int32"
          },
          "Phone": {
            "type": "string",
            "nullable": true
          },
          "IsTaxExempt": {
            "type": "boolean"
          },
          "IsFinanceChargeExempt": {
            "type": "boolean"
          },
          "PaymentTerm": {
            "description": "Payment Term will be matched based on id first, if id is not present it will be matched based on name. If a match is not found, it will be ignored.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "PriceList": {
            "description": "Price List will be matched based on id first, if id is not present it will be matched based on name. If a match is not found, it will be ignored.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "CustomFields": {
            "type": "array",
            "description": "Custom Fields",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          }
        }
      },
      "Location": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Address"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "LocationName"
            ],
            "properties": {
              "LocationName": {
                "type": "string",
                "minLength": 1
              }
            }
          }
        ]
      },
      "CustomerLocation": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Name",
          "Address"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "unique Id for the CustomerLocation. Set to 0 to create a new location.",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "the name of the CustomerLocation",
            "minLength": 1
          },
          "IsPrimary": {
            "type": "boolean",
            "description": "whether this location is primary. Only one location can be primary, so setting this flag will remove it from the existing primary location in the system."
          },
          "Address": {
            "description": "the address for the customer location.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ]
          }
        }
      },
      "SearchResultOfCustomerContact": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomerContact"
            }
          }
        }
      },
      "CustomerContact": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AccountContact"
          },
          {
            "type": "object",
            "additionalProperties": false
          }
        ]
      },
      "AccountContact": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "FirstName": {
            "type": "string",
            "nullable": true
          },
          "LastName": {
            "type": "string",
            "nullable": true
          },
          "Title": {
            "type": "string",
            "description": "Title assigned to contact for this association",
            "nullable": true
          },
          "CountryDialCode": {
            "type": "integer",
            "description": "Country Dial Code",
            "format": "int32"
          },
          "Phone": {
            "type": "string",
            "description": "Preferred phone setup for the contact",
            "nullable": true
          },
          "Email": {
            "type": "string",
            "description": "Primary Email setup for the contact",
            "nullable": true
          },
          "IsPrimary": {
            "type": "boolean",
            "description": "Indicates if the contact is primary for the account"
          },
          "Active": {
            "type": "boolean",
            "description": "Indicates if the association is active"
          }
        }
      },
      "SearchResultOfCustomerPriceList": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomerPriceList"
            }
          }
        }
      },
      "CustomerPriceList": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Type": {
            "type": "string",
            "description": "Available Types: Item and Category",
            "nullable": true
          },
          "Id": {
            "type": "integer",
            "description": "Item Id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Item Name",
            "nullable": true
          },
          "ItemType": {
            "description": "Item Type is available only if the Type is Item",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Price": {
            "type": "number",
            "description": "Item Price",
            "format": "decimal"
          },
          "Percentage": {
            "type": "number",
            "description": "Percentage",
            "format": "decimal",
            "nullable": true
          },
          "PercentageOver": {
            "type": "string",
            "description": "Percentage of Item Price or Cost",
            "nullable": true
          }
        }
      },
      "CustomerPriceListItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Item Id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Item Name",
            "nullable": true
          },
          "ItemType": {
            "description": "Item Type",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Price": {
            "type": "number",
            "description": "Item Price",
            "format": "decimal"
          },
          "Percentage": {
            "type": "number",
            "description": "Percentage",
            "format": "decimal",
            "nullable": true
          },
          "PercentageOver": {
            "type": "string",
            "description": "Percentage of Item Price or Cost",
            "nullable": true
          }
        }
      },
      "SearchResultOfCustomerPaymentProfiles": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomerPaymentProfiles"
            }
          }
        }
      },
      "CustomerPaymentProfiles": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Profile Id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Profile Name",
            "nullable": true
          },
          "AccountType": {
            "description": "Profile Type",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "PaymentProcessingMethod": {
            "description": "Payment Processing Method (Credit Card, ACH, E-Check)",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          }
        }
      },
      "SearchResultOfIndustrySearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/IndustrySearchResult"
            }
          }
        }
      },
      "IndustrySearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Active": {
            "type": "boolean"
          }
        }
      },
      "Opportunity": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Title",
          "Type",
          "Customer"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Set Id to 0 to create a new Opportunity.",
            "format": "int32"
          },
          "Title": {
            "type": "string",
            "maxLength": 500,
            "minLength": 1
          },
          "Type": {
            "$ref": "#/components/schemas/IdNamePair"
          },
          "Stage": {
            "description": "The Stage passed must belong to the Opportunity Type. \nIf no Stage is passed, the default Stage for the Type will be used.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Priority": {
            "description": "The Priority passed must be set up for the Tenant.\nIf not passed, the default Priority for the Tenant will be used",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Customer": {
            "$ref": "#/components/schemas/IdNamePair"
          },
          "CustomerContact": {
            "description": "Contact must be from Account Contacts for Customer.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Assignments": {
            "type": "array",
            "description": "List of Assignments by Object/Key ID -\nFor Employee: ObjectID = 4,\nFor Pool: ObjectID = 30",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/Assignment2"
            }
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "Categories": {
            "type": "array",
            "description": "List of Categories that apply to the Opportunity.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/IdNamePair"
            }
          },
          "EstimatedValue": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "ProbabilityPercentage": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "FollowupDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ExpectedCloseDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Location": {
            "description": "Location must be from Account Locations for Customer.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "VisibleToContacts": {
            "type": "boolean"
          },
          "ExcludeFromMultiTouchEmails": {
            "type": "boolean",
            "description": "Flag that indicates if opportunity should be excluded from workflows"
          },
          "SendNotification": {
            "type": "boolean",
            "description": "If set to True, will create a notification for Assigned users that the Opportunity has been created."
          },
          "CustomFields": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          }
        }
      },
      "Assignment2": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ObjectID": {
            "type": "integer",
            "format": "int32"
          },
          "KeyID": {
            "type": "integer",
            "format": "int32"
          },
          "AssignedToName": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "SearchResultOfOpportunitySearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/OpportunitySearchResult"
            }
          }
        }
      },
      "OpportunitySearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Title": {
            "type": "string",
            "nullable": true
          },
          "Stage": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "OpportunityType": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Customer": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "DateCreated": {
            "type": "string",
            "description": "The date and time (in company time zone) when the opportunity was created.",
            "format": "date-time"
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "The date and time (in company time zone) when the opportunity was last updated.",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "OpportunitySearchParameters": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSearchParameters"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Title": {
                "type": "string",
                "nullable": true
              },
              "StageId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "OpportunityTypeId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "LastUpdatedDateRange": {
                "description": "The date and time (in company time zone) when the opportunity was last updated.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              }
            }
          }
        ]
      },
      "OpportunityType": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "ID of the Opportunity Type",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Name of the Opportunity Type",
            "nullable": true
          },
          "Stages": {
            "type": "array",
            "description": "Stages available within the Opportunity Type",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/OpportunityStage"
            }
          }
        }
      },
      "OpportunityStage": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Stage ID",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Stage Name",
            "nullable": true
          },
          "IsDefault": {
            "type": "boolean",
            "description": "Set true for a single default Stage in each Type"
          },
          "VisibleOnBoard": {
            "type": "boolean",
            "description": "If true, the Stage is displayed on the Opportunity Board view"
          }
        }
      },
      "OpportunityPriority": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Stage ID",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Stage Name",
            "nullable": true
          },
          "IsDefault": {
            "type": "boolean",
            "description": "Set true for a single default Priority"
          }
        }
      },
      "SearchResultOfReferralSourceSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ReferralSourceSearchResult"
            }
          }
        }
      },
      "ReferralSourceSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Active": {
            "type": "boolean"
          }
        }
      },
      "Vendor": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Name",
          "Status"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "minLength": 1
          },
          "Number": {
            "type": "string",
            "nullable": true
          },
          "IsCustomer": {
            "type": "boolean"
          },
          "IsConsumerAccount": {
            "type": "boolean"
          },
          "IsSubContractor": {
            "type": "boolean"
          },
          "EligibleFor1099": {
            "type": "boolean"
          },
          "EIN": {
            "type": "string",
            "nullable": true
          },
          "Status": {
            "$ref": "#/components/schemas/IdNamePair"
          },
          "Categories": {
            "type": "array",
            "description": "This is required based on CRM Settings setup in the application",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/IdNamePair"
            }
          },
          "ReferralSource": {
            "description": "This is required based on CRM Settings setup in the application",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Industry": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "WebSite": {
            "type": "string",
            "pattern": "^([a-zA-Z]{3,})\\:\\/\\/([a-zA-Z0-9\\.\\-]+(\\:[a-zA-Z0-9\\.&amp;%\\$\\-]+)*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|localhost|([a-zA-Z0-9\\-]+\\.)*[a-zA-Z0-9\\-]+\\.([a-zA-Z]{2,}))(\\:[0-9]+)*([\\/]{0,1}($|[a-zA-Z0-9\\@\\[\\]\\.\\,\\?\\'\\\\\\+&amp;%\\$#\\=~_\\-{}\\:!]+))*$",
            "nullable": true
          },
          "PaymentTerm": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "BillToLocation": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "ShipToLocation": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Phones": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/Phone"
            }
          },
          "PrimaryAddress": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ]
          },
          "CostList": {
            "description": "Cost List",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "CustomFields": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          },
          "DateCreated": {
            "type": "string",
            "description": "Read-only - The date and time (in company time zone) when the vendor was created.",
            "format": "date-time"
          },
          "CreatedBy": {
            "description": "Read-only - Created By",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "Read-only - The date and time (in company time zone) when the vendor was last updated.",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedBy": {
            "description": "Read-only - Last Updated By",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          }
        }
      },
      "SearchResultOfVendorSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/VendorSearchResult"
            }
          }
        }
      },
      "VendorSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Number": {
            "type": "string",
            "nullable": true
          },
          "Status": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "FullAddress": {
            "type": "string",
            "nullable": true
          },
          "PhoneNumber": {
            "type": "string",
            "nullable": true
          },
          "PhoneExtension": {
            "type": "string",
            "nullable": true
          },
          "PhoneNumberTypeId": {
            "type": "integer",
            "format": "byte"
          },
          "PaymentTerms": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "DateCreated": {
            "type": "string",
            "description": "The date and time (in company time zone) when the vendor was created.",
            "format": "date-time"
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "The date and time (in company time zone) when the vendor was last updated.",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "VendorSearchParameters": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSearchParameters"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string",
                "nullable": true
              },
              "Number": {
                "type": "string",
                "nullable": true
              },
              "ContactName": {
                "type": "string",
                "nullable": true
              },
              "Phone": {
                "type": "string",
                "nullable": true
              },
              "Address": {
                "type": "string",
                "description": "Specifies the address",
                "nullable": true
              },
              "Status": {
                "type": "array",
                "description": "Searches by the vendor status (can be one or more of the following, 1 - Prospect, 2 - Active, 3 - Deleted, 4 - Lost)",
                "nullable": true,
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "DateCreatedRange": {
                "description": "The date and time (in company time zone) when the vendor was created.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "LastUpdatedDateRange": {
                "description": "The date and time (in company time zone) when the vendor was last updated.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              }
            }
          }
        ]
      },
      "SearchResultOfVendorContact": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/VendorContact"
            }
          }
        }
      },
      "VendorContact": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AccountContact"
          },
          {
            "type": "object",
            "additionalProperties": false
          }
        ]
      },
      "SearchResultOfVendorCostList": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/VendorCostList"
            }
          }
        }
      },
      "VendorCostList": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Item Id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Item Name",
            "nullable": true
          },
          "ItemType": {
            "description": "Item Type",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Cost": {
            "type": "number",
            "description": "Item Cost",
            "format": "decimal"
          }
        }
      },
      "SearchResultOfVendorLocation": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/VendorLocation"
            }
          }
        }
      },
      "VendorLocation": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "IsPrimary": {
            "type": "boolean"
          },
          "Address": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ]
          }
        }
      },
      "SearchResultOfCategory": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/Category"
            }
          }
        }
      },
      "Category": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Parent": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Active": {
            "type": "boolean"
          }
        }
      },
      "CompanyProfile": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CompanyName": {
            "type": "string",
            "description": "Company Name \n            ",
            "nullable": true
          },
          "Email": {
            "type": "string",
            "description": "Email\n            ",
            "nullable": true
          },
          "Website": {
            "type": "string",
            "description": "Website \n            ",
            "nullable": true
          },
          "Subdomain": {
            "type": "string",
            "description": "Subdomain label\n            ",
            "nullable": true
          },
          "UTCOffset": {
            "type": "string",
            "description": "UTC Offset for Company Default TimeZone\n            ",
            "nullable": true
          },
          "TimeZone": {
            "type": "string",
            "description": "Company Default TimeZone ",
            "nullable": true
          },
          "DateFormat": {
            "type": "string",
            "description": "Company Default Date Format\n            ",
            "nullable": true
          }
        }
      },
      "SearchResultOfListItemType": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ListItemType"
            }
          }
        }
      },
      "ListItemType": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "integer",
            "description": "List Item Type ID. Used to fetch list of options.",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "Descriptive name of list item type.",
            "nullable": true
          },
          "active": {
            "type": "boolean"
          }
        }
      },
      "SearchResultOfListItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ListItem"
            }
          }
        }
      },
      "ListItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "integer",
            "description": "List item ID",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "Text value of list item",
            "nullable": true
          },
          "sortOrder": {
            "type": "integer",
            "description": "Default display order of list items.",
            "format": "int32"
          },
          "active": {
            "type": "boolean"
          }
        }
      },
      "Formats": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Active": {
            "type": "boolean"
          }
        }
      },
      "SearchResultOfCompanyLocationSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CompanyLocationSearchResult"
            }
          }
        }
      },
      "CompanyLocationSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Location Id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Location Name",
            "nullable": true
          },
          "IsPrimary": {
            "type": "boolean",
            "description": "Is Primary Location?"
          },
          "Address": {
            "description": "Location Address",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ]
          }
        }
      },
      "CustomerAsset": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "AssetName",
          "AssetType",
          "Customer"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Customer Asset Id - set to 0 to create a new asset",
            "format": "int32"
          },
          "AssetName": {
            "type": "string",
            "description": "asset name (required)",
            "maxLength": 300,
            "minLength": 1
          },
          "AssetType": {
            "description": "asset type - determines whether the fields ExpirationDate, DatePurchased, and PresentValue will be accepted / ignored / required",
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Customer": {
            "description": "customer - Name is read-only",
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "CustomerLocation": {
            "description": "customer location - Name is read-only",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Status": {
            "description": "status - if a new asset is being created and its associated type has a DefaultStatus, then this field will be automatically set with the default status unless otherwise specified.\nIf the associated type does not have a DefaultStatus, then it is required.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "StatusNote": {
            "type": "string",
            "nullable": true
          },
          "PurchasePrice": {
            "type": "number",
            "description": "purchase price",
            "format": "decimal",
            "nullable": true
          },
          "VisibleOnPortal": {
            "type": "boolean",
            "description": "whether the CustomerAsset is visible to the customer on the partner portal"
          },
          "PresentValue": {
            "type": "number",
            "description": "present value - may be required (based on asset type).\nIf the asset type does not have this field, it will be ignored.",
            "format": "decimal",
            "nullable": true
          },
          "DatePurchased": {
            "type": "string",
            "description": "purchase date - may be required (based on asset type). \nIf the asset type does not have this field, it will be ignored.",
            "format": "date-time",
            "nullable": true
          },
          "ExpirationDate": {
            "type": "string",
            "description": "expiration date - may be required (based on asset type). \nIf the asset type does not have this field, it will be ignored.",
            "format": "date-time",
            "nullable": true
          },
          "DateCreated": {
            "type": "string",
            "description": "Read-only - the date and time (in company time zone) when the asset was created",
            "format": "date-time"
          },
          "CreatedBy": {
            "description": "Read-only - the person who created the asset",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "Read-only - the date and time (in company time zone) when the asset was last updated",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedBy": {
            "description": "Read-only - the person who last updated the asset",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Currency": {
            "description": "Read-only. Currency Information.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency2"
              }
            ]
          },
          "CustomFields": {
            "type": "array",
            "description": "custom fields",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          },
          "MaintenanceSchedule": {
            "type": "array",
            "description": "Read-only. Maintenance Schedule",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomerAssetMaintenance"
            }
          }
        }
      },
      "CustomerAssetMaintenance": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "AssetId": {
            "type": "integer",
            "format": "int32"
          },
          "StartDate": {
            "type": "string",
            "description": "The date and time (in company time zone) when the maintenance was started.",
            "format": "date-time",
            "nullable": true
          },
          "EndDate": {
            "type": "string",
            "description": "The date and time (in company time zone) when the maintenance was ended.",
            "format": "date-time",
            "nullable": true
          },
          "Notes": {
            "type": "string",
            "nullable": true
          },
          "Active": {
            "type": "boolean"
          }
        }
      },
      "SearchResultOfCustomerAssetSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomerAssetSearchResult"
            }
          }
        }
      },
      "CustomerAssetSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "AssetName": {
            "type": "string",
            "nullable": true
          },
          "AssetTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "Customer": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Status": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "DateCreated": {
            "type": "string",
            "description": "The date and time (in company time zone) when the customer asset was created.",
            "format": "date-time"
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "The date and time (in company time zone) when the customer asset was last updated.",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "CustomerAssetSearchParameters": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSearchParameters"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "AssetName": {
                "type": "string",
                "nullable": true
              },
              "StatusId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "AssetTypeId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "LastUpdatedDateRange": {
                "description": "The date and time (in company time zone) when the contact was last updated.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "DateCreatedRange": {
                "description": "The date and time (in company time zone) when the contact was created.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              }
            }
          }
        ]
      },
      "SearchResultOfCustomerAssetTypeSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomerAssetTypeSearchResult"
            }
          }
        }
      },
      "CustomerAssetTypeSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "asset type id",
            "format": "int32"
          },
          "AssetType": {
            "type": "string",
            "description": "asset type name",
            "nullable": true
          },
          "HasExpirationDate": {
            "type": "boolean",
            "description": "whether assets of this type can have an ExpirationDate"
          },
          "RequiresExpirationDate": {
            "type": "boolean",
            "description": "whether assets of this type require an ExpirationDate"
          },
          "HasDatePurchased": {
            "type": "boolean",
            "description": "whether assets of this type can have an DatePurchased"
          },
          "RequiresDatePurchased": {
            "type": "boolean",
            "description": "whether assets of this type require a DatePurchased"
          },
          "HasPresentValue": {
            "type": "boolean",
            "description": "whether assets of this type can have a PresentValue"
          },
          "RequiresPresentValue": {
            "type": "boolean",
            "description": "whether assets of this type require a PresentValue"
          },
          "DefaultStatus": {
            "description": "the default status that will be assigned to newly created assets of this type, unless otherwise specified",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          }
        }
      },
      "CustomerAssetStatusParameters": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Status": {
            "description": "New status to set for the asset.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "StatusNote": {
            "type": "string",
            "description": "Status display note.",
            "nullable": true
          }
        }
      },
      "BillCredit": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "TxnDate",
          "Vendor",
          "LineItems"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Read-only. Bill credit unique id - auto generated by the system.",
            "format": "int32"
          },
          "TxnNumber": {
            "type": "string",
            "description": "Credit number - auto generated by the system if not provided.",
            "nullable": true
          },
          "TxnDate": {
            "type": "string",
            "description": "Date credit was issued.",
            "format": "date-time",
            "minLength": 1
          },
          "Vendor": {
            "description": "The vendor for whom the credit is created for.",
            "allOf": [
              {
                "$ref": "#/components/schemas/VendorRef2"
              }
            ]
          },
          "VendorLocation": {
            "description": "The vendor location for whom the credit is created for.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Memo": {
            "type": "string",
            "description": "Memo to provide additional information for the credit.",
            "nullable": true
          },
          "Status": {
            "description": "Read-only. The status of the bill credit. ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "CreditTotal": {
            "type": "number",
            "description": "Read-only. Total of credit.",
            "format": "decimal"
          },
          "UnappliedCredit": {
            "type": "number",
            "description": "Read-only. The amount of the credit that has not been applied yet.",
            "format": "decimal"
          },
          "APGLAccount": {
            "description": "Accounts Payable associated with the bill. Required when more than one AP account is available.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LineItemsGLCategory": {
            "description": "GL category. Is only required if category tracking is turned on and is flagged as required.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LineItems": {
            "type": "array",
            "description": "Credit line items: items and expenses.",
            "items": {
              "$ref": "#/components/schemas/BillCreditLineItem"
            }
          },
          "AppliedToBills": {
            "type": "array",
            "description": "The bills the credit was applied to. This property is also designated to be used while creating a bill credit which will apply the credit to the specified bills.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/AppliedToTxn"
            }
          },
          "NotesLogCount": {
            "type": "integer",
            "description": "Read-only. The number of notes logged to the bill.",
            "format": "int32"
          },
          "AttachmentCount": {
            "type": "integer",
            "description": "Read-only. The number of attachments uploaded to the credit.",
            "format": "int32"
          },
          "DateCreated": {
            "type": "string",
            "description": "Read-only. The date and time (in company time zone) when the credit was created.",
            "format": "date-time"
          },
          "CreatedBy": {
            "description": "The person who created the credit.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "Read-only. The date and time (in company time zone) when the credit was last updated.",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedBy": {
            "description": "Read-only. The person who last updated the credit.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Reviewed": {
            "type": "boolean",
            "description": "Read-only. Indicates whether the credit has been reviewed or not.",
            "nullable": true
          },
          "DateReviewed": {
            "type": "string",
            "description": "Read-only. The date and time (in company time zone) when the credit was reviewed.",
            "format": "date-time",
            "nullable": true
          },
          "ReviewedBy": {
            "description": "Read-only. The person who reviewed the credit.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Currency": {
            "description": "Read-only. Currency Information.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency2"
              }
            ]
          },
          "IsHistoricalNonposting": {
            "type": "boolean",
            "description": "Read-only. Indicates whether the Bill Credit is a historical non-posting transaction or not."
          }
        }
      },
      "BillCreditLineItem": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Qty",
          "Cost"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The credit line item id",
            "format": "int64"
          },
          "IsExpense": {
            "type": "boolean",
            "description": "Read-only. Indicates whether the line item is of expense type or not."
          },
          "Item": {
            "description": "The item being credited. Required for non expense type of line items.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "GLAccount": {
            "description": "The expense account being credited. Required for expense type of line items.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Qty": {
            "type": "number",
            "description": "The item quantity being credited. For expense line items the value is set to 1.",
            "format": "decimal",
            "maximum": 9999999999998.0,
            "minimum": -9999999999998.0
          },
          "UnitOfMeasure": {
            "description": "Unit of Measure (only applicable if Unit of Measure tracking is enabled)\nId: must correspond to the Unit of Measure set configured at the item level\nName: (readonly) Unit of Measure Abbreviation\nExtendedName: (readonly) Unit of Measure full name",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/LongIdNameExtended"
              }
            ]
          },
          "Cost": {
            "type": "number",
            "description": "The unit cost of the item being credited.",
            "format": "decimal",
            "maximum": 9999999999998.0,
            "minimum": -9999999999998.0
          },
          "Description": {
            "type": "string",
            "description": "The description of the line item.",
            "nullable": true
          },
          "Customer": {
            "description": "The customer being billed for this line item. Is only required if line item is flagged as billable.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Order": {
            "description": "The order related to the customer being billed for this line item.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Billable": {
            "type": "boolean",
            "description": "Indicates whether the line item is billable or not."
          },
          "Billed": {
            "type": "boolean",
            "description": "Read-only. Indicates whether the line item has been billed or not."
          },
          "GLCategory": {
            "description": "GL category. Is only required if category tracking is turned on at the line item level and is flagged as required.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "InventoryLocation": {
            "description": "The item inventory location. Required for Inventory item type when there are more than one locations.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "CustomColumns": {
            "type": "array",
            "description": "Custom Columns",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomColumn"
            }
          }
        }
      },
      "AppliedToTxn": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "TxnId",
          "Amount"
        ],
        "properties": {
          "TxnId": {
            "type": "integer",
            "description": "The transaction unique id the payment/credit was applied to.",
            "format": "int32"
          },
          "Amount": {
            "type": "number",
            "description": "The amount of the payment/credit that was applied to the transaction.",
            "format": "decimal",
            "maximum": 922337203685477.5,
            "minimum": 0.01
          },
          "DateApplied": {
            "type": "string",
            "description": "Read-only. The date and time (in company time zone) when this payment/credit was applied to the transaction.",
            "format": "date-time"
          }
        }
      },
      "SearchResultOfBillCreditSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/BillCreditSearchResult"
            }
          }
        }
      },
      "BillCreditSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Number": {
            "type": "string",
            "nullable": true
          },
          "DueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Vendor": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Status": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Memo": {
            "type": "string",
            "nullable": true
          },
          "TotalAmount": {
            "type": "number",
            "format": "decimal"
          },
          "OpenBalance": {
            "type": "number",
            "format": "decimal"
          },
          "DateCreated": {
            "type": "string",
            "description": "The date and time (in company time zone) when the credit was created",
            "format": "date-time"
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "The date and time (in company time zone) when the credit was last updated",
            "format": "date-time",
            "nullable": true
          },
          "Currency": {
            "description": "Currency Information.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency2"
              }
            ]
          }
        }
      },
      "BillCreditSearchParameters": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSearchParameters"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Number": {
                "type": "string",
                "nullable": true
              },
              "VendorId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "StatusChangedTo": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "StatusChangedDateRange": {
                "description": "The date and time (in company time zone) when the bill credit status was changed.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "DateCreatedRange": {
                "description": "The date and time (in company time zone) when the bill credit was created.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "LastUpdatedDateRange": {
                "description": "The date and time (in company time zone) when the bill credit was last updated.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "WithOpenBalanceOnly": {
                "type": "boolean",
                "nullable": true
              }
            }
          }
        ]
      },
      "CreditMemo": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "TxnDate",
          "Customer"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Unique id - auto generated by the system.",
            "format": "int32"
          },
          "TxnNumber": {
            "type": "string",
            "description": "Credit Memo Number - auto generated by the system if blank.",
            "nullable": true
          },
          "AllowDuplicateTxnNumber": {
            "type": "boolean",
            "description": "Set to true if you want to skip duplicate check for TxnNumber",
            "default": false
          },
          "TxnDate": {
            "type": "string",
            "description": "Required - must be after accounting closing date",
            "format": "date-time",
            "minLength": 1
          },
          "Memo": {
            "type": "string",
            "description": "Memo for the Credit Memo",
            "nullable": true
          },
          "Customer": {
            "description": "Customer associated with Credit Memo ",
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerRef"
              }
            ]
          },
          "BillToLocation": {
            "description": "Customer bill to location ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "ShipToLocation": {
            "description": "Customer ship to location - use to determine tax id if if none is provided",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Status": {
            "description": "Read-only - The status of the Credit Memo. Status codes are: Active=163, Voided=164. ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "GLCategory": {
            "description": "Credit Memo GLCategory - required if GLCategory tracking is on",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "ARAccount": {
            "description": "AR Account associated with Credit Memo ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Order": {
            "description": "Order associated with Credit Memo",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "TaxId": {
            "type": "integer",
            "description": "Tax Id - Autogenerated based on shipping location if not provided, if neither is provided, tenant default tax id is used",
            "format": "int32"
          },
          "Format": {
            "description": "Credit Memo Format ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LineItems": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CreditMemoLineItem"
            }
          },
          "AttachmentCount": {
            "type": "integer",
            "description": "Read-only - The number of attachments associated with this Credit Memo",
            "format": "int32"
          },
          "DateCreated": {
            "type": "string",
            "description": "Read-only - The date and time (in company time zone) when the credit memo was created.",
            "format": "date-time"
          },
          "CreatedBy": {
            "description": "Read-only - employee who created the Credit Memo",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "Read-only - date Credit Memo was last updated",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedBy": {
            "description": "Read-only - employee who last updated the Credit Memo",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Reviewed": {
            "type": "boolean",
            "description": "Read-only - whether Credit Memo was reviewed"
          },
          "DateReviewed": {
            "type": "string",
            "description": "Read-only - The date and time (in company time zone) when the credit memo was reviewed.",
            "format": "date-time",
            "nullable": true
          },
          "ReviewedBy": {
            "description": "Read-only - employee who reviewed the Credit Memo",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "AutoApply": {
            "type": "boolean",
            "description": "Indicates whether the credit memo should be auto applied to open invoices. Will always apply to the oldest open invoice first."
          },
          "AppliedToInvoices": {
            "type": "array",
            "description": "Apply this Credit Memo to the specified invoices on creation.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/AppliedToTxn"
            }
          },
          "Currency": {
            "description": "Read-only - Currency Information.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency2"
              }
            ]
          },
          "IsHistoricalNonposting": {
            "type": "boolean",
            "description": "Read-only. Indicates whether the Credit Memo is a historical non-posting transaction or not."
          }
        }
      },
      "CreditMemoLineItem": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Item"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "unique line item id - auto-generated by the system",
            "format": "int32"
          },
          "Item": {
            "description": "The item for this Line Item - required if GLAccount is not provided",
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Location": {
            "description": "The item inventory location. Required for Inventory and Manufactured item types when there are more than one locations.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Description": {
            "type": "string",
            "description": "line item description",
            "nullable": true
          },
          "Qty": {
            "type": "number",
            "description": "item quantity",
            "format": "decimal",
            "maximum": 9999999999998.0,
            "minimum": -9999999999998.0
          },
          "UnitOfMeasure": {
            "description": "Unit of Measure (only applicable if Unit of Measure tracking is enabled)\nId: must correspond to the Unit of Measure set configured at the item level\nName: (readonly) Unit of Measure Abbreviation\nExtendedName: (readonly) Unit of Measure full name",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/LongIdNameExtended"
              }
            ]
          },
          "Price": {
            "type": "number",
            "description": "item price",
            "format": "decimal",
            "maximum": 9999999999998.0,
            "minimum": -9999999999998.0
          },
          "ShippingPrice": {
            "type": "number",
            "description": "price to ship item",
            "format": "decimal",
            "maximum": 9999999999999998.0,
            "minimum": -9999999999999998.0
          },
          "Taxable": {
            "type": "boolean",
            "description": "whether or not item is taxable"
          },
          "FulfillmentDate": {
            "type": "string",
            "description": "date item was fulfilled",
            "format": "date-time",
            "nullable": true
          },
          "GLCategory": {
            "description": "required if category tracking is on",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "ItemGroupLineItems": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CreditMemoItemGroupLineItem"
            }
          },
          "CustomColumns": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomColumn"
            }
          }
        }
      },
      "CreditMemoItemGroupLineItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Credit Memo Item Group Line Item Id",
            "format": "int32"
          },
          "Item": {
            "description": "Item",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Qty": {
            "type": "number",
            "description": "Quantity",
            "format": "decimal",
            "maximum": 9999999999998.0,
            "minimum": -9999999999998.0
          },
          "UnitOfMeasure": {
            "description": "Unit of Measure (only applicable if Unit of Measure tracking is enabled)\nId: must correspond to the Unit of Measure set configured at the item level\nName: (readonly) Unit of Measure Abbreviation\nExtendedName: (readonly) Unit of Measure full name",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/LongIdNameExtended"
              }
            ]
          },
          "Price": {
            "type": "number",
            "description": "Price",
            "format": "decimal",
            "maximum": 9999999999998.0,
            "minimum": -9999999999998.0
          },
          "GLCategory": {
            "description": "GL Category",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Location": {
            "description": "The item inventory location. Required for Inventory and Manufactured item types when there are more than one locations.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          }
        }
      },
      "SearchResultOfCreditMemoSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CreditMemoSearchResult"
            }
          }
        }
      },
      "CreditMemoSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "TxnNumber": {
            "type": "string",
            "nullable": true
          },
          "Customer": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "CreditMemoTotal": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "OpenBalance": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "Memo": {
            "type": "string",
            "nullable": true
          },
          "DateCreated": {
            "type": "string",
            "description": "The date and time (in company time zone) when the credit memo was created.",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "The date and time (in company time zone) when the credit memo was last updated.",
            "format": "date-time",
            "nullable": true
          },
          "Currency": {
            "description": "Currency Information.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency2"
              }
            ]
          }
        }
      },
      "CreditMemoSearchParameters": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSearchParameters"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "TxnNumber": {
                "type": "string",
                "nullable": true
              },
              "CustomerId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "DateCreatedFrom": {
                "type": "string",
                "description": "The date and time (in company time zone) when the credit memo was created.",
                "format": "date-time",
                "nullable": true
              },
              "DateCreatedTo": {
                "type": "string",
                "description": "The date and time (in company time zone) when the credit memo was created.",
                "format": "date-time",
                "nullable": true
              },
              "LastUpdatedDateFrom": {
                "type": "string",
                "description": "The date and time (in company time zone) when the credit memo was last updated",
                "format": "date-time",
                "nullable": true
              },
              "LastUpdatedDateTo": {
                "type": "string",
                "description": "The date and time (in company time zone) when the credit memo was last updated",
                "format": "date-time",
                "nullable": true
              },
              "WithOpenBalanceOnly": {
                "type": "boolean",
                "nullable": true
              }
            }
          }
        ]
      },
      "GLAccount": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Name",
          "AccountType"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Unique account id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Account name",
            "minLength": 1
          },
          "ExtendedName": {
            "type": "string",
            "description": "Read-only - Account name prefixed with account number if set to do so in GL settings ",
            "nullable": true
          },
          "AccountType": {
            "description": "Account Type - cannot be changed once set",
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "AccountNumber": {
            "type": "string",
            "description": "Account Number",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "description": "Account Description",
            "nullable": true
          },
          "IsReconcilable": {
            "type": "boolean",
            "description": "is the account reconcilable?"
          },
          "DoNotAllowPosting": {
            "type": "boolean",
            "description": "does the account not allow posting?"
          },
          "Parent": {
            "description": "The parent GL Account - set id to change parent (parent must have same account type as child) - Name and ExtendedName are read-only",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNameExtended"
              }
            ]
          },
          "DateCreated": {
            "type": "string",
            "description": "Read-only - The date and time (in company time zone) when the gl account was created.",
            "format": "date-time"
          },
          "CreatedBy": {
            "description": "Read-only - The person who created the gl account",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "Read-only - The date and time (in company time zone) when the gl account was last updated",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedBy": {
            "description": "Read-only - The person who last updated the gl account",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "CurrencyISO": {
            "type": "string",
            "description": "Currency ISO symbol - cannot be changed once set",
            "nullable": true
          }
        }
      },
      "IdNameExtended": {
        "allOf": [
          {
            "$ref": "#/components/schemas/IdNamePair"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "ExtendedName": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      },
      "SearchResultOfGLAccountSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/GLAccountSearchResult"
            }
          }
        }
      },
      "GLAccountSearchResult": {
        "type": "object",
        "description": "This class is a replacement for the old-style GLAccountsSearchResult",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "AccountName": {
            "type": "string",
            "nullable": true
          },
          "AccountExtendedName": {
            "type": "string",
            "nullable": true
          },
          "AccountType": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Parent": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNameExtended"
              }
            ]
          },
          "AccountNumber": {
            "type": "string",
            "nullable": true
          },
          "DoNotAllowPosting": {
            "type": "boolean"
          },
          "IsReconcilable": {
            "type": "boolean"
          },
          "Active": {
            "type": "boolean"
          }
        }
      },
      "GLAccountSearchParameters": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "AccountTypeId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "AccountName": {
            "type": "string",
            "nullable": true
          },
          "Active": {
            "type": "boolean",
            "nullable": true
          }
        }
      },
      "GLAccountsSearchResult": {
        "type": "object",
        "description": "this model is deprecated and can be deleted once we remove the offending method in GLAccounts Controller",
        "additionalProperties": false,
        "properties": {
          "GLAccountId": {
            "type": "integer",
            "format": "int32"
          },
          "GLAccountName": {
            "type": "string",
            "nullable": true
          },
          "GLAccountFullName": {
            "type": "string",
            "nullable": true
          },
          "GLAccountTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "ParentId": {
            "type": "integer",
            "format": "int32"
          },
          "AccountNumber": {
            "type": "string",
            "nullable": true
          },
          "DoNotAllowPosting": {
            "type": "boolean"
          },
          "IsReconcilable": {
            "type": "boolean"
          },
          "Active": {
            "type": "boolean"
          }
        }
      },
      "GLCategoriesSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CategoryId": {
            "type": "integer",
            "format": "int32"
          },
          "CategoryName": {
            "type": "string",
            "nullable": true
          },
          "CategoryFullName": {
            "type": "string",
            "nullable": true
          },
          "Active": {
            "type": "boolean"
          }
        }
      },
      "SearchResultOfClassesSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ClassesSearchResult"
            }
          }
        }
      },
      "ClassesSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "FullName": {
            "type": "string",
            "nullable": true
          },
          "Parent": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Active": {
            "type": "boolean"
          }
        }
      },
      "InventoryAdjustment": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Type",
          "LineItems"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Read-only. Inventory adjustment unique id - auto generated by the system.",
            "format": "int32"
          },
          "Type": {
            "description": "Inventory adjustment type. Available types: Quantity, Value, Quantity and Value.",
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "AdjustmentDate": {
            "type": "string",
            "description": "Date when inventory adjustment was issued - must be after accounting closing date. \nDefault is today's date when it is left blank.",
            "format": "date-time",
            "nullable": true
          },
          "Memo": {
            "type": "string",
            "description": "Memo to provide additional information for the inventory adjustment.",
            "nullable": true
          },
          "Account": {
            "description": "Adjustment account from the Chart of Accounts. \nWhen it is left blank, default vaule of \"Opening Balance Equity Account\" from Accounting settings will be used.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LineItemsClass": {
            "description": "Class. Is only required if class tracking is turned on and is flagged as required.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LineItems": {
            "type": "array",
            "description": "Inventory adjustment line items",
            "items": {
              "$ref": "#/components/schemas/InventoryAdjustmentLineItem"
            }
          }
        }
      },
      "InventoryAdjustmentLineItem": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Item"
        ],
        "properties": {
          "Item": {
            "description": "The item whose inventory is being adjusted. Accepted item types: Inventory=1, Manufactured=8",
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LocationLineItems": {
            "type": "array",
            "description": "Location line items. Use this for quantity adjustments if you have more than one inventory location tracked in the system.\nNewQty and QtyAdjustment values will be ignored at that time.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/InventoryLocationAdjustmentLineItem"
            }
          },
          "NewQty": {
            "type": "number",
            "description": "New overall quantity for the item. If UOM is used, specify the quantity in the base UOM. \nEither NewQty or QtyAdjustment should be specified. If both are specified. NewQty will take precedence. \nIf there are more than one inventory locations do not use this field, Use the LocationLineItems. \nThis will be ignored if the adjustment is just a value adjustment.",
            "format": "decimal",
            "maximum": 9999999999998.0,
            "minimum": -9999999999998.0,
            "nullable": true
          },
          "QtyAdjustment": {
            "type": "number",
            "description": "The quantity that needs to be adjusted for the item. If UOM is used, specify the quantity in the base UOM. \nEither NewQty or QtyAdjustment should be specified. If both are specified NewQty will take precedence. \nIf there are more than one inventory locations do not use this field, Use the LocationLineItems. \nThis will be ignored if the adjustment is just a value adjustment.",
            "format": "decimal",
            "maximum": 9999999999998.0,
            "minimum": -9999999999998.0,
            "nullable": true
          },
          "NewUnitValue": {
            "type": "number",
            "description": "New value per unit. Use this for adjusting the value of the item when the adjustment type is either ‘Value’ or ‘Quantity and Value’.",
            "format": "decimal",
            "maximum": 9999999999998.0,
            "minimum": -9999999999998.0,
            "nullable": true
          },
          "Class": {
            "description": "Class. Is only required if class tracking is turned on and is flagged as required. ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          }
        }
      },
      "InventoryLocationAdjustmentLineItem": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "InventoryLocation"
        ],
        "properties": {
          "InventoryLocation": {
            "description": "Inventory location where the quantity needs to be adjusted",
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LocationNewQty": {
            "type": "number",
            "description": "New overall quantity for the item at the location specified. \nIf UOM is used, specify the quantity in the base UOM. Either LocationNewQty or LocationQtyAdjustment should be specified. \nIf both are specified, LocationNewQty will take precedence.This will be ignored if the adjustment is just a value adjustment.",
            "format": "decimal",
            "nullable": true
          },
          "LocationQtyAdjustment": {
            "type": "number",
            "description": "The quantity that needs to be adjusted for the item at the location specified. \nIf UOM is used, specify the quantity in the base UOM. Either LocationNewQty or LocationQtyAdjustment should be specified. \nIf both are specified, LocationNewQty will take precedence. This will be ignored if the adjustment is just a value adjustment.",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "SearchResultOfInventoryLocationSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/InventoryLocationSearchResult"
            }
          }
        }
      },
      "InventoryLocationSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "FullName": {
            "type": "string",
            "nullable": true
          },
          "Parent": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Active": {
            "type": "boolean"
          }
        }
      },
      "ItemBuild": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Id",
          "Item"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Read-only. Item Build unique id - auto generated by the system.",
            "format": "int32",
            "maximum": 2147483647.0,
            "minimum": 0.0
          },
          "Item": {
            "description": "The item that is being built. Can only be a manufactured item",
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "InventoryLocation": {
            "description": "The item inventory location. Required when there are more than one locations.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Class": {
            "description": "Build Class - required if Class tracking is on.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "TxnDate": {
            "type": "string",
            "description": "Build date - required. Today's date will be used in case is not specified.",
            "format": "date-time"
          },
          "TxnNumber": {
            "type": "string",
            "description": "Build reference number - auto generated by the system for new builds if not provided. Required on update.",
            "nullable": true
          },
          "AllowDuplicateTxnNumber": {
            "type": "boolean",
            "description": "Set to true if you want to skip duplicate check for TxnNumber",
            "default": false
          },
          "QtyToBuild": {
            "type": "number",
            "description": "Quantity that needs to be built.",
            "format": "decimal",
            "maximum": 9999999999998.0,
            "minimum": 0.00001
          },
          "Customer": {
            "description": "Customer associated with the build ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerRef"
              }
            ]
          },
          "Order": {
            "description": "Order associated with the build -- not required, but if it is provided, the order must exist in the system, and the customer on the order must match the customer on the build",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Memo": {
            "type": "string",
            "description": "Memo of the build.",
            "nullable": true
          },
          "Status": {
            "description": "The status of the build.The status of new builds can explicitly be set to any of the following: Incomplete (182), Pending (186), Finalized (170). There will be a validation check if the status is set as Pending OR Finalized to make sure the quantity of BOM is available. This property is read-only for existing builds.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LineItems": {
            "type": "array",
            "description": "Build line items.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ItemBuildLineItem"
            }
          },
          "CustomFields": {
            "type": "array",
            "description": "Build custom fields.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          },
          "AttachmentCount": {
            "type": "integer",
            "description": "Read-only. The number of attachments uploaded to the build.",
            "format": "int32"
          },
          "DateCreated": {
            "type": "string",
            "description": "Read-only. The date and time (in clients time zone) when the build was created.",
            "format": "date-time"
          },
          "CreatedBy": {
            "description": "The person who created the build.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "Read-only. The date and time (in clients time zone) when the build was last updated.",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedBy": {
            "description": "Read-only. The person who last updated the build.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Reviewed": {
            "type": "boolean",
            "description": "Read-only. Indicates whether the build has been reviewed or not."
          },
          "DateReviewed": {
            "type": "string",
            "description": "Read-only. The date and time (in clients time zone) when the build was reviewed.",
            "format": "date-time",
            "nullable": true
          },
          "ReviewedBy": {
            "description": "Read-only. The person who reviewed the build.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          }
        }
      },
      "ItemBuildLineItem": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "BoMComponentId"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The build line item id.",
            "format": "int64"
          },
          "BoMComponentId": {
            "type": "integer",
            "description": "The unique id of the component in the Bill of Materials - this can be obtained by querying the “GET v1/items/{id}” endpoint for a manufactured item, and checking the Id in the GroupItem collection",
            "format": "int32"
          },
          "Item": {
            "description": "The item for this line item.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "InventoryLocation": {
            "description": "The item inventory location. Required for Inventory and Manufactured item types when there are more than one locations.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Description": {
            "type": "string",
            "description": "Line item description.",
            "nullable": true
          }
        }
      },
      "SearchResultOfItemBuildSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ItemBuildSearchResult"
            }
          }
        }
      },
      "ItemBuildSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "RefNumber": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Status": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "BuildDate": {
            "type": "string",
            "format": "date-time"
          },
          "DateCreated": {
            "type": "string",
            "description": "The date and time (in company time zone) when the item build was created.",
            "format": "date-time"
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "The date and time (in company time zone) when the item build was last updated.",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "ItemBuildSearchParameters": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSearchParameters"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "RefNumber": {
                "type": "string",
                "nullable": true
              },
              "ItemId": {
                "type": "integer",
                "description": "Manufactured Item",
                "format": "int32",
                "nullable": true
              },
              "Status": {
                "type": "integer",
                "description": "Searches by the build status (can be one of the following, 182 - Incomplete, 186 - Pending, 170 - Finalized, 171 - Voided)",
                "format": "int32",
                "nullable": true
              },
              "DateCreatedRange": {
                "description": "The date and time (in company time zone) when the build was created.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "LastUpdatedDateRange": {
                "description": "The date and time (in company time zone) when the build was last updated.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "SortExpression": {
                "type": "string",
                "description": "Available Sort Expresstions: [BuildDate Default DESC, Id, RefNumber, Item, Status, DateCreated, LastUpdatedDate]",
                "nullable": true
              }
            }
          }
        ]
      },
      "Item": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Name",
          "ItemType"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Read-only. Item unique id - auto generated by the system.",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Item Name. Must be unique.",
            "minLength": 1
          },
          "ItemNumber": {
            "type": "string",
            "description": "Item Number.",
            "nullable": true
          },
          "ItemType": {
            "description": "Item Type. Read-only for existing items. Available types: Inventory, Non Inventory, Service, Item Group, Discount, Fixed Asset, and Manufactured.",
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Category": {
            "description": "Item Category.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Division": {
            "description": "Division or Department.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "PreferredVendor": {
            "description": "Preferred Vendor. Available for Inventory and Non Inventory item types only.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/VendorRef2"
              }
            ]
          },
          "Manufacturer": {
            "description": "Manufacturer. Available for Inventory, Non Inventory, and Manufactured item types only.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/VendorRef2"
              }
            ]
          },
          "ManufacturePartNumber": {
            "type": "string",
            "description": "Manufacturer Part Number. Available for Inventory, Non Inventory, and Manufactured item types only.",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "description": "Description. Used on transaction line items when item is selected.",
            "nullable": true
          },
          "InternalNotes": {
            "description": "Internal Notes.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Note"
              }
            ]
          },
          "Price": {
            "type": "number",
            "description": "Item Price. Available for Inventory, Non Inventory, Service, and Manufactured item types only.",
            "format": "decimal",
            "maximum": 9999999999998.0,
            "minimum": -9999999999998.0
          },
          "Cost": {
            "type": "number",
            "description": "Item Cost. Available for Inventory, Non Inventory, Service, and Manufactured item types only.",
            "format": "decimal",
            "maximum": 9999999999998.0,
            "minimum": -9999999999998.0
          },
          "Taxable": {
            "type": "boolean",
            "description": "Taxable. Available for Inventory, Non Inventory, Service, Item Group, and Manufactured item types only."
          },
          "Weight": {
            "type": "number",
            "description": "Weight. Available for Inventory, Non Inventory, Service, and Fixed Asset item types only.",
            "format": "decimal",
            "minimum": 0.0
          },
          "IsShippingRequired": {
            "type": "boolean",
            "description": "Is Shipping Required. Available for Inventory, Non Inventory, Service, and Fixed Asset item types only."
          },
          "ShippingPrice": {
            "type": "number",
            "description": "Shipping Price. Available for Inventory, Non Inventory, Service, and Fixed Asset item types only.",
            "format": "decimal",
            "maximum": 9999999999999998.0,
            "minimum": -9999999999999998.0
          },
          "ShippingPerc": {
            "type": "number",
            "description": "Shipping Perc. Available for Inventory, Non Inventory, Service, and Fixed Asset item types only.",
            "format": "double"
          },
          "IncomeGLAccount": {
            "description": "Income GL Account. Available for Inventory, Non Inventory, Service, Discount, Fixed Asset and Manufactured item types only. The default GL Account will be used if not provided.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "InventoryAssetGLAccount": {
            "description": "Inventory Asset GL Account. Available for Inventory and Manufactured item types only. The default Asset Account will be used if not provided.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "COGSGLAccount": {
            "description": "COGS GL Account. Available for Inventory and Manufactured item types only. The default COGS Account will be used if not provided.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "ExpenseGLAccount": {
            "description": "Expense GL Account. Available for Non Inventory, Service item types only. The default Expense Account will be used if not provided.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "DefaultGLCategory": {
            "description": "Default GL Category. Available for Inventory, Non Inventory, Service, Discount, Fixed Asset and Manufactured item types only.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "DefaultInventoryLocation": {
            "description": "Default Inventory Location. Available for Inventory and Manufactured item types only.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "RelatedAsset": {
            "description": "Related Asset. Available for Fixed Asset item type only.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "AllowVendorToIncludeInBill": {
            "type": "boolean",
            "description": "Allow Vendor To Include In Bill."
          },
          "ReorderPoint": {
            "type": "number",
            "description": "Reorder Point. Available for Inventory and Manufactured item types only.",
            "format": "decimal"
          },
          "ReorderAmount": {
            "type": "number",
            "description": "Reorder Amount. Available for Inventory and Manufactured item types only.",
            "format": "decimal"
          },
          "QtyOnHand": {
            "type": "number",
            "description": "Read-only. Available for Inventory and Manufactured item types only. The quantity is calculated as of today and is not location specific.",
            "format": "decimal",
            "nullable": true
          },
          "QtyAvailable": {
            "type": "number",
            "description": "Read-only. Available for Inventory and Manufactured item types only. The quantity is calculated as of today and is not location specific.",
            "format": "decimal",
            "nullable": true
          },
          "UnitOfMeasureSet": {
            "description": "Unit of Measure Set.\nAvailable for Inventory, Non-Inventory, Service, Fixed Asset, Manufactured, and Deposit item types and only applicable if Unit of Measure tracking is enabled.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/UOMSet"
              }
            ]
          },
          "BaseUnitOfMeasure": {
            "description": "Read-only. Base Unit of Measure. Available for Inventory, Non-Inventory, Service, Fixed Asset, Manufactured, and Deposit item types and only applicable if Unit of Measure tracking is enabled\nId: Base Unit of Measure Id of the Unit of Measure set configured at the item level\nName: Base Unit of Measure Abbreviation\nExtendedName: Base Unit of Measure full name",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/LongIdNameExtended"
              }
            ]
          },
          "BarcodeValue": {
            "type": "string",
            "description": "Barcode value. Must be unique.",
            "nullable": true
          },
          "MaxQuantity": {
            "type": "number",
            "description": "Max Quantity to stock. Available for Inventory and Manufactured item types only.",
            "format": "decimal",
            "nullable": true
          },
          "GroupItems": {
            "type": "array",
            "description": "Component items of the group. Available for Item Group and Manufactured item types only.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/GroupItem"
            }
          },
          "CustomFields": {
            "type": "array",
            "description": "Item Custom Fields.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          },
          "Active": {
            "type": "boolean",
            "description": "Read-only. Indicates whether the item is active or not."
          },
          "DateCreated": {
            "type": "string",
            "description": "Read-only. The date and time (in company time zone) when the item was created.",
            "format": "date-time"
          },
          "CreatedBy": {
            "description": "The person who created the item.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "Read-only. The date and time (in company time zone) when the bill was last updated.",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedBy": {
            "description": "Read-only. The person who last updated the item.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          }
        }
      },
      "UOMSet": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int64"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Active": {
            "type": "boolean"
          },
          "RelatedUnits": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/UOMRelatedUnits"
            }
          }
        }
      },
      "GroupItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Read-only. Group unique id - auto generated by the system.",
            "format": "int32"
          },
          "Item": {
            "description": "Item of the group.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "ItemType": {
            "description": "Read-only. Item Type.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Qty": {
            "type": "number",
            "description": "Item Qty.",
            "format": "decimal",
            "maximum": 9999999999998.0,
            "minimum": 0.0
          },
          "Price": {
            "type": "number",
            "description": "Read-only. Item Price.",
            "format": "decimal"
          },
          "GLCategory": {
            "description": "Read-only. Default GL Category.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "InventoryLocation": {
            "description": "Default Inventory Location. Available for Inventory and Manufactured item types that are part of the Item Group. Not avilable for component items (Bill of Materials) of Manufactured item type.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "UnitOfMeasure": {
            "description": "Unit of Measure (only applicable if Unit of Measure tracking is enabled)\nId: must correspond to the Unit of Measure set configured at the item level\nName: (readonly) Unit of Measure Abbreviation\nExtendedName: (readonly) Unit of Measure full name",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/LongIdNameExtended"
              }
            ]
          }
        }
      },
      "SearchResultOfItemSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ItemSearchResult"
            }
          }
        }
      },
      "ItemSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "ItemNumber": {
            "type": "string",
            "nullable": true
          },
          "ItemType": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "Price": {
            "type": "number",
            "format": "decimal"
          },
          "Cost": {
            "type": "number",
            "format": "decimal"
          },
          "Taxable": {
            "type": "boolean"
          },
          "IsShippingRequired": {
            "type": "boolean"
          },
          "ShippingPrice": {
            "type": "number",
            "format": "decimal"
          },
          "ShippingPerc": {
            "type": "number",
            "format": "double"
          },
          "GLCategory": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "InventoryLocation": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "MaxQuantity": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "Active": {
            "type": "boolean"
          },
          "DateCreated": {
            "type": "string",
            "description": "The date and time (in company time zone) when the item was created.",
            "format": "date-time"
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "The date and time (in company time zone) when the item was last updated.",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "ItemSearchParameters": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSearchParameters"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string",
                "nullable": true
              },
              "ItemNumber": {
                "type": "string",
                "description": "Number associated with an Item. This will do a like search on item number.",
                "nullable": true
              },
              "ItemTypes": {
                "type": "array",
                "nullable": true,
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "BarcodeValue": {
                "type": "string",
                "nullable": true
              },
              "Active": {
                "type": "boolean",
                "nullable": true
              },
              "DateCreatedRange": {
                "description": "The date and time (in company time zone) when the item was created.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "LastUpdatedDateRange": {
                "description": "The date and time (in company time zone) when the item was last updated.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              }
            }
          }
        ]
      },
      "ItemInventoryLocation": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "InventoryLocationID": {
            "type": "integer",
            "description": "Inventory location Id",
            "format": "int32"
          },
          "InventoryLocationName": {
            "type": "string",
            "description": "Inventory location name",
            "nullable": true
          },
          "QtyOnHand": {
            "type": "number",
            "description": "Quantity on hand",
            "format": "decimal"
          },
          "QtyAvailable": {
            "type": "number",
            "description": "Quantity available",
            "format": "decimal"
          },
          "QtyOnPurchaseOrders": {
            "type": "number",
            "description": "Quantity on purchase orders",
            "format": "decimal"
          },
          "QtyOnSalesOrders": {
            "type": "number",
            "description": "Quantity on sales orders",
            "format": "decimal"
          },
          "QtyOnIncompleteBuilds": {
            "type": "number",
            "description": "Quantity on incomplete builds",
            "format": "decimal"
          },
          "QtyOnPendingBuilds": {
            "type": "number",
            "description": "Quantity on pending builds",
            "format": "decimal"
          }
        }
      },
      "SearchResultOfItemTypeSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ItemTypeSearchResult"
            }
          }
        }
      },
      "ItemTypeSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "JournalEntry": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Id",
          "TxnDate"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Unique Journal Entry id. Set to 0 for new Journal Entry - auto generated by the system.",
            "format": "int32",
            "maximum": 2147483647.0,
            "minimum": 0.0
          },
          "TxnNumber": {
            "type": "string",
            "description": "JournalEntry Number - auto generated if blank. Set AllowDuplicateTxnNumber to true to bypass duplicate check.",
            "nullable": true
          },
          "AllowDuplicateTxnNumber": {
            "type": "boolean",
            "description": "Set to true if you want to skip duplicate check for TxnNumber",
            "default": false
          },
          "TxnDate": {
            "type": "string",
            "description": "Date the JournalEntry is entered.",
            "format": "date-time",
            "minLength": 1
          },
          "Memo": {
            "type": "string",
            "description": "Journal Entry Memo",
            "nullable": true
          },
          "Status": {
            "description": "Read-Only - The Status of the Journal Entry. Status codes are Active (145) or Voided(146). ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "GLCategory": {
            "description": "GLCategory associated with the Journal Entry - required if Category Tracking is turned on",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LineItems": {
            "type": "array",
            "description": "Collection of this Journal Entry's Line Items",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/JournalEntryLineItem"
            }
          }
        }
      },
      "JournalEntryLineItem": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "GLAccount"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Unique Journal Entry Line Item id - set to 0 for new line item",
            "format": "int32"
          },
          "GLAccount": {
            "description": "Line Item GL Account - id is required",
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Memo": {
            "type": "string",
            "description": "Line Item Memo",
            "nullable": true
          },
          "GLCategory": {
            "description": "GL Category. id is required if GL Category Tracking is turned on",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Debit": {
            "type": "number",
            "description": "Line Item Debit Amount - must be >= 0",
            "format": "decimal",
            "maximum": 922337203685477.5,
            "minimum": 0.0
          },
          "Credit": {
            "type": "number",
            "description": "Line Item Credit Amount - must be >= 0",
            "format": "decimal",
            "maximum": 922337203685477.5,
            "minimum": 0.0
          },
          "CustomerVendor": {
            "description": "Customer is required for AR GL Account Types, Vendor is required for AP GL Account Types\notherwise, it is ignored",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          }
        }
      },
      "SearchResultOfPaymentMethods": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/PaymentMethods"
            }
          }
        }
      },
      "PaymentMethods": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Payment Method Id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Payment Method Name",
            "nullable": true
          }
        }
      },
      "SearchResultOfPaymentProcessingMethods": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/PaymentProcessingMethods"
            }
          }
        }
      },
      "PaymentProcessingMethods": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Payment Processing Method Id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Payment Processing Method Name",
            "nullable": true
          }
        }
      },
      "Payment": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Customer",
          "TxnDate",
          "ReferenceNumber",
          "PaymentAmount"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Read-only. Payment unique id - auto generated by the system.",
            "format": "int32"
          },
          "TxnNumber": {
            "type": "string",
            "description": "Read-only. Payment number - auto generated by the system.",
            "nullable": true
          },
          "Customer": {
            "description": "The customer the payment was received from.",
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerRef"
              }
            ]
          },
          "PaymentMethod": {
            "description": "Payment method used for the payment. These are non-processing payment methods. Either PaymentMethod or PaymentProcessingMethod is required.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "PaymentProcessingMethod": {
            "description": "Payment processing method used for the payment. Actual payment processing will be done. PaymentProfile is required. Either PaymentMethod or PaymentProcessingMethod is required.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "PaymentProfile": {
            "description": "Payment profile used for the payment. Required when PaymentProcessingMethod is selected.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "TxnDate": {
            "type": "string",
            "description": "Date the payment is being made.",
            "format": "date-time",
            "minLength": 1
          },
          "ReceivedFrom": {
            "description": "The contact person the payment was received from.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "ReferenceNumber": {
            "type": "string",
            "description": "Reference number for the payment received.",
            "minLength": 1
          },
          "Notes": {
            "type": "string",
            "description": "Deprecated. Use Memo instead. This property is kept for backward compatibility and returns the value of Memo.\nWhen saving, the value is stored in Memo. If both Notes and Memo are provided, Memo takes precedence.",
            "deprecated": true,
            "x-deprecatedMessage": "Use Memo instead. Notes is deprecated and will be removed in a future release.",
            "nullable": true
          },
          "Memo": {
            "type": "string",
            "description": "Memo to provide additional information for the payment.",
            "nullable": true
          },
          "Status": {
            "description": "Read-only. Payment will be created in Approved status when payment method is provided and it will be based on the payment processing results when payment processing method and payment profile is provided.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "PaymentAmount": {
            "type": "number",
            "description": "The amount of the payment.",
            "format": "decimal",
            "maximum": 922337203685477.5,
            "minimum": 0.01
          },
          "UnappliedAmount": {
            "type": "number",
            "description": "Read-only. The amount of the payment that has not been applied yet.",
            "format": "decimal"
          },
          "Currency": {
            "description": "Read-only. Currency Information.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency2"
              }
            ]
          },
          "BankGLAccount": {
            "description": "This value is only required if the payment directly needs to be deposited into a bank account as per accounting settings.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "ARGLAccount": {
            "description": "Accounts Receivable associated with the payment. Required when more than one AR account is available.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "IsDeposited": {
            "type": "boolean",
            "description": "Read-only. Indicates whether the payment has been deposited or not. Deposited payments cannot be voided unless they are undeposited."
          },
          "AutoApply": {
            "type": "boolean",
            "description": "Indicates whether the payment should be auto applied to open invoices. Will always apply to the oldest open invoice first."
          },
          "AppliedToInvoices": {
            "type": "array",
            "description": "The invoices the payment was applied to. This property is also designated to be used while creating a payment which will apply the payment to the specified invoices.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/AppliedToTxn"
            }
          },
          "AttachmentCount": {
            "type": "integer",
            "description": "Read-only. The number of attachments uploaded to the payment.",
            "format": "int32"
          },
          "DateCreated": {
            "type": "string",
            "description": "Read-only. The date and time (in company time zone) when the payment was created.",
            "format": "date-time"
          },
          "CreatedBy": {
            "description": "Read-only. The person who created the payment.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "Read-only. The date and time (in company time zone) when the payment was last updated.",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedBy": {
            "description": "Read-only. The person who last updated the payment.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Reviewed": {
            "type": "boolean",
            "description": "Read-only. Indicates whether the payment has been reviewed or not.",
            "nullable": true
          },
          "DateReviewed": {
            "type": "string",
            "description": "Read-only. The date and time (in company time zone) when the payment was reviewed.",
            "format": "date-time",
            "nullable": true
          },
          "ReviewedBy": {
            "description": "Read-only. The person who reviewed the payment.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "IsHistoricalNonposting": {
            "type": "boolean",
            "description": "Read-only. Indicates whether the payment is a historical non-posting transaction or not."
          }
        }
      },
      "SearchResultOfPaymentSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/PaymentSearchResult"
            }
          }
        }
      },
      "PaymentSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "ReferenceNumber": {
            "type": "string",
            "nullable": true
          },
          "PaymentDate": {
            "type": "string",
            "format": "date-time"
          },
          "Customer": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Status": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "PaymentAmount": {
            "type": "number",
            "format": "decimal"
          },
          "OpenBalance": {
            "type": "number",
            "format": "decimal"
          },
          "DateCreated": {
            "type": "string",
            "description": "The date and time (in company time zone) when the payment was created.",
            "format": "date-time"
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "The date and time (in company time zone) when the paymnt was last updated.",
            "format": "date-time",
            "nullable": true
          },
          "Currency": {
            "description": "Currency Information",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency2"
              }
            ]
          }
        }
      },
      "PaymentSearchParameters": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSearchParameters"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "ReferenceNumber": {
                "type": "string",
                "nullable": true
              },
              "CustomerId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "StatusChangedTo": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "StatusChangedDateRange": {
                "description": "The date and time (in company time zone) when the payment status was changed.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "DateCreatedRange": {
                "description": "The date and time (in company time zone) when the payment was created.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "LastUpdatedDateRange": {
                "description": "The date and time (in company time zone) when the payment was last updated.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "WithOpenBalanceOnly": {
                "type": "boolean",
                "nullable": true
              }
            }
          }
        ]
      },
      "ShippingMethods": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ShippingMethodId": {
            "type": "integer",
            "format": "int32"
          },
          "ShippingMethod": {
            "type": "string",
            "nullable": true
          },
          "TrackingURL": {
            "type": "string",
            "nullable": true
          },
          "Active": {
            "type": "boolean"
          }
        }
      },
      "SearchResultOfBillSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/BillSearchResult"
            }
          }
        }
      },
      "BillSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Number": {
            "type": "string",
            "nullable": true
          },
          "DueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Vendor": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Status": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Memo": {
            "type": "string",
            "nullable": true
          },
          "TotalAmount": {
            "type": "number",
            "format": "decimal"
          },
          "OpenBalance": {
            "type": "number",
            "format": "decimal"
          },
          "DateCreated": {
            "type": "string",
            "description": "The date and time (in company time zone) when the bill was created.",
            "format": "date-time"
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "The date and time (in company time zone) when the bill was last updated.",
            "format": "date-time",
            "nullable": true
          },
          "Currency": {
            "description": "Currency Information.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency2"
              }
            ]
          }
        }
      },
      "BillSearchParameters": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSearchParameters"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Number": {
                "type": "string",
                "nullable": true
              },
              "VendorId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "DueDateRange": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "StatusChangedTo": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "StatusChangedDateRange": {
                "description": "The date and time (in company time zone) when the bill status was changed.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "DateCreatedRange": {
                "description": "The date and time (in company time zone) when the bill was created.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "LastUpdatedDateRange": {
                "description": "The date and time (in company time zone) when the bill was last updated.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DateRange"
                  }
                ]
              },
              "WithOpenBalanceOnly": {
                "type": "boolean",
                "nullable": true
              }
            }
          }
        ]
      },
      "Invoice": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "TxnDate",
          "Customer"
        ],
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Unique id - auto generated by the system.",
            "format": "int32"
          },
          "TxnNumber": {
            "type": "string",
            "description": "Invoice Number - auto generated by the system if blank.",
            "nullable": true
          },
          "AllowDuplicateTxnNumber": {
            "type": "boolean",
            "description": "Set to true if you want to skip duplicate check for TxnNumber",
            "default": false
          },
          "TxnDate": {
            "type": "string",
            "description": "Required - must be after accounting closing date",
            "format": "date-time",
            "minLength": 1
          },
          "PaymentTerms": {
            "description": "Required if DueDate is not set - PaymentTerms Must Match DueDate if DueDate is set",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "DueDate": {
            "type": "string",
            "description": "Required if PaymentTerms is not set - PaymentTerms must match DueDate if PaymentTerms are set",
            "format": "date-time",
            "nullable": true
          },
          "Memo": {
            "type": "string",
            "description": "Memo for the Invoice",
            "nullable": true
          },
          "OpenBalance": {
            "type": "number",
            "description": "Read-only. The amount of the invoice that has not been paid yet.",
            "format": "decimal"
          },
          "ToBePrinted": {
            "type": "boolean",
            "description": "Whether this invoice is queued to be printed"
          },
          "Customer": {
            "description": "Customer associated with Invoice ",
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerRef"
              }
            ]
          },
          "BillToLocation": {
            "description": "Customer bill to location ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "ShipToLocation": {
            "description": "Customer ship to location - use to determine tax id if if none is provided",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "ShipVia": {
            "description": "Ship Via",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "TrackingNumber": {
            "type": "string",
            "description": "Shipment tracking number.",
            "nullable": true
          },
          "SalesRep": {
            "description": "Sales Rep for the Invoice ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Status": {
            "description": "Read-only - The status of the Invoice. Status codes are: Active=160, Voided=161. ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "GLCategory": {
            "description": "Invoice GLCategory - required if GLCategory tracking is on",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "ARAccount": {
            "description": "AR Account associated with Invoice ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Order": {
            "description": "Order associated with Invoice -- not required, but if it is provided, the order must exist in the system, and the customer on the order must match the customer on the invoice",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "TaxId": {
            "type": "integer",
            "description": "Tax Id - Autogenerated based on shipping location if not provided, if neither is provided, tenant default tax id is used",
            "format": "int32"
          },
          "Format": {
            "description": "Invoice Format - required if more than one available",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "DoNotChargeConvenienceFee": {
            "type": "boolean"
          },
          "SendInvoiceNotification": {
            "type": "boolean",
            "description": "If set to true, this will send out an email notification when invoice is being created to the invoice recipients set up for the customer. \nDefault is false.",
            "default": false
          },
          "LineItems": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/InvoiceLineItem"
            }
          },
          "AttachmentCount": {
            "type": "integer",
            "description": "Read-only - The number of attachments associated with this Invoice",
            "format": "int32"
          },
          "DateCreated": {
            "type": "string",
            "description": "Read-only - The date and time (in company time zone) when the invoice was created.",
            "format": "date-time"
          },
          "CreatedBy": {
            "description": "Read-only - employee who created the invoice",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "Read-only - The date and time (in company time zone) when the invoice was last updated",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedBy": {
            "description": "Read-only - employee who last updated the invoice",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Reviewed": {
            "type": "boolean",
            "description": "Read-only - whether invoice was reviewed"
          },
          "DateReviewed": {
            "type": "string",
            "description": "Read-only - The date and time (in company time zone) when the invoice was reviewed.",
            "format": "date-time",
            "nullable": true
          },
          "ReviewedBy": {
            "description": "Read-only - employee who reviewed the invoice",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Currency": {
            "description": "Read-only - Currency Information.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency2"
              }
            ]
          },
          "IsHistoricalNonposting": {
            "type": "boolean",
            "description": "Read-only - Indicates whether the invoice is a historical non-posting transaction or not."
          }
        }
      },
      "InvoiceLineItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "unique line item id - auto-generated by the system",
            "format": "int32"
          },
          "Item": {
            "description": "The item for this Line Item - required if GLAccount is not provided",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "GLAccount": {
            "description": "The GLAccount for this Line Item ",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Location": {
            "description": "The item inventory location. Required for Inventory and Manufactured item types when there are more than one locations.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Description": {
            "type": "string",
            "description": "line item description",
            "nullable": true
          },
          "Qty": {
            "type": "number",
            "description": "item quantity",
            "format": "decimal",
            "maximum": 9999999999998.0,
            "minimum": -9999999999998.0
          },
          "UnitOfMeasure": {
            "description": "Unit of Measure (only applicable if Unit of Measure tracking is enabled)\nId: must correspond to the Unit of Measure set configured at the item level\nName: (readonly) Unit of Measure Abbreviation\nExtendedName: (readonly) Unit of Measure full name",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/LongIdNameExtended"
              }
            ]
          },
          "Price": {
            "type": "number",
            "description": "item price",
            "format": "decimal",
            "maximum": 9999999999998.0,
            "minimum": -9999999999998.0
          },
          "ShippingPrice": {
            "type": "number",
            "description": "price to ship item",
            "format": "decimal",
            "maximum": 9999999999999998.0,
            "minimum": -9999999999999998.0
          },
          "Taxable": {
            "type": "boolean",
            "description": "whether or not item is taxable"
          },
          "FulfillmentDate": {
            "type": "string",
            "description": "date item was fulfilled",
            "format": "date-time",
            "nullable": true
          },
          "GLCategory": {
            "description": "required if category tracking is on",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "ItemGroupLineItems": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/InvoiceItemGroupLineItem"
            }
          },
          "CustomColumns": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomColumn"
            }
          }
        }
      },
      "InvoiceItemGroupLineItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Invoice Item Group Line Item Id",
            "format": "int32"
          },
          "Item": {
            "description": "Item",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Qty": {
            "type": "number",
            "description": "Quantity",
            "format": "decimal",
            "maximum": 9999999999998.0,
            "minimum": -9999999999998.0
          },
          "UnitOfMeasure": {
            "description": "Unit of Measure (only applicable if Unit of Measure tracking is enabled)\nId: must correspond to the Unit of Measure set configured at the item level\nName: (readonly) Unit of Measure Abbreviation\nExtendedName: (readonly) Unit of Measure full name",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/LongIdNameExtended"
              }
            ]
          },
          "Price": {
            "type": "number",
            "description": "Price",
            "format": "decimal",
            "maximum": 9999999999998.0,
            "minimum": -9999999999998.0
          },
          "GLCategory": {
            "description": "GL Category",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "Location": {
            "description": "The item inventory location. Required for Inventory and Manufactured item types when there are more than one locations.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          }
        }
      },
      "SearchResultOfInvoiceSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/InvoiceSearchResult"
            }
          }
        }
      },
      "InvoiceSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "TxnNumber": {
            "type": "string",
            "nullable": true
          },
          "Customer": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNamePair"
              }
            ]
          },
          "DueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "InvoiceTotal": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "OpenBalance": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "Memo": {
            "type": "string",
            "nullable": true
          },
          "DateCreated": {
            "type": "string",
            "description": "The date and time (in company time zone) when the invoice was created.",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdatedDate": {
            "type": "string",
            "description": "The date and time (in company time zone) when the invoice was last updated.",
            "format": "date-time",
            "nullable": true
          },
          "Currency": {
            "description": "Currency Information.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency2"
              }
            ]
          }
        }
      },
      "InvoiceSearchParameters": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSearchParameters"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "TxnNumber": {
                "type": "string",
                "nullable": true
              },
              "CustomerId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "DateCreatedFrom": {
                "type": "string",
                "description": "The date and time (in company time zone) when the invoice was created.",
                "format": "date-time",
                "nullable": true
              },
              "DateCreatedTo": {
                "type": "string",
                "description": "The date and time (in company time zone) when the invoice was last updated.",
                "format": "date-time",
                "nullable": true
              },
              "DueDateFrom": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "DueDateTo": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "LastUpdatedDateFrom": {
                "type": "string",
                "description": "The date and time (in company time zone) when the invoice was last updated.",
                "format": "date-time",
                "nullable": true
              },
              "LastUpdatedDateTo": {
                "type": "string",
                "description": "The date and time (in company time zone) when the invoice was last updated.",
                "format": "date-time",
                "nullable": true
              },
              "WithOpenBalanceOnly": {
                "type": "boolean",
                "nullable": true
              }
            }
          }
        ]
      }
    },
    "securitySchemes": {
      "oauth2": {
        "type": "oauth2",
        "description": "Client Secret",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://api.striven.com/accesstoken"
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Appointments",
      "description": "APIs to manage appointments."
    },
    {
      "name": "Assignment Categories",
      "description": "Assignment Categories Api"
    },
    {
      "name": "Bill Credits",
      "description": "APIs to search, create and update bill credits."
    },
    {
      "name": "Bill Payment CC Charges",
      "description": "APIs to search, create and update bill payment cc charges."
    },
    {
      "name": "Bill Payment Checks",
      "description": "APIs to search, create and update tasks."
    },
    {
      "name": "Bills",
      "description": "APIs to search, create and update bills."
    },
    {
      "name": "Categories",
      "description": "APIs to pull categories"
    },
    {
      "name": "Classes",
      "description": "Gets all the classes."
    },
    {
      "name": "Company",
      "description": "APIs to pull company Information"
    },
    {
      "name": "Company Locations",
      "description": "API's to search company locations"
    },
    {
      "name": "Contacts",
      "description": "APIs to search, create and update contacts"
    },
    {
      "name": "Credit Memos",
      "description": "APIs for searching Credit Memo and getting Credit Memo Details"
    },
    {
      "name": "Custom List",
      "description": "Gets items of a custom list in the system"
    },
    {
      "name": "Custom Reports",
      "description": "APIs for custom reports."
    },
    {
      "name": "Customer Assets",
      "description": "APIs for customer assets."
    },
    {
      "name": "Customer Locations",
      "description": "APIs to search customer locations"
    },
    {
      "name": "Customers",
      "description": "APIs to search, create and update customers"
    },
    {
      "name": "Employees",
      "description": "API to search employees"
    },
    {
      "name": "Formats",
      "description": "APIs to pull formats"
    },
    {
      "name": "GL Accounts",
      "description": "APIs for GL Accounts."
    },
    {
      "name": "GL Categories",
      "description": "APIs for GL Categories."
    },
    {
      "name": "Industries",
      "description": "APIs for industries."
    },
    {
      "name": "Inventory Adjustments",
      "description": "APIs to adjust inventory"
    },
    {
      "name": "Inventory Locations",
      "description": "APIs for inventory locations."
    },
    {
      "name": "Invoices",
      "description": "APIs for searching Invoices and getting Invoice Details"
    },
    {
      "name": "Item Builds",
      "description": "APIs to manage item builds."
    },
    {
      "name": "Item Types",
      "description": "APIs for item types."
    },
    {
      "name": "Items",
      "description": "APIs to manage items."
    },
    {
      "name": "Journal Entries",
      "description": "APIs to manage Journal Entries."
    },
    {
      "name": "Opportunities",
      "description": "APIs to search and create opportunities"
    },
    {
      "name": "Payment Methods",
      "description": "API to search payment methods."
    },
    {
      "name": "Payment Processing Methods",
      "description": "API to search payment processing methods."
    },
    {
      "name": "Payment Terms",
      "description": "APIs for payment terms."
    },
    {
      "name": "Payments",
      "description": "APIs to search, create and update payments."
    },
    {
      "name": "Pools",
      "description": "API to search pools"
    },
    {
      "name": "Projects",
      "description": "APIs to search, create and update Projects."
    },
    {
      "name": "Projects",
      "description": "APIs for searching projects, getting project details. Also available are API's to upload and download attachment for a given project hub."
    },
    {
      "name": "Purchase Order Types",
      "description": "APIs for purchase order types."
    },
    {
      "name": "Purchase Orders",
      "description": "APIs for searching Purchase Order, getting PO Details, notes, attachments. Also available are API's to download an attachment for a given Purchase Order."
    },
    {
      "name": "Referral Sources",
      "description": "APIs for referral sources."
    },
    {
      "name": "Sales Order Types",
      "description": "APIs for sales order types."
    },
    {
      "name": "Sales Orders",
      "description": "APIs to search, create and update sales orders."
    },
    {
      "name": "Shipping Methods",
      "description": "Gets a list of shipping methods available in the system"
    },
    {
      "name": "Tasks",
      "description": "APIs to search, create and update tasks."
    },
    {
      "name": "Tasks",
      "description": "APIs for searching Tasks, creating tasks, getting task details, notes, attachments by TaskID. Also available are API's to upload and download attachment for a given task."
    },
    {
      "name": "Unit Of Measure Sets",
      "description": "APIs for Unit Of Measure Sets"
    },
    {
      "name": "Vendor Locations",
      "description": "APIs to search vendor locations"
    },
    {
      "name": "Vendors",
      "description": "APIs to search, create and update vendors"
    }
  ]
}