001 002package com.commercetools.api.models.message; 003 004import java.time.*; 005import java.util.*; 006import java.util.function.Function; 007 008import javax.annotation.Nullable; 009import javax.validation.Valid; 010import javax.validation.constraints.NotNull; 011 012import com.commercetools.api.models.order.Parcel; 013import com.fasterxml.jackson.annotation.*; 014import com.fasterxml.jackson.databind.annotation.*; 015 016import io.vrap.rmf.base.client.utils.Generated; 017 018/** 019 * <p>Generated after a successful Remove Parcel From Delivery update action.</p> 020 * 021 * <hr> 022 * Example to create an instance using the builder pattern 023 * <div class=code-example> 024 * <pre><code class='java'> 025 * ParcelRemovedFromDeliveryMessage parcelRemovedFromDeliveryMessage = ParcelRemovedFromDeliveryMessage.builder() 026 * .id("{id}") 027 * .version(0.3) 028 * .createdAt(ZonedDateTime.parse("2022-01-01T12:00:00.301Z")) 029 * .lastModifiedAt(ZonedDateTime.parse("2022-01-01T12:00:00.301Z")) 030 * .sequenceNumber(0.3) 031 * .resource(resourceBuilder -> resourceBuilder) 032 * .resourceVersion(0.3) 033 * .deliveryId("{deliveryId}") 034 * .parcel(parcelBuilder -> parcelBuilder) 035 * .build() 036 * </code></pre> 037 * </div> 038 */ 039@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 040@JsonDeserialize(as = ParcelRemovedFromDeliveryMessageImpl.class) 041public interface ParcelRemovedFromDeliveryMessage extends OrderMessage { 042 043 /** 044 * discriminator value for ParcelRemovedFromDeliveryMessage 045 */ 046 String PARCEL_REMOVED_FROM_DELIVERY = "ParcelRemovedFromDelivery"; 047 048 /** 049 * <p>Unique identifier of the Delivery.</p> 050 * @return deliveryId 051 */ 052 @NotNull 053 @JsonProperty("deliveryId") 054 public String getDeliveryId(); 055 056 /** 057 * <p>Parcel that was removed from the Delivery.</p> 058 * @return parcel 059 */ 060 @NotNull 061 @Valid 062 @JsonProperty("parcel") 063 public Parcel getParcel(); 064 065 /** 066 * <p>User-defined unique identifier of the Shipping Method in a Cart with <code>Multi</code> ShippingMode.</p> 067 * @return shippingKey 068 */ 069 070 @JsonProperty("shippingKey") 071 public String getShippingKey(); 072 073 /** 074 * <p>Unique identifier of the Delivery.</p> 075 * @param deliveryId value to be set 076 */ 077 078 public void setDeliveryId(final String deliveryId); 079 080 /** 081 * <p>Parcel that was removed from the Delivery.</p> 082 * @param parcel value to be set 083 */ 084 085 public void setParcel(final Parcel parcel); 086 087 /** 088 * <p>User-defined unique identifier of the Shipping Method in a Cart with <code>Multi</code> ShippingMode.</p> 089 * @param shippingKey value to be set 090 */ 091 092 public void setShippingKey(final String shippingKey); 093 094 /** 095 * factory method 096 * @return instance of ParcelRemovedFromDeliveryMessage 097 */ 098 public static ParcelRemovedFromDeliveryMessage of() { 099 return new ParcelRemovedFromDeliveryMessageImpl(); 100 } 101 102 /** 103 * factory method to create a shallow copy ParcelRemovedFromDeliveryMessage 104 * @param template instance to be copied 105 * @return copy instance 106 */ 107 public static ParcelRemovedFromDeliveryMessage of(final ParcelRemovedFromDeliveryMessage template) { 108 ParcelRemovedFromDeliveryMessageImpl instance = new ParcelRemovedFromDeliveryMessageImpl(); 109 instance.setId(template.getId()); 110 instance.setVersion(template.getVersion()); 111 instance.setCreatedAt(template.getCreatedAt()); 112 instance.setLastModifiedAt(template.getLastModifiedAt()); 113 instance.setLastModifiedBy(template.getLastModifiedBy()); 114 instance.setCreatedBy(template.getCreatedBy()); 115 instance.setSequenceNumber(template.getSequenceNumber()); 116 instance.setResource(template.getResource()); 117 instance.setResourceVersion(template.getResourceVersion()); 118 instance.setResourceUserProvidedIdentifiers(template.getResourceUserProvidedIdentifiers()); 119 instance.setDeliveryId(template.getDeliveryId()); 120 instance.setParcel(template.getParcel()); 121 instance.setShippingKey(template.getShippingKey()); 122 return instance; 123 } 124 125 /** 126 * factory method to create a deep copy of ParcelRemovedFromDeliveryMessage 127 * @param template instance to be copied 128 * @return copy instance 129 */ 130 @Nullable 131 public static ParcelRemovedFromDeliveryMessage deepCopy(@Nullable final ParcelRemovedFromDeliveryMessage template) { 132 if (template == null) { 133 return null; 134 } 135 ParcelRemovedFromDeliveryMessageImpl instance = new ParcelRemovedFromDeliveryMessageImpl(); 136 instance.setId(template.getId()); 137 instance.setVersion(template.getVersion()); 138 instance.setCreatedAt(template.getCreatedAt()); 139 instance.setLastModifiedAt(template.getLastModifiedAt()); 140 instance.setLastModifiedBy( 141 com.commercetools.api.models.common.LastModifiedBy.deepCopy(template.getLastModifiedBy())); 142 instance.setCreatedBy(com.commercetools.api.models.common.CreatedBy.deepCopy(template.getCreatedBy())); 143 instance.setSequenceNumber(template.getSequenceNumber()); 144 instance.setResource(com.commercetools.api.models.common.Reference.deepCopy(template.getResource())); 145 instance.setResourceVersion(template.getResourceVersion()); 146 instance.setResourceUserProvidedIdentifiers(com.commercetools.api.models.message.UserProvidedIdentifiers 147 .deepCopy(template.getResourceUserProvidedIdentifiers())); 148 instance.setDeliveryId(template.getDeliveryId()); 149 instance.setParcel(com.commercetools.api.models.order.Parcel.deepCopy(template.getParcel())); 150 instance.setShippingKey(template.getShippingKey()); 151 return instance; 152 } 153 154 /** 155 * builder factory method for ParcelRemovedFromDeliveryMessage 156 * @return builder 157 */ 158 public static ParcelRemovedFromDeliveryMessageBuilder builder() { 159 return ParcelRemovedFromDeliveryMessageBuilder.of(); 160 } 161 162 /** 163 * create builder for ParcelRemovedFromDeliveryMessage instance 164 * @param template instance with prefilled values for the builder 165 * @return builder 166 */ 167 public static ParcelRemovedFromDeliveryMessageBuilder builder(final ParcelRemovedFromDeliveryMessage template) { 168 return ParcelRemovedFromDeliveryMessageBuilder.of(template); 169 } 170 171 /** 172 * accessor map function 173 * @param <T> mapped type 174 * @param helper function to map the object 175 * @return mapped value 176 */ 177 default <T> T withParcelRemovedFromDeliveryMessage(Function<ParcelRemovedFromDeliveryMessage, T> helper) { 178 return helper.apply(this); 179 } 180 181 /** 182 * gives a TypeReference for usage with Jackson DataBind 183 * @return TypeReference 184 */ 185 public static com.fasterxml.jackson.core.type.TypeReference<ParcelRemovedFromDeliveryMessage> typeReference() { 186 return new com.fasterxml.jackson.core.type.TypeReference<ParcelRemovedFromDeliveryMessage>() { 187 @Override 188 public String toString() { 189 return "TypeReference<ParcelRemovedFromDeliveryMessage>"; 190 } 191 }; 192 } 193}