From 167bdf8ed6aca5b435a4900be0b204888d16ed20 Mon Sep 17 00:00:00 2001 From: HiveCPQIntegration <142023066+HiveCPQIntegration@users.noreply.github.com> Date: Mon, 8 Apr 2024 17:54:43 +0200 Subject: [PATCH] HiveCPQ Product Configurator (Certified Connector) (#3360) * Initial * Update readme document * add known issues and limitations * fix validation issues * provide actions as a capability * remove a property which does not seem supported * add some missing punctuation * Fix a mistake in the readme.md * Fix bad response schemas found during certified connector testing * add new updates + bugfixes & support new 500 server error code * update readme with new operations * add integer format for successCount * Address global redirect security issue * [ID-234] - update swagger & readme for the Q2 release --- .../apiDefinition.swagger.json | 872 ++++++++++++++++-- .../HiveCPQ - Product configurator/readme.md | 33 + 2 files changed, 824 insertions(+), 81 deletions(-) diff --git a/certified-connectors/HiveCPQ - Product configurator/apiDefinition.swagger.json b/certified-connectors/HiveCPQ - Product configurator/apiDefinition.swagger.json index 80f1165c5..27b59dfdd 100644 --- a/certified-connectors/HiveCPQ - Product configurator/apiDefinition.swagger.json +++ b/certified-connectors/HiveCPQ - Product configurator/apiDefinition.swagger.json @@ -497,7 +497,7 @@ }, "delete": { "summary": "Delete a default address of a company", - "description": "Delete a specific default address of a company.", + "description": "Delete a specific default address of a company", "operationId": "DeleteASingleDefaultAddressOfACompany", "parameters": [ { @@ -755,6 +755,44 @@ ] } }, + "/manufacturers/{manufacturerId}/contacts/{contactId}/unarchive": { + "post": { + "summary": "Unarchive a contact", + "description": "Unarchive a specific contact.", + "operationId": "UnarchiveAContact", + "parameters": [ + { + "$ref": "#/parameters/pathManufacturerId" + }, + { + "$ref": "#/parameters/pathContactId" + } + ], + "responses": { + "204": { + "$ref": "#/responses/defaultNoContent" + }, + "400": { + "$ref": "#/responses/defaultBadRequest" + }, + "401": { + "$ref": "#/responses/defaultNotAuthorized" + }, + "403": { + "$ref": "#/responses/defaultForbidden" + }, + "404": { + "$ref": "#/responses/defaultNotFound" + }, + "500": { + "$ref": "#/responses/defaultServerError" + } + }, + "tags": [ + "Contact" + ] + } + }, "/manufacturers/{manufacturerId}/distributors/{distributorId}/accounts": { "get": { "summary": "Search distributor accounts", @@ -1567,7 +1605,7 @@ }, "put": { "summary": "Update a component", - "description": "Update a specific component in master data.", + "description": "Update a specific component in master data", "operationId": "UpdateTheComponentOfAManufacturer", "parameters": [ { @@ -1617,7 +1655,7 @@ }, "delete": { "summary": "Delete a component", - "description": "Delete a component from master data.", + "description": "Delete a component from master data", "operationId": "DeleteAComponent", "parameters": [ { @@ -2581,6 +2619,53 @@ ] } }, + "/manufacturers/{manufacturerId}/containers/{name}/versions/{version}/components/{componentId}/copyToVersion": { + "post": { + "summary": "Copy a component to another version", + "description": "Copy a component to another version.", + "operationId": "CopyComponentToAnotherVersion", + "parameters": [ + { + "$ref": "#/parameters/pathManufacturerId" + }, + { + "$ref": "#/parameters/pathName" + }, + { + "$ref": "#/parameters/pathVersion" + }, + { + "$ref": "#/parameters/pathComponentId" + }, + { + "$ref": "#/parameters/bodyRequestCopyToVersion" + } + ], + "responses": { + "200": { + "$ref": "#/responses/defaultCopiedToVersion" + }, + "400": { + "$ref": "#/responses/defaultBadRequest" + }, + "401": { + "$ref": "#/responses/defaultNotAuthorized" + }, + "403": { + "$ref": "#/responses/defaultForbidden" + }, + "404": { + "$ref": "#/responses/defaultNotFound" + }, + "500": { + "$ref": "#/responses/defaultServerError" + } + }, + "tags": [ + "Component" + ] + } + }, "/manufacturers/{manufacturerId}/containers/{name}/versions/{version}/components/{componentId}/features/{featureId}": { "put": { "summary": "Link a feature to a component", @@ -2835,7 +2920,7 @@ }, "delete": { "summary": "Delete a property", - "description": "Delete a specific property from master data.", + "description": "Delete a specific property from master data", "operationId": "RemoveAProperty", "parameters": [ { @@ -2879,6 +2964,53 @@ ] } }, + "/manufacturers/{manufacturerId}/containers/{name}/versions/{version}/properties/{propertyId}/copyToVersion": { + "post": { + "summary": "Copy a property to another version", + "description": "Copy a property to another version.", + "operationId": "CopyPropertyToAnotherVersion", + "parameters": [ + { + "$ref": "#/parameters/pathManufacturerId" + }, + { + "$ref": "#/parameters/pathName" + }, + { + "$ref": "#/parameters/pathVersion" + }, + { + "$ref": "#/parameters/pathPropertyId" + }, + { + "$ref": "#/parameters/bodyRequestCopyToVersion" + } + ], + "responses": { + "200": { + "$ref": "#/responses/defaultCopiedToVersion" + }, + "400": { + "$ref": "#/responses/defaultBadRequest" + }, + "401": { + "$ref": "#/responses/defaultNotAuthorized" + }, + "403": { + "$ref": "#/responses/defaultForbidden" + }, + "404": { + "$ref": "#/responses/defaultNotFound" + }, + "500": { + "$ref": "#/responses/defaultServerError" + } + }, + "tags": [ + "Property" + ] + } + }, "/manufacturers/{manufacturerId}/containers/{name}/versions/{version}/featureGroups": { "get": { "summary": "Search feature groups", @@ -3185,6 +3317,53 @@ ] } }, + "/manufacturers/{manufacturerId}/containers/{name}/versions/{version}/featureGroups/{featureGroupId}/copyToVersion": { + "post": { + "summary": "Copy a feature group to another version", + "description": "Copy a feature group to another version. Underlying features are not copied.", + "operationId": "CopyFeatureGroupToAnotherVersion", + "parameters": [ + { + "$ref": "#/parameters/pathManufacturerId" + }, + { + "$ref": "#/parameters/pathName" + }, + { + "$ref": "#/parameters/pathVersion" + }, + { + "$ref": "#/parameters/pathFeatureGroupId" + }, + { + "$ref": "#/parameters/bodyRequestCopyToVersion" + } + ], + "responses": { + "200": { + "$ref": "#/responses/defaultCopiedToVersion" + }, + "400": { + "$ref": "#/responses/defaultBadRequest" + }, + "401": { + "$ref": "#/responses/defaultNotAuthorized" + }, + "403": { + "$ref": "#/responses/defaultForbidden" + }, + "404": { + "$ref": "#/responses/defaultNotFound" + }, + "500": { + "$ref": "#/responses/defaultServerError" + } + }, + "tags": [ + "Feature" + ] + } + }, "/manufacturers/{manufacturerId}/containers/{name}/versions/{version}/featureGroups/{featureGroupId}/features": { "get": { "summary": "Search features", @@ -3459,7 +3638,7 @@ }, "delete": { "summary": "Delete a feature", - "description": "Delete a feature from a specific feature group in master data.", + "description": "Delete a feature from a specific feature group in master data", "operationId": "RemoveAFeature", "parameters": [ { @@ -3558,6 +3737,56 @@ ] } }, + "/manufacturers/{manufacturerId}/containers/{name}/versions/{version}/featureGroups/{featureGroupId}/features/{featureId}/copyToVersion": { + "post": { + "summary": "Copy a feature to another version", + "description": "Copy a feature to another version.", + "operationId": "CopyFeatureToAnotherVersion", + "parameters": [ + { + "$ref": "#/parameters/pathManufacturerId" + }, + { + "$ref": "#/parameters/pathName" + }, + { + "$ref": "#/parameters/pathVersion" + }, + { + "$ref": "#/parameters/pathFeatureGroupId" + }, + { + "$ref": "#/parameters/pathFeatureId" + }, + { + "$ref": "#/parameters/bodyRequestCopyToVersion" + } + ], + "responses": { + "200": { + "$ref": "#/responses/defaultCopiedToVersion" + }, + "400": { + "$ref": "#/responses/defaultBadRequest" + }, + "401": { + "$ref": "#/responses/defaultNotAuthorized" + }, + "403": { + "$ref": "#/responses/defaultForbidden" + }, + "404": { + "$ref": "#/responses/defaultNotFound" + }, + "500": { + "$ref": "#/responses/defaultServerError" + } + }, + "tags": [ + "Feature" + ] + } + }, "/manufacturers/{manufacturerId}/containers/{name}/versions/{version}/units": { "get": { "summary": "Search units", @@ -3816,6 +4045,53 @@ ] } }, + "/manufacturers/{manufacturerId}/containers/{name}/versions/{version}/units/{unitId}/copyToVersion": { + "post": { + "summary": "Copy a unit to another version", + "description": "Copy a unit to another version.", + "operationId": "CopyUnitToAnotherVersion", + "parameters": [ + { + "$ref": "#/parameters/pathManufacturerId" + }, + { + "$ref": "#/parameters/pathName" + }, + { + "$ref": "#/parameters/pathVersion" + }, + { + "$ref": "#/parameters/pathUnitId" + }, + { + "$ref": "#/parameters/bodyRequestCopyToVersion" + } + ], + "responses": { + "200": { + "$ref": "#/responses/defaultCopiedToVersion" + }, + "400": { + "$ref": "#/responses/defaultBadRequest" + }, + "401": { + "$ref": "#/responses/defaultNotAuthorized" + }, + "403": { + "$ref": "#/responses/defaultForbidden" + }, + "404": { + "$ref": "#/responses/defaultNotFound" + }, + "500": { + "$ref": "#/responses/defaultServerError" + } + }, + "tags": [ + "Unit" + ] + } + }, "/manufacturers/{manufacturerId}/customObjects": { "get": { "summary": "Search custom object types", @@ -4146,6 +4422,9 @@ { "$ref": "#/parameters/queryIntegratedSystemIdsIn" }, + { + "$ref": "#/parameters/queryUpdatedBefore" + }, { "$ref": "#/parameters/queryUpdatedSince" }, @@ -4302,6 +4581,42 @@ "tags": [ "Project" ] + }, + "delete": { + "summary": "Delete a project", + "description": "Delete a specific project of a manufacturer.", + "operationId": "DeleteAnExistingProject", + "parameters": [ + { + "$ref": "#/parameters/pathManufacturerId" + }, + { + "$ref": "#/parameters/pathProjectId" + } + ], + "responses": { + "204": { + "$ref": "#/responses/defaultNoContent" + }, + "400": { + "$ref": "#/responses/defaultBadRequest" + }, + "401": { + "$ref": "#/responses/defaultNotAuthorized" + }, + "403": { + "$ref": "#/responses/defaultForbidden" + }, + "404": { + "$ref": "#/responses/defaultNotFound" + }, + "500": { + "$ref": "#/responses/defaultServerError" + } + }, + "tags": [ + "Project" + ] } }, "/manufacturers/{manufacturerId}/projects/{projectId}/addProducts": { @@ -4444,11 +4759,66 @@ }, "/manufacturers/{manufacturerId}/projects/{projectId}/outputDocuments/generateOutputDocumentAsPdf": { "post": { - "summary": "Generate a document for a project", + "summary": "Generate a PDF document for a project", "description": "Generate a PDF document for a specific project. The template ID is optional only if the document type is QUOTE and a default template has been configured.", "operationId": "GenerateTheQuoteCalculationOrOrderSummaryPdfForAProject", "produces": [ - "application/json" + "application/json", + "application/octet-stream", + "application/pdf" + ], + "parameters": [ + { + "$ref": "#/parameters/pathManufacturerId" + }, + { + "$ref": "#/parameters/pathProjectId" + }, + { + "$ref": "#/parameters/headerAcceptWildcard" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/requestPostProjectGenerateOutputDocument" + }, + "required": true + } + ], + "responses": { + "200": { + "$ref": "#/responses/defaultFile" + }, + "400": { + "$ref": "#/responses/defaultBadRequest" + }, + "401": { + "$ref": "#/responses/defaultNotAuthorized" + }, + "403": { + "$ref": "#/responses/defaultForbidden" + }, + "404": { + "$ref": "#/responses/defaultNotFound" + }, + "500": { + "$ref": "#/responses/defaultServerError" + } + }, + "tags": [ + "Project" + ] + } + }, + "/manufacturers/{manufacturerId}/projects/{projectId}/outputDocuments/generateOutputDocumentAsWord": { + "post": { + "summary": "Generate a word document for a project", + "description": "Generate a Microsoft word document for a specific project. The template ID is optional only if the document type is QUOTE and a default template has been configured.", + "operationId": "GenerateTheQuoteCalculationOrOrderSummaryWordForAProject", + "produces": [ + "application/json", + "application/octet-stream" ], "parameters": [ { @@ -5142,6 +5512,154 @@ ] } }, + "/manufacturers/{manufacturerId}/projectSegments/{projectSegmentId}/attachments": { + "get": { + "summary": "Search attachments of a project segment", + "description": "Search attachments of a specific project segment.", + "operationId": "SearchProjectSegmentsAttachments", + "parameters": [ + { + "$ref": "#/parameters/pathManufacturerId" + }, + { + "$ref": "#/parameters/pathProjectSegmentId" + }, + { + "in": "query", + "name": "isDistributorFile", + "x-ms-summary": "Is A Distributor File", + "description": "Filter on whether the file is owned by the manufacturer or distributor.", + "type": "boolean" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/responseGetProjectSegmentAttachments" + } + }, + "400": { + "$ref": "#/responses/defaultBadRequest" + }, + "401": { + "$ref": "#/responses/defaultNotAuthorized" + }, + "403": { + "$ref": "#/responses/defaultForbidden" + }, + "404": { + "$ref": "#/responses/defaultNotFound" + }, + "500": { + "$ref": "#/responses/defaultServerError" + } + }, + "tags": [ + "ProjectSegment" + ] + }, + "post": { + "summary": "Add an attachment to a project segment", + "description": "Add an attachment to a specific project segment.", + "operationId": "AddProjectSegmentsAttachment", + "consumes": [ + "multipart/form-data" + ], + "parameters": [ + { + "$ref": "#/parameters/pathManufacturerId" + }, + { + "$ref": "#/parameters/pathProjectSegmentId" + }, + { + "$ref": "#/parameters/headerContentTypeMultipartFormData" + }, + { + "$ref": "#/parameters/bodyMultiPartFormDataFile" + }, + { + "in": "formData", + "name": "isDistributorFile", + "x-ms-summary": "Is A Distributor file", + "description": "Indicate whether the uploaded file is owned by the distributor or manufacturer.", + "type": "boolean", + "required": false, + "default": false + } + ], + "responses": { + "201": { + "$ref": "#/responses/defaultCreated" + }, + "400": { + "$ref": "#/responses/defaultBadRequest" + }, + "401": { + "$ref": "#/responses/defaultNotAuthorized" + }, + "403": { + "$ref": "#/responses/defaultForbidden" + }, + "404": { + "$ref": "#/responses/defaultNotFound" + }, + "500": { + "$ref": "#/responses/defaultServerError" + } + }, + "tags": [ + "ProjectSegment" + ] + } + }, + "/manufacturers/{manufacturerId}/projectSegments/{projectSegmentId}/attachments/{attachmentId}": { + "delete": { + "summary": "Delete an attachment of a project segment", + "description": "Delete an attachment of a specific project segment.", + "operationId": "DeleteProjectSegmentsAttachment", + "parameters": [ + { + "$ref": "#/parameters/pathManufacturerId" + }, + { + "$ref": "#/parameters/pathProjectSegmentId" + }, + { + "in": "path", + "name": "attachmentId", + "x-ms-summary": "Project Segment attachment ID", + "description": "ID of the project segment attachment you want to access.", + "type": "string", + "required": true + } + ], + "responses": { + "204": { + "$ref": "#/responses/defaultNoContent" + }, + "400": { + "$ref": "#/responses/defaultBadRequest" + }, + "401": { + "$ref": "#/responses/defaultNotAuthorized" + }, + "403": { + "$ref": "#/responses/defaultForbidden" + }, + "404": { + "$ref": "#/responses/defaultNotFound" + }, + "500": { + "$ref": "#/responses/defaultServerError" + } + }, + "tags": [ + "ProjectSegment" + ] + } + }, "/manufacturers/{manufacturerId}/projectSegmentItems": { "get": { "summary": "Search project segment items", @@ -5437,6 +5955,16 @@ "type": "string" } }, + { + "in": "query", + "name": "propertyCode", + "x-ms-summary": "Property Code", + "description": "Property code(s) for which to return a component property value for each node.", + "type": "array", + "items": { + "type": "string" + } + }, { "in": "query", "name": "includeOptionalNodes", @@ -5444,6 +5972,27 @@ "description": "Filter or include optional configuration nodes.", "type": "boolean", "default": false + }, + { + "in": "query", + "name": "includeComponentData", + "x-ms-summary": "Include Component Data", + "description": "Includes additional component data for each node.", + "type": "boolean", + "default": false + }, + { + "in": "query", + "name": "outputMode", + "x-ms-summary": "Output Mode", + "description": "Control the output structure of the configuration.", + "type": "string", + "enum": [ + "DEFAULT", + "BOM_ONLY", + "FULL_CONFIGURATION" + ], + "default": "DEFAULT" } ], "responses": { @@ -7490,6 +8039,8 @@ "PROJECT_SEGMENT_ITEM_COPIED", "PROJECT_SEGMENT_MOVEDTOSTEP3", "PROJECT_SEGMENT_MOVEDTOSTEP4", + "PROJECT_SEGMENT_ARCHIVED", + "PROJECT_SEGMENT_UNARCHIVED", "ITEM_CONFIG_UPDATED_IN_STEP_3_OR_4", "PROJECT_SEGMENT_ITEM_UPDATED", "PROJECT_SEGMENT_ITEM_DELETED", @@ -8209,6 +8760,15 @@ } } }, + "defaultObjectCopiedToVersionResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID of the copied object in the target version." + } + } + }, "customObjectKeyValuePair": { "type": "object", "description": "This represents a key value pair used to store or pass data with custom objects.", @@ -8389,6 +8949,8 @@ "PROJECT_SEGMENT_MOVEDTOSTEP2", "PROJECT_SEGMENT_MOVEDTOSTEP3", "PROJECT_SEGMENT_MOVEDTOSTEP4", + "PROJECT_SEGMENT_ARCHIVED", + "PROJECT_SEGMENT_UNARCHIVED", "PROJECT_SEGMENT_RECALCULATION_REQUESTED", "PROJECT_SEGMENT_RECALCULATE_FINISHED", "PROJECT_SEGMENT_ITEM_CREATED", @@ -8790,6 +9352,10 @@ "description": "Allow this company to access the product store", "default": false }, + "priceCatalogId": { + "type": "string", + "description": "ID of the price catalog used for this company." + }, "storeDiscountPercentage": { "type": "number", "format": "float", @@ -8822,6 +9388,18 @@ }, "description": "The default project settings of the company." }, + "requestPostCopyToVersion": { + "type": "object", + "properties": { + "targetVersion": { + "type": "string", + "description": "Version number (e.g. 1.0.0) you want to copy data to. Providing 'top' accesses the highest available version." + } + }, + "required": [ + "targetVersion" + ] + }, "requestPostSetComponentFeatures": { "type": "object", "properties": { @@ -10866,10 +11444,156 @@ "currency": { "type": "string", "description": "The currency in ISO 4217 format." + }, + "unitCode": { + "type": "string", + "description": "The Unit." } }, "description": "The pricing information." }, + "responseComponentProperty": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "The property code." + }, + "value": { + "type": "string", + "description": "Value of a property." + }, + "arrayValues": { + "type": "array", + "description": "Values of an array property.", + "items": { + "type": "string" + } + }, + "audit": { + "$ref": "#/definitions/responseAudit" + } + } + }, + "responseComponentPropertyWithoutAudit": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "The property code." + }, + "value": { + "type": "string", + "description": "Value of a property." + }, + "arrayValues": { + "type": "array", + "description": "Values of an array property.", + "items": { + "type": "string" + } + } + } + }, + "responseConfigurationNode": { + "type": "object", + "properties": { + "uniqueLabel": { + "type": "string", + "description": "Unique identifier of a node." + }, + "componentCode": { + "type": "string", + "description": "The article code of the component linked to the node." + }, + "datatype": { + "$ref": "#/definitions/enumConfigurationNodeDatatype" + }, + "type": { + "type": "string", + "description": "The node type." + }, + "status": { + "$ref": "#/definitions/enumConfigurationNodeStatus" + }, + "value": { + "type": "string", + "description": "The textual representation of the node value." + }, + "unit": { + "type": "string", + "description": "The unit code of the node." + }, + "quantity": { + "type": "number", + "description": "The quantity of items represented by this node used to calculate the total node price." + }, + "price": { + "type": "object", + "properties": { + "listPrice": { + "type": "number", + "format": "float", + "description": "List price of the node." + }, + "purchasePrice": { + "type": "number", + "format": "float", + "description": "Purchase price of the node." + } + }, + "description": "price" + }, + "optional": { + "type": "boolean", + "description": "Is the node optional in the configuration?" + }, + "component": { + "$ref": "#/definitions/responseConfigurationNodeComponentData" + }, + "selectedComponent": { + "$ref": "#/definitions/responseConfigurationNodeComponentData" + }, + "nodes": { + "type": "array", + "items": { + "$ref": "#/definitions/responseConfigurationNode" + }, + "description": "Child nodes of the parent node. Nested nodes are not available for the DEFAULT output mode." + } + } + }, + "responseConfigurationNodeComponentData": { + "type": "object", + "description": "Additional data from the component used for the configuration node or the component data attached to the selected value of a node.", + "properties": { + "eanCode": { + "type": "string", + "description": "The European Article Number of the component." + }, + "gtinCode": { + "type": "string", + "description": "The Global Trade Item Number of the component." + }, + "unitCode": { + "type": "string", + "description": "The unit of the component." + }, + "names": { + "$ref": "#/definitions/responseTranslations" + }, + "descriptions": { + "$ref": "#/definitions/responseTranslations" + }, + "propertyValues": { + "description": "A list of component property values.", + "type": "array", + "items": { + "$ref": "#/definitions/responseComponentPropertyWithoutAudit" + } + } + } + }, "responseGetVersions": { "type": "object", "properties": { @@ -11199,27 +11923,7 @@ "items": { "type": "array", "items": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The property code." - }, - "value": { - "type": "string", - "description": "Value of a property." - }, - "arrayValues": { - "type": "array", - "description": "Values of an array property.", - "items": { - "type": "string" - } - }, - "audit": { - "$ref": "#/definitions/responseAudit" - } - } + "$ref": "#/definitions/responseComponentProperty" }, "description": "A list of property values." }, @@ -12191,6 +12895,39 @@ } } }, + "responseGetProjectSegmentAttachments": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID of the project segment attachment." + }, + "fileName": { + "type": "string", + "description": "File name of the project segment attachment." + }, + "fileUrl": { + "type": "string", + "description": "Publicly accessible URL of the project segment attachment." + }, + "distributorFile": { + "type": "boolean", + "description": "Is the project segment attachment owned by the distributor." + } + } + }, + "description": "A list of project segment attachments." + }, + "total": { + "$ref": "#/definitions/responseTotalCount" + } + } + }, "responseGetProjectSegmentItem": { "type": "object", "properties": { @@ -13039,65 +13776,16 @@ "type": "string", "description": "ID of the configuration" }, + "configurationStatus": { + "$ref": "#/definitions/enumConfigurationStatus" + }, "configurator": { "$ref": "#/definitions/configuratorLink" }, "nodes": { "type": "array", "items": { - "type": "object", - "properties": { - "uniqueLabel": { - "type": "string", - "description": "Unique identifier of a node." - }, - "componentCode": { - "type": "string", - "description": "The article code of the component linked to the node." - }, - "datatype": { - "$ref": "#/definitions/enumConfigurationNodeDatatype" - }, - "type": { - "type": "string", - "description": "The node type." - }, - "status": { - "$ref": "#/definitions/enumConfigurationNodeStatus" - }, - "value": { - "type": "string", - "description": "The textual representation of the node value." - }, - "unit": { - "type": "string", - "description": "The unit code of the node." - }, - "quantity": { - "type": "number", - "description": "The quantity of items represented by this node used to calculate the total node price." - }, - "price": { - "type": "object", - "properties": { - "listPrice": { - "type": "number", - "format": "float", - "description": "List price of the node." - }, - "purchasePrice": { - "type": "number", - "format": "float", - "description": "Purchase price of the node." - } - }, - "description": "price" - }, - "optional": { - "type": "boolean", - "description": "Is the node optional in the configuration?" - } - } + "$ref": "#/definitions/responseConfigurationNode" }, "description": "A collection of configuration nodes." }, @@ -13499,6 +14187,14 @@ "description": "Filter on the company of the items.", "type": "string" }, + "queryUpdatedBefore": { + "in": "query", + "name": "updatedBefore", + "x-ms-summary": "Updated Before", + "description": "Retrieve all results which were updated before the specified time.", + "type": "string", + "format": "date-time" + }, "queryUpdatedSince": { "in": "query", "name": "updatedSince", @@ -13521,6 +14217,14 @@ "description": "The file to upload.", "type": "file", "required": true + }, + "bodyRequestCopyToVersion": { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/requestPostCopyToVersion" + }, + "required": true } }, "responses": { @@ -13530,6 +14234,12 @@ "$ref": "#/definitions/defaultObjectCreatedResponse" } }, + "defaultCopiedToVersion": { + "description": "OK", + "schema": { + "$ref": "#/definitions/defaultObjectCopiedToVersionResponse" + } + }, "defaultNoContent": { "description": "No Content" }, diff --git a/certified-connectors/HiveCPQ - Product configurator/readme.md b/certified-connectors/HiveCPQ - Product configurator/readme.md index 60a5d6a1a..cdc077499 100644 --- a/certified-connectors/HiveCPQ - Product configurator/readme.md +++ b/certified-connectors/HiveCPQ - Product configurator/readme.md @@ -62,6 +62,9 @@ Update a specific contact of a manufacturer or its companies. ### Archive a contact Archive a specific contact and remove its invites. +### Unarchive a contact +Unarchive a contact. + ### Search distributor accounts Search accounts in the address book of a distributor. @@ -176,6 +179,9 @@ Unlinks a feature from a specific component in master data. ### Link a feature to a component Links one feature to a component in master data. +### Copy a component to another version +Copy a component to another version. + ### Search properties Search properties in master data. @@ -188,6 +194,9 @@ Delete a specific property from master data ### Update a property Update a specific property in master data. +### Copy a property to another version +Copy a property to another version. + ### Search feature groups Search feature groups in master data. @@ -206,6 +215,9 @@ Delete a specific feature group from master data. ### Update a feature group Update a specific feature group in master data. +### Copy a feature group to another version +Copy a feature group to another version. + ### Search features Search features in a specific feature group in master data. @@ -227,6 +239,9 @@ Update a feature in a specific feature group in master data. ### Change the feature group of a feature Change the feature group of a specific feature in master data. +### Copy a feature to another version +Copy a feature to another version. + ### Search units Search units in master data. @@ -242,6 +257,9 @@ Delete a specific unit from master data. ### Update a unit Update a specific unit in master data. +### Copy a unit to another version +Copy a unit to another version. + ### Search custom object types Search custom object types of a manufacturer. @@ -275,6 +293,9 @@ Get a specific project of a manufacturer. ### Update a project Update a specific project of a manufacturer. +### Delete a project +Delete a specific project of a manufacturer. + ### Add products to a project Add one or more products to a project of a manufacturer. @@ -287,6 +308,9 @@ Start an asynchronous recalculation of the project. ### Generate a document for a project Generate a PDF document for a specific project. The template ID is optional only if the document type is QUOTE and a default template has been configured. +### Generate a word document for a project +Generate a Microsoft word document for a specific project. The template ID is optional only if the document type is QUOTE and a default template has been configured. + ### Add a configuration to a project Add a new V2 configuration to a project. @@ -329,6 +353,15 @@ Change the settings of a project segment. Settings are only available if a segme ### Add a configuration to a segment Add a V1 configuration to a specific project segment. +### Search attachments of a project segment +Search attachments of a specific project segment. + +### Add an attachment to a project segment +Add an attachment to a specific project segment. + +### Delete an attachment of a project segment +Delete an attachment of a specific project segment. + ### Search project segment items Search project segment items of a specific manufacturer.