001
002package com.commercetools.api.models.message;
003
004import java.util.*;
005
006import io.vrap.rmf.base.client.Builder;
007import io.vrap.rmf.base.client.utils.Generated;
008
009/**
010 * MessagesConfigurationDraftBuilder
011 * <hr>
012 * Example to create an instance using the builder pattern
013 * <div class=code-example>
014 * <pre><code class='java'>
015 *     MessagesConfigurationDraft messagesConfigurationDraft = MessagesConfigurationDraft.builder()
016 *             .enabled(true)
017 *             .deleteDaysAfterCreation(0.3)
018 *             .build()
019 * </code></pre>
020 * </div>
021 */
022@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
023public class MessagesConfigurationDraftBuilder implements Builder<MessagesConfigurationDraft> {
024
025    private Boolean enabled;
026
027    private Integer deleteDaysAfterCreation;
028
029    /**
030     *  <p>Setting to <code>true</code> activates the Messages Query feature.</p>
031     * @param enabled value to be set
032     * @return Builder
033     */
034
035    public MessagesConfigurationDraftBuilder enabled(final Boolean enabled) {
036        this.enabled = enabled;
037        return this;
038    }
039
040    /**
041     *  <p>Specifies the number of days each Message should be available via the Messages Query API. For Messages older than the specified period, it is not guaranteed that they are still accessible via the API.</p>
042     * @param deleteDaysAfterCreation value to be set
043     * @return Builder
044     */
045
046    public MessagesConfigurationDraftBuilder deleteDaysAfterCreation(final Integer deleteDaysAfterCreation) {
047        this.deleteDaysAfterCreation = deleteDaysAfterCreation;
048        return this;
049    }
050
051    /**
052     *  <p>Setting to <code>true</code> activates the Messages Query feature.</p>
053     * @return enabled
054     */
055
056    public Boolean getEnabled() {
057        return this.enabled;
058    }
059
060    /**
061     *  <p>Specifies the number of days each Message should be available via the Messages Query API. For Messages older than the specified period, it is not guaranteed that they are still accessible via the API.</p>
062     * @return deleteDaysAfterCreation
063     */
064
065    public Integer getDeleteDaysAfterCreation() {
066        return this.deleteDaysAfterCreation;
067    }
068
069    /**
070     * builds MessagesConfigurationDraft with checking for non-null required values
071     * @return MessagesConfigurationDraft
072     */
073    public MessagesConfigurationDraft build() {
074        Objects.requireNonNull(enabled, MessagesConfigurationDraft.class + ": enabled is missing");
075        Objects.requireNonNull(deleteDaysAfterCreation,
076            MessagesConfigurationDraft.class + ": deleteDaysAfterCreation is missing");
077        return new MessagesConfigurationDraftImpl(enabled, deleteDaysAfterCreation);
078    }
079
080    /**
081     * builds MessagesConfigurationDraft without checking for non-null required values
082     * @return MessagesConfigurationDraft
083     */
084    public MessagesConfigurationDraft buildUnchecked() {
085        return new MessagesConfigurationDraftImpl(enabled, deleteDaysAfterCreation);
086    }
087
088    /**
089     * factory method for an instance of MessagesConfigurationDraftBuilder
090     * @return builder
091     */
092    public static MessagesConfigurationDraftBuilder of() {
093        return new MessagesConfigurationDraftBuilder();
094    }
095
096    /**
097     * create builder for MessagesConfigurationDraft instance
098     * @param template instance with prefilled values for the builder
099     * @return builder
100     */
101    public static MessagesConfigurationDraftBuilder of(final MessagesConfigurationDraft template) {
102        MessagesConfigurationDraftBuilder builder = new MessagesConfigurationDraftBuilder();
103        builder.enabled = template.getEnabled();
104        builder.deleteDaysAfterCreation = template.getDeleteDaysAfterCreation();
105        return builder;
106    }
107
108}