openapi: 3.2.0 info: title: D-Tools Cloud Clients 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: Clients paths: /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 components: schemas: DTools.Cloud.Data.Client: type: object properties: type: type: - string - 'null' name: type: - string - 'null' number: type: - string - 'null' email: type: - string - 'null' secondaryEmail: type: - string - 'null' mobile: type: - string - 'null' phone: type: - string - 'null' fax: type: - string - 'null' website: type: - string - 'null' owner: type: - string - 'null' isExemptFromTax: type: - boolean - 'null' isActive: type: - boolean - 'null' billingAddress: $ref: '#/components/schemas/DTools.Cloud.Data.Address' siteAddresses: type: - array - 'null' items: $ref: '#/components/schemas/DTools.Cloud.Data.Address' contacts: type: - array - 'null' items: $ref: '#/components/schemas/DTools.Cloud.Data.Contact' additionalProperties: false DTools.Cloud.Data.ClientDetail: type: object properties: id: type: string format: uuid type: type: - string - 'null' readOnly: true name: type: - string - 'null' number: type: - string - 'null' email: type: - string - 'null' secondaryEmail: type: - string - 'null' mobile: type: - string - 'null' phone: type: - string - 'null' fax: type: - string - 'null' website: type: - string - 'null' owner: type: - string - 'null' isExemptFromTax: type: boolean hasSubaccounts: type: boolean parentId: type: - string - 'null' format: uuid parentName: type: - string - 'null' 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 - 'null' items: $ref: '#/components/schemas/DTools.Cloud.Data.AddressDetail' contacts: type: - array - 'null' items: $ref: '#/components/schemas/DTools.Cloud.Data.ContactDetail' files: type: - array - 'null' items: $ref: '#/components/schemas/DTools.Cloud.Data.FileInfo' additionalProperties: false DTools.Cloud.Data.FileInfo: type: object properties: id: type: string format: uuid name: type: - string - 'null' url: type: - string - 'null' additionalProperties: false DTools.Cloud.Data.GetClientsResult: type: object properties: clients: type: - array - 'null' items: $ref: '#/components/schemas/DTools.Cloud.Data.ClientLite' totalClients: type: integer format: int32 additionalProperties: false DTools.Cloud.Data.Contact: type: object properties: id: type: - string - 'null' format: uuid name: type: - string - 'null' firstName: type: - string - 'null' lastName: type: - string - 'null' company: type: - string - 'null' title: type: - string - 'null' email: type: - string - 'null' secondaryEmail: type: - string - 'null' mobile: type: - string - 'null' phone: type: - string - 'null' fax: type: - string - 'null' addressLine1: type: - string - 'null' addressLine2: type: - string - 'null' city: type: - string - 'null' state: type: - string - 'null' postalCode: type: - string - 'null' country: type: - string - 'null' notes: type: - string - 'null' isActive: type: - boolean - 'null' isPrimary: type: - boolean - 'null' additionalProperties: false DTools.Cloud.Data.ClientLite: type: object properties: id: type: string format: uuid type: type: - string - 'null' readOnly: true name: type: - string - 'null' number: type: - string - 'null' contactName: type: - string - 'null' email: type: - string - 'null' mobile: type: - string - 'null' phone: type: - string - 'null' owner: type: - string - 'null' hasSubaccounts: type: boolean createdDate: type: string format: date-time modifiedDate: type: string format: date-time isActive: type: boolean additionalProperties: false DTools.Cloud.Data.ContactDetail: type: object properties: id: type: string format: uuid name: type: - string - 'null' firstName: type: - string - 'null' lastName: type: - string - 'null' company: type: - string - 'null' title: type: - string - 'null' email: type: - string - 'null' secondaryEmail: type: - string - 'null' mobile: type: - string - 'null' phone: type: - string - 'null' fax: type: - string - 'null' addressLine1: type: - string - 'null' addressLine2: type: - string - 'null' city: type: - string - 'null' state: type: - string - 'null' postalCode: type: - string - 'null' country: type: - string - 'null' notes: type: - string - 'null' isActive: type: boolean isPrimary: type: boolean additionalProperties: false DTools.Cloud.Data.Address: type: object properties: name: type: - string - 'null' addressLine1: type: - string - 'null' addressLine2: type: - string - 'null' city: type: - string - 'null' state: type: - string - 'null' postalCode: type: - string - 'null' country: type: - string - 'null' additionalProperties: false DTools.Cloud.Data.AddressDetail: type: object properties: name: type: - string - 'null' addressLine1: type: - string - 'null' addressLine2: type: - string - 'null' city: type: - string - 'null' state: type: - string - 'null' postalCode: type: - string - 'null' country: type: - string - 'null' 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: {}