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.TrackingData; 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 Set Parcel Tracking Data 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 * ParcelTrackingDataUpdatedMessage parcelTrackingDataUpdatedMessage = ParcelTrackingDataUpdatedMessage.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 * .parcelId("{parcelId}") 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 = ParcelTrackingDataUpdatedMessageImpl.class) 041public interface ParcelTrackingDataUpdatedMessage extends OrderMessage { 042 043 /** 044 * discriminator value for ParcelTrackingDataUpdatedMessage 045 */ 046 String PARCEL_TRACKING_DATA_UPDATED = "ParcelTrackingDataUpdated"; 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>Unique identifier of the Parcel.</p> 058 * @return parcelId 059 */ 060 @NotNull 061 @JsonProperty("parcelId") 062 public String getParcelId(); 063 064 /** 065 * <p>The Tracking Data that was added to the Parcel.</p> 066 * @return trackingData 067 */ 068 @Valid 069 @JsonProperty("trackingData") 070 public TrackingData getTrackingData(); 071 072 /** 073 * <p>User-defined unique identifier of the Shipping Method in a Cart with <code>Multiple</code> ShippingMode.</p> 074 * @return shippingKey 075 */ 076 077 @JsonProperty("shippingKey") 078 public String getShippingKey(); 079 080 /** 081 * <p>Unique identifier of the Delivery.</p> 082 * @param deliveryId value to be set 083 */ 084 085 public void setDeliveryId(final String deliveryId); 086 087 /** 088 * <p>Unique identifier of the Parcel.</p> 089 * @param parcelId value to be set 090 */ 091 092 public void setParcelId(final String parcelId); 093 094 /** 095 * <p>The Tracking Data that was added to the Parcel.</p> 096 * @param trackingData value to be set 097 */ 098 099 public void setTrackingData(final TrackingData trackingData); 100 101 /** 102 * <p>User-defined unique identifier of the Shipping Method in a Cart with <code>Multiple</code> ShippingMode.</p> 103 * @param shippingKey value to be set 104 */ 105 106 public void setShippingKey(final String shippingKey); 107 108 /** 109 * factory method 110 * @return instance of ParcelTrackingDataUpdatedMessage 111 */ 112 public static ParcelTrackingDataUpdatedMessage of() { 113 return new ParcelTrackingDataUpdatedMessageImpl(); 114 } 115 116 /** 117 * factory method to create a shallow copy ParcelTrackingDataUpdatedMessage 118 * @param template instance to be copied 119 * @return copy instance 120 */ 121 public static ParcelTrackingDataUpdatedMessage of(final ParcelTrackingDataUpdatedMessage template) { 122 ParcelTrackingDataUpdatedMessageImpl instance = new ParcelTrackingDataUpdatedMessageImpl(); 123 instance.setId(template.getId()); 124 instance.setVersion(template.getVersion()); 125 instance.setCreatedAt(template.getCreatedAt()); 126 instance.setLastModifiedAt(template.getLastModifiedAt()); 127 instance.setLastModifiedBy(template.getLastModifiedBy()); 128 instance.setCreatedBy(template.getCreatedBy()); 129 instance.setSequenceNumber(template.getSequenceNumber()); 130 instance.setResource(template.getResource()); 131 instance.setResourceVersion(template.getResourceVersion()); 132 instance.setResourceUserProvidedIdentifiers(template.getResourceUserProvidedIdentifiers()); 133 instance.setDeliveryId(template.getDeliveryId()); 134 instance.setParcelId(template.getParcelId()); 135 instance.setTrackingData(template.getTrackingData()); 136 instance.setShippingKey(template.getShippingKey()); 137 return instance; 138 } 139 140 /** 141 * factory method to create a deep copy of ParcelTrackingDataUpdatedMessage 142 * @param template instance to be copied 143 * @return copy instance 144 */ 145 @Nullable 146 public static ParcelTrackingDataUpdatedMessage deepCopy(@Nullable final ParcelTrackingDataUpdatedMessage template) { 147 if (template == null) { 148 return null; 149 } 150 ParcelTrackingDataUpdatedMessageImpl instance = new ParcelTrackingDataUpdatedMessageImpl(); 151 instance.setId(template.getId()); 152 instance.setVersion(template.getVersion()); 153 instance.setCreatedAt(template.getCreatedAt()); 154 instance.setLastModifiedAt(template.getLastModifiedAt()); 155 instance.setLastModifiedBy( 156 com.commercetools.api.models.common.LastModifiedBy.deepCopy(template.getLastModifiedBy())); 157 instance.setCreatedBy(com.commercetools.api.models.common.CreatedBy.deepCopy(template.getCreatedBy())); 158 instance.setSequenceNumber(template.getSequenceNumber()); 159 instance.setResource(com.commercetools.api.models.common.Reference.deepCopy(template.getResource())); 160 instance.setResourceVersion(template.getResourceVersion()); 161 instance.setResourceUserProvidedIdentifiers(com.commercetools.api.models.message.UserProvidedIdentifiers 162 .deepCopy(template.getResourceUserProvidedIdentifiers())); 163 instance.setDeliveryId(template.getDeliveryId()); 164 instance.setParcelId(template.getParcelId()); 165 instance.setTrackingData(com.commercetools.api.models.order.TrackingData.deepCopy(template.getTrackingData())); 166 instance.setShippingKey(template.getShippingKey()); 167 return instance; 168 } 169 170 /** 171 * builder factory method for ParcelTrackingDataUpdatedMessage 172 * @return builder 173 */ 174 public static ParcelTrackingDataUpdatedMessageBuilder builder() { 175 return ParcelTrackingDataUpdatedMessageBuilder.of(); 176 } 177 178 /** 179 * create builder for ParcelTrackingDataUpdatedMessage instance 180 * @param template instance with prefilled values for the builder 181 * @return builder 182 */ 183 public static ParcelTrackingDataUpdatedMessageBuilder builder(final ParcelTrackingDataUpdatedMessage template) { 184 return ParcelTrackingDataUpdatedMessageBuilder.of(template); 185 } 186 187 /** 188 * accessor map function 189 * @param <T> mapped type 190 * @param helper function to map the object 191 * @return mapped value 192 */ 193 default <T> T withParcelTrackingDataUpdatedMessage(Function<ParcelTrackingDataUpdatedMessage, T> helper) { 194 return helper.apply(this); 195 } 196 197 /** 198 * gives a TypeReference for usage with Jackson DataBind 199 * @return TypeReference 200 */ 201 public static com.fasterxml.jackson.core.type.TypeReference<ParcelTrackingDataUpdatedMessage> typeReference() { 202 return new com.fasterxml.jackson.core.type.TypeReference<ParcelTrackingDataUpdatedMessage>() { 203 @Override 204 public String toString() { 205 return "TypeReference<ParcelTrackingDataUpdatedMessage>"; 206 } 207 }; 208 } 209}