001
002package com.commercetools.ml.models.image_search_config;
003
004import java.time.*;
005import java.util.*;
006import java.util.function.Function;
007
008import javax.validation.constraints.NotNull;
009
010import com.fasterxml.jackson.annotation.*;
011import com.fasterxml.jackson.databind.annotation.*;
012
013import io.vrap.rmf.base.client.utils.Generated;
014
015/**
016 * ImageSearchConfigUpdateAction
017 *
018 * <hr>
019 * Example to create a subtype instance using the builder pattern
020 * <div class=code-example>
021 * <pre><code class='java'>
022 *     ImageSearchConfigUpdateAction imageSearchConfigUpdateAction = ImageSearchConfigUpdateAction.changeStatusBuilder()
023 *             status(ImageSearchConfigStatus.ON)
024 *             .build()
025 * </code></pre>
026 * </div>
027 */
028@JsonSubTypes({
029        @JsonSubTypes.Type(value = com.commercetools.ml.models.image_search_config.ChangeStatusUpdateActionImpl.class, name = ChangeStatusUpdateAction.CHANGE_STATUS) })
030@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "action", defaultImpl = ImageSearchConfigUpdateActionImpl.class, visible = true)
031@JsonDeserialize(as = ImageSearchConfigUpdateActionImpl.class)
032@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
033public interface ImageSearchConfigUpdateAction {
034
035    /**
036     *
037     */
038    @NotNull
039    @JsonProperty("action")
040    public String getAction();
041
042    public static com.commercetools.ml.models.image_search_config.ChangeStatusUpdateActionBuilder changeStatusBuilder() {
043        return com.commercetools.ml.models.image_search_config.ChangeStatusUpdateActionBuilder.of();
044    }
045
046    default <T> T withImageSearchConfigUpdateAction(Function<ImageSearchConfigUpdateAction, T> helper) {
047        return helper.apply(this);
048    }
049
050    public static com.fasterxml.jackson.core.type.TypeReference<ImageSearchConfigUpdateAction> typeReference() {
051        return new com.fasterxml.jackson.core.type.TypeReference<ImageSearchConfigUpdateAction>() {
052            @Override
053            public String toString() {
054                return "TypeReference<ImageSearchConfigUpdateAction>";
055            }
056        };
057    }
058}