From ca8e6f0b43ab0190021d2e529eb68cb73ff6c01e Mon Sep 17 00:00:00 2001 From: Jens Schulze Date: Sat, 28 Oct 2023 11:25:02 +0200 Subject: [PATCH 01/44] Update update.yml --- .github/workflows/update.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index 774b6c24d..e85c3d7e3 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -30,9 +30,9 @@ jobs: with: java-version: '13' - - run: sudo chmod 777 /usr/local/bin && make -j2 generate lint + - run: sudo chmod 777 /usr/local/bin && make generate lint if: github.ref != 'refs/heads/main' - - run: sudo chmod 777 /usr/local/bin && make -j2 build + - run: sudo chmod 777 /usr/local/bin && make build if: github.ref == 'refs/heads/main' - name: "check pending changes" From d2562db7ad2b2897ed593129939a767356606f31 Mon Sep 17 00:00:00 2001 From: Auto Mation Date: Sat, 28 Oct 2023 09:32:35 +0000 Subject: [PATCH 02/44] TASK: Updating RAML types, Postman and OAS definition --- oas/api/openapi.yaml | 131 +++++++++++++++++- oas/import/openapi.yaml | 16 ++- uml/api/ChangeSubscriptionResourceTypeId.puml | 2 + .../MessageSubscriptionResourceTypeId.puml | 2 + uml/api/ReferenceTypeId.puml | 2 + uml/api/_index.puml | 2 +- .../svg/ChangeSubscriptionResourceTypeId.svg | 8 +- .../svg/MessageSubscriptionResourceTypeId.svg | 8 +- uml/api/svg/ReferenceTypeId.svg | 24 ++-- uml/api/svg/_index.svg | 4 +- 10 files changed, 174 insertions(+), 25 deletions(-) diff --git a/oas/api/openapi.yaml b/oas/api/openapi.yaml index a25e08546..98c9919ea 100644 --- a/oas/api/openapi.yaml +++ b/oas/api/openapi.yaml @@ -9770,6 +9770,67 @@ paths: - "manage_cart_discounts:{projectKey}" - "manage_cart_discounts:{projectKey}:{storeKey}" operationId: ByProjectKeyInStoreKeyByStoreKeyCartDiscountsGet + parameters: + - name: expand + in: query + required: false + style: form + schema: + type: "array" + items: + $ref: '#/components/schemas/Expansion' + explode: true + - name: sort + in: query + required: false + style: form + schema: + type: "array" + items: + $ref: '#/components/schemas/Sort' + explode: true + - name: limit + in: query + required: false + style: form + schema: + type: "number" + format: "double" + explode: true + - name: offset + in: query + required: false + style: form + schema: + type: "number" + format: "double" + explode: true + - name: withTotal + x-annotation-default: true + in: query + required: false + style: form + schema: + type: "boolean" + explode: true + - name: where + in: query + required: false + style: form + schema: + type: "array" + items: + $ref: '#/components/schemas/QueryPredicate' + explode: true + - name: /^var[.][a-zA-Z0-9]+$/ + in: query + required: false + style: form + schema: + type: "array" + items: + type: "string" + explode: true responses: "200": description: |- @@ -9777,8 +9838,22 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/CartDiscount' + $ref: '#/components/schemas/CartDiscountPagedQueryResponse' + "400": + $ref: '#/components/responses/errorable_400' + "401": + $ref: '#/components/responses/errorable_401' + "403": + $ref: '#/components/responses/errorable_403' + "404": + $ref: '#/components/responses/errorable_404' + "500": + $ref: '#/components/responses/errorable_500' + "502": + $ref: '#/components/responses/errorable_502' + "503": + $ref: '#/components/responses/errorable_503' head: security: - oauth_2_0: @@ -9800,6 +9875,24 @@ paths: $ref: '#/components/schemas/QueryPredicate' explode: true responses: + "200": + description: |- + 200 + content: {} + "404": + $ref: '#/components/responses/errorable_404' + "400": + $ref: '#/components/responses/errorable_400' + "401": + $ref: '#/components/responses/errorable_401' + "403": + $ref: '#/components/responses/errorable_403' + "500": + $ref: '#/components/responses/errorable_500' + "502": + $ref: '#/components/responses/errorable_502' + "503": + $ref: '#/components/responses/errorable_503' post: security: - oauth_2_0: @@ -9810,6 +9903,16 @@ paths: operationId: ByProjectKeyInStoreKeyByStoreKeyCartDiscountsPost description: |- When using the endpoint, the Store specified in the path and the Stores specified in the payload's `stores` field are added to the CartDiscount. + parameters: + - name: expand + in: query + required: false + style: form + schema: + type: "array" + items: + $ref: '#/components/schemas/Expansion' + explode: true requestBody: content: application/json: @@ -9825,6 +9928,20 @@ paths: schema: $ref: '#/components/schemas/CartDiscount' + "400": + $ref: '#/components/responses/errorable_400' + "401": + $ref: '#/components/responses/errorable_401' + "403": + $ref: '#/components/responses/errorable_403' + "404": + $ref: '#/components/responses/errorable_404' + "500": + $ref: '#/components/responses/errorable_500' + "502": + $ref: '#/components/responses/errorable_502' + "503": + $ref: '#/components/responses/errorable_503' /{projectKey}/in-store/key={storeKey}/cart-discounts/key={key}: parameters: - name: projectKey @@ -38894,6 +39011,8 @@ components: ReferenceTypeId: type: "string" enum: + - approval-flow + - approval-rule - associate-role - attribute-group - business-unit @@ -38933,6 +39052,8 @@ components: - zone x-annotation-package: "Common" x-annotation-enumDescriptions: + approval-flow: "References an [ApprovalFlow](ctp:api:type:ApprovalFlow).n" + approval-rule: "References an [ApprovalRule](ctp:api:type:ApprovalRule).n" associate-role: "References an [AssociateRole](ctp:api:type:AssociateRole).n" attribute-group: "References an [AttributeGroup](ctp:api:type:AttributeGroup).n" business-unit: "References a [BusinessUnit](ctp:api:type:BusinessUnit).n" @@ -68291,6 +68412,8 @@ components: ChangeSubscriptionResourceTypeId: type: "string" enum: + - approval-flow + - approval-rule - associate-role - business-unit - cart @@ -68328,6 +68451,8 @@ components: - zone x-annotation-package: "Subscription" x-annotation-enumDescriptions: + approval-flow: "Changes related to [ApprovalFlows](ctp:api:type:ApprovalFlow).n" + approval-rule: "Changes related to [ApprovalRules](ctp:api:type:ApprovalRule).n" associate-role: "Changes related to [AssociateRoles](ctp:api:type:AssociateRole).n" business-unit: "Changes to [BusinessUnits](ctp:api:type:BusinessUnit).n" cart: "Changes to [Carts](ctp:api:type:Cart).n" @@ -68577,6 +68702,8 @@ components: MessageSubscriptionResourceTypeId: type: "string" enum: + - approval-flow + - approval-rule - associate-role - business-unit - category @@ -68597,6 +68724,8 @@ components: - store x-annotation-package: "Subscription" x-annotation-enumDescriptions: + approval-flow: "Messages related to [ApprovalFlows](ctp:api:type:ApprovalFlow).n" + approval-rule: "Messages related to [ApprovalRules](ctp:api:type:ApprovalRule).n" associate-role: "Messages related to [AssociateRoles](ctp:api:type:AssociateRole).n" business-unit: "Messages related to [BusinessUnits](ctp:api:type:BusinessUnit).n" category: "Messages related to [Categories](ctp:api:type:Category).n" diff --git a/oas/import/openapi.yaml b/oas/import/openapi.yaml index 684136b09..97fb42dfa 100644 --- a/oas/import/openapi.yaml +++ b/oas/import/openapi.yaml @@ -1794,6 +1794,7 @@ components: - $ref: '#/components/schemas/ImportResource' - type: "object" required: + - key - name - productType - slug @@ -1833,6 +1834,7 @@ components: - $ref: '#/components/schemas/ImportResource' - type: "object" required: + - key - name - productType - slug @@ -2128,6 +2130,7 @@ components: - type: "object" required: - description + - key - name properties: key: @@ -2496,6 +2499,7 @@ components: - type: "object" required: - isMasterVariant + - key - product properties: key: @@ -2544,6 +2548,7 @@ components: - $ref: '#/components/schemas/ImportResource' - type: "object" required: + - key - name - slug properties: @@ -2643,6 +2648,7 @@ components: - type: "object" required: - email + - key properties: key: type: "string" @@ -3459,6 +3465,7 @@ components: - $ref: '#/components/schemas/ImportResource' - type: "object" required: + - key - quantityOnStock - sku properties: @@ -4504,6 +4511,8 @@ components: type: "string" enum: - category + - customer + - inventory - order - order-patch - price @@ -4512,12 +4521,12 @@ components: - product-type - product-variant - product-variant-patch - - customer - - inventory - standalone-price - type x-annotation-enumDescriptions: category: "The [Category import](ctp:import:type:CategoryImport) resource type." + customer: "The [Customer import](ctp:import:type:CustomerImport) resource type." + inventory: "The [Inventory import](ctp:import:type:InventoryImport) resource type." order: "The [Order import](ctp:import:type:OrderImport) resource type." order-patch: "The [Order patch import](ctp:import:type:OrderPatchImport) resource type." @@ -4531,10 +4540,9 @@ components: resource type." product-variant-patch: "The [Product Variant patch](ctp:import:type:ProductVariantPatch) resource type." - customer: "The [Customer import](ctp:import:type:CustomerImport) resource type." - inventory: "The [Inventory import](ctp:import:type:InventoryImport) resource type." standalone-price: "The [Standalone Price import](ctp:import:type:StandalonePriceImport) resource type." + type: "The [Type import](ctp:import:type:TypeImport) resource type." ReferenceType: type: "string" enum: diff --git a/uml/api/ChangeSubscriptionResourceTypeId.puml b/uml/api/ChangeSubscriptionResourceTypeId.puml index b424f911c..3f39e438c 100644 --- a/uml/api/ChangeSubscriptionResourceTypeId.puml +++ b/uml/api/ChangeSubscriptionResourceTypeId.puml @@ -2,6 +2,8 @@ hide methods enum ChangeSubscriptionResourceTypeId { + APPROVAL_FLOW + APPROVAL_RULE ASSOCIATE_ROLE BUSINESS_UNIT CART diff --git a/uml/api/MessageSubscriptionResourceTypeId.puml b/uml/api/MessageSubscriptionResourceTypeId.puml index fc52b8ac7..f45f718a5 100644 --- a/uml/api/MessageSubscriptionResourceTypeId.puml +++ b/uml/api/MessageSubscriptionResourceTypeId.puml @@ -2,6 +2,8 @@ hide methods enum MessageSubscriptionResourceTypeId { + APPROVAL_FLOW + APPROVAL_RULE ASSOCIATE_ROLE BUSINESS_UNIT CATEGORY diff --git a/uml/api/ReferenceTypeId.puml b/uml/api/ReferenceTypeId.puml index 8a0c13bd4..2b7042105 100644 --- a/uml/api/ReferenceTypeId.puml +++ b/uml/api/ReferenceTypeId.puml @@ -2,6 +2,8 @@ hide methods enum ReferenceTypeId { + APPROVAL_FLOW + APPROVAL_RULE ASSOCIATE_ROLE ATTRIBUTE_GROUP BUSINESS_UNIT diff --git a/uml/api/_index.puml b/uml/api/_index.puml index 04b10219c..272c9f9f8 100644 --- a/uml/api/_index.puml +++ b/uml/api/_index.puml @@ -985,7 +985,7 @@ **** /cart-discounts *****: GET responses: - [[CartDiscount.svg CartDiscount]] + [[CartDiscountPagedQueryResponse.svg CartDiscountPagedQueryResponse]] ; *****: HEAD responses: diff --git a/uml/api/svg/ChangeSubscriptionResourceTypeId.svg b/uml/api/svg/ChangeSubscriptionResourceTypeId.svg index 173b0373b..659ad570e 100644 --- a/uml/api/svg/ChangeSubscriptionResourceTypeId.svg +++ b/uml/api/svg/ChangeSubscriptionResourceTypeId.svg @@ -1,10 +1,12 @@ -ChangeSubscriptionResourceTypeIdASSOCIATE_ROLEBUSINESS_UNITCARTCART_DISCOUNTCATEGORYCHANNELCUSTOMERCUSTOMER_EMAIL_TOKENCUSTOMER_GROUPCUSTOMER_PASSWORD_TOKENDISCOUNT_CODEEXTENSIONINVENTORY_ENTRYKEY_VALUE_DOCUMENTORDERORDER_EDITPAYMENTPRODUCTPRODUCT_DISCOUNTPRODUCT_PRICEPRODUCT_SELECTIONPRODUCT_TYPEQUOTEQUOTE_REQUESTREVIEWSHIPPING_METHODSHOPPING_LISTSTAGED_QUOTESTANDALONE_PRICESTATESTORESUBSCRIPTIONTAX_CATEGORYTYPEZONEChangeSubscriptionresourceTypeId:ChangeSubscriptionResourceTypeIdresourceTypeIdChangeSubscriptionResourceTypeIdAPPROVAL_FLOWAPPROVAL_RULEASSOCIATE_ROLEBUSINESS_UNITCARTCART_DISCOUNTCATEGORYCHANNELCUSTOMERCUSTOMER_EMAIL_TOKENCUSTOMER_GROUPCUSTOMER_PASSWORD_TOKENDISCOUNT_CODEEXTENSIONINVENTORY_ENTRYKEY_VALUE_DOCUMENTORDERORDER_EDITPAYMENTPRODUCTPRODUCT_DISCOUNTPRODUCT_PRICEPRODUCT_SELECTIONPRODUCT_TYPEQUOTEQUOTE_REQUESTREVIEWSHIPPING_METHODSHOPPING_LISTSTAGED_QUOTESTANDALONE_PRICESTATESTORESUBSCRIPTIONTAX_CATEGORYTYPEZONEChangeSubscriptionresourceTypeId:ChangeSubscriptionResourceTypeIdresourceTypeIdMessageSubscriptionResourceTypeIdASSOCIATE_ROLEBUSINESS_UNITCATEGORYCUSTOMERCUSTOMER_EMAIL_TOKENCUSTOMER_GROUPCUSTOMER_PASSWORD_TOKENINVENTORY_ENTRYORDERPAYMENTPRODUCTPRODUCT_SELECTIONQUOTEQUOTE_REQUESTREVIEWSTAGED_QUOTESTANDALONE_PRICESTOREMessageSubscriptionresourceTypeId:MessageSubscriptionResourceTypeIdtypes:List<String>resourceTypeIdMessageSubscriptionResourceTypeIdAPPROVAL_FLOWAPPROVAL_RULEASSOCIATE_ROLEBUSINESS_UNITCATEGORYCUSTOMERCUSTOMER_EMAIL_TOKENCUSTOMER_GROUPCUSTOMER_PASSWORD_TOKENINVENTORY_ENTRYORDERPAYMENTPRODUCTPRODUCT_SELECTIONQUOTEQUOTE_REQUESTREVIEWSTAGED_QUOTESTANDALONE_PRICESTOREMessageSubscriptionresourceTypeId:MessageSubscriptionResourceTypeIdtypes:List<String>resourceTypeIdReferenceTypeIdASSOCIATE_ROLEATTRIBUTE_GROUPBUSINESS_UNITCARTCART_DISCOUNTCATEGORYCHANNELCUSTOMERCUSTOMER_EMAIL_TOKENCUSTOMER_GROUPCUSTOMER_PASSWORD_TOKENDIRECT_DISCOUNTDISCOUNT_CODEEXTENSIONINVENTORY_ENTRYKEY_VALUE_DOCUMENTORDERORDER_EDITPAYMENTPRODUCTPRODUCT_DISCOUNTPRODUCT_PRICEPRODUCT_SELECTIONPRODUCT_TYPEQUOTEQUOTE_REQUESTREVIEWSHIPPING_METHODSHOPPING_LISTSTAGED_QUOTESTANDALONE_PRICESTATESTORESUBSCRIPTIONTAX_CATEGORYTYPEZONEKeyReferencetypeId:ReferenceTypeIdkey: StringReferencetypeId:ReferenceTypeIdid: StringResourceIdentifiertypeId:ReferenceTypeIdid: Stringkey: StringMaxResourceLimitExceededErrorcode: Stringmessage: StringexceededResource:ReferenceTypeIdReferenceExistsErrorcode: Stringmessage: StringreferencedBy:ReferenceTypeIdReferencedResourceNotFoundErrorcode: Stringmessage: StringtypeId:ReferenceTypeIdid: Stringkey: StringGraphQLMaxResourceLimitExceededErrorcode: StringexceededResource:ReferenceTypeIdGraphQLReferenceExistsErrorcode: StringreferencedBy:ReferenceTypeIdGraphQLReferencedResourceNotFoundErrorcode: StringtypeId:ReferenceTypeIdid: Stringkey: StringtypeIdtypeIdtypeIdexceededResourcereferencedBytypeIdexceededResourcereferencedBytypeIdReferenceTypeIdAPPROVAL_FLOWAPPROVAL_RULEASSOCIATE_ROLEATTRIBUTE_GROUPBUSINESS_UNITCARTCART_DISCOUNTCATEGORYCHANNELCUSTOMERCUSTOMER_EMAIL_TOKENCUSTOMER_GROUPCUSTOMER_PASSWORD_TOKENDIRECT_DISCOUNTDISCOUNT_CODEEXTENSIONINVENTORY_ENTRYKEY_VALUE_DOCUMENTORDERORDER_EDITPAYMENTPRODUCTPRODUCT_DISCOUNTPRODUCT_PRICEPRODUCT_SELECTIONPRODUCT_TYPEQUOTEQUOTE_REQUESTREVIEWSHIPPING_METHODSHOPPING_LISTSTAGED_QUOTESTANDALONE_PRICESTATESTORESUBSCRIPTIONTAX_CATEGORYTYPEZONEKeyReferencetypeId:ReferenceTypeIdkey: StringReferencetypeId:ReferenceTypeIdid: StringResourceIdentifiertypeId:ReferenceTypeIdid: Stringkey: StringMaxResourceLimitExceededErrorcode: Stringmessage: StringexceededResource:ReferenceTypeIdReferenceExistsErrorcode: Stringmessage: StringreferencedBy:ReferenceTypeIdReferencedResourceNotFoundErrorcode: Stringmessage: StringtypeId:ReferenceTypeIdid: Stringkey: StringGraphQLMaxResourceLimitExceededErrorcode: StringexceededResource:ReferenceTypeIdGraphQLReferenceExistsErrorcode: StringreferencedBy:ReferenceTypeIdGraphQLReferencedResourceNotFoundErrorcode: StringtypeId:ReferenceTypeIdid: Stringkey: StringtypeIdtypeIdtypeIdexceededResourcereferencedBytypeIdexceededResourcereferencedBytypeIdAttributeReferenceTypeIdCARTCATEGORYCHANNELCUSTOMERKEY_VALUE_DOCUMENTORDERPRODUCTPRODUCT_TYPEREVIEWSHIPPING_METHODSTATEZONEAttributeReferenceTypename: StringreferenceTypeId:AttributeReferenceTypeIdreferenceTypeIdAttributeReferenceTypeIdASSOCIATE_ROLEBUSINESS_UNITCARTCART_DISCOUNTCATEGORYCHANNELCUSTOMERKEY_VALUE_DOCUMENTORDERPRODUCTPRODUCT_TYPEREVIEWSHIPPING_METHODSTATEZONEAttributeReferenceTypename: StringreferenceTypeId:AttributeReferenceTypeIdreferenceTypeId MissingRoleOnChannelError #blue;text:blue : "code : MissingRoleO ErrorObject --> MissingTaxRateForCountryError #blue;text:blue : "code : MissingTaxRateForCountry" ErrorObject --> MoneyOverflowError #blue;text:blue : "code : MoneyOverflow" ErrorObject --> NoMatchingProductDiscountFoundError #blue;text:blue : "code : NoMatchingProductDiscountFound" -ErrorObject --> NotEnabledError #blue;text:blue : "code : NotEnabled" ErrorObject --> ObjectNotFoundError #blue;text:blue : "code : ObjectNotFound" ErrorObject --> OutOfStockError #blue;text:blue : "code : OutOfStock" ErrorObject --> OverCapacityError #blue;text:blue : "code : OverCapacity" diff --git a/uml/api/GraphQLErrorObject.puml b/uml/api/GraphQLErrorObject.puml index c66d274e5..fa54b49ef 100644 --- a/uml/api/GraphQLErrorObject.puml +++ b/uml/api/GraphQLErrorObject.puml @@ -241,9 +241,6 @@ interface GraphQLMoneyOverflowError [[GraphQLMoneyOverflowError.svg]] { interface GraphQLNoMatchingProductDiscountFoundError [[GraphQLNoMatchingProductDiscountFoundError.svg]] { code: String } -interface GraphQLNotEnabledError [[GraphQLNotEnabledError.svg]] { - code: String -} interface GraphQLObjectNotFoundError [[GraphQLObjectNotFoundError.svg]] { code: String } @@ -392,7 +389,6 @@ GraphQLErrorObject --> GraphQLMissingRoleOnChannelError #blue;text:blue : "code GraphQLErrorObject --> GraphQLMissingTaxRateForCountryError #blue;text:blue : "code : MissingTaxRateForCountry" GraphQLErrorObject --> GraphQLMoneyOverflowError #blue;text:blue : "code : MoneyOverflow" GraphQLErrorObject --> GraphQLNoMatchingProductDiscountFoundError #blue;text:blue : "code : NoMatchingProductDiscountFound" -GraphQLErrorObject --> GraphQLNotEnabledError #blue;text:blue : "code : NotEnabled" GraphQLErrorObject --> GraphQLObjectNotFoundError #blue;text:blue : "code : ObjectNotFound" GraphQLErrorObject --> GraphQLOutOfStockError #blue;text:blue : "code : OutOfStock" GraphQLErrorObject --> GraphQLOverCapacityError #blue;text:blue : "code : OverCapacity" diff --git a/uml/api/GraphQLNotEnabledError.puml b/uml/api/GraphQLNotEnabledError.puml deleted file mode 100644 index 07768d85e..000000000 --- a/uml/api/GraphQLNotEnabledError.puml +++ /dev/null @@ -1,22 +0,0 @@ -@startuml - -hide empty fields -hide empty methods -legend -|= |= line | -| | inheritance | -| | property reference | -| | discriminated class | -endlegend -interface GraphQLNotEnabledError [[GraphQLNotEnabledError.svg]] extends GraphQLErrorObject { - code: String -} -interface GraphQLErrorObject [[GraphQLErrorObject.svg]] { - code: String -} - - - - - -@enduml diff --git a/uml/api/NotEnabledError.puml b/uml/api/NotEnabledError.puml deleted file mode 100644 index d91527cd1..000000000 --- a/uml/api/NotEnabledError.puml +++ /dev/null @@ -1,24 +0,0 @@ -@startuml - -hide empty fields -hide empty methods -legend -|= |= line | -| | inheritance | -| | property reference | -| | discriminated class | -endlegend -interface NotEnabledError [[NotEnabledError.svg]] extends ErrorObject { - code: String - message: String -} -interface ErrorObject [[ErrorObject.svg]] { - code: String - message: String -} - - - - - -@enduml diff --git a/uml/api/svg/ErrorObject.svg b/uml/api/svg/ErrorObject.svg index 90d643769..1d4b15e47 100644 --- a/uml/api/svg/ErrorObject.svg +++ b/uml/api/svg/ErrorObject.svg @@ -1,84 +1,83 @@ -ErrorObjectcode: Stringmessage: StringAnonymousIdAlreadyInUseErrorcode: Stringmessage: StringAssociateMissingPermissionErrorcode: Stringmessage: Stringassociate:CustomerResourceIdentifierbusinessUnit:BusinessUnitResourceIdentifierassociateOnBehalf:CustomerResourceIdentifierpermissions:List<Permission>AttributeDefinitionAlreadyExistsErrorcode: Stringmessage: StringconflictingProductTypeId: StringconflictingProductTypeName: StringconflictingAttributeName: StringAttributeDefinitionTypeConflictErrorcode: Stringmessage: StringconflictingProductTypeId: StringconflictingProductTypeName: StringconflictingAttributeName: StringAttributeNameDoesNotExistErrorcode: Stringmessage: StringinvalidAttributeName: StringBadGatewayErrorcode: Stringmessage: StringConcurrentModificationErrorcode: Stringmessage: StringcurrentVersion: LongContentTooLargeErrorcode: Stringmessage: StringCountryNotConfiguredInStoreErrorcode: Stringmessage: StringstoreCountries:List<String>country: StringDiscountCodeNonApplicableErrorcode: Stringmessage: StringdiscountCode: Stringreason: StringdiscountCodeId: StringvalidFrom: DateTimevalidUntil: DateTimevalidityCheckTime: DateTimeDuplicateAttributeValueErrorcode: Stringmessage: Stringattribute:AttributeDuplicateAttributeValuesErrorcode: Stringmessage: Stringattributes:List<Attribute>DuplicateEnumValuesErrorcode: Stringmessage: Stringduplicates:List<String>DuplicateFieldErrorcode: Stringmessage: Stringfield: StringduplicateValue:ObjectDuplicateFieldWithConflictingResourceErrorcode: Stringmessage: Stringfield: StringduplicateValue:ObjectconflictingResource:ReferenceDuplicatePriceKeyErrorcode: Stringmessage: StringconflictingPrice:PriceDuplicatePriceScopeErrorcode: Stringmessage: StringconflictingPrice:PriceDuplicateStandalonePriceScopeErrorcode: Stringmessage: StringconflictingStandalonePrice:StandalonePriceReferencesku: Stringcurrency: Stringcountry: StringcustomerGroup:CustomerGroupResourceIdentifierchannel:ChannelResourceIdentifiervalidFrom: DateTimevalidUntil: DateTimeDuplicateVariantValuesErrorcode: Stringmessage: StringvariantValues:VariantValuesEditPreviewFailedErrorcode: Stringmessage: Stringresult:OrderEditPreviewFailureEnumKeyAlreadyExistsErrorcode: Stringmessage: StringconflictingEnumKey: StringconflictingAttributeName: StringEnumKeyDoesNotExistErrorcode: Stringmessage: StringconflictingEnumKey: StringconflictingAttributeName: StringEnumValueIsUsedErrorcode: Stringmessage: StringEnumValuesMustMatchErrorcode: Stringmessage: StringExtensionBadResponseErrorcode: Stringmessage: StringlocalizedMessage:LocalizedStringextensionExtraInfo:ObjectextensionErrors:List<ExtensionError>extensionBody: StringextensionStatusCode: IntegerextensionId: StringextensionKey: StringExtensionNoResponseErrorcode: Stringmessage: StringextensionId: StringextensionKey: StringExtensionPredicateEvaluationFailedErrorcode: Stringmessage: StringerrorByExtension:ErrorByExtensionExtensionUpdateActionsFailedErrorcode: Stringmessage: StringlocalizedMessage:LocalizedStringextensionExtraInfo:ObjectextensionErrors:List<ExtensionError>ExternalOAuthFailedErrorcode: Stringmessage: StringFeatureRemovedErrorcode: Stringmessage: StringGeneralErrorcode: Stringmessage: StringInsufficientScopeErrorcode: Stringmessage: StringInternalConstraintViolatedErrorcode: Stringmessage: StringInvalidCredentialsErrorcode: Stringmessage: StringInvalidCurrentPasswordErrorcode: Stringmessage: StringInvalidFieldErrorcode: Stringmessage: Stringfield: StringinvalidValue:ObjectallowedValues:List<Object>InvalidInputErrorcode: Stringmessage: StringInvalidItemShippingDetailsErrorcode: Stringmessage: Stringsubject: StringitemId: StringInvalidJsonInputErrorcode: Stringmessage: StringdetailedErrorMessage: StringInvalidOperationErrorcode: Stringmessage: StringInvalidSubjectErrorcode: Stringmessage: StringInvalidTokenErrorcode: Stringmessage: StringLanguageUsedInStoresErrorcode: Stringmessage: StringMatchingPriceNotFoundErrorcode: Stringmessage: StringproductId: StringvariantId: Integercurrency: Stringcountry: StringcustomerGroup:CustomerGroupReferencechannel:ChannelReferenceMaxCartDiscountsReachedErrorcode: Stringmessage: StringMaxResourceLimitExceededErrorcode: Stringmessage: StringexceededResource:ReferenceTypeIdMaxStoreReferencesReachedErrorcode: Stringmessage: StringMissingRoleOnChannelErrorcode: Stringmessage: Stringchannel:ChannelResourceIdentifiermissingRole:ChannelRoleEnumMissingTaxRateForCountryErrorcode: Stringmessage: StringtaxCategoryId: Stringcountry: Stringstate: StringMoneyOverflowErrorcode: Stringmessage: StringNoMatchingProductDiscountFoundErrorcode: Stringmessage: StringNotEnabledErrorcode: Stringmessage: StringObjectNotFoundErrorcode: Stringmessage: StringOutOfStockErrorcode: Stringmessage: StringlineItems:List<String>skus:List<String>OverCapacityErrorcode: Stringmessage: StringOverlappingStandalonePriceValidityErrorcode: Stringmessage: StringconflictingStandalonePrice:StandalonePriceReferencesku: Stringcurrency: Stringcountry: StringcustomerGroup:CustomerGroupResourceIdentifierchannel:ChannelResourceIdentifiervalidFrom: DateTimevalidUntil: DateTimeconflictingValidFrom: DateTimeconflictingValidUntil: DateTimePendingOperationErrorcode: Stringmessage: StringPriceChangedErrorcode: Stringmessage: StringlineItems:List<String>shipping: BooleanProductAssignmentMissingErrorcode: Stringmessage: Stringproduct:ProductReferenceProductPresentWithDifferentVariantSelectionErrorcode: Stringmessage: Stringproduct:ProductReferenceexistingVariantSelection:ProductVariantSelectionProjectNotConfiguredForLanguagesErrorcode: Stringmessage: Stringlanguages:List<String>QueryComplexityLimitExceededErrorcode: Stringmessage: StringQueryTimedOutErrorcode: Stringmessage: StringReferenceExistsErrorcode: Stringmessage: StringreferencedBy:ReferenceTypeIdReferencedResourceNotFoundErrorcode: Stringmessage: StringtypeId:ReferenceTypeIdid: Stringkey: StringRequiredFieldErrorcode: Stringmessage: Stringfield: StringResourceNotFoundErrorcode: Stringmessage: StringResourceSizeLimitExceededErrorcode: Stringmessage: StringSearchDeactivatedErrorcode: Stringmessage: StringSearchExecutionFailureErrorcode: Stringmessage: StringSearchFacetPathNotFoundErrorcode: Stringmessage: StringSearchIndexingInProgressErrorcode: Stringmessage: StringSemanticErrorErrorcode: Stringmessage: StringShippingMethodDoesNotMatchCartErrorcode: Stringmessage: StringStoreCartDiscountsLimitReachedErrorcode: Stringmessage: Stringstores:List<StoreKeyReference>SyntaxErrorErrorcode: Stringmessage: StringAuthErrorResponsestatusCode: Integermessage: Stringerrors:List<ErrorObject>error: Stringerror_description: StringOrderEditPreviewFailuretype: Stringerrors:List<ErrorObject>ErrorResponsestatusCode: Integermessage: Stringerrors:List<ErrorObject>code : AnonymousIdAlreadyInUsecode : AssociateMissingPermissioncode : AttributeDefinitionAlreadyExistscode : AttributeDefinitionTypeConflictcode : AttributeNameDoesNotExistcode : BadGatewaycode : ConcurrentModificationcode : ContentTooLargecode : CountryNotConfiguredInStorecode : DiscountCodeNonApplicablecode : DuplicateAttributeValuecode : DuplicateAttributeValuescode : DuplicateEnumValuescode : DuplicateFieldcode : DuplicateFieldWithConflictingResourcecode : DuplicatePriceKeycode : DuplicatePriceScopecode : DuplicateStandalonePriceScopecode : DuplicateVariantValuescode : EditPreviewFailedcode : EnumKeyAlreadyExistscode : EnumKeyDoesNotExistcode : EnumValueIsUsedcode : EnumValuesMustMatchcode : ExtensionBadResponsecode : ExtensionNoResponsecode : ExtensionPredicateEvaluationFailedcode : ExtensionUpdateActionsFailedcode : ExternalOAuthFailedcode : FeatureRemovedcode : Generalcode : insufficient_scopecode : InternalConstraintViolatedcode : InvalidCredentialscode : InvalidCurrentPasswordcode : InvalidFieldcode : InvalidInputcode : InvalidItemShippingDetailscode : InvalidJsonInputcode : InvalidOperationcode : InvalidSubjectcode : invalid_tokencode : LanguageUsedInStorescode : MatchingPriceNotFoundcode : MaxCartDiscountsReachedcode : MaxResourceLimitExceededcode : MaxStoreReferencesReachedcode : MissingRoleOnChannelcode : MissingTaxRateForCountrycode : MoneyOverflowcode : NoMatchingProductDiscountFoundcode : NotEnabledcode : ObjectNotFoundcode : OutOfStockcode : OverCapacitycode : OverlappingStandalonePriceValiditycode : PendingOperationcode : PriceChangedcode : ProductAssignmentMissingcode : ProductPresentWithDifferentVariantSelectioncode : ProjectNotConfiguredForLanguagescode : QueryComplexityLimitExceededcode : QueryTimedOutcode : ReferenceExistscode : ReferencedResourceNotFoundcode : RequiredFieldcode : ResourceNotFoundcode : ResourceSizeLimitExceededcode : SearchDeactivatedcode : SearchExecutionFailurecode : SearchFacetPathNotFoundcode : SearchIndexingInProgresscode : SemanticErrorcode : ShippingMethodDoesNotMatchCartcode : StoreCartDiscountsLimitReachedcode : SyntaxErrorerrorserrorserrors line   inheritance   property reference   discriminated classErrorObjectcode: Stringmessage: StringAnonymousIdAlreadyInUseErrorcode: Stringmessage: StringAssociateMissingPermissionErrorcode: Stringmessage: Stringassociate:CustomerResourceIdentifierbusinessUnit:BusinessUnitResourceIdentifierassociateOnBehalf:CustomerResourceIdentifierpermissions:List<Permission>AttributeDefinitionAlreadyExistsErrorcode: Stringmessage: StringconflictingProductTypeId: StringconflictingProductTypeName: StringconflictingAttributeName: StringAttributeDefinitionTypeConflictErrorcode: Stringmessage: StringconflictingProductTypeId: StringconflictingProductTypeName: StringconflictingAttributeName: StringAttributeNameDoesNotExistErrorcode: Stringmessage: StringinvalidAttributeName: StringBadGatewayErrorcode: Stringmessage: StringConcurrentModificationErrorcode: Stringmessage: StringcurrentVersion: LongContentTooLargeErrorcode: Stringmessage: StringCountryNotConfiguredInStoreErrorcode: Stringmessage: StringstoreCountries:List<String>country: StringDiscountCodeNonApplicableErrorcode: Stringmessage: StringdiscountCode: Stringreason: StringdiscountCodeId: StringvalidFrom: DateTimevalidUntil: DateTimevalidityCheckTime: DateTimeDuplicateAttributeValueErrorcode: Stringmessage: Stringattribute:AttributeDuplicateAttributeValuesErrorcode: Stringmessage: Stringattributes:List<Attribute>DuplicateEnumValuesErrorcode: Stringmessage: Stringduplicates:List<String>DuplicateFieldErrorcode: Stringmessage: Stringfield: StringduplicateValue:ObjectDuplicateFieldWithConflictingResourceErrorcode: Stringmessage: Stringfield: StringduplicateValue:ObjectconflictingResource:ReferenceDuplicatePriceKeyErrorcode: Stringmessage: StringconflictingPrice:PriceDuplicatePriceScopeErrorcode: Stringmessage: StringconflictingPrice:PriceDuplicateStandalonePriceScopeErrorcode: Stringmessage: StringconflictingStandalonePrice:StandalonePriceReferencesku: Stringcurrency: Stringcountry: StringcustomerGroup:CustomerGroupResourceIdentifierchannel:ChannelResourceIdentifiervalidFrom: DateTimevalidUntil: DateTimeDuplicateVariantValuesErrorcode: Stringmessage: StringvariantValues:VariantValuesEditPreviewFailedErrorcode: Stringmessage: Stringresult:OrderEditPreviewFailureEnumKeyAlreadyExistsErrorcode: Stringmessage: StringconflictingEnumKey: StringconflictingAttributeName: StringEnumKeyDoesNotExistErrorcode: Stringmessage: StringconflictingEnumKey: StringconflictingAttributeName: StringEnumValueIsUsedErrorcode: Stringmessage: StringEnumValuesMustMatchErrorcode: Stringmessage: StringExtensionBadResponseErrorcode: Stringmessage: StringlocalizedMessage:LocalizedStringextensionExtraInfo:ObjectextensionErrors:List<ExtensionError>extensionBody: StringextensionStatusCode: IntegerextensionId: StringextensionKey: StringExtensionNoResponseErrorcode: Stringmessage: StringextensionId: StringextensionKey: StringExtensionPredicateEvaluationFailedErrorcode: Stringmessage: StringerrorByExtension:ErrorByExtensionExtensionUpdateActionsFailedErrorcode: Stringmessage: StringlocalizedMessage:LocalizedStringextensionExtraInfo:ObjectextensionErrors:List<ExtensionError>ExternalOAuthFailedErrorcode: Stringmessage: StringFeatureRemovedErrorcode: Stringmessage: StringGeneralErrorcode: Stringmessage: StringInsufficientScopeErrorcode: Stringmessage: StringInternalConstraintViolatedErrorcode: Stringmessage: StringInvalidCredentialsErrorcode: Stringmessage: StringInvalidCurrentPasswordErrorcode: Stringmessage: StringInvalidFieldErrorcode: Stringmessage: Stringfield: StringinvalidValue:ObjectallowedValues:List<Object>InvalidInputErrorcode: Stringmessage: StringInvalidItemShippingDetailsErrorcode: Stringmessage: Stringsubject: StringitemId: StringInvalidJsonInputErrorcode: Stringmessage: StringdetailedErrorMessage: StringInvalidOperationErrorcode: Stringmessage: StringInvalidSubjectErrorcode: Stringmessage: StringInvalidTokenErrorcode: Stringmessage: StringLanguageUsedInStoresErrorcode: Stringmessage: StringMatchingPriceNotFoundErrorcode: Stringmessage: StringproductId: StringvariantId: Integercurrency: Stringcountry: StringcustomerGroup:CustomerGroupReferencechannel:ChannelReferenceMaxCartDiscountsReachedErrorcode: Stringmessage: StringMaxResourceLimitExceededErrorcode: Stringmessage: StringexceededResource:ReferenceTypeIdMaxStoreReferencesReachedErrorcode: Stringmessage: StringMissingRoleOnChannelErrorcode: Stringmessage: Stringchannel:ChannelResourceIdentifiermissingRole:ChannelRoleEnumMissingTaxRateForCountryErrorcode: Stringmessage: StringtaxCategoryId: Stringcountry: Stringstate: StringMoneyOverflowErrorcode: Stringmessage: StringNoMatchingProductDiscountFoundErrorcode: Stringmessage: StringObjectNotFoundErrorcode: Stringmessage: StringOutOfStockErrorcode: Stringmessage: StringlineItems:List<String>skus:List<String>OverCapacityErrorcode: Stringmessage: StringOverlappingStandalonePriceValidityErrorcode: Stringmessage: StringconflictingStandalonePrice:StandalonePriceReferencesku: Stringcurrency: Stringcountry: StringcustomerGroup:CustomerGroupResourceIdentifierchannel:ChannelResourceIdentifiervalidFrom: DateTimevalidUntil: DateTimeconflictingValidFrom: DateTimeconflictingValidUntil: DateTimePendingOperationErrorcode: Stringmessage: StringPriceChangedErrorcode: Stringmessage: StringlineItems:List<String>shipping: BooleanProductAssignmentMissingErrorcode: Stringmessage: Stringproduct:ProductReferenceProductPresentWithDifferentVariantSelectionErrorcode: Stringmessage: Stringproduct:ProductReferenceexistingVariantSelection:ProductVariantSelectionProjectNotConfiguredForLanguagesErrorcode: Stringmessage: Stringlanguages:List<String>QueryComplexityLimitExceededErrorcode: Stringmessage: StringQueryTimedOutErrorcode: Stringmessage: StringReferenceExistsErrorcode: Stringmessage: StringreferencedBy:ReferenceTypeIdReferencedResourceNotFoundErrorcode: Stringmessage: StringtypeId:ReferenceTypeIdid: Stringkey: StringRequiredFieldErrorcode: Stringmessage: Stringfield: StringResourceNotFoundErrorcode: Stringmessage: StringResourceSizeLimitExceededErrorcode: Stringmessage: StringSearchDeactivatedErrorcode: Stringmessage: StringSearchExecutionFailureErrorcode: Stringmessage: StringSearchFacetPathNotFoundErrorcode: Stringmessage: StringSearchIndexingInProgressErrorcode: Stringmessage: StringSemanticErrorErrorcode: Stringmessage: StringShippingMethodDoesNotMatchCartErrorcode: Stringmessage: StringStoreCartDiscountsLimitReachedErrorcode: Stringmessage: Stringstores:List<StoreKeyReference>SyntaxErrorErrorcode: Stringmessage: StringAuthErrorResponsestatusCode: Integermessage: Stringerrors:List<ErrorObject>error: Stringerror_description: StringOrderEditPreviewFailuretype: Stringerrors:List<ErrorObject>ErrorResponsestatusCode: Integermessage: Stringerrors:List<ErrorObject>code : AnonymousIdAlreadyInUsecode : AssociateMissingPermissioncode : AttributeDefinitionAlreadyExistscode : AttributeDefinitionTypeConflictcode : AttributeNameDoesNotExistcode : BadGatewaycode : ConcurrentModificationcode : ContentTooLargecode : CountryNotConfiguredInStorecode : DiscountCodeNonApplicablecode : DuplicateAttributeValuecode : DuplicateAttributeValuescode : DuplicateEnumValuescode : DuplicateFieldcode : DuplicateFieldWithConflictingResourcecode : DuplicatePriceKeycode : DuplicatePriceScopecode : DuplicateStandalonePriceScopecode : DuplicateVariantValuescode : EditPreviewFailedcode : EnumKeyAlreadyExistscode : EnumKeyDoesNotExistcode : EnumValueIsUsedcode : EnumValuesMustMatchcode : ExtensionBadResponsecode : ExtensionNoResponsecode : ExtensionPredicateEvaluationFailedcode : ExtensionUpdateActionsFailedcode : ExternalOAuthFailedcode : FeatureRemovedcode : Generalcode : insufficient_scopecode : InternalConstraintViolatedcode : InvalidCredentialscode : InvalidCurrentPasswordcode : InvalidFieldcode : InvalidInputcode : InvalidItemShippingDetailscode : InvalidJsonInputcode : InvalidOperationcode : InvalidSubjectcode : invalid_tokencode : LanguageUsedInStorescode : MatchingPriceNotFoundcode : MaxCartDiscountsReachedcode : MaxResourceLimitExceededcode : MaxStoreReferencesReachedcode : MissingRoleOnChannelcode : MissingTaxRateForCountrycode : MoneyOverflowcode : NoMatchingProductDiscountFoundcode : ObjectNotFoundcode : OutOfStockcode : OverCapacitycode : OverlappingStandalonePriceValiditycode : PendingOperationcode : PriceChangedcode : ProductAssignmentMissingcode : ProductPresentWithDifferentVariantSelectioncode : ProjectNotConfiguredForLanguagescode : QueryComplexityLimitExceededcode : QueryTimedOutcode : ReferenceExistscode : ReferencedResourceNotFoundcode : RequiredFieldcode : ResourceNotFoundcode : ResourceSizeLimitExceededcode : SearchDeactivatedcode : SearchExecutionFailurecode : SearchFacetPathNotFoundcode : SearchIndexingInProgresscode : SemanticErrorcode : ShippingMethodDoesNotMatchCartcode : StoreCartDiscountsLimitReachedcode : SyntaxErrorerrorserrorserrors line   inheritance   property reference   discriminated classGraphQLErrorObjectcode: StringGraphQLAnonymousIdAlreadyInUseErrorcode: StringGraphQLAssociateMissingPermissionErrorcode: Stringassociate:CustomerResourceIdentifierbusinessUnit:BusinessUnitResourceIdentifierassociateOnBehalf:CustomerResourceIdentifierpermissions:List<Permission>GraphQLAttributeDefinitionAlreadyExistsErrorcode: StringconflictingProductTypeId: StringconflictingProductTypeName: StringconflictingAttributeName: StringGraphQLAttributeDefinitionTypeConflictErrorcode: StringconflictingProductTypeId: StringconflictingProductTypeName: StringconflictingAttributeName: StringGraphQLAttributeNameDoesNotExistErrorcode: StringinvalidAttributeName: StringGraphQLBadGatewayErrorcode: StringGraphQLConcurrentModificationErrorcode: StringcurrentVersion: LongGraphQLContentTooLargeErrorcode: StringGraphQLCountryNotConfiguredInStoreErrorcode: StringstoreCountries:List<String>country: StringGraphQLDiscountCodeNonApplicableErrorcode: StringdiscountCode: Stringreason: StringdiscountCodeId: StringvalidFrom: DateTimevalidUntil: DateTimevalidityCheckTime: DateTimeGraphQLDuplicateAttributeValueErrorcode: Stringattribute:AttributeGraphQLDuplicateAttributeValuesErrorcode: Stringattributes:List<Attribute>GraphQLDuplicateEnumValuesErrorcode: Stringduplicates:List<String>GraphQLDuplicateFieldErrorcode: Stringfield: StringduplicateValue:ObjectGraphQLDuplicateFieldWithConflictingResourceErrorcode: Stringfield: StringduplicateValue:ObjectconflictingResource:ReferenceGraphQLDuplicatePriceKeyErrorcode: StringconflictingPrice:PriceGraphQLDuplicatePriceScopeErrorcode: StringconflictingPrice:PriceGraphQLDuplicateStandalonePriceScopeErrorcode: StringconflictingStandalonePrice:StandalonePriceReferencesku: Stringcurrency: Stringcountry: StringcustomerGroup:CustomerGroupResourceIdentifierchannel:ChannelResourceIdentifiervalidFrom: DateTimevalidUntil: DateTimeGraphQLDuplicateVariantValuesErrorcode: StringvariantValues:VariantValuesGraphQLEditPreviewFailedErrorcode: Stringresult:OrderEditPreviewFailureGraphQLEnumKeyAlreadyExistsErrorcode: StringconflictingEnumKey: StringconflictingAttributeName: StringGraphQLEnumKeyDoesNotExistErrorcode: StringconflictingEnumKey: StringconflictingAttributeName: StringGraphQLEnumValueIsUsedErrorcode: StringGraphQLEnumValuesMustMatchErrorcode: StringGraphQLExtensionBadResponseErrorcode: StringlocalizedMessage:LocalizedStringextensionExtraInfo:ObjectextensionErrors:List<ExtensionError>extensionBody: StringextensionStatusCode: IntegerextensionId: StringextensionKey: StringGraphQLExtensionNoResponseErrorcode: StringextensionId: StringextensionKey: StringGraphQLExtensionPredicateEvaluationFailedErrorcode: StringerrorByExtension:ErrorByExtensionGraphQLExtensionUpdateActionsFailedErrorcode: StringlocalizedMessage:LocalizedStringextensionExtraInfo:ObjectextensionErrors:List<ExtensionError>GraphQLExternalOAuthFailedErrorcode: StringGraphQLFeatureRemovedErrorcode: StringGraphQLGeneralErrorcode: StringGraphQLInsufficientScopeErrorcode: StringGraphQLInternalConstraintViolatedErrorcode: StringGraphQLInvalidCredentialsErrorcode: StringGraphQLInvalidCurrentPasswordErrorcode: StringGraphQLInvalidFieldErrorcode: Stringfield: StringinvalidValue:ObjectallowedValues:List<Object>GraphQLInvalidInputErrorcode: StringGraphQLInvalidItemShippingDetailsErrorcode: Stringsubject: StringitemId: StringGraphQLInvalidJsonInputErrorcode: StringdetailedErrorMessage: StringGraphQLInvalidOperationErrorcode: StringGraphQLInvalidSubjectErrorcode: StringGraphQLInvalidTokenErrorcode: StringGraphQLLanguageUsedInStoresErrorcode: StringGraphQLMatchingPriceNotFoundErrorcode: StringproductId: StringvariantId: Integercurrency: Stringcountry: StringcustomerGroup:CustomerGroupReferencechannel:ChannelReferenceGraphQLMaxCartDiscountsReachedErrorcode: StringGraphQLMaxResourceLimitExceededErrorcode: StringexceededResource:ReferenceTypeIdGraphQLMaxStoreReferencesReachedErrorcode: StringGraphQLMissingRoleOnChannelErrorcode: Stringchannel:ChannelResourceIdentifiermissingRole:ChannelRoleEnumGraphQLMissingTaxRateForCountryErrorcode: StringtaxCategoryId: Stringcountry: Stringstate: StringGraphQLMoneyOverflowErrorcode: StringGraphQLNoMatchingProductDiscountFoundErrorcode: StringGraphQLNotEnabledErrorcode: StringGraphQLObjectNotFoundErrorcode: StringGraphQLOutOfStockErrorcode: StringlineItems:List<String>skus:List<String>GraphQLOverCapacityErrorcode: StringGraphQLOverlappingStandalonePriceValidityErrorcode: StringconflictingStandalonePrice:StandalonePriceReferencesku: Stringcurrency: Stringcountry: StringcustomerGroup:CustomerGroupResourceIdentifierchannel:ChannelResourceIdentifiervalidFrom: DateTimevalidUntil: DateTimeconflictingValidFrom: DateTimeconflictingValidUntil: DateTimeGraphQLPendingOperationErrorcode: StringGraphQLPriceChangedErrorcode: StringlineItems:List<String>shipping: BooleanGraphQLProductAssignmentMissingErrorcode: Stringproduct:ProductReferenceGraphQLProductPresentWithDifferentVariantSelectionErrorcode: Stringproduct:ProductReferenceexistingVariantSelection:ProductVariantSelectionGraphQLProjectNotConfiguredForLanguagesErrorcode: Stringlanguages:List<String>GraphQLQueryComplexityLimitExceededErrorcode: StringGraphQLQueryTimedOutErrorcode: StringGraphQLReferenceExistsErrorcode: StringreferencedBy:ReferenceTypeIdGraphQLReferencedResourceNotFoundErrorcode: StringtypeId:ReferenceTypeIdid: Stringkey: StringGraphQLRequiredFieldErrorcode: Stringfield: StringGraphQLResourceNotFoundErrorcode: StringGraphQLResourceSizeLimitExceededErrorcode: StringGraphQLSearchDeactivatedErrorcode: StringGraphQLSearchExecutionFailureErrorcode: StringGraphQLSearchFacetPathNotFoundErrorcode: StringGraphQLSearchIndexingInProgressErrorcode: StringGraphQLSemanticErrorErrorcode: StringGraphQLShippingMethodDoesNotMatchCartErrorcode: StringGraphQLStoreCartDiscountsLimitReachedErrorcode: Stringstores:List<StoreKeyReference>GraphQLSyntaxErrorErrorcode: Stringcode : AnonymousIdAlreadyInUsecode : AssociateMissingPermissioncode : AttributeDefinitionAlreadyExistscode : AttributeDefinitionTypeConflictcode : AttributeNameDoesNotExistcode : BadGatewaycode : ConcurrentModificationcode : ContentTooLargecode : CountryNotConfiguredInStorecode : DiscountCodeNonApplicablecode : DuplicateAttributeValuecode : DuplicateAttributeValuescode : DuplicateEnumValuescode : DuplicateFieldcode : DuplicateFieldWithConflictingResourcecode : DuplicatePriceKeycode : DuplicatePriceScopecode : DuplicateStandalonePriceScopecode : DuplicateVariantValuescode : EditPreviewFailedcode : EnumKeyAlreadyExistscode : EnumKeyDoesNotExistcode : EnumValueIsUsedcode : EnumValuesMustMatchcode : ExtensionBadResponsecode : ExtensionNoResponsecode : ExtensionPredicateEvaluationFailedcode : ExtensionUpdateActionsFailedcode : ExternalOAuthFailedcode : FeatureRemovedcode : Generalcode : insufficient_scopecode : InternalConstraintViolatedcode : InvalidCredentialscode : InvalidCurrentPasswordcode : InvalidFieldcode : InvalidInputcode : InvalidItemShippingDetailscode : InvalidJsonInputcode : InvalidOperationcode : InvalidSubjectcode : invalid_tokencode : LanguageUsedInStorescode : MatchingPriceNotFoundcode : MaxCartDiscountsReachedcode : MaxResourceLimitExceededcode : MaxStoreReferencesReachedcode : MissingRoleOnChannelcode : MissingTaxRateForCountrycode : MoneyOverflowcode : NoMatchingProductDiscountFoundcode : NotEnabledcode : ObjectNotFoundcode : OutOfStockcode : OverCapacitycode : OverlappingStandalonePriceValiditycode : PendingOperationcode : PriceChangedcode : ProductAssignmentMissingcode : ProductPresentWithDifferentVariantSelectioncode : ProjectNotConfiguredForLanguagescode : QueryComplexityLimitExceededcode : QueryTimedOutcode : ReferenceExistscode : ReferencedResourceNotFoundcode : RequiredFieldcode : ResourceNotFoundcode : ResourceSizeLimitExceededcode : SearchDeactivatedcode : SearchExecutionFailurecode : SearchFacetPathNotFoundcode : SearchIndexingInProgresscode : SemanticErrorcode : ShippingMethodDoesNotMatchCartcode : StoreCartDiscountsLimitReachedcode : SyntaxError line   inheritance   property reference   discriminated classGraphQLErrorObjectcode: StringGraphQLAnonymousIdAlreadyInUseErrorcode: StringGraphQLAssociateMissingPermissionErrorcode: Stringassociate:CustomerResourceIdentifierbusinessUnit:BusinessUnitResourceIdentifierassociateOnBehalf:CustomerResourceIdentifierpermissions:List<Permission>GraphQLAttributeDefinitionAlreadyExistsErrorcode: StringconflictingProductTypeId: StringconflictingProductTypeName: StringconflictingAttributeName: StringGraphQLAttributeDefinitionTypeConflictErrorcode: StringconflictingProductTypeId: StringconflictingProductTypeName: StringconflictingAttributeName: StringGraphQLAttributeNameDoesNotExistErrorcode: StringinvalidAttributeName: StringGraphQLBadGatewayErrorcode: StringGraphQLConcurrentModificationErrorcode: StringcurrentVersion: LongGraphQLContentTooLargeErrorcode: StringGraphQLCountryNotConfiguredInStoreErrorcode: StringstoreCountries:List<String>country: StringGraphQLDiscountCodeNonApplicableErrorcode: StringdiscountCode: Stringreason: StringdiscountCodeId: StringvalidFrom: DateTimevalidUntil: DateTimevalidityCheckTime: DateTimeGraphQLDuplicateAttributeValueErrorcode: Stringattribute:AttributeGraphQLDuplicateAttributeValuesErrorcode: Stringattributes:List<Attribute>GraphQLDuplicateEnumValuesErrorcode: Stringduplicates:List<String>GraphQLDuplicateFieldErrorcode: Stringfield: StringduplicateValue:ObjectGraphQLDuplicateFieldWithConflictingResourceErrorcode: Stringfield: StringduplicateValue:ObjectconflictingResource:ReferenceGraphQLDuplicatePriceKeyErrorcode: StringconflictingPrice:PriceGraphQLDuplicatePriceScopeErrorcode: StringconflictingPrice:PriceGraphQLDuplicateStandalonePriceScopeErrorcode: StringconflictingStandalonePrice:StandalonePriceReferencesku: Stringcurrency: Stringcountry: StringcustomerGroup:CustomerGroupResourceIdentifierchannel:ChannelResourceIdentifiervalidFrom: DateTimevalidUntil: DateTimeGraphQLDuplicateVariantValuesErrorcode: StringvariantValues:VariantValuesGraphQLEditPreviewFailedErrorcode: Stringresult:OrderEditPreviewFailureGraphQLEnumKeyAlreadyExistsErrorcode: StringconflictingEnumKey: StringconflictingAttributeName: StringGraphQLEnumKeyDoesNotExistErrorcode: StringconflictingEnumKey: StringconflictingAttributeName: StringGraphQLEnumValueIsUsedErrorcode: StringGraphQLEnumValuesMustMatchErrorcode: StringGraphQLExtensionBadResponseErrorcode: StringlocalizedMessage:LocalizedStringextensionExtraInfo:ObjectextensionErrors:List<ExtensionError>extensionBody: StringextensionStatusCode: IntegerextensionId: StringextensionKey: StringGraphQLExtensionNoResponseErrorcode: StringextensionId: StringextensionKey: StringGraphQLExtensionPredicateEvaluationFailedErrorcode: StringerrorByExtension:ErrorByExtensionGraphQLExtensionUpdateActionsFailedErrorcode: StringlocalizedMessage:LocalizedStringextensionExtraInfo:ObjectextensionErrors:List<ExtensionError>GraphQLExternalOAuthFailedErrorcode: StringGraphQLFeatureRemovedErrorcode: StringGraphQLGeneralErrorcode: StringGraphQLInsufficientScopeErrorcode: StringGraphQLInternalConstraintViolatedErrorcode: StringGraphQLInvalidCredentialsErrorcode: StringGraphQLInvalidCurrentPasswordErrorcode: StringGraphQLInvalidFieldErrorcode: Stringfield: StringinvalidValue:ObjectallowedValues:List<Object>GraphQLInvalidInputErrorcode: StringGraphQLInvalidItemShippingDetailsErrorcode: Stringsubject: StringitemId: StringGraphQLInvalidJsonInputErrorcode: StringdetailedErrorMessage: StringGraphQLInvalidOperationErrorcode: StringGraphQLInvalidSubjectErrorcode: StringGraphQLInvalidTokenErrorcode: StringGraphQLLanguageUsedInStoresErrorcode: StringGraphQLMatchingPriceNotFoundErrorcode: StringproductId: StringvariantId: Integercurrency: Stringcountry: StringcustomerGroup:CustomerGroupReferencechannel:ChannelReferenceGraphQLMaxCartDiscountsReachedErrorcode: StringGraphQLMaxResourceLimitExceededErrorcode: StringexceededResource:ReferenceTypeIdGraphQLMaxStoreReferencesReachedErrorcode: StringGraphQLMissingRoleOnChannelErrorcode: Stringchannel:ChannelResourceIdentifiermissingRole:ChannelRoleEnumGraphQLMissingTaxRateForCountryErrorcode: StringtaxCategoryId: Stringcountry: Stringstate: StringGraphQLMoneyOverflowErrorcode: StringGraphQLNoMatchingProductDiscountFoundErrorcode: StringGraphQLObjectNotFoundErrorcode: StringGraphQLOutOfStockErrorcode: StringlineItems:List<String>skus:List<String>GraphQLOverCapacityErrorcode: StringGraphQLOverlappingStandalonePriceValidityErrorcode: StringconflictingStandalonePrice:StandalonePriceReferencesku: Stringcurrency: Stringcountry: StringcustomerGroup:CustomerGroupResourceIdentifierchannel:ChannelResourceIdentifiervalidFrom: DateTimevalidUntil: DateTimeconflictingValidFrom: DateTimeconflictingValidUntil: DateTimeGraphQLPendingOperationErrorcode: StringGraphQLPriceChangedErrorcode: StringlineItems:List<String>shipping: BooleanGraphQLProductAssignmentMissingErrorcode: Stringproduct:ProductReferenceGraphQLProductPresentWithDifferentVariantSelectionErrorcode: Stringproduct:ProductReferenceexistingVariantSelection:ProductVariantSelectionGraphQLProjectNotConfiguredForLanguagesErrorcode: Stringlanguages:List<String>GraphQLQueryComplexityLimitExceededErrorcode: StringGraphQLQueryTimedOutErrorcode: StringGraphQLReferenceExistsErrorcode: StringreferencedBy:ReferenceTypeIdGraphQLReferencedResourceNotFoundErrorcode: StringtypeId:ReferenceTypeIdid: Stringkey: StringGraphQLRequiredFieldErrorcode: Stringfield: StringGraphQLResourceNotFoundErrorcode: StringGraphQLResourceSizeLimitExceededErrorcode: StringGraphQLSearchDeactivatedErrorcode: StringGraphQLSearchExecutionFailureErrorcode: StringGraphQLSearchFacetPathNotFoundErrorcode: StringGraphQLSearchIndexingInProgressErrorcode: StringGraphQLSemanticErrorErrorcode: StringGraphQLShippingMethodDoesNotMatchCartErrorcode: StringGraphQLStoreCartDiscountsLimitReachedErrorcode: Stringstores:List<StoreKeyReference>GraphQLSyntaxErrorErrorcode: Stringcode : AnonymousIdAlreadyInUsecode : AssociateMissingPermissioncode : AttributeDefinitionAlreadyExistscode : AttributeDefinitionTypeConflictcode : AttributeNameDoesNotExistcode : BadGatewaycode : ConcurrentModificationcode : ContentTooLargecode : CountryNotConfiguredInStorecode : DiscountCodeNonApplicablecode : DuplicateAttributeValuecode : DuplicateAttributeValuescode : DuplicateEnumValuescode : DuplicateFieldcode : DuplicateFieldWithConflictingResourcecode : DuplicatePriceKeycode : DuplicatePriceScopecode : DuplicateStandalonePriceScopecode : DuplicateVariantValuescode : EditPreviewFailedcode : EnumKeyAlreadyExistscode : EnumKeyDoesNotExistcode : EnumValueIsUsedcode : EnumValuesMustMatchcode : ExtensionBadResponsecode : ExtensionNoResponsecode : ExtensionPredicateEvaluationFailedcode : ExtensionUpdateActionsFailedcode : ExternalOAuthFailedcode : FeatureRemovedcode : Generalcode : insufficient_scopecode : InternalConstraintViolatedcode : InvalidCredentialscode : InvalidCurrentPasswordcode : InvalidFieldcode : InvalidInputcode : InvalidItemShippingDetailscode : InvalidJsonInputcode : InvalidOperationcode : InvalidSubjectcode : invalid_tokencode : LanguageUsedInStorescode : MatchingPriceNotFoundcode : MaxCartDiscountsReachedcode : MaxResourceLimitExceededcode : MaxStoreReferencesReachedcode : MissingRoleOnChannelcode : MissingTaxRateForCountrycode : MoneyOverflowcode : NoMatchingProductDiscountFoundcode : ObjectNotFoundcode : OutOfStockcode : OverCapacitycode : OverlappingStandalonePriceValiditycode : PendingOperationcode : PriceChangedcode : ProductAssignmentMissingcode : ProductPresentWithDifferentVariantSelectioncode : ProjectNotConfiguredForLanguagescode : QueryComplexityLimitExceededcode : QueryTimedOutcode : ReferenceExistscode : ReferencedResourceNotFoundcode : RequiredFieldcode : ResourceNotFoundcode : ResourceSizeLimitExceededcode : SearchDeactivatedcode : SearchExecutionFailurecode : SearchFacetPathNotFoundcode : SearchIndexingInProgresscode : SemanticErrorcode : ShippingMethodDoesNotMatchCartcode : StoreCartDiscountsLimitReachedcode : SyntaxError line   inheritance   property reference   discriminated classGraphQLNotEnabledErrorcode: StringGraphQLErrorObjectcode: String line   inheritance   property reference   discriminated class diff --git a/uml/api/svg/NotEnabledError.svg b/uml/api/svg/NotEnabledError.svg deleted file mode 100644 index 456b927a6..000000000 --- a/uml/api/svg/NotEnabledError.svg +++ /dev/null @@ -1,36 +0,0 @@ -NotEnabledErrorcode: Stringmessage: StringErrorObjectcode: Stringmessage: String line   inheritance   property reference   discriminated class From f94a9a687588e4e941100ac3a4a25d55058a6016 Mon Sep 17 00:00:00 2001 From: Mouaiad ALRAS <147716105+mo-alras@users.noreply.github.com> Date: Thu, 21 Dec 2023 14:54:04 +0100 Subject: [PATCH 41/44] remove ml folders for the ML sunset (#287) --- api-specs/ml/README.md | 27 - oas/ml/openapi.yaml | 1312 ---------------------------------------- 2 files changed, 1339 deletions(-) delete mode 100644 api-specs/ml/README.md delete mode 100644 oas/ml/openapi.yaml diff --git a/api-specs/ml/README.md b/api-specs/ml/README.md deleted file mode 100644 index 99268ba1b..000000000 --- a/api-specs/ml/README.md +++ /dev/null @@ -1,27 +0,0 @@ -[![CircleCI](https://circleci.com/gh/commercetools/ml-services-api-reference.svg?style=svg&circle-token=238371835c24c7a0ab677ce159f01879eb226f69)](https://circleci.com/gh/commercetools/ml-services-api-reference) - -# Summary - -This repository contains the -[RAML specification](https://github.com/raml-org/raml-spec/blob/master/versions/raml-10/raml-10.md) -for commercetools machine learning API. - -# Setup - -- [install yarn](https://classic.yarnpkg.com/en/docs/install/#mac-stable) if you - don't already have it. -- run `yarn install` to install dependencies - -Now whenever the spec is changed, the git hooks make sure that the precommit -tasks are executed (such as formatting...) - -# Checking that the specification is valid - -In case you made changes to the spec, and want to check that it's valid before -commiting to git, you can follow these steps. - -- install - [`rmf-codegen`](https://github.com/vrapio/rmf-codegen#install-rmf-codegen-cli) - cli, if not already installed. -- run `rmf-codegen verify api.raml` at the project root, to check that the api - is valid. diff --git a/oas/ml/openapi.yaml b/oas/ml/openapi.yaml deleted file mode 100644 index 1d71d6234..000000000 --- a/oas/ml/openapi.yaml +++ /dev/null @@ -1,1312 +0,0 @@ -openapi: "3.0.0" -info: - title: commercetools Composable Commerce Machine Learning API - version: "v1" - -servers: - - url: https://ml-eu.europe-west1.gcp.commercetools.com - -paths: - /{projectKey}/image-search: - description: |- - Search for similar products using an image as search input. - parameters: - - name: projectKey - in: path - required: true - schema: - type: "string" - post: - operationId: ByProjectKeyImageSearchPost - description: |- - Accepts an image file and returns similar products from product catalogue. - parameters: - - name: limit - x-annotation-default: 5 - in: query - required: false - style: form - schema: - type: "integer" - format: "int32" - explode: true - - name: offset - x-annotation-default: 0 - in: query - required: false - style: form - schema: - type: "integer" - format: "int32" - explode: true - requestBody: - content: - "*/*": - schema: - type: string - responses: - "200": - description: |- - 200 - content: - application/json: - schema: - $ref: '#/components/schemas/ImageSearchResponse' - - /{projectKey}/image-search/config: - parameters: - - name: projectKey - in: path - required: true - schema: - type: "string" - get: - operationId: ByProjectKeyImageSearchConfigGet - description: |- - Get the current image search config. - responses: - "200": - description: |- - 200 - content: - application/json: - schema: - $ref: '#/components/schemas/ImageSearchConfigResponse' - - post: - operationId: ByProjectKeyImageSearchConfigPost - description: |- - Endpoint to update the image search config. - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ImageSearchConfigRequest' - - responses: - "200": - description: |- - 200 - content: - application/json: - schema: - $ref: '#/components/schemas/ImageSearchConfigResponse' - - /{projectKey}/missing-data/attributes: - parameters: - - name: projectKey - in: path - required: true - schema: - type: "string" - post: - operationId: ByProjectKeyMissingDataAttributesPost - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/MissingAttributesSearchRequest' - - responses: - "202": - description: |- - 202 - content: - application/json: - schema: - $ref: '#/components/schemas/TaskToken' - - /{projectKey}/missing-data/attributes/status/{taskId}: - parameters: - - name: projectKey - in: path - required: true - schema: - type: "string" - - name: taskId - in: path - required: true - schema: - type: "string" - get: - operationId: ByProjectKeyMissingDataAttributesStatusByTaskIdGet - responses: - "200": - description: |- - 200 - content: - application/json: - schema: - $ref: '#/components/schemas/MissingDataTaskStatus' - - /{projectKey}/missing-data/images: - parameters: - - name: projectKey - in: path - required: true - schema: - type: "string" - post: - operationId: ByProjectKeyMissingDataImagesPost - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/MissingImagesSearchRequest' - - responses: - "202": - description: |- - 202 - content: - application/json: - schema: - $ref: '#/components/schemas/TaskToken' - - /{projectKey}/missing-data/images/status/{taskId}: - parameters: - - name: projectKey - in: path - required: true - schema: - type: "string" - - name: taskId - in: path - required: true - schema: - type: "string" - get: - operationId: ByProjectKeyMissingDataImagesStatusByTaskIdGet - responses: - "200": - description: |- - 200 - content: - application/json: - schema: - $ref: '#/components/schemas/MissingImagesTaskStatus' - - /{projectKey}/missing-data/prices: - parameters: - - name: projectKey - in: path - required: true - schema: - type: "string" - post: - operationId: ByProjectKeyMissingDataPricesPost - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/MissingPricesSearchRequest' - - responses: - "202": - description: |- - 202 - content: - application/json: - schema: - $ref: '#/components/schemas/TaskToken' - - /{projectKey}/missing-data/prices/status/{taskId}: - parameters: - - name: projectKey - in: path - required: true - schema: - type: "string" - - name: taskId - in: path - required: true - schema: - type: "string" - get: - operationId: ByProjectKeyMissingDataPricesStatusByTaskIdGet - responses: - "200": - description: |- - 200 - content: - application/json: - schema: - $ref: '#/components/schemas/MissingPricesTaskStatus' - - /{projectKey}/recommendations/general-categories: - parameters: - - name: projectKey - in: path - required: true - schema: - type: "string" - get: - operationId: ByProjectKeyRecommendationsGeneralCategoriesGet - description: |- - This endpoint takes arbitrary product names or image URLs and generates recommendations from a general set of categories, which cover a broad range of industries. The full list of supported categories can be found [here](https://docs.commercetools.com/category_recommendations_supported_categories.txt). These are independent of the categories that are actually defined in your project. The main purpose of this API is to provide a quick way to test the behavior of the category recommendations engine for different names and images. In contrast to the [project-specific endpoint](https://docs.commercetools.com/http-api-projects-categoryrecommendations#project-specific-category-recommendations), this endpoint does not have [activation criteria](https://docs.commercetools.com/http-api-projects-categoryrecommendations#activating-the-api) and is enabled for all projects. - parameters: - - name: productImageUrl - in: query - required: false - style: form - schema: - type: "string" - explode: true - - name: productName - in: query - required: true - style: form - schema: - type: "string" - explode: true - - name: limit - x-annotation-default: 3 - in: query - required: false - style: form - schema: - type: "integer" - format: "int32" - explode: true - - name: offset - x-annotation-default: 0 - in: query - required: false - style: form - schema: - type: "integer" - format: "int32" - explode: true - - name: confidenceMin - in: query - required: false - style: form - schema: - type: "number" - format: "double" - explode: true - - name: confidenceMax - in: query - required: false - style: form - schema: - type: "number" - format: "double" - explode: true - responses: - "200": - description: |- - 200 - content: - application/json: - schema: - $ref: '#/components/schemas/GeneralCategoryRecommendationPagedQueryResponse' - - /{projectKey}/recommendations/project-categories/{productId}: - parameters: - - name: projectKey - in: path - required: true - schema: - type: "string" - - name: productId - in: path - required: true - schema: - type: "string" - get: - operationId: ByProjectKeyRecommendationsProjectCategoriesByProductIdGet - description: |- - Response Representation: PagedQueryResult with a results array of ProjectCategoryrecommendation, sorted by confidence scores in descending order and the meta information of ProjectCategoryrecommendationMeta. - parameters: - - name: limit - x-annotation-default: 3 - in: query - required: false - style: form - schema: - type: "integer" - format: "int32" - explode: true - - name: offset - x-annotation-default: 0 - in: query - required: false - style: form - schema: - type: "integer" - format: "int32" - explode: true - - name: staged - in: query - required: false - style: form - schema: - type: "boolean" - explode: true - - name: confidenceMin - in: query - required: false - style: form - schema: - type: "number" - format: "double" - explode: true - - name: confidenceMax - in: query - required: false - style: form - schema: - type: "number" - format: "double" - explode: true - responses: - "200": - description: |- - 200 - content: - application/json: - schema: - $ref: '#/components/schemas/ProjectCategoryRecommendationPagedQueryResponse' - - /{projectKey}/similarities/products: - parameters: - - name: projectKey - in: path - required: true - schema: - type: "string" - post: - operationId: ByProjectKeySimilaritiesProductsPost - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SimilarProductSearchRequest' - - responses: - "202": - description: |- - 202 - content: - application/json: - schema: - $ref: '#/components/schemas/TaskToken' - - /{projectKey}/similarities/products/status/{taskId}: - parameters: - - name: projectKey - in: path - required: true - schema: - type: "string" - - name: taskId - in: path - required: true - schema: - type: "string" - get: - operationId: ByProjectKeySimilaritiesProductsStatusByTaskIdGet - responses: - "200": - description: |- - 200 - content: - application/json: - schema: - $ref: '#/components/schemas/SimilarProductsTaskStatus' - - -components: - - securitySchemes: - oauth_2_0: - type: oauth2 - description: | - HTTP API authorization uses [OAuth2](https://datatracker.ietf.org/doc/html/rfc6750){:target="_blank"}. - - Clients must obtain an access token from the auth service using one of - the authorization flows described below, before they are able to make authorized requests - to other SPHERE.IO services. On successful completion of an authorization flow, - a client will be given an `access_token`, which they need to include in requests - to authorized service endpoints via the HTTP `Authorization` header like this: - - flows: - clientCredentials: - tokenUrl: https://auth.sphere.io/oauth/token - scopes: - "manage_project:{projectKey}": "" - "manage_products:{projectKey}": "" - "view_products:{projectKey}": "" - "manage_orders:{projectKey}": "" - "view_orders:{projectKey}": "" - "manage_customers:{projectKey}": "" - "view_customers:{projectKey}": "" - "manage_payments:{projectKey}": "" - "view_payments:{projectKey}": "" - "manage_subscriptions:{projectKey}": "" - "manage_extensions:{projectKey}": "" - "manage_types:{projectKey}": "" - "view_types:{projectKey}": "" - "view_shopping_lists:{projectKey}": "" - "manage_shopping_lists:{projectKey}": "" - "manage_my_orders:{projectKey}": "" - "manage_my_profile:{projectKey}": "" - "view_project_settings:{projectKey}": "" - - - schemas: - ProjectCategoryRecommendation: - type: "object" - required: - - category - - confidence - - path - properties: - category: - $ref: '#/components/schemas/CategoryReference' - confidence: - type: "number" - format: "double" - path: - type: "string" - ProjectCategoryRecommendationMeta: - type: "object" - required: - - generalCategoryNames - properties: - productName: - type: "string" - productImageUrl: - type: "string" - generalCategoryNames: - type: "array" - items: - type: "string" - ProjectCategoryRecommendationPagedQueryResponse: - type: "object" - required: - - count - - meta - - offset - - results - - total - properties: - count: - type: "number" - format: "double" - total: - type: "number" - format: "double" - offset: - type: "number" - format: "double" - results: - type: "array" - items: - $ref: '#/components/schemas/ProjectCategoryRecommendation' - meta: - $ref: '#/components/schemas/ProjectCategoryRecommendationMeta' - GeneralCategoryRecommendation: - type: "object" - required: - - categoryName - - confidence - properties: - categoryName: - type: "string" - confidence: - type: "number" - format: "double" - GeneralCategoryRecommendationPagedQueryResponse: - type: "object" - required: - - count - - offset - - results - - total - properties: - count: - type: "number" - format: "double" - total: - type: "number" - format: "double" - offset: - type: "number" - format: "double" - results: - type: "array" - items: - $ref: '#/components/schemas/GeneralCategoryRecommendation' - ImageSearchRequest: - {} - ImageSearchResponse: - type: "object" - required: - - count - - offset - - results - - total - properties: - count: - type: "number" - format: "double" - offset: - type: "number" - format: "double" - total: - type: "number" - format: "double" - results: - type: "array" - items: - $ref: '#/components/schemas/ResultItem' - ResultItem: - type: "object" - required: - - imageUrl - - productVariants - properties: - imageUrl: - type: "string" - productVariants: - type: "array" - items: - $ref: '#/components/schemas/ProductVariant' - ImageSearchConfigStatus: - type: "string" - enum: - - on - - off - ImageSearchConfigUpdateAction: - type: "object" - discriminator: - propertyName: action - mapping: - changeStatus: '#/components/schemas/ChangeStatusUpdateAction' - required: - - action - properties: - action: - type: "string" - ChangeStatusUpdateAction: - allOf: - - $ref: '#/components/schemas/ImageSearchConfigUpdateAction' - - type: "object" - required: - - status - properties: - action: - type: "string" - status: - $ref: '#/components/schemas/ImageSearchConfigStatus' - ImageSearchConfigRequest: - type: "object" - required: - - actions - properties: - actions: - type: "array" - items: - $ref: '#/components/schemas/ImageSearchConfigUpdateAction' - ImageSearchConfigResponse: - type: "object" - required: - - lastModifiedAt - - status - properties: - status: - $ref: '#/components/schemas/ImageSearchConfigStatus' - lastModifiedAt: - type: "string" - format: "datetime" - AttributeCount: - type: "object" - required: - - missingAttributeValues - - productTypeAttributes - - variantAttributes - properties: - productTypeAttributes: - type: "number" - format: "double" - variantAttributes: - type: "number" - format: "double" - missingAttributeValues: - type: "number" - format: "double" - AttributeCoverage: - type: "object" - required: - - names - - values - properties: - names: - type: "number" - format: "double" - values: - type: "number" - format: "double" - MissingAttributesDetails: - type: "object" - required: - - missingAttributeNames - - missingAttributeValues - - total - properties: - total: - type: "number" - format: "double" - missingAttributeNames: - type: "number" - format: "double" - missingAttributeValues: - type: "number" - format: "double" - MissingAttributes: - type: "object" - required: - - missingAttributeValues - - product - - productType - - variantId - properties: - product: - $ref: '#/components/schemas/ProductReference' - productType: - $ref: '#/components/schemas/ProductTypeReference' - variantId: - type: "number" - format: "double" - missingAttributeValues: - type: "array" - items: - type: "string" - missingAttributeNames: - type: "array" - items: - type: "string" - attributeCount: - $ref: '#/components/schemas/AttributeCount' - attributeCoverage: - $ref: '#/components/schemas/AttributeCoverage' - MissingAttributesMeta: - type: "object" - required: - - productLevel - - variantLevel - properties: - productLevel: - $ref: '#/components/schemas/MissingAttributesDetails' - variantLevel: - $ref: '#/components/schemas/MissingAttributesDetails' - productTypeIds: - type: "array" - items: - type: "string" - MissingAttributesSearchRequest: - type: "object" - properties: - limit: - type: "number" - format: "double" - offset: - type: "number" - format: "double" - staged: - type: "boolean" - productSetLimit: - type: "number" - format: "double" - includeVariants: - type: "boolean" - coverageMin: - type: "number" - format: "double" - coverageMax: - type: "number" - format: "double" - sortBy: - type: "string" - showMissingAttributeNames: - type: "boolean" - productIds: - type: "array" - items: - type: "string" - productTypeIds: - type: "array" - items: - type: "string" - attributeName: - type: "string" - MissingAttributesPagedQueryResult: - type: "object" - required: - - count - - meta - - offset - - results - - total - properties: - count: - type: "number" - format: "double" - total: - type: "number" - format: "double" - offset: - type: "number" - format: "double" - results: - type: "array" - items: - $ref: '#/components/schemas/MissingAttributes' - meta: - $ref: '#/components/schemas/MissingAttributesMeta' - MissingDataTaskStatus: - type: "object" - required: - - expires - - result - - state - properties: - state: - $ref: '#/components/schemas/TaskStatusEnum' - expires: - type: "string" - format: "datetime" - result: - $ref: '#/components/schemas/MissingAttributesPagedQueryResult' - MissingImages: - type: "object" - required: - - imageCount - - product - - variantId - properties: - product: - $ref: '#/components/schemas/ProductReference' - variantId: - type: "number" - format: "double" - imageCount: - type: "number" - format: "double" - MissingImagesCount: - type: "object" - required: - - missingImages - - total - properties: - missingImages: - type: "number" - format: "double" - total: - type: "number" - format: "double" - MissingImagesProductLevel: - allOf: - - $ref: '#/components/schemas/MissingImagesCount' - - type: "object" - required: - - missingImages - - total - properties: - missingImages: - type: "number" - format: "double" - total: - type: "number" - format: "double" - MissingImagesVariantLevel: - allOf: - - $ref: '#/components/schemas/MissingImagesCount' - - type: "object" - required: - - missingImages - - total - properties: - missingImages: - type: "number" - format: "double" - total: - type: "number" - format: "double" - MissingImagesMeta: - type: "object" - required: - - productLevel - - threshold - - variantLevel - properties: - productLevel: - $ref: '#/components/schemas/MissingImagesProductLevel' - variantLevel: - $ref: '#/components/schemas/MissingImagesVariantLevel' - threshold: - type: "number" - format: "double" - MissingImagesSearchRequest: - type: "object" - properties: - limit: - type: "number" - format: "double" - offset: - type: "number" - format: "double" - staged: - type: "boolean" - productSetLimit: - type: "number" - format: "double" - includeVariants: - type: "boolean" - autoThreshold: - type: "boolean" - threshold: - type: "number" - format: "double" - productIds: - type: "array" - items: - type: "string" - productTypeIds: - type: "array" - items: - type: "string" - MissingImagesPagedQueryResult: - type: "object" - required: - - count - - meta - - offset - - results - - total - properties: - count: - type: "number" - format: "double" - total: - type: "number" - format: "double" - offset: - type: "number" - format: "double" - results: - type: "array" - items: - $ref: '#/components/schemas/MissingImages' - meta: - $ref: '#/components/schemas/MissingImagesMeta' - MissingImagesTaskStatus: - type: "object" - required: - - expires - - result - - state - properties: - state: - $ref: '#/components/schemas/TaskStatusEnum' - expires: - type: "string" - format: "datetime" - result: - $ref: '#/components/schemas/MissingImagesPagedQueryResult' - MissingPrices: - type: "object" - required: - - product - - variantId - properties: - product: - $ref: '#/components/schemas/ProductReference' - variantId: - type: "number" - format: "double" - MissingPricesProductCount: - type: "object" - required: - - missingPrices - - total - properties: - total: - type: "number" - format: "double" - missingPrices: - type: "number" - format: "double" - MissingPricesProductLevel: - allOf: - - $ref: '#/components/schemas/MissingPricesProductCount' - - type: "object" - required: - - missingPrices - - total - properties: - total: - type: "number" - format: "double" - missingPrices: - type: "number" - format: "double" - MissingPricesVariantLevel: - allOf: - - $ref: '#/components/schemas/MissingPricesProductCount' - - type: "object" - required: - - missingPrices - - total - properties: - total: - type: "number" - format: "double" - missingPrices: - type: "number" - format: "double" - MissingPricesMeta: - type: "object" - required: - - productLevel - - variantLevel - properties: - productLevel: - $ref: '#/components/schemas/MissingPricesProductLevel' - variantLevel: - $ref: '#/components/schemas/MissingPricesVariantLevel' - MissingPricesSearchRequest: - type: "object" - properties: - limit: - type: "number" - format: "double" - offset: - type: "number" - format: "double" - staged: - type: "boolean" - productSetLimit: - type: "number" - format: "double" - includeVariants: - type: "boolean" - currencyCode: - type: "string" - checkDate: - type: "boolean" - validFrom: - type: "string" - format: "datetime" - validUntil: - type: "string" - format: "datetime" - productIds: - type: "array" - items: - type: "string" - productTypeIds: - type: "array" - items: - type: "string" - MissingPricesPagedQueryResult: - type: "object" - required: - - count - - meta - - offset - - results - - total - properties: - count: - type: "number" - format: "double" - total: - type: "number" - format: "double" - offset: - type: "number" - format: "double" - results: - type: "array" - items: - $ref: '#/components/schemas/MissingPrices' - meta: - $ref: '#/components/schemas/MissingPricesMeta' - MissingPricesTaskStatus: - type: "object" - required: - - expires - - result - - state - properties: - state: - $ref: '#/components/schemas/TaskStatusEnum' - expires: - type: "string" - format: "datetime" - result: - $ref: '#/components/schemas/MissingPricesPagedQueryResult' - LocalizedString: - type: "object" - required: - - /^[a-z]{2}(-[A-Z]{2})?$/ - additionalProperties: - type: "string" - CurrencyCode: - type: "string" - Money: - type: "object" - required: - - centAmount - - currencyCode - properties: - centAmount: - type: "number" - format: "double" - currencyCode: - $ref: '#/components/schemas/CurrencyCode' - ReferenceTypeId: - type: "string" - enum: - - cart - - cart-discount - - category - - channel - - customer - - customer-group - - discount-code - - key-value-document - - payment - - product - - product-type - - product-discount - - order - - review - - shopping-list - - shipping-method - - state - - store - - tax-category - - type - - zone - - inventory-entry - - order-edit - Reference: - type: "object" - discriminator: - propertyName: typeId - mapping: - category: '#/components/schemas/CategoryReference' - product: '#/components/schemas/ProductReference' - product-type: '#/components/schemas/ProductTypeReference' - required: - - id - - typeId - properties: - typeId: - $ref: '#/components/schemas/ReferenceTypeId' - id: - type: "string" - CategoryReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: "object" - properties: - typeId: - $ref: '#/components/schemas/ReferenceTypeId' - id: - type: "string" - ProductReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: "object" - properties: - typeId: - $ref: '#/components/schemas/ReferenceTypeId' - id: - type: "string" - ProductTypeReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: "object" - properties: - typeId: - $ref: '#/components/schemas/ReferenceTypeId' - id: - type: "string" - ProductVariant: - type: "object" - required: - - product - - staged - - variantId - properties: - product: - $ref: '#/components/schemas/ProductReference' - staged: - type: "boolean" - variantId: - type: "number" - format: "double" - TaskStatusEnum: - type: "string" - enum: - - PENDING - - SUCCESS - TaskToken: - type: "object" - required: - - taskId - - uriPath - properties: - taskId: - type: "string" - uriPath: - type: "string" - ProductSetSelector: - type: "object" - required: - - projectKey - properties: - projectKey: - type: "string" - productIds: - type: "array" - items: - type: "string" - productTypeIds: - type: "array" - items: - type: "string" - staged: - type: "boolean" - includeVariants: - type: "boolean" - productSetLimit: - type: "number" - format: "double" - SimilarityMeasures: - type: "object" - properties: - name: - type: "number" - format: "double" - description: - type: "number" - format: "double" - attribute: - type: "number" - format: "double" - variantCount: - type: "number" - format: "double" - price: - type: "number" - format: "double" - SimilarProductSearchRequest: - type: "object" - properties: - limit: - type: "number" - format: "double" - offset: - type: "number" - format: "double" - language: - type: "string" - currencyCode: - type: "string" - similarityMeasures: - $ref: '#/components/schemas/SimilarityMeasures' - productSetSelectors: - type: "array" - items: - $ref: '#/components/schemas/ProductSetSelector' - confidenceMin: - type: "number" - format: "double" - confidenceMax: - type: "number" - format: "double" - SimilarProduct: - type: "object" - properties: - product: - $ref: '#/components/schemas/ProductReference' - variantId: - type: "number" - format: "double" - meta: - $ref: '#/components/schemas/SimilarProductMeta' - SimilarProductMeta: - type: "object" - properties: - name: - $ref: '#/components/schemas/LocalizedString' - description: - $ref: '#/components/schemas/LocalizedString' - price: - $ref: '#/components/schemas/Money' - variantCount: - type: "number" - format: "double" - SimilarProductPair: - type: "object" - required: - - confidence - - products - properties: - confidence: - type: "number" - format: "double" - products: - type: "array" - items: - $ref: '#/components/schemas/SimilarProduct' - SimilarProductSearchRequestMeta: - type: "object" - required: - - similarityMeasures - properties: - similarityMeasures: - $ref: '#/components/schemas/SimilarityMeasures' - SimilarProductsPagedQueryResult: - type: "object" - required: - - count - - meta - - offset - - results - - total - properties: - count: - type: "number" - format: "double" - total: - type: "number" - format: "double" - offset: - type: "number" - format: "double" - results: - type: "array" - items: - $ref: '#/components/schemas/SimilarProductPair' - meta: - $ref: '#/components/schemas/SimilarProductSearchRequestMeta' - SimilarProductsTaskStatus: - type: "object" - required: - - result - - state - properties: - state: - $ref: '#/components/schemas/TaskStatusEnum' - expires: - type: "string" - format: "datetime" - result: - $ref: '#/components/schemas/SimilarProductsPagedQueryResult' From e5585a5cbf8c346ba1b8b87fcc2ae704047c5898 Mon Sep 17 00:00:00 2001 From: Auto Mation Date: Wed, 27 Dec 2023 14:41:37 +0000 Subject: [PATCH 42/44] Updated API from documentation release --- .../api/examples/approval-flow-update-response.example.json | 3 +-- api-specs/api/examples/approval-flow.example.json | 3 +-- api-specs/api/examples/approval-flows.example.json | 3 +-- api-specs/importapi/api.raml | 2 +- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/api-specs/api/examples/approval-flow-update-response.example.json b/api-specs/api/examples/approval-flow-update-response.example.json index 02755255b..5f1121dab 100644 --- a/api-specs/api/examples/approval-flow-update-response.example.json +++ b/api-specs/api/examples/approval-flow-update-response.example.json @@ -23,7 +23,6 @@ { "id": "ff806a85-1457-4cef-929a-79aefe85f02d", "version": 1, - "lastMessageSequenceNumber": 1, "createdAt": "2023-06-12T14:43:45.732Z", "lastModifiedAt": "2023-06-12T14:43:45.732Z", "lastModifiedBy": { @@ -96,4 +95,4 @@ "eligibleApprovers": [], "pendingApprovers": [], "currentTierPendingApprovers": [] -} \ No newline at end of file +} diff --git a/api-specs/api/examples/approval-flow.example.json b/api-specs/api/examples/approval-flow.example.json index 74d8fa0d7..33ae37d59 100644 --- a/api-specs/api/examples/approval-flow.example.json +++ b/api-specs/api/examples/approval-flow.example.json @@ -23,7 +23,6 @@ { "id": "ff806a85-1457-4cef-929a-79aefe85f02d", "version": 1, - "lastMessageSequenceNumber": 1, "createdAt": "2023-06-12T14:43:45.732Z", "lastModifiedAt": "2023-06-12T14:43:45.732Z", "lastModifiedBy": { @@ -158,4 +157,4 @@ } } ] -} \ No newline at end of file +} diff --git a/api-specs/api/examples/approval-flows.example.json b/api-specs/api/examples/approval-flows.example.json index 6238e4691..58aa7277a 100644 --- a/api-specs/api/examples/approval-flows.example.json +++ b/api-specs/api/examples/approval-flows.example.json @@ -29,7 +29,6 @@ { "id": "ff806a85-1457-4cef-929a-79aefe85f02d", "version": 1, - "lastMessageSequenceNumber": 1, "createdAt": "2023-06-12T14:43:45.732Z", "lastModifiedAt": "2023-06-12T14:43:45.732Z", "lastModifiedBy": { @@ -166,4 +165,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/api-specs/importapi/api.raml b/api-specs/importapi/api.raml index d2ae41f09..d897f5de6 100644 --- a/api-specs/importapi/api.raml +++ b/api-specs/importapi/api.raml @@ -268,7 +268,7 @@ traits: Number of [elements skipped](/../api/general-concepts#offset). sort?: description: | - See [Sorting](https://docs.commercetools.com/api/general-concepts#sorting). + See [Sorting](/../api/general-concepts#sorting). type: string[] resourceKey?: description: | From d216fff1d56706c8f7cb20b8c9d10b917b8f7781 Mon Sep 17 00:00:00 2001 From: Auto Mation Date: Wed, 3 Jan 2024 10:52:30 +0000 Subject: [PATCH 43/44] Updated API from documentation release --- api-specs/api/resources/in-store.raml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/api-specs/api/resources/in-store.raml b/api-specs/api/resources/in-store.raml index 78ce84e99..e0c0fb92f 100644 --- a/api-specs/api/resources/in-store.raml +++ b/api-specs/api/resources/in-store.raml @@ -2131,10 +2131,12 @@ uriParameters: ] description: | Gets the current or staged representation of a [Product](ctp:api:type:Product) by its key from the specified [Store](ctp:api:type:Store). - If the Store has defined some languages, countries, distribution or supply Channels, + If the Store has defined some languages, countries, distribution, supply Channels, and/or Product Selection, they are used for projections based on [locale](ctp:api:type:ProductProjectionLocales), [price](ctp:api:type:ProductProjectionPrices) and [inventory](ctp:api:type:ProductProjectionInventoryEntries). + If [ProductSelection](ctp:api:type:ProductSelection) is used, it affects the [availability of the Product](/projects/stores#products-available-in-store) in the specified Store. + When used with an API Client that has the `view_published_products:{projectKey}` scope, this endpoint only returns published (current) Product Projections. is: - projectionSelecting @@ -2174,10 +2176,12 @@ uriParameters: ] description: | Gets the current or staged representation of a [Product](ctp:api:type:Product) by its ID from the specified [Store](ctp:api:type:Store). - If the Store has defined some languages, countries, distribution or supply Channels, + If the Store has defined some languages, countries, distribution, supply Channels, and/or Product Selection, they are used for projections based on [locale](ctp:api:type:ProductProjectionLocales), [price](ctp:api:type:ProductProjectionPrices) and [inventory](ctp:api:type:ProductProjectionInventoryEntries). + If [ProductSelection](ctp:api:type:ProductSelection) is used, it affects the [availability of the Product](/projects/stores#products-available-in-store) in the specified Store. + When used with an API Client that has the `view_published_products:{projectKey}` scope, this endpoint only returns published (current) Product Projections. is: - projectionSelecting From b8eb9b44f67ccb9cf792a4a69cb3ee1b52ec46d3 Mon Sep 17 00:00:00 2001 From: Auto Mation Date: Wed, 3 Jan 2024 10:58:48 +0000 Subject: [PATCH 44/44] TASK: Updating RAML types, Postman and OAS definition --- oas/api/openapi.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/oas/api/openapi.yaml b/oas/api/openapi.yaml index c2f3c1754..cb64c817c 100644 --- a/oas/api/openapi.yaml +++ b/oas/api/openapi.yaml @@ -14374,10 +14374,12 @@ paths: operationId: ByProjectKeyInStoreKeyByStoreKeyProductProjectionsKeyByKeyGet description: |- Gets the current or staged representation of a [Product](ctp:api:type:Product) by its key from the specified [Store](ctp:api:type:Store). - If the Store has defined some languages, countries, distribution or supply Channels, + If the Store has defined some languages, countries, distribution, supply Channels, and/or Product Selection, they are used for projections based on [locale](ctp:api:type:ProductProjectionLocales), [price](ctp:api:type:ProductProjectionPrices) and [inventory](ctp:api:type:ProductProjectionInventoryEntries). + If [ProductSelection](ctp:api:type:ProductSelection) is used, it affects the [availability of the Product](/projects/stores#products-available-in-store) in the specified Store. + When used with an API Client that has the `view_published_products:{projectKey}` scope, this endpoint only returns published (current) Product Projections. parameters: - name: staged @@ -14509,10 +14511,12 @@ paths: operationId: ByProjectKeyInStoreKeyByStoreKeyProductProjectionsByIDGet description: |- Gets the current or staged representation of a [Product](ctp:api:type:Product) by its ID from the specified [Store](ctp:api:type:Store). - If the Store has defined some languages, countries, distribution or supply Channels, + If the Store has defined some languages, countries, distribution, supply Channels, and/or Product Selection, they are used for projections based on [locale](ctp:api:type:ProductProjectionLocales), [price](ctp:api:type:ProductProjectionPrices) and [inventory](ctp:api:type:ProductProjectionInventoryEntries). + If [ProductSelection](ctp:api:type:ProductSelection) is used, it affects the [availability of the Product](/projects/stores#products-available-in-store) in the specified Store. + When used with an API Client that has the `view_published_products:{projectKey}` scope, this endpoint only returns published (current) Product Projections. parameters: - name: staged