001
002package com.commercetools.api.models.message;
003
004import java.util.*;
005import java.util.function.Function;
006
007import javax.annotation.Nullable;
008
009import io.vrap.rmf.base.client.Builder;
010import io.vrap.rmf.base.client.utils.Generated;
011
012/**
013 * StagedQuoteDeletedMessageBuilder
014 * <hr>
015 * Example to create an instance using the builder pattern
016 * <div class=code-example>
017 * <pre><code class='java'>
018 *     StagedQuoteDeletedMessage stagedQuoteDeletedMessage = StagedQuoteDeletedMessage.builder()
019 *             .id("{id}")
020 *             .version(0.3)
021 *             .createdAt(ZonedDateTime.parse("2022-01-01T12:00:00.301Z"))
022 *             .lastModifiedAt(ZonedDateTime.parse("2022-01-01T12:00:00.301Z"))
023 *             .sequenceNumber(0.3)
024 *             .resource(resourceBuilder -> resourceBuilder)
025 *             .resourceVersion(0.3)
026 *             .build()
027 * </code></pre>
028 * </div>
029 */
030@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
031public class StagedQuoteDeletedMessageBuilder implements Builder<StagedQuoteDeletedMessage> {
032
033    private String id;
034
035    private Long version;
036
037    private java.time.ZonedDateTime createdAt;
038
039    private java.time.ZonedDateTime lastModifiedAt;
040
041    @Nullable
042    private com.commercetools.api.models.common.LastModifiedBy lastModifiedBy;
043
044    @Nullable
045    private com.commercetools.api.models.common.CreatedBy createdBy;
046
047    private Long sequenceNumber;
048
049    private com.commercetools.api.models.common.Reference resource;
050
051    private Long resourceVersion;
052
053    @Nullable
054    private com.commercetools.api.models.message.UserProvidedIdentifiers resourceUserProvidedIdentifiers;
055
056    /**
057     *  <p>Unique identifier of the Message. Can be used to track which Messages have been processed.</p>
058     * @param id value to be set
059     * @return Builder
060     */
061
062    public StagedQuoteDeletedMessageBuilder id(final String id) {
063        this.id = id;
064        return this;
065    }
066
067    /**
068     *  <p>Version of a resource. In case of Messages, this is always <code>1</code>.</p>
069     * @param version value to be set
070     * @return Builder
071     */
072
073    public StagedQuoteDeletedMessageBuilder version(final Long version) {
074        this.version = version;
075        return this;
076    }
077
078    /**
079     *  <p>Date and time (UTC) the Message was generated.</p>
080     * @param createdAt value to be set
081     * @return Builder
082     */
083
084    public StagedQuoteDeletedMessageBuilder createdAt(final java.time.ZonedDateTime createdAt) {
085        this.createdAt = createdAt;
086        return this;
087    }
088
089    /**
090     *  <p>Value of <code>createdAt</code>.</p>
091     * @param lastModifiedAt value to be set
092     * @return Builder
093     */
094
095    public StagedQuoteDeletedMessageBuilder lastModifiedAt(final java.time.ZonedDateTime lastModifiedAt) {
096        this.lastModifiedAt = lastModifiedAt;
097        return this;
098    }
099
100    /**
101     *  <p>Value of <code>createdBy</code>.</p>
102     * @param builder function to build the lastModifiedBy value
103     * @return Builder
104     */
105
106    public StagedQuoteDeletedMessageBuilder lastModifiedBy(
107            Function<com.commercetools.api.models.common.LastModifiedByBuilder, com.commercetools.api.models.common.LastModifiedByBuilder> builder) {
108        this.lastModifiedBy = builder.apply(com.commercetools.api.models.common.LastModifiedByBuilder.of()).build();
109        return this;
110    }
111
112    /**
113     *  <p>Value of <code>createdBy</code>.</p>
114     * @param builder function to build the lastModifiedBy value
115     * @return Builder
116     */
117
118    public StagedQuoteDeletedMessageBuilder withLastModifiedBy(
119            Function<com.commercetools.api.models.common.LastModifiedByBuilder, com.commercetools.api.models.common.LastModifiedBy> builder) {
120        this.lastModifiedBy = builder.apply(com.commercetools.api.models.common.LastModifiedByBuilder.of());
121        return this;
122    }
123
124    /**
125     *  <p>Value of <code>createdBy</code>.</p>
126     * @param lastModifiedBy value to be set
127     * @return Builder
128     */
129
130    public StagedQuoteDeletedMessageBuilder lastModifiedBy(
131            @Nullable final com.commercetools.api.models.common.LastModifiedBy lastModifiedBy) {
132        this.lastModifiedBy = lastModifiedBy;
133        return this;
134    }
135
136    /**
137     *  <p>Present on resources created after 1 February 2019 except for events not tracked.</p>
138     * @param builder function to build the createdBy value
139     * @return Builder
140     */
141
142    public StagedQuoteDeletedMessageBuilder createdBy(
143            Function<com.commercetools.api.models.common.CreatedByBuilder, com.commercetools.api.models.common.CreatedByBuilder> builder) {
144        this.createdBy = builder.apply(com.commercetools.api.models.common.CreatedByBuilder.of()).build();
145        return this;
146    }
147
148    /**
149     *  <p>Present on resources created after 1 February 2019 except for events not tracked.</p>
150     * @param builder function to build the createdBy value
151     * @return Builder
152     */
153
154    public StagedQuoteDeletedMessageBuilder withCreatedBy(
155            Function<com.commercetools.api.models.common.CreatedByBuilder, com.commercetools.api.models.common.CreatedBy> builder) {
156        this.createdBy = builder.apply(com.commercetools.api.models.common.CreatedByBuilder.of());
157        return this;
158    }
159
160    /**
161     *  <p>Present on resources created after 1 February 2019 except for events not tracked.</p>
162     * @param createdBy value to be set
163     * @return Builder
164     */
165
166    public StagedQuoteDeletedMessageBuilder createdBy(
167            @Nullable final com.commercetools.api.models.common.CreatedBy createdBy) {
168        this.createdBy = createdBy;
169        return this;
170    }
171
172    /**
173     *  <p>Message number in relation to other Messages for a given resource. The <code>sequenceNumber</code> of the next Message for the resource is the successor of the <code>sequenceNumber</code> of the current Message. Meaning, the <code>sequenceNumber</code> of the next Message equals the <code>sequenceNumber</code> of the current Message + 1. <code>sequenceNumber</code> can be used to ensure that Messages are processed in the correct order for a particular resource.</p>
174     * @param sequenceNumber value to be set
175     * @return Builder
176     */
177
178    public StagedQuoteDeletedMessageBuilder sequenceNumber(final Long sequenceNumber) {
179        this.sequenceNumber = sequenceNumber;
180        return this;
181    }
182
183    /**
184     *  <p>Reference to the resource on which the change or action was performed.</p>
185     * @param resource value to be set
186     * @return Builder
187     */
188
189    public StagedQuoteDeletedMessageBuilder resource(final com.commercetools.api.models.common.Reference resource) {
190        this.resource = resource;
191        return this;
192    }
193
194    /**
195     *  <p>Reference to the resource on which the change or action was performed.</p>
196     * @param builder function to build the resource value
197     * @return Builder
198     */
199
200    public StagedQuoteDeletedMessageBuilder resource(
201            Function<com.commercetools.api.models.common.ReferenceBuilder, Builder<? extends com.commercetools.api.models.common.Reference>> builder) {
202        this.resource = builder.apply(com.commercetools.api.models.common.ReferenceBuilder.of()).build();
203        return this;
204    }
205
206    /**
207     *  <p>Version of the resource on which the change or action was performed.</p>
208     * @param resourceVersion value to be set
209     * @return Builder
210     */
211
212    public StagedQuoteDeletedMessageBuilder resourceVersion(final Long resourceVersion) {
213        this.resourceVersion = resourceVersion;
214        return this;
215    }
216
217    /**
218     *  <p>User-provided identifiers of the resource, such as <code>key</code> or <code>externalId</code>. Only present if the resource has such identifiers.</p>
219     * @param builder function to build the resourceUserProvidedIdentifiers value
220     * @return Builder
221     */
222
223    public StagedQuoteDeletedMessageBuilder resourceUserProvidedIdentifiers(
224            Function<com.commercetools.api.models.message.UserProvidedIdentifiersBuilder, com.commercetools.api.models.message.UserProvidedIdentifiersBuilder> builder) {
225        this.resourceUserProvidedIdentifiers = builder
226                .apply(com.commercetools.api.models.message.UserProvidedIdentifiersBuilder.of())
227                .build();
228        return this;
229    }
230
231    /**
232     *  <p>User-provided identifiers of the resource, such as <code>key</code> or <code>externalId</code>. Only present if the resource has such identifiers.</p>
233     * @param builder function to build the resourceUserProvidedIdentifiers value
234     * @return Builder
235     */
236
237    public StagedQuoteDeletedMessageBuilder withResourceUserProvidedIdentifiers(
238            Function<com.commercetools.api.models.message.UserProvidedIdentifiersBuilder, com.commercetools.api.models.message.UserProvidedIdentifiers> builder) {
239        this.resourceUserProvidedIdentifiers = builder
240                .apply(com.commercetools.api.models.message.UserProvidedIdentifiersBuilder.of());
241        return this;
242    }
243
244    /**
245     *  <p>User-provided identifiers of the resource, such as <code>key</code> or <code>externalId</code>. Only present if the resource has such identifiers.</p>
246     * @param resourceUserProvidedIdentifiers value to be set
247     * @return Builder
248     */
249
250    public StagedQuoteDeletedMessageBuilder resourceUserProvidedIdentifiers(
251            @Nullable final com.commercetools.api.models.message.UserProvidedIdentifiers resourceUserProvidedIdentifiers) {
252        this.resourceUserProvidedIdentifiers = resourceUserProvidedIdentifiers;
253        return this;
254    }
255
256    /**
257     *  <p>Unique identifier of the Message. Can be used to track which Messages have been processed.</p>
258     * @return id
259     */
260
261    public String getId() {
262        return this.id;
263    }
264
265    /**
266     *  <p>Version of a resource. In case of Messages, this is always <code>1</code>.</p>
267     * @return version
268     */
269
270    public Long getVersion() {
271        return this.version;
272    }
273
274    /**
275     *  <p>Date and time (UTC) the Message was generated.</p>
276     * @return createdAt
277     */
278
279    public java.time.ZonedDateTime getCreatedAt() {
280        return this.createdAt;
281    }
282
283    /**
284     *  <p>Value of <code>createdAt</code>.</p>
285     * @return lastModifiedAt
286     */
287
288    public java.time.ZonedDateTime getLastModifiedAt() {
289        return this.lastModifiedAt;
290    }
291
292    /**
293     *  <p>Value of <code>createdBy</code>.</p>
294     * @return lastModifiedBy
295     */
296
297    @Nullable
298    public com.commercetools.api.models.common.LastModifiedBy getLastModifiedBy() {
299        return this.lastModifiedBy;
300    }
301
302    /**
303     *  <p>Present on resources created after 1 February 2019 except for events not tracked.</p>
304     * @return createdBy
305     */
306
307    @Nullable
308    public com.commercetools.api.models.common.CreatedBy getCreatedBy() {
309        return this.createdBy;
310    }
311
312    /**
313     *  <p>Message number in relation to other Messages for a given resource. The <code>sequenceNumber</code> of the next Message for the resource is the successor of the <code>sequenceNumber</code> of the current Message. Meaning, the <code>sequenceNumber</code> of the next Message equals the <code>sequenceNumber</code> of the current Message + 1. <code>sequenceNumber</code> can be used to ensure that Messages are processed in the correct order for a particular resource.</p>
314     * @return sequenceNumber
315     */
316
317    public Long getSequenceNumber() {
318        return this.sequenceNumber;
319    }
320
321    /**
322     *  <p>Reference to the resource on which the change or action was performed.</p>
323     * @return resource
324     */
325
326    public com.commercetools.api.models.common.Reference getResource() {
327        return this.resource;
328    }
329
330    /**
331     *  <p>Version of the resource on which the change or action was performed.</p>
332     * @return resourceVersion
333     */
334
335    public Long getResourceVersion() {
336        return this.resourceVersion;
337    }
338
339    /**
340     *  <p>User-provided identifiers of the resource, such as <code>key</code> or <code>externalId</code>. Only present if the resource has such identifiers.</p>
341     * @return resourceUserProvidedIdentifiers
342     */
343
344    @Nullable
345    public com.commercetools.api.models.message.UserProvidedIdentifiers getResourceUserProvidedIdentifiers() {
346        return this.resourceUserProvidedIdentifiers;
347    }
348
349    /**
350     * builds StagedQuoteDeletedMessage with checking for non-null required values
351     * @return StagedQuoteDeletedMessage
352     */
353    public StagedQuoteDeletedMessage build() {
354        Objects.requireNonNull(id, StagedQuoteDeletedMessage.class + ": id is missing");
355        Objects.requireNonNull(version, StagedQuoteDeletedMessage.class + ": version is missing");
356        Objects.requireNonNull(createdAt, StagedQuoteDeletedMessage.class + ": createdAt is missing");
357        Objects.requireNonNull(lastModifiedAt, StagedQuoteDeletedMessage.class + ": lastModifiedAt is missing");
358        Objects.requireNonNull(sequenceNumber, StagedQuoteDeletedMessage.class + ": sequenceNumber is missing");
359        Objects.requireNonNull(resource, StagedQuoteDeletedMessage.class + ": resource is missing");
360        Objects.requireNonNull(resourceVersion, StagedQuoteDeletedMessage.class + ": resourceVersion is missing");
361        return new StagedQuoteDeletedMessageImpl(id, version, createdAt, lastModifiedAt, lastModifiedBy, createdBy,
362            sequenceNumber, resource, resourceVersion, resourceUserProvidedIdentifiers);
363    }
364
365    /**
366     * builds StagedQuoteDeletedMessage without checking for non-null required values
367     * @return StagedQuoteDeletedMessage
368     */
369    public StagedQuoteDeletedMessage buildUnchecked() {
370        return new StagedQuoteDeletedMessageImpl(id, version, createdAt, lastModifiedAt, lastModifiedBy, createdBy,
371            sequenceNumber, resource, resourceVersion, resourceUserProvidedIdentifiers);
372    }
373
374    /**
375     * factory method for an instance of StagedQuoteDeletedMessageBuilder
376     * @return builder
377     */
378    public static StagedQuoteDeletedMessageBuilder of() {
379        return new StagedQuoteDeletedMessageBuilder();
380    }
381
382    /**
383     * create builder for StagedQuoteDeletedMessage instance
384     * @param template instance with prefilled values for the builder
385     * @return builder
386     */
387    public static StagedQuoteDeletedMessageBuilder of(final StagedQuoteDeletedMessage template) {
388        StagedQuoteDeletedMessageBuilder builder = new StagedQuoteDeletedMessageBuilder();
389        builder.id = template.getId();
390        builder.version = template.getVersion();
391        builder.createdAt = template.getCreatedAt();
392        builder.lastModifiedAt = template.getLastModifiedAt();
393        builder.lastModifiedBy = template.getLastModifiedBy();
394        builder.createdBy = template.getCreatedBy();
395        builder.sequenceNumber = template.getSequenceNumber();
396        builder.resource = template.getResource();
397        builder.resourceVersion = template.getResourceVersion();
398        builder.resourceUserProvidedIdentifiers = template.getResourceUserProvidedIdentifiers();
399        return builder;
400    }
401
402}