001
002package com.commercetools.api.client;
003
004import java.util.function.UnaryOperator;
005
006import io.vrap.rmf.base.client.ApiHttpClient;
007import io.vrap.rmf.base.client.utils.Generated;
008
009@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
010public class ByProjectKeyProductSelectionsKeyByKeyRequestBuilder {
011
012    private final ApiHttpClient apiHttpClient;
013    private final String projectKey;
014    private final String key;
015
016    public ByProjectKeyProductSelectionsKeyByKeyRequestBuilder(final ApiHttpClient apiHttpClient,
017            final String projectKey, final String key) {
018        this.apiHttpClient = apiHttpClient;
019        this.projectKey = projectKey;
020        this.key = key;
021    }
022
023    public ByProjectKeyProductSelectionsKeyByKeyGet get() {
024        return new ByProjectKeyProductSelectionsKeyByKeyGet(apiHttpClient, projectKey, key);
025    }
026
027    public ByProjectKeyProductSelectionsKeyByKeyPost post(
028            com.commercetools.api.models.product_selection.ProductSelectionUpdate productSelectionUpdate) {
029        return new ByProjectKeyProductSelectionsKeyByKeyPost(apiHttpClient, projectKey, key, productSelectionUpdate);
030    }
031
032    public ByProjectKeyProductSelectionsKeyByKeyPostString post(final String productSelectionUpdate) {
033        return new ByProjectKeyProductSelectionsKeyByKeyPostString(apiHttpClient, projectKey, key,
034            productSelectionUpdate);
035    }
036
037    public ByProjectKeyProductSelectionsKeyByKeyPost post(
038            UnaryOperator<com.commercetools.api.models.product_selection.ProductSelectionUpdateBuilder> op) {
039        return post(
040            op.apply(com.commercetools.api.models.product_selection.ProductSelectionUpdateBuilder.of()).build());
041    }
042
043    public ByProjectKeyProductSelectionsKeyByKeyDelete delete() {
044        return new ByProjectKeyProductSelectionsKeyByKeyDelete(apiHttpClient, projectKey, key);
045    }
046
047    public <TValue> ByProjectKeyProductSelectionsKeyByKeyDelete delete(TValue version) {
048        return delete().withVersion(version);
049    }
050
051    public ByProjectKeyProductSelectionsKeyByKeyProductsRequestBuilder products() {
052        return new ByProjectKeyProductSelectionsKeyByKeyProductsRequestBuilder(apiHttpClient, projectKey, key);
053    }
054
055}