openapi: 3.2.0 info: title: D-Tools Cloud Change Orders 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 tags: - name: ChangeOrders 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 components: schemas: DTools.Cloud.Data.ChangeOrderLite: type: object properties: id: type: string format: uuid name: type: - string - 'null' number: type: integer format: int32 type: type: - string - 'null' readOnly: true systemState: type: - string - 'null' readOnly: true state: type: - string - 'null' price: type: number format: double createdDate: type: string format: date-time modifiedDate: type: string format: date-time 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 - 'null' format: int32 pricePerLength: type: - number - 'null' format: double phaseId: type: - integer - 'null' format: int32 isBillable: type: boolean additionalProperties: false DTools.Cloud.Data.ChangeOrderTaxSettings: type: object properties: isItemLevelTax: type: boolean taxId: type: - integer - 'null' format: int32 laborTaxId: type: - integer - 'null' format: int32 additionalProperties: false DTools.Cloud.Data.ChangeOrderDetail: type: object properties: id: type: string format: uuid projectId: type: string format: uuid name: type: - string - 'null' number: type: integer format: int32 type: type: - string - 'null' readOnly: true systemState: type: - string - 'null' readOnly: true state: type: - string - 'null' 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 - 'null' locations: type: - array - 'null' items: $ref: '#/components/schemas/DTools.Cloud.Data.ChangeOrderLocation' systems: type: - array - 'null' items: $ref: '#/components/schemas/DTools.Cloud.Data.ChangeOrderSystem' phases: type: - array - 'null' items: $ref: '#/components/schemas/DTools.Cloud.Data.ChangeOrderPhase' laborTypes: type: - array - 'null' items: $ref: '#/components/schemas/DTools.Cloud.Data.ChangeOrderLaborType' lengths: type: - array - 'null' items: $ref: '#/components/schemas/DTools.Cloud.Data.ChangeOrderLength' discounts: type: - array - 'null' items: $ref: '#/components/schemas/DTools.Cloud.Data.ChangeOrderDiscount' items: type: - array - 'null' items: $ref: '#/components/schemas/DTools.Cloud.Data.ChangeOrderItem' adjustments: type: - array - 'null' items: $ref: '#/components/schemas/DTools.Cloud.Data.ChangeOrderAdjustment' taxSettings: $ref: '#/components/schemas/DTools.Cloud.Data.ChangeOrderTaxSettings' taxes: type: - array - 'null' items: $ref: '#/components/schemas/DTools.Cloud.Data.ChangeOrderTax' paymentTerms: type: - array - 'null' items: $ref: '#/components/schemas/DTools.Cloud.Data.ChangeOrderPaymentTerm' payments: type: - array - 'null' items: $ref: '#/components/schemas/DTools.Cloud.Data.ChangeOrderPayment' additionalProperties: false DTools.Cloud.Data.ChangeOrderPayment: type: object properties: id: type: string format: uuid name: type: - string - 'null' number: type: - string - 'null' integrationNumber: type: - string - 'null' billingDate: type: - string - 'null' format: date-time dueDate: type: - string - 'null' format: date-time terms: type: - string - 'null' termsDaysDue: type: - integer - 'null' format: int32 amount: type: number format: double taxAmount: type: - number - 'null' format: double totalAmount: type: number format: double paidAmount: type: - number - 'null' format: double convenienceFee: type: - number - 'null' format: double paidDate: type: - string - 'null' format: date-time status: type: - string - 'null' readOnly: true paymentRequestMessage: type: - string - 'null' isDisplayPaymentSchedule: type: boolean isAutoGenerated: type: boolean isAutoPaid: type: boolean notes: type: - string - 'null' additionalProperties: false DTools.Cloud.Data.ChangeOrderSystem: type: object properties: id: type: integer format: int32 name: type: - string - 'null' description: type: - string - 'null' additionalProperties: false DTools.Cloud.Data.ChangeOrderLaborType: type: object properties: id: type: integer format: int32 catalogId: type: string format: uuid name: type: - string - 'null' shortDescription: type: - string - 'null' description: type: - string - 'null' hourlyCost: type: - number - 'null' format: double hourlyPrice: type: - number - 'null' format: double margin: type: - number - 'null' format: double markup: type: - number - 'null' format: double difficultyFactor: type: number format: double totalTimeInSeconds: type: integer format: int64 isTaxable: type: boolean taxId: type: - integer - 'null' format: int32 additionalProperties: false DTools.Cloud.Data.ChangeOrderPaymentTerm: type: object properties: paymentTermId: type: string format: uuid paymentTerm: type: - string - 'null' isPercent: type: boolean percent: type: - number - 'null' format: double billingDate: type: - string - 'null' format: date-time dueDate: type: - string - 'null' format: date-time amount: type: number format: double status: type: - string - 'null' readOnly: true additionalProperties: false DTools.Cloud.Data.ChangeOrderAdjustment: type: object properties: name: type: - string - 'null' isPercent: type: boolean percent: type: - number - 'null' format: double amount: type: - number - 'null' format: double isTaxable: type: boolean taxId: type: - integer - 'null' format: int32 applyTo: type: - string - 'null' readOnly: true additionalProperties: false DTools.Cloud.Data.ChangeOrderTax: type: object properties: id: type: integer format: int32 name: type: - string - 'null' isGroup: type: boolean childIds: type: - array - 'null' items: type: integer format: int32 rate: type: number format: double applyOn: type: - string - 'null' readOnly: true isPayByClient: type: boolean additionalProperties: false DTools.Cloud.Data.ChangeOrderLength: type: object properties: id: type: integer format: int32 name: type: - string - 'null' length: type: integer format: int32 additionalProperties: false DTools.Cloud.Data.ChangeOrderPhase: type: object properties: id: type: integer format: int32 name: type: - string - 'null' additionalProperties: false DTools.Cloud.Data.ChangeOrderItem: type: object properties: id: type: integer format: int32 catalogId: type: string format: uuid type: type: - string - 'null' readOnly: true allowanceType: type: - string - 'null' readOnly: true packageType: type: - string - 'null' readOnly: true laborTypeId: type: - integer - 'null' format: int32 name: type: - string - 'null' brand: type: - string - 'null' model: type: - string - 'null' partNumber: type: - string - 'null' shortDescription: type: - string - 'null' description: type: - string - 'null' category: type: - string - 'null' imageUrl: type: - string - 'null' quantity: type: integer format: int32 isLengthBased: type: boolean lengthId: type: - integer - 'null' format: int32 length: type: - integer - 'null' format: int32 isIgnorePackageItemLaborItems: type: boolean msrp: type: - number - 'null' format: double unitCost: type: - number - 'null' format: double unitPrice: type: - number - 'null' format: double margin: type: - number - 'null' format: double markup: type: - number - 'null' format: double costPerLength: type: - number - 'null' format: double pricePerLength: type: - number - 'null' format: double discountId: type: - integer - 'null' format: int32 discount: type: - number - 'null' format: double unitLaborTime: type: - integer - 'null' format: int32 unitLaborPrice: type: - number - 'null' format: double isBillable: type: boolean isTaxable: type: boolean taxId: type: - integer - 'null' format: int32 supplier: type: - string - 'null' locationId: type: - integer - 'null' format: int32 systemId: type: - integer - 'null' format: int32 phaseId: type: - integer - 'null' format: int32 upcBarcode: type: - string - 'null' eanBarcode: type: - string - 'null' itfBarcode: type: - string - 'null' isClientSupplied: type: boolean orderStatus: type: - string - 'null' installStatus: type: - string - 'null' parentId: type: - integer - 'null' format: int32 packageId: type: - integer - 'null' format: int32 changeType: type: - string - 'null' laborItems: type: - array - 'null' items: $ref: '#/components/schemas/DTools.Cloud.Data.ChangeOrderItemLaborItem' additionalProperties: false Microsoft.AspNetCore.Mvc.ProblemDetails: type: object properties: type: type: - string - 'null' title: type: - string - 'null' status: type: - integer - 'null' format: int32 detail: type: - string - 'null' instance: type: - string - 'null' additionalProperties: {} DTools.Cloud.Data.ChangeOrderDiscount: type: object properties: id: type: integer format: int32 name: type: - string - 'null' isRange: type: boolean isPercent: type: boolean percent: type: - number - 'null' format: double maximumPercent: type: - number - 'null' format: double amount: type: - number - 'null' format: double maximumAmount: type: - number - 'null' format: double additionalProperties: false DTools.Cloud.Data.ChangeOrderLocation: type: object properties: id: type: integer format: int32 name: type: - string - 'null' number: type: - string - 'null' description: type: - string - 'null' fullName: type: - string - 'null' parentId: type: - integer - 'null' format: int32 additionalProperties: false