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 * ChangeStatusUpdateAction
017 *
018 * <hr>
019 * Example to create an instance using the builder pattern
020 * <div class=code-example>
021 * <pre><code class='java'>
022 *     ChangeStatusUpdateAction changeStatusUpdateAction = ChangeStatusUpdateAction.builder()
023 *             .status(ImageSearchConfigStatus.ON)
024 *             .build()
025 * </code></pre>
026 * </div>
027 */
028@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
029@JsonDeserialize(as = ChangeStatusUpdateActionImpl.class)
030public interface ChangeStatusUpdateAction extends ImageSearchConfigUpdateAction {
031
032    String CHANGE_STATUS = "changeStatus";
033
034    /**
035     *
036     */
037    @NotNull
038    @JsonProperty("status")
039    public ImageSearchConfigStatus getStatus();
040
041    public void setStatus(final ImageSearchConfigStatus status);
042
043    public static ChangeStatusUpdateAction of() {
044        return new ChangeStatusUpdateActionImpl();
045    }
046
047    public static ChangeStatusUpdateAction of(final ChangeStatusUpdateAction template) {
048        ChangeStatusUpdateActionImpl instance = new ChangeStatusUpdateActionImpl();
049        instance.setStatus(template.getStatus());
050        return instance;
051    }
052
053    public static ChangeStatusUpdateActionBuilder builder() {
054        return ChangeStatusUpdateActionBuilder.of();
055    }
056
057    public static ChangeStatusUpdateActionBuilder builder(final ChangeStatusUpdateAction template) {
058        return ChangeStatusUpdateActionBuilder.of(template);
059    }
060
061    default <T> T withChangeStatusUpdateAction(Function<ChangeStatusUpdateAction, T> helper) {
062        return helper.apply(this);
063    }
064
065    public static com.fasterxml.jackson.core.type.TypeReference<ChangeStatusUpdateAction> typeReference() {
066        return new com.fasterxml.jackson.core.type.TypeReference<ChangeStatusUpdateAction>() {
067            @Override
068            public String toString() {
069                return "TypeReference<ChangeStatusUpdateAction>";
070            }
071        };
072    }
073}