diff --git a/changes.md b/changes.md
index aa8cd10ff7e..02a75726e51 100644
--- a/changes.md
+++ b/changes.md
@@ -3,34 +3,81 @@
Added Type(s)
-- added type `DiscountedLineItemPortionDraft`
+- added type `ProductTailoringCreatedMessage`
+- added type `ProductTailoringDeletedMessage`
+- added type `ProductTailoringDescriptionSetMessage`
+- added type `ProductTailoringNameSetMessage`
+- added type `ProductTailoringPublishedMessage`
+- added type `ProductTailoringSlugSetMessage`
+- added type `ProductTailoringUnpublishedMessage`
+- added type `ProductTailoringCreatedMessagePayload`
+- added type `ProductTailoringDeletedMessagePayload`
+- added type `ProductTailoringDescriptionSetMessagePayload`
+- added type `ProductTailoringNameSetMessagePayload`
+- added type `ProductTailoringPublishedMessagePayload`
+- added type `ProductTailoringSlugSetMessagePayload`
+- added type `ProductTailoringUnpublishedMessagePayload`
+- added type `ProductTailoring`
+- added type `ProductTailoringData`
+- added type `ProductTailoringDraft`
+- added type `ProductTailoringInStoreDraft`
+- added type `ProductTailoringPagedQueryResponse`
+- added type `ProductTailoringReference`
+- added type `ProductTailoringResourceIdentifier`
+- added type `ProductTailoringUpdate`
+- added type `ProductTailoringUpdateAction`
+- added type `ProductTailoringPublishAction`
+- added type `ProductTailoringSetDescriptionAction`
+- added type `ProductTailoringSetMetaAttributesAction`
+- added type `ProductTailoringSetMetaDescriptionAction`
+- added type `ProductTailoringSetMetaKeywordsAction`
+- added type `ProductTailoringSetMetaTitleAction`
+- added type `ProductTailoringSetNameAction`
+- added type `ProductTailoringSetSlugAction`
+- added type `ProductTailoringUnpublishAction`
-Required Property(s)
-
-- :warning: changed property `isOnStock` of type `ProductVariantAvailability` to be required
-- changed property `priceMode` of type `CustomLineItemDraft` to be optional
-- changed property `oldShipmentState` of type `OrderShipmentStateChangedMessage` to be optional
-- changed property `oldOrderState` of type `OrderStateChangedMessage` to be optional
-- changed property `oldShipmentState` of type `OrderShipmentStateChangedMessagePayload` to be optional
-- changed property `oldOrderState` of type `OrderStateChangedMessagePayload` to be optional
+Added Method(s)
+
+- added method `apiRoot.withProjectKey().productTailoring().get()`
+- added method `apiRoot.withProjectKey().productTailoring().post()`
+- added method `apiRoot.withProjectKey().productTailoring().withKey().get()`
+- added method `apiRoot.withProjectKey().productTailoring().withKey().post()`
+- added method `apiRoot.withProjectKey().productTailoring().withKey().delete()`
+- added method `apiRoot.withProjectKey().productTailoring().withId().get()`
+- added method `apiRoot.withProjectKey().productTailoring().withId().post()`
+- added method `apiRoot.withProjectKey().productTailoring().withId().delete()`
+- added method `apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().productTailoring().get()`
+- added method `apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().productTailoring().post()`
+- added method `apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().products().withProductId().productTailoring().get()`
+- added method `apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().products().withProductId().productTailoring().post()`
+- added method `apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().products().withProductId().productTailoring().delete()`
+- added method `apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().products().withProductKey().productTailoring().get()`
+- added method `apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().products().withProductKey().productTailoring().post()`
+- added method `apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().products().withProductKey().productTailoring().delete()`
-Changed Property(s)
+Added Enum(s)
-- :warning: changed property `includedDiscounts` of type `DiscountedLineItemPriceDraft` from type `DiscountedLineItemPortion[]` to `DiscountedLineItemPortionDraft[]`
+- added enum `product-tailoring` to type `ReferenceTypeId`
-Added Property(s)
+Added Resource(s)
-- added property `totalTax` to type `TaxedPriceDraft`
-- added property `id` to type `ProductVariantAvailability`
-- added property `version` to type `ProductVariantAvailability`
+- added resource `/{projectKey}/product-tailoring`
+- added resource `/{projectKey}/product-tailoring/key={key}`
+- added resource `/{projectKey}/product-tailoring/{ID}`
+- added resource `/{projectKey}/in-store/key={storeKey}/product-tailoring`
+- added resource `/{projectKey}/in-store/key={storeKey}/products`
+- added resource `/{projectKey}/in-store/key={storeKey}/products/{productID}`
+- added resource `/{projectKey}/in-store/key={storeKey}/products/key={productKey}`
+- added resource `/{projectKey}/in-store/key={storeKey}/products/{productID}/product-tailoring`
+- added resource `/{projectKey}/in-store/key={storeKey}/products/key={productKey}/product-tailoring`
diff --git a/commercetools/commercetools-graphql-api/src/main/resources/graphql/schema.graphqls b/commercetools/commercetools-graphql-api/src/main/resources/graphql/schema.graphqls
index 579acf6a69a..bc2f94c4d9c 100644
--- a/commercetools/commercetools-graphql-api/src/main/resources/graphql/schema.graphqls
+++ b/commercetools/commercetools-graphql-api/src/main/resources/graphql/schema.graphqls
@@ -2978,6 +2978,19 @@ input CreateProductSelectionDraft {
custom: CustomFieldsDraft
}
+"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
+input ProductTailoringDraft {
+ product: ResourceIdentifierInput!
+ name: [LocalizedStringItemInputType!]
+ key: String
+ description: [LocalizedStringItemInputType!]
+ slug: [LocalizedStringItemInputType!]
+ metaTitle: [LocalizedStringItemInputType!]
+ metaDescription: [LocalizedStringItemInputType!]
+ metaKeywords: [LocalizedStringItemInputType!]
+ publish: Boolean
+}
+
input CreateStandalonePrice {
key: String
sku: String!
@@ -4555,6 +4568,23 @@ type InStore implements CartDiscountQueryInterface & CartQueryInterface & Custom
key: String): ShoppingList
shoppingLists(where: String, sort: [String!], limit: Int, offset: Int): ShoppingListQueryResult!
productSelectionAssignments(where: String, sort: [String!], limit: Int, offset: Int): ProductAssignmentQueryResult!
+
+ "BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
+ productTailoring(
+ "Queries with specified ID"
+ id: String,
+
+ "Queries with specified key"
+ key: String,
+
+ "Queries with specified Product ID"
+ productId: String,
+
+ "Queries with specified Product key"
+ productKey: String): ProductTailoring
+
+ "BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
+ productTailoringList(where: String, sort: [String!], limit: Int, offset: Int): ProductTailoringQueryResult!
}
type InStoreMe implements MeQueryInterface & CartQueryInterface & ActiveCartInterface & OrderQueryInterface & ShoppingListQueryInterface {
@@ -5907,6 +5937,47 @@ type Mutation {
"Queries with specified key"
key: String): ProductSelection
+
+ "BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
+ createProductTailoring(
+ "The mutation is only performed if the resource is part of the store. Can be used with store-specific OAuth permissions."
+ storeKey: KeyReferenceInput, draft: ProductTailoringDraft!): ProductTailoring
+
+ "BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
+ updateProductTailoring(
+ "The mutation is only performed if the resource is part of the store. Can be used with store-specific OAuth permissions."
+ storeKey: KeyReferenceInput,
+
+ "Queries with specified Product ID"
+ productId: String,
+
+ "Queries with specified Product key"
+ productKey: String,
+
+ "Queries with specified ID"
+ id: String,
+
+ "Queries with specified key"
+ key: String,
+
+ actions: [ProductTailoringUpdateAction!]!, version: Long!): ProductTailoring
+
+ "BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
+ deleteProductTailoring(
+ "The mutation is only performed if the resource is part of the store. Can be used with store-specific OAuth permissions."
+ storeKey: KeyReferenceInput,
+
+ "Queries with specified Product ID"
+ productId: String,
+
+ "Queries with specified Product key"
+ productKey: String,
+
+ "Queries with specified ID"
+ id: String,
+
+ "Queries with specified key"
+ key: String, version: Long!): ProductTailoring
updateProject(version: Long!, actions: [ProjectSettingsUpdateAction!]!): ProjectProjection
createStore(draft: CreateStore!): Store
updateStore(version: Long!, actions: [StoreUpdateAction!]!,
@@ -8077,6 +8148,208 @@ type ProductStateTransition implements MessagePayload {
type: String!
}
+"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
+type ProductTailoring implements Versioned {
+ key: String
+ productRef: Reference!
+ product: Product
+ storeRef: KeyReference!
+ store: Store
+ current: ProductTailoringData
+ staged: ProductTailoringData
+ published: Boolean!
+ hasStagedChanges: Boolean!
+ id: String!
+ version: Long!
+ createdAt: DateTime!
+ lastModifiedAt: DateTime!
+ createdBy: Initiator
+ lastModifiedBy: Initiator
+}
+
+type ProductTailoringCreated implements MessagePayload {
+ publish: Boolean!
+ storeRef: KeyReference!
+ productRef: Reference!
+ key: String
+ productKey: String
+ name(
+ "String is defined for different locales. This argument specifies the desired locale."
+ locale: Locale,
+
+ "List of languages the client is able to understand, and which locale variant is preferred."
+ acceptLanguage: [Locale!]): String
+ description(
+ "String is defined for different locales. This argument specifies the desired locale."
+ locale: Locale,
+
+ "List of languages the client is able to understand, and which locale variant is preferred."
+ acceptLanguage: [Locale!]): String
+ slug(
+ "String is defined for different locales. This argument specifies the desired locale."
+ locale: Locale,
+
+ "List of languages the client is able to understand, and which locale variant is preferred."
+ acceptLanguage: [Locale!]): String
+ nameAllLocales: [LocalizedString!]
+ slugAllLocales: [LocalizedString!]
+ descriptionAllLocales: [LocalizedString!]
+ type: String!
+}
+
+"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
+type ProductTailoringData {
+ name(
+ "String is defined for different locales. This argument specifies the desired locale."
+ locale: Locale,
+
+ "List of languages the client is able to understand, and which locale variant is preferred."
+ acceptLanguage: [Locale!]): String
+ nameAllLocales: [LocalizedString!]
+ description(
+ "String is defined for different locales. This argument specifies the desired locale."
+ locale: Locale,
+
+ "List of languages the client is able to understand, and which locale variant is preferred."
+ acceptLanguage: [Locale!]): String
+ descriptionAllLocales: [LocalizedString!]
+ slug(
+ "String is defined for different locales. This argument specifies the desired locale."
+ locale: Locale,
+
+ "List of languages the client is able to understand, and which locale variant is preferred."
+ acceptLanguage: [Locale!]): String
+ slugAllLocales: [LocalizedString!]
+ metaTitle(
+ "String is defined for different locales. This argument specifies the desired locale."
+ locale: Locale,
+
+ "List of languages the client is able to understand, and which locale variant is preferred."
+ acceptLanguage: [Locale!]): String
+ metaTitleAllLocales: [LocalizedString!]
+ metaDescription(
+ "String is defined for different locales. This argument specifies the desired locale."
+ locale: Locale,
+
+ "List of languages the client is able to understand, and which locale variant is preferred."
+ acceptLanguage: [Locale!]): String
+ metaDescriptionAllLocales: [LocalizedString!]
+ metaKeywords(
+ "String is defined for different locales. This argument specifies the desired locale."
+ locale: Locale,
+
+ "List of languages the client is able to understand, and which locale variant is preferred."
+ acceptLanguage: [Locale!]): String
+ metaKeywordsAllLocales: [LocalizedString!]
+}
+
+type ProductTailoringDeleted implements MessagePayload {
+ storeRef: KeyReference!
+ productRef: Reference!
+ productKey: String
+ type: String!
+}
+
+type ProductTailoringDescriptionSet implements MessagePayload {
+ storeRef: KeyReference!
+ productRef: Reference!
+ productKey: String
+ description(
+ "String is defined for different locales. This argument specifies the desired locale."
+ locale: Locale,
+
+ "List of languages the client is able to understand, and which locale variant is preferred."
+ acceptLanguage: [Locale!]): String
+ oldDescription(
+ "String is defined for different locales. This argument specifies the desired locale."
+ locale: Locale,
+
+ "List of languages the client is able to understand, and which locale variant is preferred."
+ acceptLanguage: [Locale!]): String
+ descriptionAllLocales: [LocalizedString!]
+ oldDescriptionAllLocales: [LocalizedString!]
+ type: String!
+}
+
+type ProductTailoringNameSet implements MessagePayload {
+ storeRef: KeyReference!
+ productRef: Reference!
+ productKey: String
+ name(
+ "String is defined for different locales. This argument specifies the desired locale."
+ locale: Locale,
+
+ "List of languages the client is able to understand, and which locale variant is preferred."
+ acceptLanguage: [Locale!]): String
+ oldName(
+ "String is defined for different locales. This argument specifies the desired locale."
+ locale: Locale,
+
+ "List of languages the client is able to understand, and which locale variant is preferred."
+ acceptLanguage: [Locale!]): String
+ nameAllLocales: [LocalizedString!]
+ oldNameAllLocales: [LocalizedString!]
+ type: String!
+}
+
+type ProductTailoringPublished implements MessagePayload {
+ storeRef: KeyReference!
+ productRef: Reference!
+ productKey: String
+ type: String!
+}
+
+type ProductTailoringQueryResult {
+ offset: Int!
+ count: Int!
+ total: Long!
+
+ "BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
+ exists: Boolean!
+ results: [ProductTailoring!]!
+}
+
+type ProductTailoringSlugSet implements MessagePayload {
+ storeRef: KeyReference!
+ productRef: Reference!
+ productKey: String
+ slug(
+ "String is defined for different locales. This argument specifies the desired locale."
+ locale: Locale,
+
+ "List of languages the client is able to understand, and which locale variant is preferred."
+ acceptLanguage: [Locale!]): String
+ oldSlug(
+ "String is defined for different locales. This argument specifies the desired locale."
+ locale: Locale,
+
+ "List of languages the client is able to understand, and which locale variant is preferred."
+ acceptLanguage: [Locale!]): String
+ slugAllLocales: [LocalizedString!]
+ oldSlugAllLocales: [LocalizedString!]
+ type: String!
+}
+
+type ProductTailoringUnpublished implements MessagePayload {
+ storeRef: KeyReference!
+ productRef: Reference!
+ productKey: String
+ type: String!
+}
+
+"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
+input ProductTailoringUpdateAction {
+ publish: PublishTailoring
+ unpublish: UnpublishTailoring
+ setDescription: SetProductTailoringDescription
+ setMetaAttributes: SetProductTailoringMetaAttributes
+ setMetaDescription: SetProductTailoringMetaDescription
+ setMetaKeywords: SetProductTailoringMetaKeywords
+ setMetaTitle: SetProductTailoringMetaTitle
+ setName: SetProductTailoringName
+ setSlug: SetProductTailoringSlug
+}
+
type ProductTypeDefinition implements Versioned & ReferenceExpandable {
key: String
name: String!
@@ -8407,6 +8680,10 @@ enum PublishScope {
Prices
}
+input PublishTailoring {
+ dummy: String
+}
+
type PurchaseOrderNumberSet implements MessagePayload & OrderMessagePayload {
purchaseOrderNumber: String
oldPurchaseOrderNumber: String
@@ -8608,6 +8885,26 @@ type Query {
"Queries with specified key"
key: String): ProductSelection
productSelections(where: String, sort: [String!], limit: Int, offset: Int): ProductSelectionQueryResult!
+
+ "BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
+ productTailoring(
+ "Queries with specified ID"
+ id: String,
+
+ "Queries with specified key"
+ key: String,
+
+ "Queries with specified Product ID"
+ productId: String,
+
+ "Queries with specified Product key"
+ productKey: String,
+
+ "The mutation is only performed if the resource is part of the store. Can be used with store-specific OAuth permissions."
+ storeKey: KeyReferenceInput): ProductTailoring
+
+ "BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
+ productTailoringList(where: String, sort: [String!], limit: Int, offset: Int): ProductTailoringQueryResult!
productProjectionsSuggest(searchKeywords: [SearchKeywordArgument!]!, fuzzy: Boolean, limit: Int = 10, staged: Boolean = false): SuggestResult!
project: ProjectProjection!
store(
@@ -11166,6 +11463,43 @@ input SetProductSku {
staged: Boolean = true
}
+input SetProductTailoringDescription {
+ description: [LocalizedStringItemInputType!]
+ staged: Boolean = true
+}
+
+input SetProductTailoringMetaAttributes {
+ metaDescription: [LocalizedStringItemInputType!]
+ metaKeywords: [LocalizedStringItemInputType!]
+ metaTitle: [LocalizedStringItemInputType!]
+ staged: Boolean = true
+}
+
+input SetProductTailoringMetaDescription {
+ metaDescription: [LocalizedStringItemInputType!]
+ staged: Boolean = true
+}
+
+input SetProductTailoringMetaKeywords {
+ metaKeywords: [LocalizedStringItemInputType!]
+ staged: Boolean = true
+}
+
+input SetProductTailoringMetaTitle {
+ metaTitle: [LocalizedStringItemInputType!]
+ staged: Boolean = true
+}
+
+input SetProductTailoringName {
+ name: [LocalizedStringItemInputType!]
+ staged: Boolean = true
+}
+
+input SetProductTailoringSlug {
+ slug: [LocalizedStringItemInputType!]
+ staged: Boolean = true
+}
+
input SetProductTaxCategory {
taxCategory: ResourceIdentifierInput
}
@@ -13849,6 +14183,10 @@ input UnpublishProduct {
dummy: String
}
+input UnpublishTailoring {
+ dummy: String
+}
+
input UpdateCartItemShippingAddress {
address: AddressInput!
}
diff --git a/commercetools/commercetools-sdk-java-api/src/integrationTest/java/commercetools/ProjectApiRootTest.java b/commercetools/commercetools-sdk-java-api/src/integrationTest/java/commercetools/ProjectApiRootTest.java
index 14c47d12034..8ce338fe234 100644
--- a/commercetools/commercetools-sdk-java-api/src/integrationTest/java/commercetools/ProjectApiRootTest.java
+++ b/commercetools/commercetools-sdk-java-api/src/integrationTest/java/commercetools/ProjectApiRootTest.java
@@ -40,6 +40,8 @@ public void allSubResourcesSupported() {
.filter(methodName -> !projectApiRootMethods.contains(methodName))
.collect(Collectors.toList());
- Assertions.assertThat(resourceMethods).isEmpty();
+ Assertions.assertThat(resourceMethods)
+ .withFailMessage("missing endpoints in ProjectApiRoot: %s", resourceMethods)
+ .isEmpty();
}
}
diff --git a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductProjectionsByIDGet.java b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductProjectionsByIDGet.java
index 9acee87b615..61d42d0856e 100644
--- a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductProjectionsByIDGet.java
+++ b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductProjectionsByIDGet.java
@@ -20,7 +20,7 @@
import org.apache.commons.lang3.builder.HashCodeBuilder;
/**
- *
Gets the current or staged representation of a Product by its ID from the specified Store. If the Store has defined some languages, countries, distribution, supply Channels, and/or Product Selection, they are used for projections based on locale, price and inventory.
+ * Gets the current or staged representation of a Product by its ID in the specified Store. If the Store has defined some languages, countries, distribution, supply Channels, and/or Product Selection, they are used for projections based on locale, price and inventory.
* If ProductSelection is used, it affects the availability of the Product 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.
*
diff --git a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductProjectionsKeyByKeyGet.java b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductProjectionsKeyByKeyGet.java
index dcefbea0ee0..e0c358c47af 100644
--- a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductProjectionsKeyByKeyGet.java
+++ b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductProjectionsKeyByKeyGet.java
@@ -20,7 +20,7 @@
import org.apache.commons.lang3.builder.HashCodeBuilder;
/**
- * Gets the current or staged representation of a Product by its key from the specified Store. If the Store has defined some languages, countries, distribution, supply Channels, and/or Product Selection, they are used for projections based on locale, price and inventory.
+ * Gets the current or staged representation of a Product by its key in the specified Store. If the Store has defined some languages, countries, distribution, supply Channels, and/or Product Selection, they are used for projections based on locale, price and inventory.
* If ProductSelection is used, it affects the availability of the Product 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.
*
diff --git a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet.java b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet.java
new file mode 100644
index 00000000000..6f3f9e6d17c
--- /dev/null
+++ b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet.java
@@ -0,0 +1,698 @@
+
+package com.commercetools.api.client;
+
+import java.net.URI;
+import java.time.Duration;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.concurrent.CompletableFuture;
+import java.util.function.Function;
+import java.util.function.Supplier;
+import java.util.stream.Collectors;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+
+import io.vrap.rmf.base.client.*;
+import io.vrap.rmf.base.client.utils.Generated;
+
+import org.apache.commons.lang3.builder.EqualsBuilder;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+
+/**
+ * Queries Product Tailoring in a specific Store.
+ *
+ *
+ *
+ *
{@code
+ * CompletableFuture> result = apiRoot
+ * .withProjectKey("{projectKey}")
+ * .inStoreKeyWithStoreKeyValue("{storeKey}")
+ * .productTailoring()
+ * .get()
+ * .execute()
+ * }
+ *
+ */
+@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
+public class ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet extends
+ TypeApiMethod
+ implements com.commercetools.api.client.ExpandableTrait,
+ com.commercetools.api.client.QueryTrait,
+ com.commercetools.api.client.SortableTrait,
+ com.commercetools.api.client.PagingTrait,
+ com.commercetools.api.client.ErrorableTrait,
+ com.commercetools.api.client.Deprecatable200Trait {
+
+ @Override
+ public TypeReference resultType() {
+ return new TypeReference() {
+ };
+ }
+
+ private String projectKey;
+ private String storeKey;
+
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet(final ApiHttpClient apiHttpClient, String projectKey,
+ String storeKey) {
+ super(apiHttpClient);
+ this.projectKey = projectKey;
+ this.storeKey = storeKey;
+ }
+
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet(ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet t) {
+ super(t);
+ this.projectKey = t.projectKey;
+ this.storeKey = t.storeKey;
+ }
+
+ @Override
+ protected ApiHttpRequest buildHttpRequest() {
+ List params = new ArrayList<>(getQueryParamUriStrings());
+ String httpRequestPath = String.format("%s/in-store/key=%s/product-tailoring", this.projectKey, this.storeKey);
+ if (!params.isEmpty()) {
+ httpRequestPath += "?" + String.join("&", params);
+ }
+ return new ApiHttpRequest(ApiHttpMethod.GET, URI.create(httpRequestPath), getHeaders(), null);
+ }
+
+ @Override
+ public ApiHttpResponse executeBlocking(
+ final ApiHttpClient client, final Duration timeout) {
+ return executeBlocking(client, timeout,
+ com.commercetools.api.models.product_tailoring.ProductTailoringPagedQueryResponse.class);
+ }
+
+ @Override
+ public CompletableFuture> execute(
+ final ApiHttpClient client) {
+ return execute(client, com.commercetools.api.models.product_tailoring.ProductTailoringPagedQueryResponse.class);
+ }
+
+ public String getProjectKey() {
+ return this.projectKey;
+ }
+
+ public String getStoreKey() {
+ return this.storeKey;
+ }
+
+ public List getLimit() {
+ return this.getQueryParam("limit");
+ }
+
+ public List getOffset() {
+ return this.getQueryParam("offset");
+ }
+
+ public List getWithTotal() {
+ return this.getQueryParam("withTotal");
+ }
+
+ public List getExpand() {
+ return this.getQueryParam("expand");
+ }
+
+ public List getWhere() {
+ return this.getQueryParam("where");
+ }
+
+ public List getSort() {
+ return this.getQueryParam("sort");
+ }
+
+ public void setProjectKey(final String projectKey) {
+ this.projectKey = projectKey;
+ }
+
+ public void setStoreKey(final String storeKey) {
+ this.storeKey = storeKey;
+ }
+
+ /**
+ * set limit with the specified value
+ * @param limit value to be set
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withLimit(final TValue limit) {
+ return copy().withQueryParam("limit", limit);
+ }
+
+ /**
+ * add additional limit query parameter
+ * @param limit value to be added
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addLimit(final TValue limit) {
+ return copy().addQueryParam("limit", limit);
+ }
+
+ /**
+ * set limit with the specified value
+ * @param supplier supplier for the value to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withLimit(final Supplier supplier) {
+ return copy().withQueryParam("limit", supplier.get());
+ }
+
+ /**
+ * add additional limit query parameter
+ * @param supplier supplier for the value to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addLimit(final Supplier supplier) {
+ return copy().addQueryParam("limit", supplier.get());
+ }
+
+ /**
+ * set limit with the specified value
+ * @param op builder for the value to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withLimit(
+ final Function op) {
+ return copy().withQueryParam("limit", op.apply(new StringBuilder()));
+ }
+
+ /**
+ * add additional limit query parameter
+ * @param op builder for the value to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addLimit(
+ final Function op) {
+ return copy().addQueryParam("limit", op.apply(new StringBuilder()));
+ }
+
+ /**
+ * set limit with the specified values
+ * @param limit values to be set
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withLimit(final Collection limit) {
+ return copy().withoutQueryParam("limit")
+ .addQueryParams(
+ limit.stream().map(s -> new ParamEntry<>("limit", s.toString())).collect(Collectors.toList()));
+ }
+
+ /**
+ * add additional limit query parameters
+ * @param limit values to be added
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addLimit(final Collection limit) {
+ return copy().addQueryParams(
+ limit.stream().map(s -> new ParamEntry<>("limit", s.toString())).collect(Collectors.toList()));
+ }
+
+ /**
+ * set offset with the specified value
+ * @param offset value to be set
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withOffset(final TValue offset) {
+ return copy().withQueryParam("offset", offset);
+ }
+
+ /**
+ * add additional offset query parameter
+ * @param offset value to be added
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addOffset(final TValue offset) {
+ return copy().addQueryParam("offset", offset);
+ }
+
+ /**
+ * set offset with the specified value
+ * @param supplier supplier for the value to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withOffset(final Supplier supplier) {
+ return copy().withQueryParam("offset", supplier.get());
+ }
+
+ /**
+ * add additional offset query parameter
+ * @param supplier supplier for the value to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addOffset(final Supplier supplier) {
+ return copy().addQueryParam("offset", supplier.get());
+ }
+
+ /**
+ * set offset with the specified value
+ * @param op builder for the value to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withOffset(
+ final Function op) {
+ return copy().withQueryParam("offset", op.apply(new StringBuilder()));
+ }
+
+ /**
+ * add additional offset query parameter
+ * @param op builder for the value to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addOffset(
+ final Function op) {
+ return copy().addQueryParam("offset", op.apply(new StringBuilder()));
+ }
+
+ /**
+ * set offset with the specified values
+ * @param offset values to be set
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withOffset(final Collection offset) {
+ return copy().withoutQueryParam("offset")
+ .addQueryParams(
+ offset.stream().map(s -> new ParamEntry<>("offset", s.toString())).collect(Collectors.toList()));
+ }
+
+ /**
+ * add additional offset query parameters
+ * @param offset values to be added
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addOffset(final Collection offset) {
+ return copy().addQueryParams(
+ offset.stream().map(s -> new ParamEntry<>("offset", s.toString())).collect(Collectors.toList()));
+ }
+
+ /**
+ * set withTotal with the specified value
+ * @param withTotal value to be set
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withWithTotal(final TValue withTotal) {
+ return copy().withQueryParam("withTotal", withTotal);
+ }
+
+ /**
+ * add additional withTotal query parameter
+ * @param withTotal value to be added
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addWithTotal(final TValue withTotal) {
+ return copy().addQueryParam("withTotal", withTotal);
+ }
+
+ /**
+ * set withTotal with the specified value
+ * @param supplier supplier for the value to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withWithTotal(final Supplier supplier) {
+ return copy().withQueryParam("withTotal", supplier.get());
+ }
+
+ /**
+ * add additional withTotal query parameter
+ * @param supplier supplier for the value to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addWithTotal(final Supplier supplier) {
+ return copy().addQueryParam("withTotal", supplier.get());
+ }
+
+ /**
+ * set withTotal with the specified value
+ * @param op builder for the value to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withWithTotal(
+ final Function op) {
+ return copy().withQueryParam("withTotal", op.apply(new StringBuilder()));
+ }
+
+ /**
+ * add additional withTotal query parameter
+ * @param op builder for the value to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addWithTotal(
+ final Function op) {
+ return copy().addQueryParam("withTotal", op.apply(new StringBuilder()));
+ }
+
+ /**
+ * set withTotal with the specified values
+ * @param withTotal values to be set
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withWithTotal(
+ final Collection withTotal) {
+ return copy().withoutQueryParam("withTotal")
+ .addQueryParams(withTotal.stream()
+ .map(s -> new ParamEntry<>("withTotal", s.toString()))
+ .collect(Collectors.toList()));
+ }
+
+ /**
+ * add additional withTotal query parameters
+ * @param withTotal values to be added
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addWithTotal(
+ final Collection withTotal) {
+ return copy().addQueryParams(
+ withTotal.stream().map(s -> new ParamEntry<>("withTotal", s.toString())).collect(Collectors.toList()));
+ }
+
+ /**
+ * set expand with the specified value
+ * @param expand value to be set
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withExpand(final TValue expand) {
+ return copy().withQueryParam("expand", expand);
+ }
+
+ /**
+ * add additional expand query parameter
+ * @param expand value to be added
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addExpand(final TValue expand) {
+ return copy().addQueryParam("expand", expand);
+ }
+
+ /**
+ * set expand with the specified value
+ * @param supplier supplier for the value to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withExpand(final Supplier supplier) {
+ return copy().withQueryParam("expand", supplier.get());
+ }
+
+ /**
+ * add additional expand query parameter
+ * @param supplier supplier for the value to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addExpand(final Supplier supplier) {
+ return copy().addQueryParam("expand", supplier.get());
+ }
+
+ /**
+ * set expand with the specified value
+ * @param op builder for the value to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withExpand(
+ final Function op) {
+ return copy().withQueryParam("expand", op.apply(new StringBuilder()));
+ }
+
+ /**
+ * add additional expand query parameter
+ * @param op builder for the value to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addExpand(
+ final Function op) {
+ return copy().addQueryParam("expand", op.apply(new StringBuilder()));
+ }
+
+ /**
+ * set expand with the specified values
+ * @param expand values to be set
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withExpand(final Collection expand) {
+ return copy().withoutQueryParam("expand")
+ .addQueryParams(
+ expand.stream().map(s -> new ParamEntry<>("expand", s.toString())).collect(Collectors.toList()));
+ }
+
+ /**
+ * add additional expand query parameters
+ * @param expand values to be added
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addExpand(final Collection expand) {
+ return copy().addQueryParams(
+ expand.stream().map(s -> new ParamEntry<>("expand", s.toString())).collect(Collectors.toList()));
+ }
+
+ /**
+ * set where with the specified value
+ * @param where value to be set
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withWhere(final TValue where) {
+ return copy().withQueryParam("where", where);
+ }
+
+ /**
+ * add additional where query parameter
+ * @param where value to be added
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addWhere(final TValue where) {
+ return copy().addQueryParam("where", where);
+ }
+
+ /**
+ * set where with the specified value
+ * @param supplier supplier for the value to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withWhere(final Supplier supplier) {
+ return copy().withQueryParam("where", supplier.get());
+ }
+
+ /**
+ * add additional where query parameter
+ * @param supplier supplier for the value to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addWhere(final Supplier supplier) {
+ return copy().addQueryParam("where", supplier.get());
+ }
+
+ /**
+ * set where with the specified value
+ * @param op builder for the value to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withWhere(
+ final Function op) {
+ return copy().withQueryParam("where", op.apply(new StringBuilder()));
+ }
+
+ /**
+ * add additional where query parameter
+ * @param op builder for the value to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addWhere(
+ final Function op) {
+ return copy().addQueryParam("where", op.apply(new StringBuilder()));
+ }
+
+ /**
+ * set where with the specified values
+ * @param where values to be set
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withWhere(final Collection where) {
+ return copy().withoutQueryParam("where")
+ .addQueryParams(
+ where.stream().map(s -> new ParamEntry<>("where", s.toString())).collect(Collectors.toList()));
+ }
+
+ /**
+ * add additional where query parameters
+ * @param where values to be added
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addWhere(final Collection where) {
+ return copy().addQueryParams(
+ where.stream().map(s -> new ParamEntry<>("where", s.toString())).collect(Collectors.toList()));
+ }
+
+ /**
+ * set sort with the specified value
+ * @param sort value to be set
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withSort(final TValue sort) {
+ return copy().withQueryParam("sort", sort);
+ }
+
+ /**
+ * add additional sort query parameter
+ * @param sort value to be added
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addSort(final TValue sort) {
+ return copy().addQueryParam("sort", sort);
+ }
+
+ /**
+ * set sort with the specified value
+ * @param supplier supplier for the value to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withSort(final Supplier supplier) {
+ return copy().withQueryParam("sort", supplier.get());
+ }
+
+ /**
+ * add additional sort query parameter
+ * @param supplier supplier for the value to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addSort(final Supplier supplier) {
+ return copy().addQueryParam("sort", supplier.get());
+ }
+
+ /**
+ * set sort with the specified value
+ * @param op builder for the value to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withSort(
+ final Function op) {
+ return copy().withQueryParam("sort", op.apply(new StringBuilder()));
+ }
+
+ /**
+ * add additional sort query parameter
+ * @param op builder for the value to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addSort(
+ final Function op) {
+ return copy().addQueryParam("sort", op.apply(new StringBuilder()));
+ }
+
+ /**
+ * set sort with the specified values
+ * @param sort values to be set
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withSort(final Collection sort) {
+ return copy().withoutQueryParam("sort")
+ .addQueryParams(
+ sort.stream().map(s -> new ParamEntry<>("sort", s.toString())).collect(Collectors.toList()));
+ }
+
+ /**
+ * add additional sort query parameters
+ * @param sort values to be added
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addSort(final Collection sort) {
+ return copy().addQueryParams(
+ sort.stream().map(s -> new ParamEntry<>("sort", s.toString())).collect(Collectors.toList()));
+ }
+
+ /**
+ * set predicateVar with the specificied value
+ * @param value type
+ * @param varName parameter name
+ * @param predicateVar parameter value
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withPredicateVar(final String varName,
+ final TValue predicateVar) {
+ return copy().withQueryParam(String.format("var.%s", varName), predicateVar);
+ }
+
+ /**
+ * add additional predicateVar query parameter
+ * @param value type
+ * @param varName parameter name
+ * @param predicateVar parameter value
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addPredicateVar(final String varName,
+ final TValue predicateVar) {
+ return copy().addQueryParam(String.format("var.%s", varName), predicateVar);
+ }
+
+ /**
+ * set predicateVar with the specificied values
+ * @param value type
+ * @param varName parameter name
+ * @param predicateVar parameter values
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet withPredicateVar(final String varName,
+ final Collection predicateVar) {
+ final String placeholderName = String.format("var.%s", varName);
+ return copy().withoutQueryParam(placeholderName)
+ .addQueryParams(predicateVar.stream()
+ .map(s -> new ParamEntry<>(placeholderName, s.toString()))
+ .collect(Collectors.toList()));
+ }
+
+ /**
+ * add additional predicateVar query parameters
+ * @param value type
+ * @param varName parameter name
+ * @param predicateVar parameter values
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet addPredicateVar(final String varName,
+ final Collection predicateVar) {
+ final String placeholderName = String.format("var.%s", varName);
+ return copy().addQueryParams(predicateVar.stream()
+ .map(s -> new ParamEntry<>(placeholderName, s.toString()))
+ .collect(Collectors.toList()));
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o)
+ return true;
+
+ if (o == null || getClass() != o.getClass())
+ return false;
+
+ ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet that = (ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet) o;
+
+ return new EqualsBuilder().append(projectKey, that.projectKey).append(storeKey, that.storeKey).isEquals();
+ }
+
+ @Override
+ public int hashCode() {
+ return new HashCodeBuilder(17, 37).append(projectKey).append(storeKey).toHashCode();
+ }
+
+ @Override
+ protected ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet copy() {
+ return new ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet(this);
+ }
+}
diff --git a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost.java b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost.java
new file mode 100644
index 00000000000..f728a09a043
--- /dev/null
+++ b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost.java
@@ -0,0 +1,238 @@
+
+package com.commercetools.api.client;
+
+import java.net.URI;
+import java.time.Duration;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.concurrent.CompletableFuture;
+import java.util.function.Function;
+import java.util.function.Supplier;
+import java.util.stream.Collectors;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+
+import io.vrap.rmf.base.client.*;
+import io.vrap.rmf.base.client.utils.Generated;
+
+import org.apache.commons.lang3.builder.EqualsBuilder;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+
+/**
+ * Creates a ProductTailoring in the Store specified by storeKey
. When using this endpoint the ProductTailoring's store
field is always set to the Store specified in the path parameter.
+ * Generates the ProductTailoringCreated Message.
+ *
+ *
+ *
+ *
{@code
+ * CompletableFuture> result = apiRoot
+ * .withProjectKey("{projectKey}")
+ * .inStoreKeyWithStoreKeyValue("{storeKey}")
+ * .productTailoring()
+ * .post(null)
+ * .execute()
+ * }
+ *
+ */
+@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
+public class ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost extends
+ TypeBodyApiMethod
+ implements com.commercetools.api.client.ExpandableTrait,
+ com.commercetools.api.client.Deprecatable201Trait,
+ com.commercetools.api.client.ErrorableTrait {
+
+ @Override
+ public TypeReference resultType() {
+ return new TypeReference() {
+ };
+ }
+
+ private String projectKey;
+ private String storeKey;
+
+ private com.commercetools.api.models.product_tailoring.ProductTailoringInStoreDraft productTailoringInStoreDraft;
+
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost(final ApiHttpClient apiHttpClient, String projectKey,
+ String storeKey,
+ com.commercetools.api.models.product_tailoring.ProductTailoringInStoreDraft productTailoringInStoreDraft) {
+ super(apiHttpClient);
+ this.projectKey = projectKey;
+ this.storeKey = storeKey;
+ this.productTailoringInStoreDraft = productTailoringInStoreDraft;
+ }
+
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost(
+ ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost t) {
+ super(t);
+ this.projectKey = t.projectKey;
+ this.storeKey = t.storeKey;
+ this.productTailoringInStoreDraft = t.productTailoringInStoreDraft;
+ }
+
+ @Override
+ protected ApiHttpRequest buildHttpRequest() {
+ List params = new ArrayList<>(getQueryParamUriStrings());
+ String httpRequestPath = String.format("%s/in-store/key=%s/product-tailoring", this.projectKey, this.storeKey);
+ if (!params.isEmpty()) {
+ httpRequestPath += "?" + String.join("&", params);
+ }
+ return new ApiHttpRequest(ApiHttpMethod.POST, URI.create(httpRequestPath), getHeaders(),
+ io.vrap.rmf.base.client.utils.json.JsonUtils.executing(
+ () -> apiHttpClient().getSerializerService().toJsonByteArray(productTailoringInStoreDraft)));
+
+ }
+
+ @Override
+ public ApiHttpResponse executeBlocking(
+ final ApiHttpClient client, final Duration timeout) {
+ return executeBlocking(client, timeout, com.commercetools.api.models.product_tailoring.ProductTailoring.class);
+ }
+
+ @Override
+ public CompletableFuture> execute(
+ final ApiHttpClient client) {
+ return execute(client, com.commercetools.api.models.product_tailoring.ProductTailoring.class);
+ }
+
+ public String getProjectKey() {
+ return this.projectKey;
+ }
+
+ public String getStoreKey() {
+ return this.storeKey;
+ }
+
+ public List getExpand() {
+ return this.getQueryParam("expand");
+ }
+
+ public void setProjectKey(final String projectKey) {
+ this.projectKey = projectKey;
+ }
+
+ public void setStoreKey(final String storeKey) {
+ this.storeKey = storeKey;
+ }
+
+ /**
+ * set expand with the specified value
+ * @param expand value to be set
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost withExpand(final TValue expand) {
+ return copy().withQueryParam("expand", expand);
+ }
+
+ /**
+ * add additional expand query parameter
+ * @param expand value to be added
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost addExpand(final TValue expand) {
+ return copy().addQueryParam("expand", expand);
+ }
+
+ /**
+ * set expand with the specified value
+ * @param supplier supplier for the value to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost withExpand(final Supplier supplier) {
+ return copy().withQueryParam("expand", supplier.get());
+ }
+
+ /**
+ * add additional expand query parameter
+ * @param supplier supplier for the value to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost addExpand(final Supplier supplier) {
+ return copy().addQueryParam("expand", supplier.get());
+ }
+
+ /**
+ * set expand with the specified value
+ * @param op builder for the value to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost withExpand(
+ final Function op) {
+ return copy().withQueryParam("expand", op.apply(new StringBuilder()));
+ }
+
+ /**
+ * add additional expand query parameter
+ * @param op builder for the value to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost addExpand(
+ final Function op) {
+ return copy().addQueryParam("expand", op.apply(new StringBuilder()));
+ }
+
+ /**
+ * set expand with the specified values
+ * @param expand values to be set
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost withExpand(final Collection expand) {
+ return copy().withoutQueryParam("expand")
+ .addQueryParams(
+ expand.stream().map(s -> new ParamEntry<>("expand", s.toString())).collect(Collectors.toList()));
+ }
+
+ /**
+ * add additional expand query parameters
+ * @param expand values to be added
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost addExpand(final Collection expand) {
+ return copy().addQueryParams(
+ expand.stream().map(s -> new ParamEntry<>("expand", s.toString())).collect(Collectors.toList()));
+ }
+
+ public com.commercetools.api.models.product_tailoring.ProductTailoringInStoreDraft getBody() {
+ return productTailoringInStoreDraft;
+ }
+
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost withBody(
+ com.commercetools.api.models.product_tailoring.ProductTailoringInStoreDraft productTailoringInStoreDraft) {
+ ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost t = copy();
+ t.productTailoringInStoreDraft = productTailoringInStoreDraft;
+ return t;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o)
+ return true;
+
+ if (o == null || getClass() != o.getClass())
+ return false;
+
+ ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost that = (ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost) o;
+
+ return new EqualsBuilder().append(projectKey, that.projectKey)
+ .append(storeKey, that.storeKey)
+ .append(productTailoringInStoreDraft, that.productTailoringInStoreDraft)
+ .isEquals();
+ }
+
+ @Override
+ public int hashCode() {
+ return new HashCodeBuilder(17, 37).append(projectKey)
+ .append(storeKey)
+ .append(productTailoringInStoreDraft)
+ .toHashCode();
+ }
+
+ @Override
+ protected ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost copy() {
+ return new ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost(this);
+ }
+}
diff --git a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString.java b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString.java
new file mode 100644
index 00000000000..6ba92cb4606
--- /dev/null
+++ b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString.java
@@ -0,0 +1,239 @@
+
+package com.commercetools.api.client;
+
+import java.net.URI;
+import java.nio.charset.StandardCharsets;
+import java.time.Duration;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.concurrent.CompletableFuture;
+import java.util.function.Function;
+import java.util.function.Supplier;
+import java.util.stream.Collectors;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+
+import io.vrap.rmf.base.client.*;
+import io.vrap.rmf.base.client.utils.Generated;
+
+import org.apache.commons.lang3.builder.EqualsBuilder;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+
+/**
+ * Creates a ProductTailoring in the Store specified by storeKey
. When using this endpoint the ProductTailoring's store
field is always set to the Store specified in the path parameter.
+ * Generates the ProductTailoringCreated Message.
+ *
+ *
+ *
+ *
{@code
+ * CompletableFuture> result = apiRoot
+ * .withProjectKey("{projectKey}")
+ * .inStoreKeyWithStoreKeyValue("{storeKey}")
+ * .productTailoring()
+ * .post("")
+ * .execute()
+ * }
+ *
+ */
+@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
+public class ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString extends
+ StringBodyApiMethod
+ implements
+ com.commercetools.api.client.ExpandableTrait,
+ com.commercetools.api.client.Deprecatable201Trait,
+ com.commercetools.api.client.ErrorableTrait {
+
+ @Override
+ public TypeReference resultType() {
+ return new TypeReference() {
+ };
+ }
+
+ private String projectKey;
+ private String storeKey;
+
+ private String productTailoringInStoreDraft;
+
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString(final ApiHttpClient apiHttpClient,
+ String projectKey, String storeKey, String productTailoringInStoreDraft) {
+ super(apiHttpClient);
+ this.projectKey = projectKey;
+ this.storeKey = storeKey;
+ this.productTailoringInStoreDraft = productTailoringInStoreDraft;
+ }
+
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString(
+ ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString t) {
+ super(t);
+ this.projectKey = t.projectKey;
+ this.storeKey = t.storeKey;
+ this.productTailoringInStoreDraft = t.productTailoringInStoreDraft;
+ }
+
+ @Override
+ protected ApiHttpRequest buildHttpRequest() {
+ List params = new ArrayList<>(getQueryParamUriStrings());
+ String httpRequestPath = String.format("%s/in-store/key=%s/product-tailoring", this.projectKey, this.storeKey);
+ if (!params.isEmpty()) {
+ httpRequestPath += "?" + String.join("&", params);
+ }
+ return new ApiHttpRequest(ApiHttpMethod.POST, URI.create(httpRequestPath), getHeaders(),
+ productTailoringInStoreDraft.getBytes(StandardCharsets.UTF_8));
+
+ }
+
+ @Override
+ public ApiHttpResponse executeBlocking(
+ final ApiHttpClient client, final Duration timeout) {
+ return executeBlocking(client, timeout, com.commercetools.api.models.product_tailoring.ProductTailoring.class);
+ }
+
+ @Override
+ public CompletableFuture> execute(
+ final ApiHttpClient client) {
+ return execute(client, com.commercetools.api.models.product_tailoring.ProductTailoring.class);
+ }
+
+ public String getProjectKey() {
+ return this.projectKey;
+ }
+
+ public String getStoreKey() {
+ return this.storeKey;
+ }
+
+ public List getExpand() {
+ return this.getQueryParam("expand");
+ }
+
+ public void setProjectKey(final String projectKey) {
+ this.projectKey = projectKey;
+ }
+
+ public void setStoreKey(final String storeKey) {
+ this.storeKey = storeKey;
+ }
+
+ /**
+ * set expand with the specified value
+ * @param value type
+ * @param expand value to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString withExpand(final TValue expand) {
+ return copy().withQueryParam("expand", expand);
+ }
+
+ /**
+ * add additional expand query parameter
+ * @param value type
+ * @param expand value to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString addExpand(final TValue expand) {
+ return copy().addQueryParam("expand", expand);
+ }
+
+ /**
+ * set expand with the specified value
+ * @param supplier supplier for the value to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString withExpand(final Supplier supplier) {
+ return copy().withQueryParam("expand", supplier.get());
+ }
+
+ /**
+ * add additional expand query parameter
+ * @param supplier supplier for the value to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString addExpand(final Supplier supplier) {
+ return copy().addQueryParam("expand", supplier.get());
+ }
+
+ /**
+ * set expand with the specified value
+ * @param op builder for the value to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString withExpand(
+ final Function op) {
+ return copy().withQueryParam("expand", op.apply(new StringBuilder()));
+ }
+
+ /**
+ * add additional expand query parameter
+ * @param op builder for the value to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString addExpand(
+ final Function op) {
+ return copy().addQueryParam("expand", op.apply(new StringBuilder()));
+ }
+
+ /**
+ * set expand with the specified values
+ * @param value type
+ * @param expand values to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString withExpand(
+ final Collection expand) {
+ return copy().withoutQueryParam("expand")
+ .addQueryParams(
+ expand.stream().map(s -> new ParamEntry<>("expand", s.toString())).collect(Collectors.toList()));
+ }
+
+ /**
+ * add additional expand query parameters
+ * @param value type
+ * @param expand values to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString addExpand(
+ final Collection expand) {
+ return copy().addQueryParams(
+ expand.stream().map(s -> new ParamEntry<>("expand", s.toString())).collect(Collectors.toList()));
+ }
+
+ public String getBody() {
+ return productTailoringInStoreDraft;
+ }
+
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString withBody(String productTailoringInStoreDraft) {
+ ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString t = copy();
+ t.productTailoringInStoreDraft = productTailoringInStoreDraft;
+ return t;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o)
+ return true;
+
+ if (o == null || getClass() != o.getClass())
+ return false;
+
+ ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString that = (ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString) o;
+
+ return new EqualsBuilder().append(projectKey, that.projectKey)
+ .append(storeKey, that.storeKey)
+ .append(productTailoringInStoreDraft, that.productTailoringInStoreDraft)
+ .isEquals();
+ }
+
+ @Override
+ public int hashCode() {
+ return new HashCodeBuilder(17, 37).append(projectKey)
+ .append(storeKey)
+ .append(productTailoringInStoreDraft)
+ .toHashCode();
+ }
+
+ @Override
+ protected ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString copy() {
+ return new ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString(this);
+ }
+}
diff --git a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductTailoringRequestBuilder.java b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductTailoringRequestBuilder.java
new file mode 100644
index 00000000000..d2ac1eb1d0e
--- /dev/null
+++ b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductTailoringRequestBuilder.java
@@ -0,0 +1,44 @@
+
+package com.commercetools.api.client;
+
+import java.util.function.UnaryOperator;
+
+import io.vrap.rmf.base.client.ApiHttpClient;
+import io.vrap.rmf.base.client.utils.Generated;
+
+@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
+public class ByProjectKeyInStoreKeyByStoreKeyProductTailoringRequestBuilder {
+
+ private final ApiHttpClient apiHttpClient;
+ private final String projectKey;
+ private final String storeKey;
+
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringRequestBuilder(final ApiHttpClient apiHttpClient,
+ final String projectKey, final String storeKey) {
+ this.apiHttpClient = apiHttpClient;
+ this.projectKey = projectKey;
+ this.storeKey = storeKey;
+ }
+
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet get() {
+ return new ByProjectKeyInStoreKeyByStoreKeyProductTailoringGet(apiHttpClient, projectKey, storeKey);
+ }
+
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost post(
+ com.commercetools.api.models.product_tailoring.ProductTailoringInStoreDraft productTailoringInStoreDraft) {
+ return new ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost(apiHttpClient, projectKey, storeKey,
+ productTailoringInStoreDraft);
+ }
+
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString post(final String productTailoringInStoreDraft) {
+ return new ByProjectKeyInStoreKeyByStoreKeyProductTailoringPostString(apiHttpClient, projectKey, storeKey,
+ productTailoringInStoreDraft);
+ }
+
+ public ByProjectKeyInStoreKeyByStoreKeyProductTailoringPost post(
+ UnaryOperator op) {
+ return post(
+ op.apply(com.commercetools.api.models.product_tailoring.ProductTailoringInStoreDraftBuilder.of()).build());
+ }
+
+}
diff --git a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete.java b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete.java
new file mode 100644
index 00000000000..1e5670f800b
--- /dev/null
+++ b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete.java
@@ -0,0 +1,330 @@
+
+package com.commercetools.api.client;
+
+import java.net.URI;
+import java.time.Duration;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.concurrent.CompletableFuture;
+import java.util.function.Function;
+import java.util.function.Supplier;
+import java.util.stream.Collectors;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+
+import io.vrap.rmf.base.client.*;
+import io.vrap.rmf.base.client.utils.Generated;
+
+import org.apache.commons.lang3.builder.EqualsBuilder;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+
+/**
+ * Generates the ProductTailoringDeleted Message.
+ *
+ *
+ *
+ *
{@code
+ * CompletableFuture> result = apiRoot
+ * .withProjectKey("{projectKey}")
+ * .inStoreKeyWithStoreKeyValue("{storeKey}")
+ * .products()
+ * .withProductId("{productID}")
+ * .productTailoring()
+ * .delete()
+ * .withVersion(version)
+ * .execute()
+ * }
+ *
+ */
+@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
+public class ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete extends
+ TypeApiMethod
+ implements
+ com.commercetools.api.client.VersionedTrait,
+ com.commercetools.api.client.ConflictingTrait,
+ com.commercetools.api.client.ExpandableTrait,
+ com.commercetools.api.client.ErrorableTrait,
+ com.commercetools.api.client.Deprecatable200Trait {
+
+ @Override
+ public TypeReference resultType() {
+ return new TypeReference() {
+ };
+ }
+
+ private String projectKey;
+ private String storeKey;
+ private String productID;
+
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete(final ApiHttpClient apiHttpClient,
+ String projectKey, String storeKey, String productID) {
+ super(apiHttpClient);
+ this.projectKey = projectKey;
+ this.storeKey = storeKey;
+ this.productID = productID;
+ }
+
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete(
+ ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete t) {
+ super(t);
+ this.projectKey = t.projectKey;
+ this.storeKey = t.storeKey;
+ this.productID = t.productID;
+ }
+
+ @Override
+ protected ApiHttpRequest buildHttpRequest() {
+ List params = new ArrayList<>(getQueryParamUriStrings());
+ String httpRequestPath = String.format("%s/in-store/key=%s/products/%s/product-tailoring", this.projectKey,
+ this.storeKey, this.productID);
+ if (!params.isEmpty()) {
+ httpRequestPath += "?" + String.join("&", params);
+ }
+ return new ApiHttpRequest(ApiHttpMethod.DELETE, URI.create(httpRequestPath), getHeaders(), null);
+ }
+
+ @Override
+ public ApiHttpResponse executeBlocking(
+ final ApiHttpClient client, final Duration timeout) {
+ return executeBlocking(client, timeout, com.commercetools.api.models.product_tailoring.ProductTailoring.class);
+ }
+
+ @Override
+ public CompletableFuture> execute(
+ final ApiHttpClient client) {
+ return execute(client, com.commercetools.api.models.product_tailoring.ProductTailoring.class);
+ }
+
+ public String getProjectKey() {
+ return this.projectKey;
+ }
+
+ public String getStoreKey() {
+ return this.storeKey;
+ }
+
+ public String getProductID() {
+ return this.productID;
+ }
+
+ public List getVersion() {
+ return this.getQueryParam("version");
+ }
+
+ public List getExpand() {
+ return this.getQueryParam("expand");
+ }
+
+ public void setProjectKey(final String projectKey) {
+ this.projectKey = projectKey;
+ }
+
+ public void setStoreKey(final String storeKey) {
+ this.storeKey = storeKey;
+ }
+
+ public void setProductID(final String productID) {
+ this.productID = productID;
+ }
+
+ /**
+ * set version with the specified value
+ * @param version value to be set
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete withVersion(
+ final TValue version) {
+ return copy().withQueryParam("version", version);
+ }
+
+ /**
+ * add additional version query parameter
+ * @param version value to be added
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete addVersion(
+ final TValue version) {
+ return copy().addQueryParam("version", version);
+ }
+
+ /**
+ * set version with the specified value
+ * @param supplier supplier for the value to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete withVersion(
+ final Supplier supplier) {
+ return copy().withQueryParam("version", supplier.get());
+ }
+
+ /**
+ * add additional version query parameter
+ * @param supplier supplier for the value to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete addVersion(
+ final Supplier supplier) {
+ return copy().addQueryParam("version", supplier.get());
+ }
+
+ /**
+ * set version with the specified value
+ * @param op builder for the value to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete withVersion(
+ final Function op) {
+ return copy().withQueryParam("version", op.apply(new StringBuilder()));
+ }
+
+ /**
+ * add additional version query parameter
+ * @param op builder for the value to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete addVersion(
+ final Function op) {
+ return copy().addQueryParam("version", op.apply(new StringBuilder()));
+ }
+
+ /**
+ * set version with the specified values
+ * @param version values to be set
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete withVersion(
+ final Collection version) {
+ return copy().withoutQueryParam("version")
+ .addQueryParams(
+ version.stream().map(s -> new ParamEntry<>("version", s.toString())).collect(Collectors.toList()));
+ }
+
+ /**
+ * add additional version query parameters
+ * @param version values to be added
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete addVersion(
+ final Collection version) {
+ return copy().addQueryParams(
+ version.stream().map(s -> new ParamEntry<>("version", s.toString())).collect(Collectors.toList()));
+ }
+
+ /**
+ * set expand with the specified value
+ * @param expand value to be set
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete withExpand(
+ final TValue expand) {
+ return copy().withQueryParam("expand", expand);
+ }
+
+ /**
+ * add additional expand query parameter
+ * @param expand value to be added
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete addExpand(
+ final TValue expand) {
+ return copy().addQueryParam("expand", expand);
+ }
+
+ /**
+ * set expand with the specified value
+ * @param supplier supplier for the value to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete withExpand(
+ final Supplier supplier) {
+ return copy().withQueryParam("expand", supplier.get());
+ }
+
+ /**
+ * add additional expand query parameter
+ * @param supplier supplier for the value to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete addExpand(
+ final Supplier supplier) {
+ return copy().addQueryParam("expand", supplier.get());
+ }
+
+ /**
+ * set expand with the specified value
+ * @param op builder for the value to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete withExpand(
+ final Function op) {
+ return copy().withQueryParam("expand", op.apply(new StringBuilder()));
+ }
+
+ /**
+ * add additional expand query parameter
+ * @param op builder for the value to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete addExpand(
+ final Function op) {
+ return copy().addQueryParam("expand", op.apply(new StringBuilder()));
+ }
+
+ /**
+ * set expand with the specified values
+ * @param expand values to be set
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete withExpand(
+ final Collection expand) {
+ return copy().withoutQueryParam("expand")
+ .addQueryParams(
+ expand.stream().map(s -> new ParamEntry<>("expand", s.toString())).collect(Collectors.toList()));
+ }
+
+ /**
+ * add additional expand query parameters
+ * @param expand values to be added
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete addExpand(
+ final Collection expand) {
+ return copy().addQueryParams(
+ expand.stream().map(s -> new ParamEntry<>("expand", s.toString())).collect(Collectors.toList()));
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o)
+ return true;
+
+ if (o == null || getClass() != o.getClass())
+ return false;
+
+ ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete that = (ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete) o;
+
+ return new EqualsBuilder().append(projectKey, that.projectKey)
+ .append(storeKey, that.storeKey)
+ .append(productID, that.productID)
+ .isEquals();
+ }
+
+ @Override
+ public int hashCode() {
+ return new HashCodeBuilder(17, 37).append(projectKey).append(storeKey).append(productID).toHashCode();
+ }
+
+ @Override
+ protected ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete copy() {
+ return new ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringDelete(this);
+ }
+}
diff --git a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet.java b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet.java
new file mode 100644
index 00000000000..307c8386889
--- /dev/null
+++ b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet.java
@@ -0,0 +1,236 @@
+
+package com.commercetools.api.client;
+
+import java.net.URI;
+import java.time.Duration;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.concurrent.CompletableFuture;
+import java.util.function.Function;
+import java.util.function.Supplier;
+import java.util.stream.Collectors;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+
+import io.vrap.rmf.base.client.*;
+import io.vrap.rmf.base.client.utils.Generated;
+
+import org.apache.commons.lang3.builder.EqualsBuilder;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+
+/**
+ * Gets the current or staged representation of a Product Tailoring by its Product ID in the specified Store.
+ *
+ *
+ *
+ *
{@code
+ * CompletableFuture> result = apiRoot
+ * .withProjectKey("{projectKey}")
+ * .inStoreKeyWithStoreKeyValue("{storeKey}")
+ * .products()
+ * .withProductId("{productID}")
+ * .productTailoring()
+ * .get()
+ * .execute()
+ * }
+ *
+ */
+@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
+public class ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet extends
+ TypeApiMethod
+ implements
+ com.commercetools.api.client.ExpandableTrait,
+ com.commercetools.api.client.ErrorableTrait,
+ com.commercetools.api.client.Deprecatable200Trait {
+
+ @Override
+ public TypeReference resultType() {
+ return new TypeReference() {
+ };
+ }
+
+ private String projectKey;
+ private String storeKey;
+ private String productID;
+
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet(final ApiHttpClient apiHttpClient,
+ String projectKey, String storeKey, String productID) {
+ super(apiHttpClient);
+ this.projectKey = projectKey;
+ this.storeKey = storeKey;
+ this.productID = productID;
+ }
+
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet(
+ ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet t) {
+ super(t);
+ this.projectKey = t.projectKey;
+ this.storeKey = t.storeKey;
+ this.productID = t.productID;
+ }
+
+ @Override
+ protected ApiHttpRequest buildHttpRequest() {
+ List params = new ArrayList<>(getQueryParamUriStrings());
+ String httpRequestPath = String.format("%s/in-store/key=%s/products/%s/product-tailoring", this.projectKey,
+ this.storeKey, this.productID);
+ if (!params.isEmpty()) {
+ httpRequestPath += "?" + String.join("&", params);
+ }
+ return new ApiHttpRequest(ApiHttpMethod.GET, URI.create(httpRequestPath), getHeaders(), null);
+ }
+
+ @Override
+ public ApiHttpResponse executeBlocking(
+ final ApiHttpClient client, final Duration timeout) {
+ return executeBlocking(client, timeout, com.commercetools.api.models.product_tailoring.ProductTailoring.class);
+ }
+
+ @Override
+ public CompletableFuture> execute(
+ final ApiHttpClient client) {
+ return execute(client, com.commercetools.api.models.product_tailoring.ProductTailoring.class);
+ }
+
+ public String getProjectKey() {
+ return this.projectKey;
+ }
+
+ public String getStoreKey() {
+ return this.storeKey;
+ }
+
+ public String getProductID() {
+ return this.productID;
+ }
+
+ public List getExpand() {
+ return this.getQueryParam("expand");
+ }
+
+ public void setProjectKey(final String projectKey) {
+ this.projectKey = projectKey;
+ }
+
+ public void setStoreKey(final String storeKey) {
+ this.storeKey = storeKey;
+ }
+
+ public void setProductID(final String productID) {
+ this.productID = productID;
+ }
+
+ /**
+ * set expand with the specified value
+ * @param expand value to be set
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet withExpand(
+ final TValue expand) {
+ return copy().withQueryParam("expand", expand);
+ }
+
+ /**
+ * add additional expand query parameter
+ * @param expand value to be added
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet addExpand(
+ final TValue expand) {
+ return copy().addQueryParam("expand", expand);
+ }
+
+ /**
+ * set expand with the specified value
+ * @param supplier supplier for the value to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet withExpand(
+ final Supplier supplier) {
+ return copy().withQueryParam("expand", supplier.get());
+ }
+
+ /**
+ * add additional expand query parameter
+ * @param supplier supplier for the value to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet addExpand(
+ final Supplier supplier) {
+ return copy().addQueryParam("expand", supplier.get());
+ }
+
+ /**
+ * set expand with the specified value
+ * @param op builder for the value to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet withExpand(
+ final Function op) {
+ return copy().withQueryParam("expand", op.apply(new StringBuilder()));
+ }
+
+ /**
+ * add additional expand query parameter
+ * @param op builder for the value to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet addExpand(
+ final Function op) {
+ return copy().addQueryParam("expand", op.apply(new StringBuilder()));
+ }
+
+ /**
+ * set expand with the specified values
+ * @param expand values to be set
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet withExpand(
+ final Collection expand) {
+ return copy().withoutQueryParam("expand")
+ .addQueryParams(
+ expand.stream().map(s -> new ParamEntry<>("expand", s.toString())).collect(Collectors.toList()));
+ }
+
+ /**
+ * add additional expand query parameters
+ * @param expand values to be added
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet addExpand(
+ final Collection expand) {
+ return copy().addQueryParams(
+ expand.stream().map(s -> new ParamEntry<>("expand", s.toString())).collect(Collectors.toList()));
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o)
+ return true;
+
+ if (o == null || getClass() != o.getClass())
+ return false;
+
+ ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet that = (ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet) o;
+
+ return new EqualsBuilder().append(projectKey, that.projectKey)
+ .append(storeKey, that.storeKey)
+ .append(productID, that.productID)
+ .isEquals();
+ }
+
+ @Override
+ public int hashCode() {
+ return new HashCodeBuilder(17, 37).append(projectKey).append(storeKey).append(productID).toHashCode();
+ }
+
+ @Override
+ protected ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet copy() {
+ return new ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringGet(this);
+ }
+}
diff --git a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost.java b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost.java
new file mode 100644
index 00000000000..30ff17caf15
--- /dev/null
+++ b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost.java
@@ -0,0 +1,261 @@
+
+package com.commercetools.api.client;
+
+import java.net.URI;
+import java.time.Duration;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.concurrent.CompletableFuture;
+import java.util.function.Function;
+import java.util.function.Supplier;
+import java.util.stream.Collectors;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+
+import io.vrap.rmf.base.client.*;
+import io.vrap.rmf.base.client.utils.Generated;
+
+import org.apache.commons.lang3.builder.EqualsBuilder;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+
+/**
+ * Updates the current or staged representation of a Product Tailoring by its Product ID in the specified Store.
+ *
+ *
+ *
+ *
{@code
+ * CompletableFuture> result = apiRoot
+ * .withProjectKey("{projectKey}")
+ * .inStoreKeyWithStoreKeyValue("{storeKey}")
+ * .products()
+ * .withProductId("{productID}")
+ * .productTailoring()
+ * .post(null)
+ * .execute()
+ * }
+ *
+ */
+@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
+public class ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost extends
+ TypeBodyApiMethod
+ implements
+ com.commercetools.api.client.ConflictingTrait,
+ com.commercetools.api.client.ExpandableTrait,
+ com.commercetools.api.client.Deprecatable200Trait,
+ com.commercetools.api.client.ErrorableTrait {
+
+ @Override
+ public TypeReference resultType() {
+ return new TypeReference() {
+ };
+ }
+
+ private String projectKey;
+ private String storeKey;
+ private String productID;
+
+ private com.commercetools.api.models.cart.ProductTailoringUpdate productTailoringUpdate;
+
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost(final ApiHttpClient apiHttpClient,
+ String projectKey, String storeKey, String productID,
+ com.commercetools.api.models.cart.ProductTailoringUpdate productTailoringUpdate) {
+ super(apiHttpClient);
+ this.projectKey = projectKey;
+ this.storeKey = storeKey;
+ this.productID = productID;
+ this.productTailoringUpdate = productTailoringUpdate;
+ }
+
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost(
+ ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost t) {
+ super(t);
+ this.projectKey = t.projectKey;
+ this.storeKey = t.storeKey;
+ this.productID = t.productID;
+ this.productTailoringUpdate = t.productTailoringUpdate;
+ }
+
+ @Override
+ protected ApiHttpRequest buildHttpRequest() {
+ List params = new ArrayList<>(getQueryParamUriStrings());
+ String httpRequestPath = String.format("%s/in-store/key=%s/products/%s/product-tailoring", this.projectKey,
+ this.storeKey, this.productID);
+ if (!params.isEmpty()) {
+ httpRequestPath += "?" + String.join("&", params);
+ }
+ return new ApiHttpRequest(ApiHttpMethod.POST, URI.create(httpRequestPath), getHeaders(),
+ io.vrap.rmf.base.client.utils.json.JsonUtils
+ .executing(() -> apiHttpClient().getSerializerService().toJsonByteArray(productTailoringUpdate)));
+
+ }
+
+ @Override
+ public ApiHttpResponse executeBlocking(
+ final ApiHttpClient client, final Duration timeout) {
+ return executeBlocking(client, timeout, com.commercetools.api.models.product_tailoring.ProductTailoring.class);
+ }
+
+ @Override
+ public CompletableFuture> execute(
+ final ApiHttpClient client) {
+ return execute(client, com.commercetools.api.models.product_tailoring.ProductTailoring.class);
+ }
+
+ public String getProjectKey() {
+ return this.projectKey;
+ }
+
+ public String getStoreKey() {
+ return this.storeKey;
+ }
+
+ public String getProductID() {
+ return this.productID;
+ }
+
+ public List getExpand() {
+ return this.getQueryParam("expand");
+ }
+
+ public void setProjectKey(final String projectKey) {
+ this.projectKey = projectKey;
+ }
+
+ public void setStoreKey(final String storeKey) {
+ this.storeKey = storeKey;
+ }
+
+ public void setProductID(final String productID) {
+ this.productID = productID;
+ }
+
+ /**
+ * set expand with the specified value
+ * @param expand value to be set
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost withExpand(
+ final TValue expand) {
+ return copy().withQueryParam("expand", expand);
+ }
+
+ /**
+ * add additional expand query parameter
+ * @param expand value to be added
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost addExpand(
+ final TValue expand) {
+ return copy().addQueryParam("expand", expand);
+ }
+
+ /**
+ * set expand with the specified value
+ * @param supplier supplier for the value to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost withExpand(
+ final Supplier supplier) {
+ return copy().withQueryParam("expand", supplier.get());
+ }
+
+ /**
+ * add additional expand query parameter
+ * @param supplier supplier for the value to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost addExpand(
+ final Supplier supplier) {
+ return copy().addQueryParam("expand", supplier.get());
+ }
+
+ /**
+ * set expand with the specified value
+ * @param op builder for the value to be set
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost withExpand(
+ final Function op) {
+ return copy().withQueryParam("expand", op.apply(new StringBuilder()));
+ }
+
+ /**
+ * add additional expand query parameter
+ * @param op builder for the value to be added
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost addExpand(
+ final Function op) {
+ return copy().addQueryParam("expand", op.apply(new StringBuilder()));
+ }
+
+ /**
+ * set expand with the specified values
+ * @param expand values to be set
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost withExpand(
+ final Collection expand) {
+ return copy().withoutQueryParam("expand")
+ .addQueryParams(
+ expand.stream().map(s -> new ParamEntry<>("expand", s.toString())).collect(Collectors.toList()));
+ }
+
+ /**
+ * add additional expand query parameters
+ * @param expand values to be added
+ * @param value type
+ * @return ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost
+ */
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost addExpand(
+ final Collection expand) {
+ return copy().addQueryParams(
+ expand.stream().map(s -> new ParamEntry<>("expand", s.toString())).collect(Collectors.toList()));
+ }
+
+ public com.commercetools.api.models.cart.ProductTailoringUpdate getBody() {
+ return productTailoringUpdate;
+ }
+
+ public ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost withBody(
+ com.commercetools.api.models.cart.ProductTailoringUpdate productTailoringUpdate) {
+ ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost t = copy();
+ t.productTailoringUpdate = productTailoringUpdate;
+ return t;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o)
+ return true;
+
+ if (o == null || getClass() != o.getClass())
+ return false;
+
+ ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost that = (ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost) o;
+
+ return new EqualsBuilder().append(projectKey, that.projectKey)
+ .append(storeKey, that.storeKey)
+ .append(productID, that.productID)
+ .append(productTailoringUpdate, that.productTailoringUpdate)
+ .isEquals();
+ }
+
+ @Override
+ public int hashCode() {
+ return new HashCodeBuilder(17, 37).append(projectKey)
+ .append(storeKey)
+ .append(productID)
+ .append(productTailoringUpdate)
+ .toHashCode();
+ }
+
+ @Override
+ protected ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost copy() {
+ return new ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPost(this);
+ }
+}
diff --git a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPostString.java b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPostString.java
new file mode 100644
index 00000000000..d4c3b0b5f7d
--- /dev/null
+++ b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/client/ByProjectKeyInStoreKeyByStoreKeyProductsByProductIDProductTailoringPostString.java
@@ -0,0 +1,261 @@
+
+package com.commercetools.api.client;
+
+import java.net.URI;
+import java.nio.charset.StandardCharsets;
+import java.time.Duration;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.concurrent.CompletableFuture;
+import java.util.function.Function;
+import java.util.function.Supplier;
+import java.util.stream.Collectors;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+
+import io.vrap.rmf.base.client.*;
+import io.vrap.rmf.base.client.utils.Generated;
+
+import org.apache.commons.lang3.builder.EqualsBuilder;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+
+/**
+ * Updates the current or staged representation of a Product Tailoring by its Product ID in the specified Store.
+ *
+ *
+ *
+ *