{
  "openapi": "3.0.4",
  "info": {
    "title": "D-Tools Cloud API",
    "description": "API to integrate with the D-Tools Cloud application.",
    "termsOfService": "https://www.d-tools.com/d-tools-software-terms-of-services",
    "contact": {
      "name": "api@d-toolshelp.com",
      "email": "api@d-toolshelp.com"
    },
    "license": {
      "name": "License Agreement",
      "url": "https://www.d-tools.com/license-agreement"
    },
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://dtcloudapi.d-tools.cloud"
    }
  ],
  "paths": {
    "/api/v1/ChangeOrders/GetChangeOrders": {
      "get": {
        "tags": [
          "ChangeOrders"
        ],
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DTools.Cloud.Data.ChangeOrderLite"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DTools.Cloud.Data.ChangeOrderLite"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/ChangeOrders/GetChangeOrder": {
      "get": {
        "tags": [
          "ChangeOrders"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.ChangeOrderDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.ChangeOrderDetail"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Clients/GetClients": {
      "get": {
        "tags": [
          "Clients"
        ],
        "parameters": [
          {
            "name": "types",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "owners",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "fromCreatedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toCreatedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "fromModifiedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toModifiedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "includeInactive",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "includeTotalCount",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.GetClientsResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.GetClientsResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Clients/GetClient": {
      "get": {
        "tags": [
          "Clients"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.ClientDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.ClientDetail"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Clients/CreateClient": {
      "post": {
        "tags": [
          "Clients"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/DTools.Cloud.Data.Client"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DTools.Cloud.Data.Client"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DTools.Cloud.Data.Client"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DTools.Cloud.Data.Client"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Clients/UpdateClient": {
      "put": {
        "tags": [
          "Clients"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/DTools.Cloud.Data.Client"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DTools.Cloud.Data.Client"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DTools.Cloud.Data.Client"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DTools.Cloud.Data.Client"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Files/GetFile": {
      "get": {
        "tags": [
          "Files"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.FileDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.FileDetail"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Opportunities/GetOpportunities": {
      "get": {
        "tags": [
          "Opportunities"
        ],
        "parameters": [
          {
            "name": "types",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "clientIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "name": "stageGroups",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "stages",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "priorities",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "owners",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "fromEstimatedCloseDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toEstimatedCloseDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "fromActualCloseDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toActualCloseDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "fromCreatedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toCreatedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "fromModifiedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toModifiedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "includeArchived",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "includeTotalCount",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.GetOpportunitiesResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.GetOpportunitiesResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Opportunities/GetOpportunity": {
      "get": {
        "tags": [
          "Opportunities"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.OpportunityDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.OpportunityDetail"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Opportunities/CreateOpportunity": {
      "post": {
        "tags": [
          "Opportunities"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/DTools.Cloud.Data.NewOpportunity"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DTools.Cloud.Data.NewOpportunity"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DTools.Cloud.Data.NewOpportunity"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DTools.Cloud.Data.NewOpportunity"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Opportunities/UpdateOpportunity": {
      "put": {
        "tags": [
          "Opportunities"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/DTools.Cloud.Data.UpdateOpportunity"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DTools.Cloud.Data.UpdateOpportunity"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DTools.Cloud.Data.UpdateOpportunity"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DTools.Cloud.Data.UpdateOpportunity"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Products/GetProducts": {
      "get": {
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "brands",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "categories",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "suppliers",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "fromCreatedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toCreatedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "fromModifiedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toModifiedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "stockItemsOnly",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "includeInactive",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "includeTotalCount",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.GetProductsResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.GetProductsResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Products/GetProduct": {
      "get": {
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.ProductDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.ProductDetail"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Products/UpdateProductPrices": {
      "put": {
        "tags": [
          "Products"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.ProductPrice"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.ProductPrice"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.ProductPrice"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.ProductPrice"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Products/UpdateProductBarcodes": {
      "put": {
        "tags": [
          "Products"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.ProductBarcode"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.ProductBarcode"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.ProductBarcode"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.ProductBarcode"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Products/UpdateProductStatuses": {
      "put": {
        "tags": [
          "Products"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.ProductStatus"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.ProductStatus"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.ProductStatus"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.ProductStatus"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Projects/GetProjects": {
      "get": {
        "tags": [
          "Projects"
        ],
        "parameters": [
          {
            "name": "clientIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "name": "stageGroups",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "stages",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "priorities",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "projectManagers",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "fromCompletedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toCompletedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "fromCreatedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toCreatedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "fromModifiedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toModifiedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "includeArchived",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "includeTotalCount",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.GetProjectsResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.GetProjectsResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Projects/GetProject": {
      "get": {
        "tags": [
          "Projects"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.ProjectDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.ProjectDetail"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Projects/UpdateProject": {
      "put": {
        "tags": [
          "Projects"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/DTools.Cloud.Data.UpdateProject"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DTools.Cloud.Data.UpdateProject"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DTools.Cloud.Data.UpdateProject"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DTools.Cloud.Data.UpdateProject"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/PurchaseOrders/GetPurchaseOrders": {
      "get": {
        "tags": [
          "PurchaseOrders"
        ],
        "parameters": [
          {
            "name": "suppliers",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "projectIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "name": "statuses",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "fromOrderedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toOrderedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "fromReceivedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toReceivedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "fromCreatedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toCreatedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "fromModifiedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toModifiedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "includeArchived",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "includeTotalCount",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.GetPurchaseOrdersResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.GetPurchaseOrdersResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/PurchaseOrders/GetPurchaseOrder": {
      "get": {
        "tags": [
          "PurchaseOrders"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.PurchaseOrderDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.PurchaseOrderDetail"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Quotes/GetQuotes": {
      "get": {
        "tags": [
          "Quotes"
        ],
        "parameters": [
          {
            "name": "opportunityId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DTools.Cloud.Data.QuoteLite"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DTools.Cloud.Data.QuoteLite"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Quotes/GetQuote": {
      "get": {
        "tags": [
          "Quotes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.QuoteDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.QuoteDetail"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/ServiceContracts/GetServiceContracts": {
      "get": {
        "tags": [
          "ServiceContracts"
        ],
        "parameters": [
          {
            "name": "clientIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "name": "projectIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "name": "fromStartDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toStartDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "fromEndDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toEndDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "fromPaymentDueDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toPaymentDueDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "fromCanceledDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toCanceledDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "fromCreatedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toCreatedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "fromModifiedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toModifiedDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "includeTotalCount",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.GetServiceContractsResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.GetServiceContractsResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/ServiceContracts/GetServiceContract": {
      "get": {
        "tags": [
          "ServiceContracts"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.ServiceContractDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.ServiceContractDetail"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/TimeEntries/GetTimeEntries": {
      "get": {
        "tags": [
          "TimeEntries"
        ],
        "parameters": [
          {
            "name": "types",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "resources",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "fromDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "clientIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "name": "projectIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "name": "serviceCallIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "name": "laborTypes",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "overtimesOnly",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "includeArchived",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "includeTotalCount",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.GetTimeEntriesResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DTools.Cloud.Data.GetTimeEntriesResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "DTools.Cloud.Data.Address": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "addressLine1": {
            "type": "string",
            "nullable": true
          },
          "addressLine2": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          },
          "postalCode": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.AddressDetail": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "addressLine1": {
            "type": "string",
            "nullable": true
          },
          "addressLine2": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          },
          "postalCode": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ChangeOrderAdjustment": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "isPercent": {
            "type": "boolean"
          },
          "percent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "isTaxable": {
            "type": "boolean"
          },
          "taxId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "applyTo": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ChangeOrderDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "projectId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "integer",
            "format": "int32"
          },
          "type": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "systemState": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "state": {
            "type": "string",
            "nullable": true
          },
          "price": {
            "type": "number",
            "format": "double"
          },
          "isIgnoreItemLaborItems": {
            "type": "boolean"
          },
          "isAddItemsAsNonBillable": {
            "type": "boolean"
          },
          "isExemptFromTax": {
            "type": "boolean"
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedDate": {
            "type": "string",
            "format": "date-time"
          },
          "scopeOfWork": {
            "type": "string",
            "nullable": true
          },
          "locations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ChangeOrderLocation"
            },
            "nullable": true
          },
          "systems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ChangeOrderSystem"
            },
            "nullable": true
          },
          "phases": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ChangeOrderPhase"
            },
            "nullable": true
          },
          "laborTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ChangeOrderLaborType"
            },
            "nullable": true
          },
          "lengths": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ChangeOrderLength"
            },
            "nullable": true
          },
          "discounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ChangeOrderDiscount"
            },
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ChangeOrderItem"
            },
            "nullable": true
          },
          "adjustments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ChangeOrderAdjustment"
            },
            "nullable": true
          },
          "taxSettings": {
            "$ref": "#/components/schemas/DTools.Cloud.Data.ChangeOrderTaxSettings"
          },
          "taxes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ChangeOrderTax"
            },
            "nullable": true
          },
          "paymentTerms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ChangeOrderPaymentTerm"
            },
            "nullable": true
          },
          "payments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ChangeOrderPayment"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ChangeOrderDiscount": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "isRange": {
            "type": "boolean"
          },
          "isPercent": {
            "type": "boolean"
          },
          "percent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maximumPercent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maximumAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ChangeOrderItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "catalogId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "allowanceType": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "packageType": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "laborTypeId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "brand": {
            "type": "string",
            "nullable": true
          },
          "model": {
            "type": "string",
            "nullable": true
          },
          "partNumber": {
            "type": "string",
            "nullable": true
          },
          "shortDescription": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "category": {
            "type": "string",
            "nullable": true
          },
          "imageUrl": {
            "type": "string",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "isLengthBased": {
            "type": "boolean"
          },
          "lengthId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "length": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isIgnorePackageItemLaborItems": {
            "type": "boolean"
          },
          "msrp": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "unitCost": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "unitPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "margin": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "markup": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "costPerLength": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "pricePerLength": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "discountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "discount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "unitLaborTime": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "unitLaborPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "isBillable": {
            "type": "boolean"
          },
          "isTaxable": {
            "type": "boolean"
          },
          "taxId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "supplier": {
            "type": "string",
            "nullable": true
          },
          "locationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "systemId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "phaseId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "upcBarcode": {
            "type": "string",
            "nullable": true
          },
          "eanBarcode": {
            "type": "string",
            "nullable": true
          },
          "itfBarcode": {
            "type": "string",
            "nullable": true
          },
          "isClientSupplied": {
            "type": "boolean"
          },
          "orderStatus": {
            "type": "string",
            "nullable": true
          },
          "installStatus": {
            "type": "string",
            "nullable": true
          },
          "parentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "packageId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "changeType": {
            "type": "string",
            "nullable": true
          },
          "laborItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ChangeOrderItemLaborItem"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ChangeOrderItemLaborItem": {
        "type": "object",
        "properties": {
          "laborTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "time": {
            "type": "integer",
            "format": "int32"
          },
          "price": {
            "type": "number",
            "format": "double"
          },
          "timePerLength": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "pricePerLength": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "phaseId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isBillable": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ChangeOrderLaborType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "catalogId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "shortDescription": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "hourlyCost": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "hourlyPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "margin": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "markup": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "difficultyFactor": {
            "type": "number",
            "format": "double"
          },
          "totalTimeInSeconds": {
            "type": "integer",
            "format": "int64"
          },
          "isTaxable": {
            "type": "boolean"
          },
          "taxId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ChangeOrderLength": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "length": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ChangeOrderLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "integer",
            "format": "int32"
          },
          "type": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "systemState": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "state": {
            "type": "string",
            "nullable": true
          },
          "price": {
            "type": "number",
            "format": "double"
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedDate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ChangeOrderLocation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "fullName": {
            "type": "string",
            "nullable": true
          },
          "parentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ChangeOrderPayment": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "integrationNumber": {
            "type": "string",
            "nullable": true
          },
          "billingDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "terms": {
            "type": "string",
            "nullable": true
          },
          "termsDaysDue": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "taxAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "totalAmount": {
            "type": "number",
            "format": "double"
          },
          "paidAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "convenienceFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "paidDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "paymentRequestMessage": {
            "type": "string",
            "nullable": true
          },
          "isDisplayPaymentSchedule": {
            "type": "boolean"
          },
          "isAutoGenerated": {
            "type": "boolean"
          },
          "isAutoPaid": {
            "type": "boolean"
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ChangeOrderPaymentTerm": {
        "type": "object",
        "properties": {
          "paymentTermId": {
            "type": "string",
            "format": "uuid"
          },
          "paymentTerm": {
            "type": "string",
            "nullable": true
          },
          "isPercent": {
            "type": "boolean"
          },
          "percent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "billingDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "status": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ChangeOrderPhase": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ChangeOrderSystem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ChangeOrderTax": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "isGroup": {
            "type": "boolean"
          },
          "childIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "rate": {
            "type": "number",
            "format": "double"
          },
          "applyOn": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "isPayByClient": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ChangeOrderTaxSettings": {
        "type": "object",
        "properties": {
          "isItemLevelTax": {
            "type": "boolean"
          },
          "taxId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "laborTaxId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.Client": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "secondaryEmail": {
            "type": "string",
            "nullable": true
          },
          "mobile": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "fax": {
            "type": "string",
            "nullable": true
          },
          "website": {
            "type": "string",
            "nullable": true
          },
          "owner": {
            "type": "string",
            "nullable": true
          },
          "isExemptFromTax": {
            "type": "boolean",
            "nullable": true
          },
          "isActive": {
            "type": "boolean",
            "nullable": true
          },
          "billingAddress": {
            "$ref": "#/components/schemas/DTools.Cloud.Data.Address"
          },
          "siteAddresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.Address"
            },
            "nullable": true
          },
          "contacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.Contact"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ClientDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "secondaryEmail": {
            "type": "string",
            "nullable": true
          },
          "mobile": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "fax": {
            "type": "string",
            "nullable": true
          },
          "website": {
            "type": "string",
            "nullable": true
          },
          "owner": {
            "type": "string",
            "nullable": true
          },
          "isExemptFromTax": {
            "type": "boolean"
          },
          "hasSubaccounts": {
            "type": "boolean"
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedDate": {
            "type": "string",
            "format": "date-time"
          },
          "isActive": {
            "type": "boolean"
          },
          "billingAddress": {
            "$ref": "#/components/schemas/DTools.Cloud.Data.AddressDetail"
          },
          "siteAddresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.AddressDetail"
            },
            "nullable": true
          },
          "contacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ContactDetail"
            },
            "nullable": true
          },
          "files": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.FileInfo"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ClientLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "contactName": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "mobile": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "owner": {
            "type": "string",
            "nullable": true
          },
          "hasSubaccounts": {
            "type": "boolean"
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedDate": {
            "type": "string",
            "format": "date-time"
          },
          "isActive": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.Contact": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "company": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "secondaryEmail": {
            "type": "string",
            "nullable": true
          },
          "mobile": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "fax": {
            "type": "string",
            "nullable": true
          },
          "addressLine1": {
            "type": "string",
            "nullable": true
          },
          "addressLine2": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          },
          "postalCode": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean",
            "nullable": true
          },
          "isPrimary": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ContactDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "company": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "secondaryEmail": {
            "type": "string",
            "nullable": true
          },
          "mobile": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "fax": {
            "type": "string",
            "nullable": true
          },
          "addressLine1": {
            "type": "string",
            "nullable": true
          },
          "addressLine2": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          },
          "postalCode": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean"
          },
          "isPrimary": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.FileDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "parentObjectType": {
            "type": "string",
            "nullable": true
          },
          "parentObjectId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.FileInfo": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "url": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.GetClientsResult": {
        "type": "object",
        "properties": {
          "clients": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ClientLite"
            },
            "nullable": true
          },
          "totalClients": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.GetOpportunitiesResult": {
        "type": "object",
        "properties": {
          "opportunities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.OpportunityLite"
            },
            "nullable": true
          },
          "totalOpportunities": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.GetProductsResult": {
        "type": "object",
        "properties": {
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ProductDetail"
            },
            "nullable": true
          },
          "totalProducts": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.GetProjectsResult": {
        "type": "object",
        "properties": {
          "projects": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ProjectLite"
            },
            "nullable": true
          },
          "totalProjects": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.GetPurchaseOrdersResult": {
        "type": "object",
        "properties": {
          "purchaseOrders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.PurchaseOrderLite"
            },
            "nullable": true
          },
          "totalPurchaseOrders": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.GetServiceContractsResult": {
        "type": "object",
        "properties": {
          "serviceContracts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ServiceContractLite"
            },
            "nullable": true
          },
          "totalServiceContracts": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.GetTimeEntriesResult": {
        "type": "object",
        "properties": {
          "timeEntries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.TimeEntryDetail"
            },
            "nullable": true
          },
          "totalTimeEntries": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.NewOpportunity": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "associatedProjectId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "clientId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "clientType": {
            "type": "string",
            "nullable": true
          },
          "clientName": {
            "type": "string",
            "nullable": true
          },
          "clientEmail": {
            "type": "string",
            "nullable": true
          },
          "clientPhone": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "buildingType": {
            "type": "string",
            "nullable": true
          },
          "marketSector": {
            "type": "string",
            "nullable": true
          },
          "projectType": {
            "type": "string",
            "nullable": true
          },
          "quoteType": {
            "type": "string",
            "nullable": true
          },
          "quoteTemplate": {
            "type": "string",
            "nullable": true
          },
          "priority": {
            "type": "string",
            "nullable": true
          },
          "budget": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "owner": {
            "type": "string",
            "nullable": true
          },
          "projectArea": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fulfillmentLocation": {
            "type": "string",
            "nullable": true
          },
          "estimatedCloseDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "leadSource": {
            "type": "string",
            "nullable": true
          },
          "billingAddress": {
            "$ref": "#/components/schemas/DTools.Cloud.Data.Address"
          },
          "siteAddress": {
            "$ref": "#/components/schemas/DTools.Cloud.Data.Address"
          },
          "contacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.Contact"
            },
            "nullable": true
          },
          "resources": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.OpportunityDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "clientId": {
            "type": "string",
            "format": "uuid"
          },
          "clientName": {
            "type": "string",
            "nullable": true
          },
          "clientNumber": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "buildingType": {
            "type": "string",
            "nullable": true
          },
          "marketSector": {
            "type": "string",
            "nullable": true
          },
          "projectType": {
            "type": "string",
            "nullable": true
          },
          "quoteType": {
            "type": "string",
            "nullable": true
          },
          "quoteTemplate": {
            "type": "string",
            "nullable": true
          },
          "systemState": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "stageGroup": {
            "type": "string",
            "nullable": true
          },
          "stage": {
            "type": "string",
            "nullable": true
          },
          "priority": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "price": {
            "type": "number",
            "format": "double"
          },
          "servicePrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "budget": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "probability": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "owner": {
            "type": "string",
            "nullable": true
          },
          "projectArea": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fulfillmentLocation": {
            "type": "string",
            "nullable": true
          },
          "isExemptFromTax": {
            "type": "boolean"
          },
          "estimatedCloseDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "actualCloseDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "estimatedProjectStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "estimatedProjectEndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "leadSource": {
            "type": "string",
            "nullable": true
          },
          "lostReason": {
            "type": "string",
            "nullable": true
          },
          "lostDescription": {
            "type": "string",
            "nullable": true
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedDate": {
            "type": "string",
            "format": "date-time"
          },
          "isArchived": {
            "type": "boolean"
          },
          "billingAddress": {
            "$ref": "#/components/schemas/DTools.Cloud.Data.AddressDetail"
          },
          "siteAddress": {
            "$ref": "#/components/schemas/DTools.Cloud.Data.AddressDetail"
          },
          "contacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ContactDetail"
            },
            "nullable": true
          },
          "resources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ResourceDetail"
            },
            "nullable": true
          },
          "files": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.FileInfo"
            },
            "nullable": true
          },
          "quoteIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.OpportunityLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "clientId": {
            "type": "string",
            "format": "uuid"
          },
          "clientName": {
            "type": "string",
            "nullable": true
          },
          "clientNumber": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "systemState": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "stageGroup": {
            "type": "string",
            "nullable": true
          },
          "stage": {
            "type": "string",
            "nullable": true
          },
          "priority": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "price": {
            "type": "number",
            "format": "double"
          },
          "servicePrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "budget": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "probability": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "owner": {
            "type": "string",
            "nullable": true
          },
          "estimatedCloseDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "actualCloseDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedDate": {
            "type": "string",
            "format": "date-time"
          },
          "isArchived": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ProductAccessory": {
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "laborTime": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "laborPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "includeOption": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "isBillable": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ProductBarcode": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "upcBarcode": {
            "type": "string",
            "nullable": true
          },
          "eanBarcode": {
            "type": "string",
            "nullable": true
          },
          "itfBarcode": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ProductDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "brand": {
            "type": "string",
            "nullable": true
          },
          "model": {
            "type": "string",
            "nullable": true
          },
          "partNumber": {
            "type": "string",
            "nullable": true
          },
          "shortDescription": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "category": {
            "type": "string",
            "nullable": true
          },
          "keywords": {
            "type": "string",
            "nullable": true
          },
          "defaultQuantity": {
            "type": "integer",
            "format": "int32"
          },
          "sellUnit": {
            "type": "string",
            "nullable": true
          },
          "isLengthBased": {
            "type": "boolean"
          },
          "lengthName": {
            "type": "string",
            "nullable": true
          },
          "length": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "msrp": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "unitCost": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "unitPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "margin": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "markup": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "costPerLength": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "pricePerLength": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "isTaxable": {
            "type": "boolean"
          },
          "tax": {
            "type": "string",
            "nullable": true
          },
          "supplier": {
            "type": "string",
            "nullable": true
          },
          "system": {
            "type": "string",
            "nullable": true
          },
          "phase": {
            "type": "string",
            "nullable": true
          },
          "upcBarcode": {
            "type": "string",
            "nullable": true
          },
          "eanBarcode": {
            "type": "string",
            "nullable": true
          },
          "itfBarcode": {
            "type": "string",
            "nullable": true
          },
          "isStockItem": {
            "type": "boolean"
          },
          "quantityOnHand": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "quantityAllocated": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "quantityAvailable": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "quantityOnOrder": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "quantityNeeded": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "minimumStockLevel": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "reorderLevel": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isDiscontinued": {
            "type": "boolean"
          },
          "isClientSupplied": {
            "type": "boolean"
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedDate": {
            "type": "string",
            "format": "date-time"
          },
          "isActive": {
            "type": "boolean"
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ProductImage"
            },
            "nullable": true
          },
          "specifications": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ProductSpecification"
            },
            "nullable": true
          },
          "laborItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ProductLaborItem"
            },
            "nullable": true
          },
          "accessories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ProductAccessory"
            },
            "nullable": true
          },
          "subscriptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ProductSubscription"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ProductImage": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "isDefault": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ProductLaborItem": {
        "type": "object",
        "properties": {
          "laborType": {
            "type": "string",
            "nullable": true
          },
          "time": {
            "type": "integer",
            "format": "int32"
          },
          "price": {
            "type": "number",
            "format": "double"
          },
          "timePerLength": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "pricePerLength": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "phase": {
            "type": "string",
            "nullable": true
          },
          "isBillable": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ProductPrice": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "msrp": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "unitCost": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "unitPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ProductSpecification": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ProductStatus": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "isDiscontinued": {
            "type": "boolean",
            "nullable": true
          },
          "isActive": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ProductSubscription": {
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ProjectAdjustment": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "isPercent": {
            "type": "boolean"
          },
          "percent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "isTaxable": {
            "type": "boolean"
          },
          "taxId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "applyTo": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ProjectDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "clientId": {
            "type": "string",
            "format": "uuid"
          },
          "clientName": {
            "type": "string",
            "nullable": true
          },
          "clientNumber": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "systemState": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "stageGroup": {
            "type": "string",
            "nullable": true
          },
          "stage": {
            "type": "string",
            "nullable": true
          },
          "priority": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "price": {
            "type": "number",
            "format": "double"
          },
          "budget": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "salesperson": {
            "type": "string",
            "nullable": true
          },
          "projectManager": {
            "type": "string",
            "nullable": true
          },
          "projectArea": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fulfillmentLocation": {
            "type": "string",
            "nullable": true
          },
          "isIgnoreItemLaborItems": {
            "type": "boolean"
          },
          "isExemptFromTax": {
            "type": "boolean"
          },
          "opportunityWonDate": {
            "type": "string",
            "format": "date-time"
          },
          "startDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "completedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedDate": {
            "type": "string",
            "format": "date-time"
          },
          "isArchived": {
            "type": "boolean"
          },
          "scopeOfWork": {
            "type": "string",
            "nullable": true
          },
          "billingAddress": {
            "$ref": "#/components/schemas/DTools.Cloud.Data.AddressDetail"
          },
          "siteAddress": {
            "$ref": "#/components/schemas/DTools.Cloud.Data.AddressDetail"
          },
          "contacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ContactDetail"
            },
            "nullable": true
          },
          "resources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ResourceDetail"
            },
            "nullable": true
          },
          "files": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.FileInfo"
            },
            "nullable": true
          },
          "planViews": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.FileInfo"
            },
            "nullable": true
          },
          "locations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ProjectLocation"
            },
            "nullable": true
          },
          "systems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ProjectSystem"
            },
            "nullable": true
          },
          "phases": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ProjectPhase"
            },
            "nullable": true
          },
          "laborTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ProjectLaborType"
            },
            "nullable": true
          },
          "lengths": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ProjectLength"
            },
            "nullable": true
          },
          "discounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ProjectDiscount"
            },
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ProjectItem"
            },
            "nullable": true
          },
          "adjustments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ProjectAdjustment"
            },
            "nullable": true
          },
          "taxSettings": {
            "$ref": "#/components/schemas/DTools.Cloud.Data.ProjectTaxSettings"
          },
          "taxes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ProjectTax"
            },
            "nullable": true
          },
          "paymentTerms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ProjectPaymentTerm"
            },
            "nullable": true
          },
          "payments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ProjectPayment"
            },
            "nullable": true
          },
          "changeOrderIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ProjectDiscount": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "isRange": {
            "type": "boolean"
          },
          "isPercent": {
            "type": "boolean"
          },
          "percent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maximumPercent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maximumAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ProjectItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "catalogId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "allowanceType": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "packageType": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "laborTypeId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "brand": {
            "type": "string",
            "nullable": true
          },
          "model": {
            "type": "string",
            "nullable": true
          },
          "partNumber": {
            "type": "string",
            "nullable": true
          },
          "shortDescription": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "category": {
            "type": "string",
            "nullable": true
          },
          "imageUrl": {
            "type": "string",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "isLengthBased": {
            "type": "boolean"
          },
          "lengthId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "length": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isIgnorePackageItemLaborItems": {
            "type": "boolean"
          },
          "msrp": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "unitCost": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "unitPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "margin": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "markup": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "costPerLength": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "pricePerLength": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "discountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "discount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "unitLaborTime": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "unitLaborPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "isBillable": {
            "type": "boolean"
          },
          "isTaxable": {
            "type": "boolean"
          },
          "taxId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "supplier": {
            "type": "string",
            "nullable": true
          },
          "locationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "systemId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "phaseId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "upcBarcode": {
            "type": "string",
            "nullable": true
          },
          "eanBarcode": {
            "type": "string",
            "nullable": true
          },
          "itfBarcode": {
            "type": "string",
            "nullable": true
          },
          "isClientSupplied": {
            "type": "boolean"
          },
          "orderStatus": {
            "type": "string",
            "nullable": true
          },
          "installStatus": {
            "type": "string",
            "nullable": true
          },
          "parentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "packageId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "laborItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ProjectItemLaborItem"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ProjectItemLaborItem": {
        "type": "object",
        "properties": {
          "laborTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "time": {
            "type": "integer",
            "format": "int32"
          },
          "price": {
            "type": "number",
            "format": "double"
          },
          "timePerLength": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "pricePerLength": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "phaseId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isBillable": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ProjectLaborType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "catalogId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "shortDescription": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "hourlyCost": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "hourlyPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "margin": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "markup": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "difficultyFactor": {
            "type": "number",
            "format": "double"
          },
          "totalTimeInSeconds": {
            "type": "integer",
            "format": "int64"
          },
          "isTaxable": {
            "type": "boolean"
          },
          "taxId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ProjectLength": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "length": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ProjectLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "clientId": {
            "type": "string",
            "format": "uuid"
          },
          "clientName": {
            "type": "string",
            "nullable": true
          },
          "clientNumber": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "systemState": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "stageGroup": {
            "type": "string",
            "nullable": true
          },
          "stage": {
            "type": "string",
            "nullable": true
          },
          "priority": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "price": {
            "type": "number",
            "format": "double"
          },
          "projectManager": {
            "type": "string",
            "nullable": true
          },
          "completedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedDate": {
            "type": "string",
            "format": "date-time"
          },
          "isArchived": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ProjectLocation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "fullName": {
            "type": "string",
            "nullable": true
          },
          "parentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ProjectPayment": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "integrationNumber": {
            "type": "string",
            "nullable": true
          },
          "billingDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "terms": {
            "type": "string",
            "nullable": true
          },
          "termsDaysDue": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "taxAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "totalAmount": {
            "type": "number",
            "format": "double"
          },
          "paidAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "convenienceFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "paidDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "paymentRequestMessage": {
            "type": "string",
            "nullable": true
          },
          "isDisplayPaymentSchedule": {
            "type": "boolean"
          },
          "isAutoGenerated": {
            "type": "boolean"
          },
          "isAutoPaid": {
            "type": "boolean"
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ProjectPaymentTerm": {
        "type": "object",
        "properties": {
          "paymentTermId": {
            "type": "string",
            "format": "uuid"
          },
          "paymentTerm": {
            "type": "string",
            "nullable": true
          },
          "isPercent": {
            "type": "boolean"
          },
          "percent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "billingDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "status": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ProjectPhase": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ProjectSystem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ProjectTax": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "isGroup": {
            "type": "boolean"
          },
          "childIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "rate": {
            "type": "number",
            "format": "double"
          },
          "applyOn": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "isPayByClient": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ProjectTaxSettings": {
        "type": "object",
        "properties": {
          "isItemLevelTax": {
            "type": "boolean"
          },
          "taxId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "laborTaxId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.PurchaseOrderDealerContact": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.PurchaseOrderDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "supplier": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "quoteNumber": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "productsCount": {
            "type": "integer",
            "format": "int32"
          },
          "total": {
            "type": "number",
            "format": "double"
          },
          "shipping": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "tax": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "supplierAddress": {
            "$ref": "#/components/schemas/DTools.Cloud.Data.AddressDetail"
          },
          "supplierContacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.PurchaseOrderSupplierContact"
            },
            "nullable": true
          },
          "accountNumber": {
            "type": "string",
            "nullable": true
          },
          "shipToName": {
            "type": "string",
            "nullable": true
          },
          "shippingAddress": {
            "$ref": "#/components/schemas/DTools.Cloud.Data.AddressDetail"
          },
          "shippingMethod": {
            "type": "string",
            "nullable": true
          },
          "attention": {
            "type": "string",
            "nullable": true
          },
          "noteToSupplier": {
            "type": "string",
            "nullable": true
          },
          "billingAddress": {
            "$ref": "#/components/schemas/DTools.Cloud.Data.AddressDetail"
          },
          "paymentMethod": {
            "type": "string",
            "nullable": true
          },
          "dealerContact": {
            "$ref": "#/components/schemas/DTools.Cloud.Data.PurchaseOrderDealerContact"
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "shipmentTrackingNumber": {
            "type": "string",
            "nullable": true
          },
          "orderedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "receivedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedDate": {
            "type": "string",
            "format": "date-time"
          },
          "isArchived": {
            "type": "boolean"
          },
          "files": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.FileInfo"
            },
            "nullable": true
          },
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.PurchaseOrderProduct"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.PurchaseOrderLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "supplier": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "productsCount": {
            "type": "integer",
            "format": "int32"
          },
          "total": {
            "type": "number",
            "format": "double"
          },
          "orderedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "receivedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedDate": {
            "type": "string",
            "format": "date-time"
          },
          "isArchived": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.PurchaseOrderProduct": {
        "type": "object",
        "properties": {
          "catalogId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "brand": {
            "type": "string",
            "nullable": true
          },
          "model": {
            "type": "string",
            "nullable": true
          },
          "partNumber": {
            "type": "string",
            "nullable": true
          },
          "supplierPartNumber": {
            "type": "string",
            "nullable": true
          },
          "upcBarcode": {
            "type": "string",
            "nullable": true
          },
          "eanBarcode": {
            "type": "string",
            "nullable": true
          },
          "itfBarcode": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "imageUrl": {
            "type": "string",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "receivedQuantity": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "unitCost": {
            "type": "number",
            "format": "double"
          },
          "etaDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "shipmentTrackingNumber": {
            "type": "string",
            "nullable": true
          },
          "projectId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "project": {
            "type": "string",
            "nullable": true
          },
          "projectNumber": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.PurchaseOrderSupplierContact": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "department": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "mobile": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "isPrimary": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.QuoteAdjustment": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "isPercent": {
            "type": "boolean"
          },
          "percent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "isTaxable": {
            "type": "boolean"
          },
          "taxId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "applyTo": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.QuoteAlternateSet": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "hasRecommendedItem": {
            "type": "boolean",
            "readOnly": true
          },
          "isKeepLaborItemsOnReplace": {
            "type": "boolean"
          },
          "isKeepAccessoriesOnReplace": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.QuoteDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "opportunityId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "version": {
            "type": "number",
            "format": "double"
          },
          "systemState": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "state": {
            "type": "string",
            "nullable": true
          },
          "price": {
            "type": "number",
            "format": "double"
          },
          "servicePrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "isIncludedInTotal": {
            "type": "boolean"
          },
          "projectArea": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fulfillmentLocation": {
            "type": "string",
            "nullable": true
          },
          "isIgnoreItemLaborItems": {
            "type": "boolean"
          },
          "isExemptFromTax": {
            "type": "boolean"
          },
          "isServiceQuote": {
            "type": "boolean"
          },
          "validUntilDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "acceptedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedDate": {
            "type": "string",
            "format": "date-time"
          },
          "scopeOfWork": {
            "type": "string",
            "nullable": true
          },
          "serviceContractDescription": {
            "type": "string",
            "nullable": true
          },
          "files": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.FileInfo"
            },
            "nullable": true
          },
          "planViews": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.FileInfo"
            },
            "nullable": true
          },
          "locations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.QuoteLocation"
            },
            "nullable": true
          },
          "systems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.QuoteSystem"
            },
            "nullable": true
          },
          "phases": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.QuotePhase"
            },
            "nullable": true
          },
          "laborTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.QuoteLaborType"
            },
            "nullable": true
          },
          "lengths": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.QuoteLength"
            },
            "nullable": true
          },
          "discounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.QuoteDiscount"
            },
            "nullable": true
          },
          "alternateSets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.QuoteAlternateSet"
            },
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.QuoteItem"
            },
            "nullable": true
          },
          "adjustments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.QuoteAdjustment"
            },
            "nullable": true
          },
          "taxSettings": {
            "$ref": "#/components/schemas/DTools.Cloud.Data.QuoteTaxSettings"
          },
          "taxes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.QuoteTax"
            },
            "nullable": true
          },
          "paymentTerms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.QuotePaymentTerm"
            },
            "nullable": true
          },
          "servicePlans": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.QuoteServicePlan"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.QuoteDiscount": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "isRange": {
            "type": "boolean"
          },
          "isPercent": {
            "type": "boolean"
          },
          "percent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maximumPercent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maximumAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.QuoteItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "catalogId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "allowanceType": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "packageType": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "laborTypeId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "brand": {
            "type": "string",
            "nullable": true
          },
          "model": {
            "type": "string",
            "nullable": true
          },
          "partNumber": {
            "type": "string",
            "nullable": true
          },
          "shortDescription": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "category": {
            "type": "string",
            "nullable": true
          },
          "imageUrl": {
            "type": "string",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "isLengthBased": {
            "type": "boolean"
          },
          "lengthId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "length": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isIgnorePackageItemLaborItems": {
            "type": "boolean"
          },
          "msrp": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "unitCost": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "unitPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "margin": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "markup": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "costPerLength": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "pricePerLength": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "discountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "discount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "unitLaborTime": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "unitLaborPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "isBillable": {
            "type": "boolean"
          },
          "isTaxable": {
            "type": "boolean"
          },
          "taxId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "supplier": {
            "type": "string",
            "nullable": true
          },
          "locationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "systemId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "phaseId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "upcBarcode": {
            "type": "string",
            "nullable": true
          },
          "eanBarcode": {
            "type": "string",
            "nullable": true
          },
          "itfBarcode": {
            "type": "string",
            "nullable": true
          },
          "alternateSetItemLabel": {
            "type": "string",
            "nullable": true
          },
          "alternateSetItemDescription": {
            "type": "string",
            "nullable": true
          },
          "optionalItemDescription": {
            "type": "string",
            "nullable": true
          },
          "isClientSupplied": {
            "type": "boolean"
          },
          "isRecommended": {
            "type": "boolean",
            "readOnly": true
          },
          "isOptional": {
            "type": "boolean"
          },
          "isOptionalRecommended": {
            "type": "boolean"
          },
          "parentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "packageId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "alternateSetId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "laborItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.QuoteItemLaborItem"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.QuoteItemLaborItem": {
        "type": "object",
        "properties": {
          "laborTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "time": {
            "type": "integer",
            "format": "int32"
          },
          "price": {
            "type": "number",
            "format": "double"
          },
          "timePerLength": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "pricePerLength": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "phaseId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isBillable": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.QuoteLaborType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "catalogId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "shortDescription": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "hourlyCost": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "hourlyPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "margin": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "markup": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "difficultyFactor": {
            "type": "number",
            "format": "double"
          },
          "totalTimeInSeconds": {
            "type": "integer",
            "format": "int64"
          },
          "isTaxable": {
            "type": "boolean"
          },
          "taxId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.QuoteLength": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "length": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.QuoteLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "version": {
            "type": "number",
            "format": "double"
          },
          "systemState": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "state": {
            "type": "string",
            "nullable": true
          },
          "price": {
            "type": "number",
            "format": "double"
          },
          "servicePrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "isIncludedInTotal": {
            "type": "boolean"
          },
          "isServiceQuote": {
            "type": "boolean"
          },
          "validUntilDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "acceptedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedDate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.QuoteLocation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "fullName": {
            "type": "string",
            "nullable": true
          },
          "parentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isOptional": {
            "type": "boolean"
          },
          "isOptionalRecommended": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.QuotePaymentTerm": {
        "type": "object",
        "properties": {
          "paymentTermId": {
            "type": "string",
            "format": "uuid"
          },
          "paymentTerm": {
            "type": "string",
            "nullable": true
          },
          "isPercent": {
            "type": "boolean"
          },
          "percent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "billingDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.QuotePhase": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.QuoteServicePlan": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "imageUrl": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "priceType": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "fixedPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "dynamicPriceFieldId": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "dynamicPricePercent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "priceInterval": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "pricePerMonth": {
            "type": "number",
            "format": "double"
          },
          "tax": {
            "type": "string",
            "nullable": true
          },
          "taxRate": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "length": {
            "type": "integer",
            "format": "int32"
          },
          "lengthDiscount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "billingFrequency": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "billingFrequencyDiscount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "estimatedStartDateType": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "estimatedStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "estimatedStartDateDays": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isClientAgreementRequired": {
            "type": "boolean"
          },
          "termsAndConditionsFileUrl": {
            "type": "string",
            "nullable": true
          },
          "termsAndConditionsText": {
            "type": "string",
            "nullable": true
          },
          "isRecommended": {
            "type": "boolean"
          },
          "isOptional": {
            "type": "boolean"
          },
          "isClientSelected": {
            "type": "boolean"
          },
          "isDeclined": {
            "type": "boolean"
          },
          "clusterId": {
            "type": "string",
            "format": "uuid"
          },
          "lengths": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.QuoteServicePlanLength"
            },
            "nullable": true
          },
          "billingFrequencies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.QuoteServicePlanBillingFrequency"
            },
            "nullable": true
          },
          "features": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.QuoteServicePlanFeature"
            },
            "nullable": true
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "files": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.FileInfo"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.QuoteServicePlanBillingFrequency": {
        "type": "object",
        "properties": {
          "billingFrequency": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "discount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "isSuggested": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.QuoteServicePlanFeature": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "price": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "priceInterval": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "includedServiceCallType": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "includedServiceCalls": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "hours": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isAdditionalService": {
            "type": "boolean"
          },
          "additionalServicePrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "additionalServicePriceInterval": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "serviceFrequency": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "afterHoursServiceType": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "productDiscount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "automaticPlanRenewalLength": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "automaticPlanRenewalPriceIncreasePercent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "includedSessions": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "sessionLengthInMinutes": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isAdditionalSupport": {
            "type": "boolean"
          },
          "additionalSupportPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "additionalSupportPriceInterval": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "displayText": {
            "type": "string",
            "nullable": true
          },
          "isShowInProposal": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.QuoteServicePlanLength": {
        "type": "object",
        "properties": {
          "months": {
            "type": "integer",
            "format": "int32"
          },
          "discount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "isSuggested": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.QuoteSystem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "isOptional": {
            "type": "boolean"
          },
          "isOptionalRecommended": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.QuoteTax": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "isGroup": {
            "type": "boolean"
          },
          "childIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "rate": {
            "type": "number",
            "format": "double"
          },
          "applyOn": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "isPayByClient": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.QuoteTaxSettings": {
        "type": "object",
        "properties": {
          "isItemLevelTax": {
            "type": "boolean"
          },
          "taxId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "laborTaxId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ResourceDetail": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ServiceContractDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "clientId": {
            "type": "string",
            "format": "uuid"
          },
          "clientName": {
            "type": "string",
            "nullable": true
          },
          "clientNumber": {
            "type": "string",
            "nullable": true
          },
          "projectId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "projectName": {
            "type": "string",
            "nullable": true
          },
          "projectNumber": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "imageUrl": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "estimatedStartDateType": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "estimatedStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "estimatedStartDateDays": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "priceType": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "fixedPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "dynamicPriceFieldId": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "dynamicPricePercent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "priceInterval": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "pricePerMonth": {
            "type": "number",
            "format": "double"
          },
          "taxRate": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "length": {
            "type": "integer",
            "format": "int32"
          },
          "lengthDiscount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "billingFrequency": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "billingFrequencyDiscount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "paymentTerms": {
            "type": "string",
            "nullable": true
          },
          "paymentTermsDaysDue": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isAutoGeneratePaymentRequests": {
            "type": "boolean"
          },
          "paymentDueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "canceledDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedDate": {
            "type": "string",
            "format": "date-time"
          },
          "isClientAgreementRequired": {
            "type": "boolean"
          },
          "termsAndConditionsFileUrl": {
            "type": "string",
            "nullable": true
          },
          "termsAndConditionsText": {
            "type": "string",
            "nullable": true
          },
          "features": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ServiceContractFeature"
            },
            "nullable": true
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "files": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.FileInfo"
            },
            "nullable": true
          },
          "paymentSchedules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ServiceContractPaymentSchedule"
            },
            "nullable": true
          },
          "payments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.ServiceContractPayment"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ServiceContractFeature": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "price": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "priceInterval": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "includedServiceCallType": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "includedServiceCalls": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "hours": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isAdditionalService": {
            "type": "boolean"
          },
          "additionalServicePrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "additionalServicePriceInterval": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "serviceFrequency": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "afterHoursServiceType": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "productDiscount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "automaticPlanRenewalLength": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "automaticPlanRenewalPriceIncreasePercent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "includedSessions": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "sessionLengthInMinutes": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isAdditionalSupport": {
            "type": "boolean"
          },
          "additionalSupportPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "additionalSupportPriceInterval": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "displayText": {
            "type": "string",
            "nullable": true
          },
          "isShowInProposal": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ServiceContractLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "clientId": {
            "type": "string",
            "format": "uuid"
          },
          "clientName": {
            "type": "string",
            "nullable": true
          },
          "clientNumber": {
            "type": "string",
            "nullable": true
          },
          "projectId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "projectName": {
            "type": "string",
            "nullable": true
          },
          "projectNumber": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "pricePerMonth": {
            "type": "number",
            "format": "double"
          },
          "startDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "paymentDueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "canceledDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedDate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ServiceContractPayment": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "integrationNumber": {
            "type": "string",
            "nullable": true
          },
          "billingDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "terms": {
            "type": "string",
            "nullable": true
          },
          "termsDaysDue": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "taxAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "totalAmount": {
            "type": "number",
            "format": "double"
          },
          "paidAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "convenienceFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "paidDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "paymentRequestMessage": {
            "type": "string",
            "nullable": true
          },
          "isDisplayPaymentSchedule": {
            "type": "boolean"
          },
          "isAutoGenerated": {
            "type": "boolean"
          },
          "isAutoPaid": {
            "type": "boolean"
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.ServiceContractPaymentSchedule": {
        "type": "object",
        "properties": {
          "paymentTermId": {
            "type": "string",
            "format": "uuid"
          },
          "payment": {
            "type": "string",
            "nullable": true
          },
          "billingDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "status": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.TimeEntryDetail": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "resource": {
            "type": "string",
            "nullable": true
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "startTime": {
            "type": "string",
            "format": "date-span",
            "nullable": true
          },
          "endTime": {
            "type": "string",
            "format": "date-span",
            "nullable": true
          },
          "hoursWorkedInMinutes": {
            "type": "integer",
            "format": "int32"
          },
          "isOvertime": {
            "type": "boolean"
          },
          "isLunch": {
            "type": "boolean"
          },
          "isBillable": {
            "type": "boolean"
          },
          "costPerHour": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "totalCost": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "clientId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "clientName": {
            "type": "string",
            "nullable": true
          },
          "clientNumber": {
            "type": "string",
            "nullable": true
          },
          "projectId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "projectName": {
            "type": "string",
            "nullable": true
          },
          "projectNumber": {
            "type": "string",
            "nullable": true
          },
          "projectTask": {
            "type": "string",
            "nullable": true
          },
          "serviceCallId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "serviceCallNumber": {
            "type": "string",
            "nullable": true
          },
          "laborType": {
            "type": "string",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "isArchived": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.UpdateOpportunity": {
        "type": "object",
        "properties": {
          "associatedProjectId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "clientId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "buildingType": {
            "type": "string",
            "nullable": true
          },
          "marketSector": {
            "type": "string",
            "nullable": true
          },
          "projectType": {
            "type": "string",
            "nullable": true
          },
          "quoteType": {
            "type": "string",
            "nullable": true
          },
          "quoteTemplate": {
            "type": "string",
            "nullable": true
          },
          "priority": {
            "type": "string",
            "nullable": true
          },
          "budget": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "probability": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "owner": {
            "type": "string",
            "nullable": true
          },
          "projectArea": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fulfillmentLocation": {
            "type": "string",
            "nullable": true
          },
          "estimatedCloseDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "actualCloseDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "estimatedProjectStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "estimatedProjectEndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "leadSource": {
            "type": "string",
            "nullable": true
          },
          "lostReason": {
            "type": "string",
            "nullable": true
          },
          "lostDescription": {
            "type": "string",
            "nullable": true
          },
          "billingAddress": {
            "$ref": "#/components/schemas/DTools.Cloud.Data.Address"
          },
          "siteAddress": {
            "$ref": "#/components/schemas/DTools.Cloud.Data.Address"
          },
          "contacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.Contact"
            },
            "nullable": true
          },
          "resources": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DTools.Cloud.Data.UpdateProject": {
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "priority": {
            "type": "string",
            "nullable": true
          },
          "budget": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "salesperson": {
            "type": "string",
            "nullable": true
          },
          "projectManager": {
            "type": "string",
            "nullable": true
          },
          "opportunityWonDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "completedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "billingAddress": {
            "$ref": "#/components/schemas/DTools.Cloud.Data.Address"
          },
          "siteAddress": {
            "$ref": "#/components/schemas/DTools.Cloud.Data.Address"
          },
          "contacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DTools.Cloud.Data.Contact"
            },
            "nullable": true
          },
          "resources": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Microsoft.AspNetCore.Mvc.ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": { }
      }
    }
  },
  "tags": [
    {
      "name": "ChangeOrders"
    },
    {
      "name": "Clients"
    },
    {
      "name": "Files"
    },
    {
      "name": "Opportunities"
    },
    {
      "name": "Products"
    },
    {
      "name": "Projects"
    },
    {
      "name": "PurchaseOrders"
    },
    {
      "name": "Quotes"
    },
    {
      "name": "ServiceContracts"
    },
    {
      "name": "TimeEntries"
    }
  ]
}