openapi: 3.2.0 info: title: D-Tools SI API Documentation Publish Service Orders API description: 'The API allows integrations to: - Publish catalogs and projects to SI users. - Subscribe to projects and catalogs published by SI users. All API calls must pass an API key in the request header. The API key can be generated in SI 2016 Control Panel using the ''Manage Integrations'' feature. An API key is specific to a SI user and an integration. API callers must add to each call a custom header named **X-DTSI-ApiKey** along with the value of the API key. For example, if the API key value is `q54R39UBr0Skgd7VHvEbuwiRAOArUpt02o7z/vY+iwrg`, the custom header would be as follows: ``` X-DTSI-ApiKey: q54R39UBr0Skgd7VHvEbuwiRAOArUpt02o7z/vY+iwrg ```' version: 1.0.0 servers: - url: https://api.d-tools.com/si tags: - name: PublishServiceOrders description: Allows an integration to publish a service order to a SI user. paths: /Publish/ServiceOrder: post: tags: - PublishServiceOrders summary: Publish a new service order to SI. requestBody: description: The Service Order. content: application/json-patch+json: schema: $ref: '#/components/schemas/NewServiceOrder' application/json: schema: $ref: '#/components/schemas/NewServiceOrder' text/json: schema: $ref: '#/components/schemas/NewServiceOrder' application/*+json: schema: $ref: '#/components/schemas/NewServiceOrder' application/xml: schema: $ref: '#/components/schemas/NewServiceOrder' text/xml: schema: $ref: '#/components/schemas/NewServiceOrder' application/*+xml: schema: $ref: '#/components/schemas/NewServiceOrder' required: true responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/PublishResponse' text/json: schema: $ref: '#/components/schemas/PublishResponse' application/xml: schema: $ref: '#/components/schemas/PublishResponse' text/xml: schema: $ref: '#/components/schemas/PublishResponse' /Publish/UpdateServiceOrder: post: tags: - PublishServiceOrders summary: Update an existing service order in SI. requestBody: description: Update Service Order. content: application/json-patch+json: schema: $ref: '#/components/schemas/UpdateServiceOrder' application/json: schema: $ref: '#/components/schemas/UpdateServiceOrder' text/json: schema: $ref: '#/components/schemas/UpdateServiceOrder' application/*+json: schema: $ref: '#/components/schemas/UpdateServiceOrder' application/xml: schema: $ref: '#/components/schemas/UpdateServiceOrder' text/xml: schema: $ref: '#/components/schemas/UpdateServiceOrder' application/*+xml: schema: $ref: '#/components/schemas/UpdateServiceOrder' required: true responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/PublishResponse' text/json: schema: $ref: '#/components/schemas/PublishResponse' application/xml: schema: $ref: '#/components/schemas/PublishResponse' text/xml: schema: $ref: '#/components/schemas/PublishResponse' components: schemas: PublishResponse: type: object properties: messageId: type: string description: Check the status of the transaction using this Message Id format: uuid message: type: - 'null' - string description: Success Message description: Project publish response NewServiceOrder: type: object properties: integrationId: type: - 'null' - string description: Id for the service order (Optional). The Id must be a valid Guid and can be used to retrieve service order. client: type: - 'null' - string description: Client name (Required) clientNumber: type: - 'null' - string description: Client number name: type: - 'null' - string description: Name (Required) start: type: string description: Start date required (Required) format: date-time startTicks: pattern: ^-?(?:0|[1-9]\d*)$ type: - integer - string format: int64 end: type: string description: End date required (Required) format: date-time endTicks: pattern: ^-?(?:0|[1-9]\d*)$ type: - integer - string format: int64 description: type: - 'null' - string description: Description of the SO description: Service Order Information ContactInfo: type: object properties: name: type: - 'null' - string description: Name of the contact title: type: - 'null' - string email: type: - 'null' - string phone: type: - 'null' - string mobile: type: - 'null' - string UpdateServiceOrderField: type: object properties: serviceOrderFieldId: pattern: ^-?(?:0|[1-9]\d*)$ type: - integer - string description: 'ServiceOrderFieldId (pass the correct Id for the field you want to update) Service Order Name = 1, Description = 2, Start Date = 3, End Date = 4, Accounting estimate number = 5, Status = 6, Percent complete = 7, Notes = 8, Priority = 9, CustomField1 = 101, CustomField2 = 102, CustomField3 = 103, CustomField4 = 104, CustomField5 = 105, CustomField6 = 106, CustomField7 = 107, CustomField8 = 108, CustomField9 = 109, CustomField10 = 110, CustomField11 = 111, CustomField12 = 112, CustomField13 = 113, CustomField14 = 114, CustomField15 = 115, CustomField16 = 116, CustomField17 = 117, CustomField18 = 118, CustomField19 = 119, CustomField20 = 120, CustomField21 = 121, CustomField22 = 122, CustomField23 = 123, CustomField24 = 124' format: uint8 value: type: - 'null' - string description: Value for the service order field. Address: type: object properties: street1: type: - 'null' - string street2: type: - 'null' - string city: type: - 'null' - string state: type: - 'null' - string postalCode: type: - 'null' - string country: type: - 'null' - string phone: type: - 'null' - string fax: type: - 'null' - string UpdateServiceOrder: type: object properties: serviceOrderId: type: - 'null' - string description: Id of service order to update (Required). contact: description: Contact information $ref: '#/components/schemas/ContactInfo' billingAddress: description: Billing address information $ref: '#/components/schemas/Address' siteAddress: description: Site address information $ref: '#/components/schemas/Address' updateFields: type: - 'null' - array items: $ref: '#/components/schemas/UpdateServiceOrderField' description: List of UpdateFields for the service order. Each UpdateField has a Id and a Value. description: Update Service Order