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 * OrderLineItemRemovedMessageBuilder
014 * <hr>
015 * Example to create an instance using the builder pattern
016 * <div class=code-example>
017 * <pre><code class='java'>
018 *     OrderLineItemRemovedMessage orderLineItemRemovedMessage = OrderLineItemRemovedMessage.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 *             .lineItemId("{lineItemId}")
027 *             .removedQuantity(0.3)
028 *             .newQuantity(0.3)
029 *             .plusNewState(newStateBuilder -> newStateBuilder)
030 *             .newTotalPrice(newTotalPriceBuilder -> newTotalPriceBuilder)
031 *             .build()
032 * </code></pre>
033 * </div>
034 */
035@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
036public class OrderLineItemRemovedMessageBuilder implements Builder<OrderLineItemRemovedMessage> {
037
038    private String id;
039
040    private Long version;
041
042    private java.time.ZonedDateTime createdAt;
043
044    private java.time.ZonedDateTime lastModifiedAt;
045
046    @Nullable
047    private com.commercetools.api.models.common.LastModifiedBy lastModifiedBy;
048
049    @Nullable
050    private com.commercetools.api.models.common.CreatedBy createdBy;
051
052    private Long sequenceNumber;
053
054    private com.commercetools.api.models.common.Reference resource;
055
056    private Long resourceVersion;
057
058    @Nullable
059    private com.commercetools.api.models.message.UserProvidedIdentifiers resourceUserProvidedIdentifiers;
060
061    private String lineItemId;
062
063    private Long removedQuantity;
064
065    private Long newQuantity;
066
067    private java.util.List<com.commercetools.api.models.order.ItemState> newState;
068
069    private com.commercetools.api.models.common.CentPrecisionMoney newTotalPrice;
070
071    @Nullable
072    private com.commercetools.api.models.cart.TaxedItemPrice newTaxedPrice;
073
074    @Nullable
075    private com.commercetools.api.models.common.Price newPrice;
076
077    @Nullable
078    private com.commercetools.api.models.cart.ItemShippingDetails newShippingDetail;
079
080    /**
081     *  <p>Unique identifier of the Message. Can be used to track which Messages have been processed.</p>
082     * @param id value to be set
083     * @return Builder
084     */
085
086    public OrderLineItemRemovedMessageBuilder id(final String id) {
087        this.id = id;
088        return this;
089    }
090
091    /**
092     *  <p>Version of a resource. In case of Messages, this is always <code>1</code>.</p>
093     * @param version value to be set
094     * @return Builder
095     */
096
097    public OrderLineItemRemovedMessageBuilder version(final Long version) {
098        this.version = version;
099        return this;
100    }
101
102    /**
103     *  <p>Date and time (UTC) the Message was generated.</p>
104     * @param createdAt value to be set
105     * @return Builder
106     */
107
108    public OrderLineItemRemovedMessageBuilder createdAt(final java.time.ZonedDateTime createdAt) {
109        this.createdAt = createdAt;
110        return this;
111    }
112
113    /**
114     *  <p>Value of <code>createdAt</code>.</p>
115     * @param lastModifiedAt value to be set
116     * @return Builder
117     */
118
119    public OrderLineItemRemovedMessageBuilder lastModifiedAt(final java.time.ZonedDateTime lastModifiedAt) {
120        this.lastModifiedAt = lastModifiedAt;
121        return this;
122    }
123
124    /**
125     *  <p>Value of <code>createdBy</code>.</p>
126     * @param builder function to build the lastModifiedBy value
127     * @return Builder
128     */
129
130    public OrderLineItemRemovedMessageBuilder lastModifiedBy(
131            Function<com.commercetools.api.models.common.LastModifiedByBuilder, com.commercetools.api.models.common.LastModifiedByBuilder> builder) {
132        this.lastModifiedBy = builder.apply(com.commercetools.api.models.common.LastModifiedByBuilder.of()).build();
133        return this;
134    }
135
136    /**
137     *  <p>Value of <code>createdBy</code>.</p>
138     * @param builder function to build the lastModifiedBy value
139     * @return Builder
140     */
141
142    public OrderLineItemRemovedMessageBuilder withLastModifiedBy(
143            Function<com.commercetools.api.models.common.LastModifiedByBuilder, com.commercetools.api.models.common.LastModifiedBy> builder) {
144        this.lastModifiedBy = builder.apply(com.commercetools.api.models.common.LastModifiedByBuilder.of());
145        return this;
146    }
147
148    /**
149     *  <p>Value of <code>createdBy</code>.</p>
150     * @param lastModifiedBy value to be set
151     * @return Builder
152     */
153
154    public OrderLineItemRemovedMessageBuilder lastModifiedBy(
155            @Nullable final com.commercetools.api.models.common.LastModifiedBy lastModifiedBy) {
156        this.lastModifiedBy = lastModifiedBy;
157        return this;
158    }
159
160    /**
161     *  <p>Present on resources created after 1 February 2019 except for events not tracked.</p>
162     * @param builder function to build the createdBy value
163     * @return Builder
164     */
165
166    public OrderLineItemRemovedMessageBuilder createdBy(
167            Function<com.commercetools.api.models.common.CreatedByBuilder, com.commercetools.api.models.common.CreatedByBuilder> builder) {
168        this.createdBy = builder.apply(com.commercetools.api.models.common.CreatedByBuilder.of()).build();
169        return this;
170    }
171
172    /**
173     *  <p>Present on resources created after 1 February 2019 except for events not tracked.</p>
174     * @param builder function to build the createdBy value
175     * @return Builder
176     */
177
178    public OrderLineItemRemovedMessageBuilder withCreatedBy(
179            Function<com.commercetools.api.models.common.CreatedByBuilder, com.commercetools.api.models.common.CreatedBy> builder) {
180        this.createdBy = builder.apply(com.commercetools.api.models.common.CreatedByBuilder.of());
181        return this;
182    }
183
184    /**
185     *  <p>Present on resources created after 1 February 2019 except for events not tracked.</p>
186     * @param createdBy value to be set
187     * @return Builder
188     */
189
190    public OrderLineItemRemovedMessageBuilder createdBy(
191            @Nullable final com.commercetools.api.models.common.CreatedBy createdBy) {
192        this.createdBy = createdBy;
193        return this;
194    }
195
196    /**
197     *  <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>
198     * @param sequenceNumber value to be set
199     * @return Builder
200     */
201
202    public OrderLineItemRemovedMessageBuilder sequenceNumber(final Long sequenceNumber) {
203        this.sequenceNumber = sequenceNumber;
204        return this;
205    }
206
207    /**
208     *  <p>Reference to the resource on which the change or action was performed.</p>
209     * @param resource value to be set
210     * @return Builder
211     */
212
213    public OrderLineItemRemovedMessageBuilder resource(final com.commercetools.api.models.common.Reference resource) {
214        this.resource = resource;
215        return this;
216    }
217
218    /**
219     *  <p>Reference to the resource on which the change or action was performed.</p>
220     * @param builder function to build the resource value
221     * @return Builder
222     */
223
224    public OrderLineItemRemovedMessageBuilder resource(
225            Function<com.commercetools.api.models.common.ReferenceBuilder, Builder<? extends com.commercetools.api.models.common.Reference>> builder) {
226        this.resource = builder.apply(com.commercetools.api.models.common.ReferenceBuilder.of()).build();
227        return this;
228    }
229
230    /**
231     *  <p>Version of the resource on which the change or action was performed.</p>
232     * @param resourceVersion value to be set
233     * @return Builder
234     */
235
236    public OrderLineItemRemovedMessageBuilder resourceVersion(final Long resourceVersion) {
237        this.resourceVersion = resourceVersion;
238        return this;
239    }
240
241    /**
242     *  <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>
243     * @param builder function to build the resourceUserProvidedIdentifiers value
244     * @return Builder
245     */
246
247    public OrderLineItemRemovedMessageBuilder resourceUserProvidedIdentifiers(
248            Function<com.commercetools.api.models.message.UserProvidedIdentifiersBuilder, com.commercetools.api.models.message.UserProvidedIdentifiersBuilder> builder) {
249        this.resourceUserProvidedIdentifiers = builder
250                .apply(com.commercetools.api.models.message.UserProvidedIdentifiersBuilder.of())
251                .build();
252        return this;
253    }
254
255    /**
256     *  <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>
257     * @param builder function to build the resourceUserProvidedIdentifiers value
258     * @return Builder
259     */
260
261    public OrderLineItemRemovedMessageBuilder withResourceUserProvidedIdentifiers(
262            Function<com.commercetools.api.models.message.UserProvidedIdentifiersBuilder, com.commercetools.api.models.message.UserProvidedIdentifiers> builder) {
263        this.resourceUserProvidedIdentifiers = builder
264                .apply(com.commercetools.api.models.message.UserProvidedIdentifiersBuilder.of());
265        return this;
266    }
267
268    /**
269     *  <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>
270     * @param resourceUserProvidedIdentifiers value to be set
271     * @return Builder
272     */
273
274    public OrderLineItemRemovedMessageBuilder resourceUserProvidedIdentifiers(
275            @Nullable final com.commercetools.api.models.message.UserProvidedIdentifiers resourceUserProvidedIdentifiers) {
276        this.resourceUserProvidedIdentifiers = resourceUserProvidedIdentifiers;
277        return this;
278    }
279
280    /**
281     *  <p>Unique identifier of the Line Item.</p>
282     * @param lineItemId value to be set
283     * @return Builder
284     */
285
286    public OrderLineItemRemovedMessageBuilder lineItemId(final String lineItemId) {
287        this.lineItemId = lineItemId;
288        return this;
289    }
290
291    /**
292     *  <p>Quantity of Line Items that were removed during the Remove Line Item update action.</p>
293     * @param removedQuantity value to be set
294     * @return Builder
295     */
296
297    public OrderLineItemRemovedMessageBuilder removedQuantity(final Long removedQuantity) {
298        this.removedQuantity = removedQuantity;
299        return this;
300    }
301
302    /**
303     *  <p>Line Item quantity after the Remove Line Item update action.</p>
304     * @param newQuantity value to be set
305     * @return Builder
306     */
307
308    public OrderLineItemRemovedMessageBuilder newQuantity(final Long newQuantity) {
309        this.newQuantity = newQuantity;
310        return this;
311    }
312
313    /**
314     *  <p>ItemStates after the Remove Line Item update action.</p>
315     * @param newState value to be set
316     * @return Builder
317     */
318
319    public OrderLineItemRemovedMessageBuilder newState(final com.commercetools.api.models.order.ItemState... newState) {
320        this.newState = new ArrayList<>(Arrays.asList(newState));
321        return this;
322    }
323
324    /**
325     *  <p>ItemStates after the Remove Line Item update action.</p>
326     * @param newState value to be set
327     * @return Builder
328     */
329
330    public OrderLineItemRemovedMessageBuilder newState(
331            final java.util.List<com.commercetools.api.models.order.ItemState> newState) {
332        this.newState = newState;
333        return this;
334    }
335
336    /**
337     *  <p>ItemStates after the Remove Line Item update action.</p>
338     * @param newState value to be set
339     * @return Builder
340     */
341
342    public OrderLineItemRemovedMessageBuilder plusNewState(
343            final com.commercetools.api.models.order.ItemState... newState) {
344        if (this.newState == null) {
345            this.newState = new ArrayList<>();
346        }
347        this.newState.addAll(Arrays.asList(newState));
348        return this;
349    }
350
351    /**
352     *  <p>ItemStates after the Remove Line Item update action.</p>
353     * @param builder function to build the newState value
354     * @return Builder
355     */
356
357    public OrderLineItemRemovedMessageBuilder plusNewState(
358            Function<com.commercetools.api.models.order.ItemStateBuilder, com.commercetools.api.models.order.ItemStateBuilder> builder) {
359        if (this.newState == null) {
360            this.newState = new ArrayList<>();
361        }
362        this.newState.add(builder.apply(com.commercetools.api.models.order.ItemStateBuilder.of()).build());
363        return this;
364    }
365
366    /**
367     *  <p>ItemStates after the Remove Line Item update action.</p>
368     * @param builder function to build the newState value
369     * @return Builder
370     */
371
372    public OrderLineItemRemovedMessageBuilder withNewState(
373            Function<com.commercetools.api.models.order.ItemStateBuilder, com.commercetools.api.models.order.ItemStateBuilder> builder) {
374        this.newState = new ArrayList<>();
375        this.newState.add(builder.apply(com.commercetools.api.models.order.ItemStateBuilder.of()).build());
376        return this;
377    }
378
379    /**
380     *  <p>ItemStates after the Remove Line Item update action.</p>
381     * @param builder function to build the newState value
382     * @return Builder
383     */
384
385    public OrderLineItemRemovedMessageBuilder addNewState(
386            Function<com.commercetools.api.models.order.ItemStateBuilder, com.commercetools.api.models.order.ItemState> builder) {
387        return plusNewState(builder.apply(com.commercetools.api.models.order.ItemStateBuilder.of()));
388    }
389
390    /**
391     *  <p>ItemStates after the Remove Line Item update action.</p>
392     * @param builder function to build the newState value
393     * @return Builder
394     */
395
396    public OrderLineItemRemovedMessageBuilder setNewState(
397            Function<com.commercetools.api.models.order.ItemStateBuilder, com.commercetools.api.models.order.ItemState> builder) {
398        return newState(builder.apply(com.commercetools.api.models.order.ItemStateBuilder.of()));
399    }
400
401    /**
402     *  <p><code>totalPrice</code> of the Order after the Remove Line Item update action.</p>
403     * @param builder function to build the newTotalPrice value
404     * @return Builder
405     */
406
407    public OrderLineItemRemovedMessageBuilder newTotalPrice(
408            Function<com.commercetools.api.models.common.CentPrecisionMoneyBuilder, com.commercetools.api.models.common.CentPrecisionMoneyBuilder> builder) {
409        this.newTotalPrice = builder.apply(com.commercetools.api.models.common.CentPrecisionMoneyBuilder.of()).build();
410        return this;
411    }
412
413    /**
414     *  <p><code>totalPrice</code> of the Order after the Remove Line Item update action.</p>
415     * @param builder function to build the newTotalPrice value
416     * @return Builder
417     */
418
419    public OrderLineItemRemovedMessageBuilder withNewTotalPrice(
420            Function<com.commercetools.api.models.common.CentPrecisionMoneyBuilder, com.commercetools.api.models.common.CentPrecisionMoney> builder) {
421        this.newTotalPrice = builder.apply(com.commercetools.api.models.common.CentPrecisionMoneyBuilder.of());
422        return this;
423    }
424
425    /**
426     *  <p><code>totalPrice</code> of the Order after the Remove Line Item update action.</p>
427     * @param newTotalPrice value to be set
428     * @return Builder
429     */
430
431    public OrderLineItemRemovedMessageBuilder newTotalPrice(
432            final com.commercetools.api.models.common.CentPrecisionMoney newTotalPrice) {
433        this.newTotalPrice = newTotalPrice;
434        return this;
435    }
436
437    /**
438     *  <p>TaxedItemPrice of the Order after the Remove Line Item update action.</p>
439     * @param builder function to build the newTaxedPrice value
440     * @return Builder
441     */
442
443    public OrderLineItemRemovedMessageBuilder newTaxedPrice(
444            Function<com.commercetools.api.models.cart.TaxedItemPriceBuilder, com.commercetools.api.models.cart.TaxedItemPriceBuilder> builder) {
445        this.newTaxedPrice = builder.apply(com.commercetools.api.models.cart.TaxedItemPriceBuilder.of()).build();
446        return this;
447    }
448
449    /**
450     *  <p>TaxedItemPrice of the Order after the Remove Line Item update action.</p>
451     * @param builder function to build the newTaxedPrice value
452     * @return Builder
453     */
454
455    public OrderLineItemRemovedMessageBuilder withNewTaxedPrice(
456            Function<com.commercetools.api.models.cart.TaxedItemPriceBuilder, com.commercetools.api.models.cart.TaxedItemPrice> builder) {
457        this.newTaxedPrice = builder.apply(com.commercetools.api.models.cart.TaxedItemPriceBuilder.of());
458        return this;
459    }
460
461    /**
462     *  <p>TaxedItemPrice of the Order after the Remove Line Item update action.</p>
463     * @param newTaxedPrice value to be set
464     * @return Builder
465     */
466
467    public OrderLineItemRemovedMessageBuilder newTaxedPrice(
468            @Nullable final com.commercetools.api.models.cart.TaxedItemPrice newTaxedPrice) {
469        this.newTaxedPrice = newTaxedPrice;
470        return this;
471    }
472
473    /**
474     *  <p>Price of the Order after the Remove Line Item update action.</p>
475     * @param builder function to build the newPrice value
476     * @return Builder
477     */
478
479    public OrderLineItemRemovedMessageBuilder newPrice(
480            Function<com.commercetools.api.models.common.PriceBuilder, com.commercetools.api.models.common.PriceBuilder> builder) {
481        this.newPrice = builder.apply(com.commercetools.api.models.common.PriceBuilder.of()).build();
482        return this;
483    }
484
485    /**
486     *  <p>Price of the Order after the Remove Line Item update action.</p>
487     * @param builder function to build the newPrice value
488     * @return Builder
489     */
490
491    public OrderLineItemRemovedMessageBuilder withNewPrice(
492            Function<com.commercetools.api.models.common.PriceBuilder, com.commercetools.api.models.common.Price> builder) {
493        this.newPrice = builder.apply(com.commercetools.api.models.common.PriceBuilder.of());
494        return this;
495    }
496
497    /**
498     *  <p>Price of the Order after the Remove Line Item update action.</p>
499     * @param newPrice value to be set
500     * @return Builder
501     */
502
503    public OrderLineItemRemovedMessageBuilder newPrice(
504            @Nullable final com.commercetools.api.models.common.Price newPrice) {
505        this.newPrice = newPrice;
506        return this;
507    }
508
509    /**
510     *  <p>Shipping Details of the Order after the Remove Line Item update action.</p>
511     * @param builder function to build the newShippingDetail value
512     * @return Builder
513     */
514
515    public OrderLineItemRemovedMessageBuilder newShippingDetail(
516            Function<com.commercetools.api.models.cart.ItemShippingDetailsBuilder, com.commercetools.api.models.cart.ItemShippingDetailsBuilder> builder) {
517        this.newShippingDetail = builder.apply(com.commercetools.api.models.cart.ItemShippingDetailsBuilder.of())
518                .build();
519        return this;
520    }
521
522    /**
523     *  <p>Shipping Details of the Order after the Remove Line Item update action.</p>
524     * @param builder function to build the newShippingDetail value
525     * @return Builder
526     */
527
528    public OrderLineItemRemovedMessageBuilder withNewShippingDetail(
529            Function<com.commercetools.api.models.cart.ItemShippingDetailsBuilder, com.commercetools.api.models.cart.ItemShippingDetails> builder) {
530        this.newShippingDetail = builder.apply(com.commercetools.api.models.cart.ItemShippingDetailsBuilder.of());
531        return this;
532    }
533
534    /**
535     *  <p>Shipping Details of the Order after the Remove Line Item update action.</p>
536     * @param newShippingDetail value to be set
537     * @return Builder
538     */
539
540    public OrderLineItemRemovedMessageBuilder newShippingDetail(
541            @Nullable final com.commercetools.api.models.cart.ItemShippingDetails newShippingDetail) {
542        this.newShippingDetail = newShippingDetail;
543        return this;
544    }
545
546    /**
547     *  <p>Unique identifier of the Message. Can be used to track which Messages have been processed.</p>
548     * @return id
549     */
550
551    public String getId() {
552        return this.id;
553    }
554
555    /**
556     *  <p>Version of a resource. In case of Messages, this is always <code>1</code>.</p>
557     * @return version
558     */
559
560    public Long getVersion() {
561        return this.version;
562    }
563
564    /**
565     *  <p>Date and time (UTC) the Message was generated.</p>
566     * @return createdAt
567     */
568
569    public java.time.ZonedDateTime getCreatedAt() {
570        return this.createdAt;
571    }
572
573    /**
574     *  <p>Value of <code>createdAt</code>.</p>
575     * @return lastModifiedAt
576     */
577
578    public java.time.ZonedDateTime getLastModifiedAt() {
579        return this.lastModifiedAt;
580    }
581
582    /**
583     *  <p>Value of <code>createdBy</code>.</p>
584     * @return lastModifiedBy
585     */
586
587    @Nullable
588    public com.commercetools.api.models.common.LastModifiedBy getLastModifiedBy() {
589        return this.lastModifiedBy;
590    }
591
592    /**
593     *  <p>Present on resources created after 1 February 2019 except for events not tracked.</p>
594     * @return createdBy
595     */
596
597    @Nullable
598    public com.commercetools.api.models.common.CreatedBy getCreatedBy() {
599        return this.createdBy;
600    }
601
602    /**
603     *  <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>
604     * @return sequenceNumber
605     */
606
607    public Long getSequenceNumber() {
608        return this.sequenceNumber;
609    }
610
611    /**
612     *  <p>Reference to the resource on which the change or action was performed.</p>
613     * @return resource
614     */
615
616    public com.commercetools.api.models.common.Reference getResource() {
617        return this.resource;
618    }
619
620    /**
621     *  <p>Version of the resource on which the change or action was performed.</p>
622     * @return resourceVersion
623     */
624
625    public Long getResourceVersion() {
626        return this.resourceVersion;
627    }
628
629    /**
630     *  <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>
631     * @return resourceUserProvidedIdentifiers
632     */
633
634    @Nullable
635    public com.commercetools.api.models.message.UserProvidedIdentifiers getResourceUserProvidedIdentifiers() {
636        return this.resourceUserProvidedIdentifiers;
637    }
638
639    /**
640     *  <p>Unique identifier of the Line Item.</p>
641     * @return lineItemId
642     */
643
644    public String getLineItemId() {
645        return this.lineItemId;
646    }
647
648    /**
649     *  <p>Quantity of Line Items that were removed during the Remove Line Item update action.</p>
650     * @return removedQuantity
651     */
652
653    public Long getRemovedQuantity() {
654        return this.removedQuantity;
655    }
656
657    /**
658     *  <p>Line Item quantity after the Remove Line Item update action.</p>
659     * @return newQuantity
660     */
661
662    public Long getNewQuantity() {
663        return this.newQuantity;
664    }
665
666    /**
667     *  <p>ItemStates after the Remove Line Item update action.</p>
668     * @return newState
669     */
670
671    public java.util.List<com.commercetools.api.models.order.ItemState> getNewState() {
672        return this.newState;
673    }
674
675    /**
676     *  <p><code>totalPrice</code> of the Order after the Remove Line Item update action.</p>
677     * @return newTotalPrice
678     */
679
680    public com.commercetools.api.models.common.CentPrecisionMoney getNewTotalPrice() {
681        return this.newTotalPrice;
682    }
683
684    /**
685     *  <p>TaxedItemPrice of the Order after the Remove Line Item update action.</p>
686     * @return newTaxedPrice
687     */
688
689    @Nullable
690    public com.commercetools.api.models.cart.TaxedItemPrice getNewTaxedPrice() {
691        return this.newTaxedPrice;
692    }
693
694    /**
695     *  <p>Price of the Order after the Remove Line Item update action.</p>
696     * @return newPrice
697     */
698
699    @Nullable
700    public com.commercetools.api.models.common.Price getNewPrice() {
701        return this.newPrice;
702    }
703
704    /**
705     *  <p>Shipping Details of the Order after the Remove Line Item update action.</p>
706     * @return newShippingDetail
707     */
708
709    @Nullable
710    public com.commercetools.api.models.cart.ItemShippingDetails getNewShippingDetail() {
711        return this.newShippingDetail;
712    }
713
714    /**
715     * builds OrderLineItemRemovedMessage with checking for non-null required values
716     * @return OrderLineItemRemovedMessage
717     */
718    public OrderLineItemRemovedMessage build() {
719        Objects.requireNonNull(id, OrderLineItemRemovedMessage.class + ": id is missing");
720        Objects.requireNonNull(version, OrderLineItemRemovedMessage.class + ": version is missing");
721        Objects.requireNonNull(createdAt, OrderLineItemRemovedMessage.class + ": createdAt is missing");
722        Objects.requireNonNull(lastModifiedAt, OrderLineItemRemovedMessage.class + ": lastModifiedAt is missing");
723        Objects.requireNonNull(sequenceNumber, OrderLineItemRemovedMessage.class + ": sequenceNumber is missing");
724        Objects.requireNonNull(resource, OrderLineItemRemovedMessage.class + ": resource is missing");
725        Objects.requireNonNull(resourceVersion, OrderLineItemRemovedMessage.class + ": resourceVersion is missing");
726        Objects.requireNonNull(lineItemId, OrderLineItemRemovedMessage.class + ": lineItemId is missing");
727        Objects.requireNonNull(removedQuantity, OrderLineItemRemovedMessage.class + ": removedQuantity is missing");
728        Objects.requireNonNull(newQuantity, OrderLineItemRemovedMessage.class + ": newQuantity is missing");
729        Objects.requireNonNull(newState, OrderLineItemRemovedMessage.class + ": newState is missing");
730        Objects.requireNonNull(newTotalPrice, OrderLineItemRemovedMessage.class + ": newTotalPrice is missing");
731        return new OrderLineItemRemovedMessageImpl(id, version, createdAt, lastModifiedAt, lastModifiedBy, createdBy,
732            sequenceNumber, resource, resourceVersion, resourceUserProvidedIdentifiers, lineItemId, removedQuantity,
733            newQuantity, newState, newTotalPrice, newTaxedPrice, newPrice, newShippingDetail);
734    }
735
736    /**
737     * builds OrderLineItemRemovedMessage without checking for non-null required values
738     * @return OrderLineItemRemovedMessage
739     */
740    public OrderLineItemRemovedMessage buildUnchecked() {
741        return new OrderLineItemRemovedMessageImpl(id, version, createdAt, lastModifiedAt, lastModifiedBy, createdBy,
742            sequenceNumber, resource, resourceVersion, resourceUserProvidedIdentifiers, lineItemId, removedQuantity,
743            newQuantity, newState, newTotalPrice, newTaxedPrice, newPrice, newShippingDetail);
744    }
745
746    /**
747     * factory method for an instance of OrderLineItemRemovedMessageBuilder
748     * @return builder
749     */
750    public static OrderLineItemRemovedMessageBuilder of() {
751        return new OrderLineItemRemovedMessageBuilder();
752    }
753
754    /**
755     * create builder for OrderLineItemRemovedMessage instance
756     * @param template instance with prefilled values for the builder
757     * @return builder
758     */
759    public static OrderLineItemRemovedMessageBuilder of(final OrderLineItemRemovedMessage template) {
760        OrderLineItemRemovedMessageBuilder builder = new OrderLineItemRemovedMessageBuilder();
761        builder.id = template.getId();
762        builder.version = template.getVersion();
763        builder.createdAt = template.getCreatedAt();
764        builder.lastModifiedAt = template.getLastModifiedAt();
765        builder.lastModifiedBy = template.getLastModifiedBy();
766        builder.createdBy = template.getCreatedBy();
767        builder.sequenceNumber = template.getSequenceNumber();
768        builder.resource = template.getResource();
769        builder.resourceVersion = template.getResourceVersion();
770        builder.resourceUserProvidedIdentifiers = template.getResourceUserProvidedIdentifiers();
771        builder.lineItemId = template.getLineItemId();
772        builder.removedQuantity = template.getRemovedQuantity();
773        builder.newQuantity = template.getNewQuantity();
774        builder.newState = template.getNewState();
775        builder.newTotalPrice = template.getNewTotalPrice();
776        builder.newTaxedPrice = template.getNewTaxedPrice();
777        builder.newPrice = template.getNewPrice();
778        builder.newShippingDetail = template.getNewShippingDetail();
779        return builder;
780    }
781
782}