001
002package com.commercetools.api.models.message;
003
004import java.time.*;
005import java.time.ZonedDateTime;
006import java.util.*;
007import java.util.function.Function;
008
009import javax.annotation.Nullable;
010
011import com.fasterxml.jackson.annotation.*;
012import com.fasterxml.jackson.databind.annotation.*;
013
014import io.vrap.rmf.base.client.utils.Generated;
015
016/**
017 *  <p>Generated after a successful Set Valid From update action.</p>
018 *
019 * <hr>
020 * Example to create an instance using the builder pattern
021 * <div class=code-example>
022 * <pre><code class='java'>
023 *     StandalonePriceValidFromSetMessagePayload standalonePriceValidFromSetMessagePayload = StandalonePriceValidFromSetMessagePayload.builder()
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 = StandalonePriceValidFromSetMessagePayloadImpl.class)
030public interface StandalonePriceValidFromSetMessagePayload extends MessagePayload {
031
032    /**
033     * discriminator value for StandalonePriceValidFromSetMessagePayload
034     */
035    String STANDALONE_PRICE_VALID_FROM_SET = "StandalonePriceValidFromSet";
036
037    /**
038     *  <p>Value of StandalonePrice <code>validFrom</code> after the Set Valid From update action.</p>
039     * @return validFrom
040     */
041
042    @JsonProperty("validFrom")
043    public ZonedDateTime getValidFrom();
044
045    /**
046     *  <p>Value of StandalonePrice <code>validFrom</code> before the Set Valid From update action.</p>
047     * @return previousValidFrom
048     */
049
050    @JsonProperty("previousValidFrom")
051    public ZonedDateTime getPreviousValidFrom();
052
053    /**
054     *  <p>Value of StandalonePrice <code>validFrom</code> after the Set Valid From update action.</p>
055     * @param validFrom value to be set
056     */
057
058    public void setValidFrom(final ZonedDateTime validFrom);
059
060    /**
061     *  <p>Value of StandalonePrice <code>validFrom</code> before the Set Valid From update action.</p>
062     * @param previousValidFrom value to be set
063     */
064
065    public void setPreviousValidFrom(final ZonedDateTime previousValidFrom);
066
067    /**
068     * factory method
069     * @return instance of StandalonePriceValidFromSetMessagePayload
070     */
071    public static StandalonePriceValidFromSetMessagePayload of() {
072        return new StandalonePriceValidFromSetMessagePayloadImpl();
073    }
074
075    /**
076     * factory method to create a shallow copy StandalonePriceValidFromSetMessagePayload
077     * @param template instance to be copied
078     * @return copy instance
079     */
080    public static StandalonePriceValidFromSetMessagePayload of(
081            final StandalonePriceValidFromSetMessagePayload template) {
082        StandalonePriceValidFromSetMessagePayloadImpl instance = new StandalonePriceValidFromSetMessagePayloadImpl();
083        instance.setValidFrom(template.getValidFrom());
084        instance.setPreviousValidFrom(template.getPreviousValidFrom());
085        return instance;
086    }
087
088    /**
089     * factory method to create a deep copy of StandalonePriceValidFromSetMessagePayload
090     * @param template instance to be copied
091     * @return copy instance
092     */
093    @Nullable
094    public static StandalonePriceValidFromSetMessagePayload deepCopy(
095            @Nullable final StandalonePriceValidFromSetMessagePayload template) {
096        if (template == null) {
097            return null;
098        }
099        StandalonePriceValidFromSetMessagePayloadImpl instance = new StandalonePriceValidFromSetMessagePayloadImpl();
100        instance.setValidFrom(template.getValidFrom());
101        instance.setPreviousValidFrom(template.getPreviousValidFrom());
102        return instance;
103    }
104
105    /**
106     * builder factory method for StandalonePriceValidFromSetMessagePayload
107     * @return builder
108     */
109    public static StandalonePriceValidFromSetMessagePayloadBuilder builder() {
110        return StandalonePriceValidFromSetMessagePayloadBuilder.of();
111    }
112
113    /**
114     * create builder for StandalonePriceValidFromSetMessagePayload instance
115     * @param template instance with prefilled values for the builder
116     * @return builder
117     */
118    public static StandalonePriceValidFromSetMessagePayloadBuilder builder(
119            final StandalonePriceValidFromSetMessagePayload template) {
120        return StandalonePriceValidFromSetMessagePayloadBuilder.of(template);
121    }
122
123    /**
124     * accessor map function
125     * @param <T> mapped type
126     * @param helper function to map the object
127     * @return mapped value
128     */
129    default <T> T withStandalonePriceValidFromSetMessagePayload(
130            Function<StandalonePriceValidFromSetMessagePayload, T> helper) {
131        return helper.apply(this);
132    }
133
134    /**
135     * gives a TypeReference for usage with Jackson DataBind
136     * @return TypeReference
137     */
138    public static com.fasterxml.jackson.core.type.TypeReference<StandalonePriceValidFromSetMessagePayload> typeReference() {
139        return new com.fasterxml.jackson.core.type.TypeReference<StandalonePriceValidFromSetMessagePayload>() {
140            @Override
141            public String toString() {
142                return "TypeReference<StandalonePriceValidFromSetMessagePayload>";
143            }
144        };
145    }
146}