001
002package com.commercetools.ml.models.similar_products;
003
004import java.time.*;
005import java.util.*;
006import java.util.function.Function;
007
008import javax.validation.Valid;
009import javax.validation.constraints.NotNull;
010
011import com.fasterxml.jackson.annotation.*;
012import com.fasterxml.jackson.databind.annotation.*;
013
014import io.vrap.rmf.base.client.utils.Generated;
015
016/**
017 * SimilarProductSearchRequestMeta
018 *
019 * <hr>
020 * Example to create an instance using the builder pattern
021 * <div class=code-example>
022 * <pre><code class='java'>
023 *     SimilarProductSearchRequestMeta similarProductSearchRequestMeta = SimilarProductSearchRequestMeta.builder()
024 *             .similarityMeasures(similarityMeasuresBuilder -> similarityMeasuresBuilder)
025 *             .build()
026 * </code></pre>
027 * </div>
028 */
029@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
030@JsonDeserialize(as = SimilarProductSearchRequestMetaImpl.class)
031public interface SimilarProductSearchRequestMeta {
032
033    /**
034     *  <p>The SimilarityMeasures used in this search.</p>
035     */
036    @NotNull
037    @Valid
038    @JsonProperty("similarityMeasures")
039    public SimilarityMeasures getSimilarityMeasures();
040
041    public void setSimilarityMeasures(final SimilarityMeasures similarityMeasures);
042
043    public static SimilarProductSearchRequestMeta of() {
044        return new SimilarProductSearchRequestMetaImpl();
045    }
046
047    public static SimilarProductSearchRequestMeta of(final SimilarProductSearchRequestMeta template) {
048        SimilarProductSearchRequestMetaImpl instance = new SimilarProductSearchRequestMetaImpl();
049        instance.setSimilarityMeasures(template.getSimilarityMeasures());
050        return instance;
051    }
052
053    public static SimilarProductSearchRequestMetaBuilder builder() {
054        return SimilarProductSearchRequestMetaBuilder.of();
055    }
056
057    public static SimilarProductSearchRequestMetaBuilder builder(final SimilarProductSearchRequestMeta template) {
058        return SimilarProductSearchRequestMetaBuilder.of(template);
059    }
060
061    default <T> T withSimilarProductSearchRequestMeta(Function<SimilarProductSearchRequestMeta, T> helper) {
062        return helper.apply(this);
063    }
064
065    public static com.fasterxml.jackson.core.type.TypeReference<SimilarProductSearchRequestMeta> typeReference() {
066        return new com.fasterxml.jackson.core.type.TypeReference<SimilarProductSearchRequestMeta>() {
067            @Override
068            public String toString() {
069                return "TypeReference<SimilarProductSearchRequestMeta>";
070            }
071        };
072    }
073}