001
002package com.commercetools.api.models.message;
003
004import java.time.*;
005import java.time.ZonedDateTime;
006import java.util.*;
007import java.util.function.Function;
008
009import javax.annotation.Nullable;
010import javax.validation.Valid;
011import javax.validation.constraints.NotNull;
012
013import com.commercetools.api.models.common.BaseResource;
014import com.commercetools.api.models.common.CreatedBy;
015import com.commercetools.api.models.common.LastModifiedBy;
016import com.commercetools.api.models.common.Reference;
017import com.fasterxml.jackson.annotation.*;
018import com.fasterxml.jackson.databind.annotation.*;
019
020import io.vrap.rmf.base.client.utils.Generated;
021
022/**
023 *  <p>Base representation of a Message containing common fields to all Message Types.</p>
024 *
025 * <hr>
026 * Example to create a subtype instance using the builder pattern
027 * <div class=code-example>
028 * <pre><code class='java'>
029 *     Message message = Message.associateRoleBuyerAssignableChangedBuilder()
030 *             id("{id}")
031 *             version(0.3)
032 *             createdAt(ZonedDateTime.parse("2022-01-01T12:00:00.301Z"))
033 *             lastModifiedAt(ZonedDateTime.parse("2022-01-01T12:00:00.301Z"))
034 *             sequenceNumber(0.3)
035 *             resource(resourceBuilder -> resourceBuilder)
036 *             resourceVersion(0.3)
037 *             buyerAssignable(true)
038 *             .build()
039 * </code></pre>
040 * </div>
041 */
042@JsonSubTypes({
043        @JsonSubTypes.Type(value = com.commercetools.api.models.message.AssociateRoleBuyerAssignableChangedMessageImpl.class, name = AssociateRoleBuyerAssignableChangedMessage.ASSOCIATE_ROLE_BUYER_ASSIGNABLE_CHANGED),
044        @JsonSubTypes.Type(value = com.commercetools.api.models.message.AssociateRoleCreatedMessageImpl.class, name = AssociateRoleCreatedMessage.ASSOCIATE_ROLE_CREATED),
045        @JsonSubTypes.Type(value = com.commercetools.api.models.message.AssociateRoleDeletedMessageImpl.class, name = AssociateRoleDeletedMessage.ASSOCIATE_ROLE_DELETED),
046        @JsonSubTypes.Type(value = com.commercetools.api.models.message.AssociateRoleNameChangedMessageImpl.class, name = AssociateRoleNameChangedMessage.ASSOCIATE_ROLE_NAME_SET),
047        @JsonSubTypes.Type(value = com.commercetools.api.models.message.AssociateRolePermissionAddedMessageImpl.class, name = AssociateRolePermissionAddedMessage.ASSOCIATE_ROLE_PERMISSION_ADDED),
048        @JsonSubTypes.Type(value = com.commercetools.api.models.message.AssociateRolePermissionRemovedMessageImpl.class, name = AssociateRolePermissionRemovedMessage.ASSOCIATE_ROLE_PERMISSION_REMOVED),
049        @JsonSubTypes.Type(value = com.commercetools.api.models.message.AssociateRolePermissionsSetMessageImpl.class, name = AssociateRolePermissionsSetMessage.ASSOCIATE_ROLE_PERMISSIONS_SET),
050        @JsonSubTypes.Type(value = com.commercetools.api.models.message.BusinessUnitAddressAddedMessageImpl.class, name = BusinessUnitAddressAddedMessage.BUSINESS_UNIT_ADDRESS_ADDED),
051        @JsonSubTypes.Type(value = com.commercetools.api.models.message.BusinessUnitAddressChangedMessageImpl.class, name = BusinessUnitAddressChangedMessage.BUSINESS_UNIT_ADDRESS_CHANGED),
052        @JsonSubTypes.Type(value = com.commercetools.api.models.message.BusinessUnitAddressRemovedMessageImpl.class, name = BusinessUnitAddressRemovedMessage.BUSINESS_UNIT_ADDRESS_REMOVED),
053        @JsonSubTypes.Type(value = com.commercetools.api.models.message.BusinessUnitAssociateAddedMessageImpl.class, name = BusinessUnitAssociateAddedMessage.BUSINESS_UNIT_ASSOCIATE_ADDED),
054        @JsonSubTypes.Type(value = com.commercetools.api.models.message.BusinessUnitAssociateChangedMessageImpl.class, name = BusinessUnitAssociateChangedMessage.BUSINESS_UNIT_ASSOCIATE_CHANGED),
055        @JsonSubTypes.Type(value = com.commercetools.api.models.message.BusinessUnitAssociateModeChangedMessageImpl.class, name = BusinessUnitAssociateModeChangedMessage.BUSINESS_UNIT_ASSOCIATE_MODE_CHANGED),
056        @JsonSubTypes.Type(value = com.commercetools.api.models.message.BusinessUnitAssociateRemovedMessageImpl.class, name = BusinessUnitAssociateRemovedMessage.BUSINESS_UNIT_ASSOCIATE_REMOVED),
057        @JsonSubTypes.Type(value = com.commercetools.api.models.message.BusinessUnitAssociatesSetMessageImpl.class, name = BusinessUnitAssociatesSetMessage.BUSINESS_UNIT_ASSOCIATES_SET),
058        @JsonSubTypes.Type(value = com.commercetools.api.models.message.BusinessUnitBillingAddressAddedMessageImpl.class, name = BusinessUnitBillingAddressAddedMessage.BUSINESS_UNIT_BILLING_ADDRESS_ADDED),
059        @JsonSubTypes.Type(value = com.commercetools.api.models.message.BusinessUnitBillingAddressRemovedMessageImpl.class, name = BusinessUnitBillingAddressRemovedMessage.BUSINESS_UNIT_BILLING_ADDRESS_REMOVED),
060        @JsonSubTypes.Type(value = com.commercetools.api.models.message.BusinessUnitContactEmailSetMessageImpl.class, name = BusinessUnitContactEmailSetMessage.BUSINESS_UNIT_CONTACT_EMAIL_SET),
061        @JsonSubTypes.Type(value = com.commercetools.api.models.message.BusinessUnitCreatedMessageImpl.class, name = BusinessUnitCreatedMessage.BUSINESS_UNIT_CREATED),
062        @JsonSubTypes.Type(value = com.commercetools.api.models.message.BusinessUnitDefaultBillingAddressSetMessageImpl.class, name = BusinessUnitDefaultBillingAddressSetMessage.BUSINESS_UNIT_DEFAULT_BILLING_ADDRESS_SET),
063        @JsonSubTypes.Type(value = com.commercetools.api.models.message.BusinessUnitDefaultShippingAddressSetMessageImpl.class, name = BusinessUnitDefaultShippingAddressSetMessage.BUSINESS_UNIT_DEFAULT_SHIPPING_ADDRESS_SET),
064        @JsonSubTypes.Type(value = com.commercetools.api.models.message.BusinessUnitDeletedMessageImpl.class, name = BusinessUnitDeletedMessage.BUSINESS_UNIT_DELETED),
065        @JsonSubTypes.Type(value = com.commercetools.api.models.message.BusinessUnitNameChangedMessageImpl.class, name = BusinessUnitNameChangedMessage.BUSINESS_UNIT_NAME_CHANGED),
066        @JsonSubTypes.Type(value = com.commercetools.api.models.message.BusinessUnitParentChangedMessageImpl.class, name = BusinessUnitParentChangedMessage.BUSINESS_UNIT_PARENT_CHANGED),
067        @JsonSubTypes.Type(value = com.commercetools.api.models.message.BusinessUnitShippingAddressAddedMessageImpl.class, name = BusinessUnitShippingAddressAddedMessage.BUSINESS_UNIT_SHIPPING_ADDRESS_ADDED),
068        @JsonSubTypes.Type(value = com.commercetools.api.models.message.BusinessUnitShippingAddressRemovedMessageImpl.class, name = BusinessUnitShippingAddressRemovedMessage.BUSINESS_UNIT_SHIPPING_ADDRESS_REMOVED),
069        @JsonSubTypes.Type(value = com.commercetools.api.models.message.BusinessUnitStatusChangedMessageImpl.class, name = BusinessUnitStatusChangedMessage.BUSINESS_UNIT_STATUS_CHANGED),
070        @JsonSubTypes.Type(value = com.commercetools.api.models.message.BusinessUnitStoreAddedMessageImpl.class, name = BusinessUnitStoreAddedMessage.BUSINESS_UNIT_STORE_ADDED),
071        @JsonSubTypes.Type(value = com.commercetools.api.models.message.BusinessUnitStoreModeChangedMessageImpl.class, name = BusinessUnitStoreModeChangedMessage.BUSINESS_UNIT_STORE_MODE_CHANGED),
072        @JsonSubTypes.Type(value = com.commercetools.api.models.message.BusinessUnitStoreRemovedMessageImpl.class, name = BusinessUnitStoreRemovedMessage.BUSINESS_UNIT_STORE_REMOVED),
073        @JsonSubTypes.Type(value = com.commercetools.api.models.message.BusinessUnitStoresSetMessageImpl.class, name = BusinessUnitStoresSetMessage.BUSINESS_UNIT_STORES_SET),
074        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CategoryCreatedMessageImpl.class, name = CategoryCreatedMessage.CATEGORY_CREATED),
075        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CategorySlugChangedMessageImpl.class, name = CategorySlugChangedMessage.CATEGORY_SLUG_CHANGED),
076        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CustomLineItemStateTransitionMessageImpl.class, name = CustomLineItemStateTransitionMessage.CUSTOM_LINE_ITEM_STATE_TRANSITION),
077        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CustomerAddressAddedMessageImpl.class, name = CustomerAddressAddedMessage.CUSTOMER_ADDRESS_ADDED),
078        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CustomerAddressChangedMessageImpl.class, name = CustomerAddressChangedMessage.CUSTOMER_ADDRESS_CHANGED),
079        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CustomerAddressCustomFieldAddedMessageImpl.class, name = CustomerAddressCustomFieldAddedMessage.CUSTOMER_ADDRESS_CUSTOM_FIELD_ADDED),
080        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CustomerAddressCustomFieldChangedMessageImpl.class, name = CustomerAddressCustomFieldChangedMessage.CUSTOMER_ADDRESS_CUSTOM_FIELD_CHANGED),
081        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CustomerAddressCustomFieldRemovedMessageImpl.class, name = CustomerAddressCustomFieldRemovedMessage.CUSTOMER_ADDRESS_CUSTOM_FIELD_REMOVED),
082        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CustomerAddressCustomTypeRemovedMessageImpl.class, name = CustomerAddressCustomTypeRemovedMessage.CUSTOMER_ADDRESS_CUSTOM_TYPE_REMOVED),
083        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CustomerAddressCustomTypeSetMessageImpl.class, name = CustomerAddressCustomTypeSetMessage.CUSTOMER_ADDRESS_CUSTOM_TYPE_SET),
084        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CustomerAddressRemovedMessageImpl.class, name = CustomerAddressRemovedMessage.CUSTOMER_ADDRESS_REMOVED),
085        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CustomerCompanyNameSetMessageImpl.class, name = CustomerCompanyNameSetMessage.CUSTOMER_COMPANY_NAME_SET),
086        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CustomerCreatedMessageImpl.class, name = CustomerCreatedMessage.CUSTOMER_CREATED),
087        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CustomerCustomFieldAddedMessageImpl.class, name = CustomerCustomFieldAddedMessage.CUSTOMER_CUSTOM_FIELD_ADDED),
088        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CustomerCustomFieldChangedMessageImpl.class, name = CustomerCustomFieldChangedMessage.CUSTOMER_CUSTOM_FIELD_CHANGED),
089        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CustomerCustomFieldRemovedMessageImpl.class, name = CustomerCustomFieldRemovedMessage.CUSTOMER_CUSTOM_FIELD_REMOVED),
090        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CustomerCustomTypeRemovedMessageImpl.class, name = CustomerCustomTypeRemovedMessage.CUSTOMER_CUSTOM_TYPE_REMOVED),
091        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CustomerCustomTypeSetMessageImpl.class, name = CustomerCustomTypeSetMessage.CUSTOMER_CUSTOM_TYPE_SET),
092        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CustomerDateOfBirthSetMessageImpl.class, name = CustomerDateOfBirthSetMessage.CUSTOMER_DATE_OF_BIRTH_SET),
093        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CustomerDeletedMessageImpl.class, name = CustomerDeletedMessage.CUSTOMER_DELETED),
094        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CustomerEmailChangedMessageImpl.class, name = CustomerEmailChangedMessage.CUSTOMER_EMAIL_CHANGED),
095        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CustomerEmailVerifiedMessageImpl.class, name = CustomerEmailVerifiedMessage.CUSTOMER_EMAIL_VERIFIED),
096        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CustomerFirstNameSetMessageImpl.class, name = CustomerFirstNameSetMessage.CUSTOMER_FIRST_NAME_SET),
097        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CustomerGroupSetMessageImpl.class, name = CustomerGroupSetMessage.CUSTOMER_GROUP_SET),
098        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CustomerLastNameSetMessageImpl.class, name = CustomerLastNameSetMessage.CUSTOMER_LAST_NAME_SET),
099        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CustomerPasswordUpdatedMessageImpl.class, name = CustomerPasswordUpdatedMessage.CUSTOMER_PASSWORD_UPDATED),
100        @JsonSubTypes.Type(value = com.commercetools.api.models.message.CustomerTitleSetMessageImpl.class, name = CustomerTitleSetMessage.CUSTOMER_TITLE_SET),
101        @JsonSubTypes.Type(value = com.commercetools.api.models.message.DeliveryAddedMessageImpl.class, name = DeliveryAddedMessage.DELIVERY_ADDED),
102        @JsonSubTypes.Type(value = com.commercetools.api.models.message.DeliveryAddressSetMessageImpl.class, name = DeliveryAddressSetMessage.DELIVERY_ADDRESS_SET),
103        @JsonSubTypes.Type(value = com.commercetools.api.models.message.DeliveryItemsUpdatedMessageImpl.class, name = DeliveryItemsUpdatedMessage.DELIVERY_ITEMS_UPDATED),
104        @JsonSubTypes.Type(value = com.commercetools.api.models.message.DeliveryRemovedMessageImpl.class, name = DeliveryRemovedMessage.DELIVERY_REMOVED),
105        @JsonSubTypes.Type(value = com.commercetools.api.models.message.InventoryEntryCreatedMessageImpl.class, name = InventoryEntryCreatedMessage.INVENTORY_ENTRY_CREATED),
106        @JsonSubTypes.Type(value = com.commercetools.api.models.message.InventoryEntryDeletedMessageImpl.class, name = InventoryEntryDeletedMessage.INVENTORY_ENTRY_DELETED),
107        @JsonSubTypes.Type(value = com.commercetools.api.models.message.InventoryEntryQuantitySetMessageImpl.class, name = InventoryEntryQuantitySetMessage.INVENTORY_ENTRY_QUANTITY_SET),
108        @JsonSubTypes.Type(value = com.commercetools.api.models.message.LineItemStateTransitionMessageImpl.class, name = LineItemStateTransitionMessage.LINE_ITEM_STATE_TRANSITION),
109        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderBillingAddressSetMessageImpl.class, name = OrderBillingAddressSetMessage.ORDER_BILLING_ADDRESS_SET),
110        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderCreatedMessageImpl.class, name = OrderCreatedMessage.ORDER_CREATED),
111        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderCustomFieldAddedMessageImpl.class, name = OrderCustomFieldAddedMessage.ORDER_CUSTOM_FIELD_ADDED),
112        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderCustomFieldChangedMessageImpl.class, name = OrderCustomFieldChangedMessage.ORDER_CUSTOM_FIELD_CHANGED),
113        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderCustomFieldRemovedMessageImpl.class, name = OrderCustomFieldRemovedMessage.ORDER_CUSTOM_FIELD_REMOVED),
114        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderCustomLineItemAddedMessageImpl.class, name = OrderCustomLineItemAddedMessage.ORDER_CUSTOM_LINE_ITEM_ADDED),
115        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderCustomLineItemDiscountSetMessageImpl.class, name = OrderCustomLineItemDiscountSetMessage.ORDER_CUSTOM_LINE_ITEM_DISCOUNT_SET),
116        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderCustomLineItemQuantityChangedMessageImpl.class, name = OrderCustomLineItemQuantityChangedMessage.ORDER_CUSTOM_LINE_ITEM_QUANTITY_CHANGED),
117        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderCustomLineItemRemovedMessageImpl.class, name = OrderCustomLineItemRemovedMessage.ORDER_CUSTOM_LINE_ITEM_REMOVED),
118        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderCustomTypeRemovedMessageImpl.class, name = OrderCustomTypeRemovedMessage.ORDER_CUSTOM_TYPE_REMOVED),
119        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderCustomTypeSetMessageImpl.class, name = OrderCustomTypeSetMessage.ORDER_CUSTOM_TYPE_SET),
120        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderCustomerEmailSetMessageImpl.class, name = OrderCustomerEmailSetMessage.ORDER_CUSTOMER_EMAIL_SET),
121        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderCustomerGroupSetMessageImpl.class, name = OrderCustomerGroupSetMessage.ORDER_CUSTOMER_GROUP_SET),
122        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderCustomerSetMessageImpl.class, name = OrderCustomerSetMessage.ORDER_CUSTOMER_SET),
123        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderDeletedMessageImpl.class, name = OrderDeletedMessage.ORDER_DELETED),
124        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderDiscountCodeAddedMessageImpl.class, name = OrderDiscountCodeAddedMessage.ORDER_DISCOUNT_CODE_ADDED),
125        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderDiscountCodeRemovedMessageImpl.class, name = OrderDiscountCodeRemovedMessage.ORDER_DISCOUNT_CODE_REMOVED),
126        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderDiscountCodeStateSetMessageImpl.class, name = OrderDiscountCodeStateSetMessage.ORDER_DISCOUNT_CODE_STATE_SET),
127        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderEditAppliedMessageImpl.class, name = OrderEditAppliedMessage.ORDER_EDIT_APPLIED),
128        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderImportedMessageImpl.class, name = OrderImportedMessage.ORDER_IMPORTED),
129        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderLineItemAddedMessageImpl.class, name = OrderLineItemAddedMessage.ORDER_LINE_ITEM_ADDED),
130        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderLineItemDiscountSetMessageImpl.class, name = OrderLineItemDiscountSetMessage.ORDER_LINE_ITEM_DISCOUNT_SET),
131        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderLineItemDistributionChannelSetMessageImpl.class, name = OrderLineItemDistributionChannelSetMessage.ORDER_LINE_ITEM_DISTRIBUTION_CHANNEL_SET),
132        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderLineItemRemovedMessageImpl.class, name = OrderLineItemRemovedMessage.ORDER_LINE_ITEM_REMOVED),
133        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderPaymentAddedMessageImpl.class, name = OrderPaymentAddedMessage.ORDER_PAYMENT_ADDED),
134        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderPaymentStateChangedMessageImpl.class, name = OrderPaymentStateChangedMessage.ORDER_PAYMENT_STATE_CHANGED),
135        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderPurchaseOrderNumberSetMessageImpl.class, name = OrderPurchaseOrderNumberSetMessage.ORDER_PURCHASE_ORDER_NUMBER_SET),
136        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderReturnShipmentStateChangedMessageImpl.class, name = OrderReturnShipmentStateChangedMessage.ORDER_RETURN_SHIPMENT_STATE_CHANGED),
137        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderShipmentStateChangedMessageImpl.class, name = OrderShipmentStateChangedMessage.ORDER_SHIPMENT_STATE_CHANGED),
138        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderShippingAddressSetMessageImpl.class, name = OrderShippingAddressSetMessage.ORDER_SHIPPING_ADDRESS_SET),
139        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderShippingInfoSetMessageImpl.class, name = OrderShippingInfoSetMessage.ORDER_SHIPPING_INFO_SET),
140        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderShippingRateInputSetMessageImpl.class, name = OrderShippingRateInputSetMessage.ORDER_SHIPPING_RATE_INPUT_SET),
141        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderStateChangedMessageImpl.class, name = OrderStateChangedMessage.ORDER_STATE_CHANGED),
142        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderStateTransitionMessageImpl.class, name = OrderStateTransitionMessage.ORDER_STATE_TRANSITION),
143        @JsonSubTypes.Type(value = com.commercetools.api.models.message.OrderStoreSetMessageImpl.class, name = OrderStoreSetMessage.ORDER_STORE_SET),
144        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ParcelAddedToDeliveryMessageImpl.class, name = ParcelAddedToDeliveryMessage.PARCEL_ADDED_TO_DELIVERY),
145        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ParcelItemsUpdatedMessageImpl.class, name = ParcelItemsUpdatedMessage.PARCEL_ITEMS_UPDATED),
146        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ParcelMeasurementsUpdatedMessageImpl.class, name = ParcelMeasurementsUpdatedMessage.PARCEL_MEASUREMENTS_UPDATED),
147        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ParcelRemovedFromDeliveryMessageImpl.class, name = ParcelRemovedFromDeliveryMessage.PARCEL_REMOVED_FROM_DELIVERY),
148        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ParcelTrackingDataUpdatedMessageImpl.class, name = ParcelTrackingDataUpdatedMessage.PARCEL_TRACKING_DATA_UPDATED),
149        @JsonSubTypes.Type(value = com.commercetools.api.models.message.PaymentCreatedMessageImpl.class, name = PaymentCreatedMessage.PAYMENT_CREATED),
150        @JsonSubTypes.Type(value = com.commercetools.api.models.message.PaymentInteractionAddedMessageImpl.class, name = PaymentInteractionAddedMessage.PAYMENT_INTERACTION_ADDED),
151        @JsonSubTypes.Type(value = com.commercetools.api.models.message.PaymentStatusInterfaceCodeSetMessageImpl.class, name = PaymentStatusInterfaceCodeSetMessage.PAYMENT_STATUS_INTERFACE_CODE_SET),
152        @JsonSubTypes.Type(value = com.commercetools.api.models.message.PaymentStatusStateTransitionMessageImpl.class, name = PaymentStatusStateTransitionMessage.PAYMENT_STATUS_STATE_TRANSITION),
153        @JsonSubTypes.Type(value = com.commercetools.api.models.message.PaymentTransactionAddedMessageImpl.class, name = PaymentTransactionAddedMessage.PAYMENT_TRANSACTION_ADDED),
154        @JsonSubTypes.Type(value = com.commercetools.api.models.message.PaymentTransactionStateChangedMessageImpl.class, name = PaymentTransactionStateChangedMessage.PAYMENT_TRANSACTION_STATE_CHANGED),
155        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductAddedToCategoryMessageImpl.class, name = ProductAddedToCategoryMessage.PRODUCT_ADDED_TO_CATEGORY),
156        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductCreatedMessageImpl.class, name = ProductCreatedMessage.PRODUCT_CREATED),
157        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductDeletedMessageImpl.class, name = ProductDeletedMessage.PRODUCT_DELETED),
158        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductImageAddedMessageImpl.class, name = ProductImageAddedMessage.PRODUCT_IMAGE_ADDED),
159        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductPriceAddedMessageImpl.class, name = ProductPriceAddedMessage.PRODUCT_PRICE_ADDED),
160        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductPriceChangedMessageImpl.class, name = ProductPriceChangedMessage.PRODUCT_PRICE_CHANGED),
161        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductPriceDiscountsSetMessageImpl.class, name = ProductPriceDiscountsSetMessage.PRODUCT_PRICE_DISCOUNTS_SET),
162        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductPriceExternalDiscountSetMessageImpl.class, name = ProductPriceExternalDiscountSetMessage.PRODUCT_PRICE_EXTERNAL_DISCOUNT_SET),
163        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductPriceKeySetMessageImpl.class, name = ProductPriceKeySetMessage.PRODUCT_PRICE_KEY_SET),
164        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductPriceModeSetMessageImpl.class, name = ProductPriceModeSetMessage.PRODUCT_PRICE_MODE_SET),
165        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductPriceRemovedMessageImpl.class, name = ProductPriceRemovedMessage.PRODUCT_PRICE_REMOVED),
166        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductPricesSetMessageImpl.class, name = ProductPricesSetMessage.PRODUCT_PRICES_SET),
167        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductPublishedMessageImpl.class, name = ProductPublishedMessage.PRODUCT_PUBLISHED),
168        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductRemovedFromCategoryMessageImpl.class, name = ProductRemovedFromCategoryMessage.PRODUCT_REMOVED_FROM_CATEGORY),
169        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductRevertedStagedChangesMessageImpl.class, name = ProductRevertedStagedChangesMessage.PRODUCT_REVERTED_STAGED_CHANGES),
170        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductSelectionCreatedMessageImpl.class, name = ProductSelectionCreatedMessage.PRODUCT_SELECTION_CREATED),
171        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductSelectionDeletedMessageImpl.class, name = ProductSelectionDeletedMessage.PRODUCT_SELECTION_DELETED),
172        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductSelectionProductAddedMessageImpl.class, name = ProductSelectionProductAddedMessage.PRODUCT_SELECTION_PRODUCT_ADDED),
173        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductSelectionProductExcludedMessageImpl.class, name = ProductSelectionProductExcludedMessage.PRODUCT_SELECTION_PRODUCT_EXCLUDED),
174        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductSelectionProductRemovedMessageImpl.class, name = ProductSelectionProductRemovedMessage.PRODUCT_SELECTION_PRODUCT_REMOVED),
175        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductSelectionVariantExclusionChangedMessageImpl.class, name = ProductSelectionVariantExclusionChangedMessage.PRODUCT_SELECTION_VARIANT_EXCLUSION_CHANGED),
176        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductSelectionVariantSelectionChangedMessageImpl.class, name = ProductSelectionVariantSelectionChangedMessage.PRODUCT_SELECTION_VARIANT_SELECTION_CHANGED),
177        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductSlugChangedMessageImpl.class, name = ProductSlugChangedMessage.PRODUCT_SLUG_CHANGED),
178        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductStateTransitionMessageImpl.class, name = ProductStateTransitionMessage.PRODUCT_STATE_TRANSITION),
179        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductUnpublishedMessageImpl.class, name = ProductUnpublishedMessage.PRODUCT_UNPUBLISHED),
180        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductVariantAddedMessageImpl.class, name = ProductVariantAddedMessage.PRODUCT_VARIANT_ADDED),
181        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ProductVariantDeletedMessageImpl.class, name = ProductVariantDeletedMessage.PRODUCT_VARIANT_DELETED),
182        @JsonSubTypes.Type(value = com.commercetools.api.models.message.QuoteCreatedMessageImpl.class, name = QuoteCreatedMessage.QUOTE_CREATED),
183        @JsonSubTypes.Type(value = com.commercetools.api.models.message.QuoteCustomerChangedMessageImpl.class, name = QuoteCustomerChangedMessage.QUOTE_CUSTOMER_CHANGED),
184        @JsonSubTypes.Type(value = com.commercetools.api.models.message.QuoteDeletedMessageImpl.class, name = QuoteDeletedMessage.QUOTE_DELETED),
185        @JsonSubTypes.Type(value = com.commercetools.api.models.message.QuoteRenegotiationRequestedMessageImpl.class, name = QuoteRenegotiationRequestedMessage.QUOTE_RENEGOTIATION_REQUESTED),
186        @JsonSubTypes.Type(value = com.commercetools.api.models.message.QuoteRequestCreatedMessageImpl.class, name = QuoteRequestCreatedMessage.QUOTE_REQUEST_CREATED),
187        @JsonSubTypes.Type(value = com.commercetools.api.models.message.QuoteRequestCustomerChangedMessageImpl.class, name = QuoteRequestCustomerChangedMessage.QUOTE_REQUEST_CUSTOMER_CHANGED),
188        @JsonSubTypes.Type(value = com.commercetools.api.models.message.QuoteRequestDeletedMessageImpl.class, name = QuoteRequestDeletedMessage.QUOTE_REQUEST_DELETED),
189        @JsonSubTypes.Type(value = com.commercetools.api.models.message.QuoteRequestStateChangedMessageImpl.class, name = QuoteRequestStateChangedMessage.QUOTE_REQUEST_STATE_CHANGED),
190        @JsonSubTypes.Type(value = com.commercetools.api.models.message.QuoteRequestStateTransitionMessageImpl.class, name = QuoteRequestStateTransitionMessage.QUOTE_REQUEST_STATE_TRANSITION),
191        @JsonSubTypes.Type(value = com.commercetools.api.models.message.QuoteStateChangedMessageImpl.class, name = QuoteStateChangedMessage.QUOTE_STATE_CHANGED),
192        @JsonSubTypes.Type(value = com.commercetools.api.models.message.QuoteStateTransitionMessageImpl.class, name = QuoteStateTransitionMessage.QUOTE_STATE_TRANSITION),
193        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ReturnInfoAddedMessageImpl.class, name = ReturnInfoAddedMessage.RETURN_INFO_ADDED),
194        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ReturnInfoSetMessageImpl.class, name = ReturnInfoSetMessage.RETURN_INFO_SET),
195        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ReviewCreatedMessageImpl.class, name = ReviewCreatedMessage.REVIEW_CREATED),
196        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ReviewRatingSetMessageImpl.class, name = ReviewRatingSetMessage.REVIEW_RATING_SET),
197        @JsonSubTypes.Type(value = com.commercetools.api.models.message.ReviewStateTransitionMessageImpl.class, name = ReviewStateTransitionMessage.REVIEW_STATE_TRANSITION),
198        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StagedQuoteCreatedMessageImpl.class, name = StagedQuoteCreatedMessage.STAGED_QUOTE_CREATED),
199        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StagedQuoteDeletedMessageImpl.class, name = StagedQuoteDeletedMessage.STAGED_QUOTE_DELETED),
200        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StagedQuoteSellerCommentSetMessageImpl.class, name = StagedQuoteSellerCommentSetMessage.STAGED_QUOTE_SELLER_COMMENT_SET),
201        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StagedQuoteStateChangedMessageImpl.class, name = StagedQuoteStateChangedMessage.STAGED_QUOTE_STATE_CHANGED),
202        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StagedQuoteStateTransitionMessageImpl.class, name = StagedQuoteStateTransitionMessage.STAGED_QUOTE_STATE_TRANSITION),
203        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StagedQuoteValidToSetMessageImpl.class, name = StagedQuoteValidToSetMessage.STAGED_QUOTE_VALID_TO_SET),
204        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StandalonePriceActiveChangedMessageImpl.class, name = StandalonePriceActiveChangedMessage.STANDALONE_PRICE_ACTIVE_CHANGED),
205        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StandalonePriceCreatedMessageImpl.class, name = StandalonePriceCreatedMessage.STANDALONE_PRICE_CREATED),
206        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StandalonePriceDeletedMessageImpl.class, name = StandalonePriceDeletedMessage.STANDALONE_PRICE_DELETED),
207        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StandalonePriceDiscountSetMessageImpl.class, name = StandalonePriceDiscountSetMessage.STANDALONE_PRICE_DISCOUNT_SET),
208        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StandalonePriceExternalDiscountSetMessageImpl.class, name = StandalonePriceExternalDiscountSetMessage.STANDALONE_PRICE_EXTERNAL_DISCOUNT_SET),
209        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StandalonePriceKeySetMessageImpl.class, name = StandalonePriceKeySetMessage.STANDALONE_PRICE_KEY_SET),
210        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StandalonePriceStagedChangesAppliedMessageImpl.class, name = StandalonePriceStagedChangesAppliedMessage.STANDALONE_PRICE_STAGED_CHANGES_APPLIED),
211        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StandalonePriceStagedChangesRemovedMessageImpl.class, name = StandalonePriceStagedChangesRemovedMessage.STANDALONE_PRICE_STAGED_CHANGES_REMOVED),
212        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StandalonePriceTierAddedMessageImpl.class, name = StandalonePriceTierAddedMessage.STANDALONE_PRICE_TIER_ADDED),
213        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StandalonePriceTierRemovedMessageImpl.class, name = StandalonePriceTierRemovedMessage.STANDALONE_PRICE_TIER_REMOVED),
214        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StandalonePriceTiersSetMessageImpl.class, name = StandalonePriceTiersSetMessage.STANDALONE_PRICE_TIERS_SET),
215        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StandalonePriceValidFromAndUntilSetMessageImpl.class, name = StandalonePriceValidFromAndUntilSetMessage.STANDALONE_PRICE_VALID_FROM_AND_UNTIL_SET),
216        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StandalonePriceValidFromSetMessageImpl.class, name = StandalonePriceValidFromSetMessage.STANDALONE_PRICE_VALID_FROM_SET),
217        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StandalonePriceValidUntilSetMessageImpl.class, name = StandalonePriceValidUntilSetMessage.STANDALONE_PRICE_VALID_UNTIL_SET),
218        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StandalonePriceValueChangedMessageImpl.class, name = StandalonePriceValueChangedMessage.STANDALONE_PRICE_VALUE_CHANGED),
219        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StoreCountriesChangedMessageImpl.class, name = StoreCountriesChangedMessage.STORE_COUNTRIES_CHANGED),
220        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StoreCreatedMessageImpl.class, name = StoreCreatedMessage.STORE_CREATED),
221        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StoreDeletedMessageImpl.class, name = StoreDeletedMessage.STORE_DELETED),
222        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StoreDistributionChannelsChangedMessageImpl.class, name = StoreDistributionChannelsChangedMessage.STORE_DISTRIBUTION_CHANNELS_CHANGED),
223        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StoreLanguagesChangedMessageImpl.class, name = StoreLanguagesChangedMessage.STORE_LANGUAGES_CHANGED),
224        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StoreNameSetMessageImpl.class, name = StoreNameSetMessage.STORE_NAME_SET),
225        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StoreProductSelectionsChangedMessageImpl.class, name = StoreProductSelectionsChangedMessage.STORE_PRODUCT_SELECTIONS_CHANGED),
226        @JsonSubTypes.Type(value = com.commercetools.api.models.message.StoreSupplyChannelsChangedMessageImpl.class, name = StoreSupplyChannelsChangedMessage.STORE_SUPPLY_CHANNELS_CHANGED) })
227@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "type", defaultImpl = MessageImpl.class, visible = true)
228@JsonDeserialize(as = MessageImpl.class)
229@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
230public interface Message extends BaseResource, com.commercetools.api.models.DomainResource<Message> {
231
232    /**
233     *  <p>Unique identifier of the Message. Can be used to track which Messages have been processed.</p>
234     * @return id
235     */
236    @NotNull
237    @JsonProperty("id")
238    public String getId();
239
240    /**
241     *  <p>Version of a resource. In case of Messages, this is always <code>1</code>.</p>
242     * @return version
243     */
244    @NotNull
245    @JsonProperty("version")
246    public Long getVersion();
247
248    /**
249     *  <p>Date and time (UTC) the Message was generated.</p>
250     * @return createdAt
251     */
252    @NotNull
253    @JsonProperty("createdAt")
254    public ZonedDateTime getCreatedAt();
255
256    /**
257     *  <p>Value of <code>createdAt</code>.</p>
258     * @return lastModifiedAt
259     */
260    @NotNull
261    @JsonProperty("lastModifiedAt")
262    public ZonedDateTime getLastModifiedAt();
263
264    /**
265     *  <p>Value of <code>createdBy</code>.</p>
266     * @return lastModifiedBy
267     */
268    @Valid
269    @JsonProperty("lastModifiedBy")
270    public LastModifiedBy getLastModifiedBy();
271
272    /**
273     *  <p>Present on resources created after 1 February 2019 except for events not tracked.</p>
274     * @return createdBy
275     */
276    @Valid
277    @JsonProperty("createdBy")
278    public CreatedBy getCreatedBy();
279
280    /**
281     *  <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>
282     * @return sequenceNumber
283     */
284    @NotNull
285    @JsonProperty("sequenceNumber")
286    public Long getSequenceNumber();
287
288    /**
289     *  <p>Reference to the resource on which the change or action was performed.</p>
290     * @return resource
291     */
292    @NotNull
293    @Valid
294    @JsonProperty("resource")
295    public Reference getResource();
296
297    /**
298     *  <p>Version of the resource on which the change or action was performed.</p>
299     * @return resourceVersion
300     */
301    @NotNull
302    @JsonProperty("resourceVersion")
303    public Long getResourceVersion();
304
305    /**
306     *  <p>Message Type of the Message.</p>
307     * @return type
308     */
309    @NotNull
310    @JsonProperty("type")
311    public String getType();
312
313    /**
314     *  <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>
315     * @return resourceUserProvidedIdentifiers
316     */
317    @Valid
318    @JsonProperty("resourceUserProvidedIdentifiers")
319    public UserProvidedIdentifiers getResourceUserProvidedIdentifiers();
320
321    /**
322     *  <p>Unique identifier of the Message. Can be used to track which Messages have been processed.</p>
323     * @param id value to be set
324     */
325
326    public void setId(final String id);
327
328    /**
329     *  <p>Version of a resource. In case of Messages, this is always <code>1</code>.</p>
330     * @param version value to be set
331     */
332
333    public void setVersion(final Long version);
334
335    /**
336     *  <p>Date and time (UTC) the Message was generated.</p>
337     * @param createdAt value to be set
338     */
339
340    public void setCreatedAt(final ZonedDateTime createdAt);
341
342    /**
343     *  <p>Value of <code>createdAt</code>.</p>
344     * @param lastModifiedAt value to be set
345     */
346
347    public void setLastModifiedAt(final ZonedDateTime lastModifiedAt);
348
349    /**
350     *  <p>Value of <code>createdBy</code>.</p>
351     * @param lastModifiedBy value to be set
352     */
353
354    public void setLastModifiedBy(final LastModifiedBy lastModifiedBy);
355
356    /**
357     *  <p>Present on resources created after 1 February 2019 except for events not tracked.</p>
358     * @param createdBy value to be set
359     */
360
361    public void setCreatedBy(final CreatedBy createdBy);
362
363    /**
364     *  <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>
365     * @param sequenceNumber value to be set
366     */
367
368    public void setSequenceNumber(final Long sequenceNumber);
369
370    /**
371     *  <p>Reference to the resource on which the change or action was performed.</p>
372     * @param resource value to be set
373     */
374
375    public void setResource(final Reference resource);
376
377    /**
378     *  <p>Version of the resource on which the change or action was performed.</p>
379     * @param resourceVersion value to be set
380     */
381
382    public void setResourceVersion(final Long resourceVersion);
383
384    /**
385     *  <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>
386     * @param resourceUserProvidedIdentifiers value to be set
387     */
388
389    public void setResourceUserProvidedIdentifiers(final UserProvidedIdentifiers resourceUserProvidedIdentifiers);
390
391    /**
392     * factory method to create a deep copy of Message
393     * @param template instance to be copied
394     * @return copy instance
395     */
396    @Nullable
397    public static Message deepCopy(@Nullable final Message template) {
398        if (template == null) {
399            return null;
400        }
401        if (template instanceof com.commercetools.api.models.message.AssociateRoleBuyerAssignableChangedMessage) {
402            return com.commercetools.api.models.message.AssociateRoleBuyerAssignableChangedMessage.deepCopy(
403                (com.commercetools.api.models.message.AssociateRoleBuyerAssignableChangedMessage) template);
404        }
405        if (template instanceof com.commercetools.api.models.message.AssociateRoleCreatedMessage) {
406            return com.commercetools.api.models.message.AssociateRoleCreatedMessage
407                    .deepCopy((com.commercetools.api.models.message.AssociateRoleCreatedMessage) template);
408        }
409        if (template instanceof com.commercetools.api.models.message.AssociateRoleDeletedMessage) {
410            return com.commercetools.api.models.message.AssociateRoleDeletedMessage
411                    .deepCopy((com.commercetools.api.models.message.AssociateRoleDeletedMessage) template);
412        }
413        if (template instanceof com.commercetools.api.models.message.AssociateRoleNameChangedMessage) {
414            return com.commercetools.api.models.message.AssociateRoleNameChangedMessage
415                    .deepCopy((com.commercetools.api.models.message.AssociateRoleNameChangedMessage) template);
416        }
417        if (template instanceof com.commercetools.api.models.message.AssociateRolePermissionAddedMessage) {
418            return com.commercetools.api.models.message.AssociateRolePermissionAddedMessage
419                    .deepCopy((com.commercetools.api.models.message.AssociateRolePermissionAddedMessage) template);
420        }
421        if (template instanceof com.commercetools.api.models.message.AssociateRolePermissionRemovedMessage) {
422            return com.commercetools.api.models.message.AssociateRolePermissionRemovedMessage
423                    .deepCopy((com.commercetools.api.models.message.AssociateRolePermissionRemovedMessage) template);
424        }
425        if (template instanceof com.commercetools.api.models.message.AssociateRolePermissionsSetMessage) {
426            return com.commercetools.api.models.message.AssociateRolePermissionsSetMessage
427                    .deepCopy((com.commercetools.api.models.message.AssociateRolePermissionsSetMessage) template);
428        }
429        if (template instanceof com.commercetools.api.models.message.BusinessUnitAddressAddedMessage) {
430            return com.commercetools.api.models.message.BusinessUnitAddressAddedMessage
431                    .deepCopy((com.commercetools.api.models.message.BusinessUnitAddressAddedMessage) template);
432        }
433        if (template instanceof com.commercetools.api.models.message.BusinessUnitAddressChangedMessage) {
434            return com.commercetools.api.models.message.BusinessUnitAddressChangedMessage
435                    .deepCopy((com.commercetools.api.models.message.BusinessUnitAddressChangedMessage) template);
436        }
437        if (template instanceof com.commercetools.api.models.message.BusinessUnitAddressRemovedMessage) {
438            return com.commercetools.api.models.message.BusinessUnitAddressRemovedMessage
439                    .deepCopy((com.commercetools.api.models.message.BusinessUnitAddressRemovedMessage) template);
440        }
441        if (template instanceof com.commercetools.api.models.message.BusinessUnitAssociateAddedMessage) {
442            return com.commercetools.api.models.message.BusinessUnitAssociateAddedMessage
443                    .deepCopy((com.commercetools.api.models.message.BusinessUnitAssociateAddedMessage) template);
444        }
445        if (template instanceof com.commercetools.api.models.message.BusinessUnitAssociateChangedMessage) {
446            return com.commercetools.api.models.message.BusinessUnitAssociateChangedMessage
447                    .deepCopy((com.commercetools.api.models.message.BusinessUnitAssociateChangedMessage) template);
448        }
449        if (template instanceof com.commercetools.api.models.message.BusinessUnitAssociateModeChangedMessage) {
450            return com.commercetools.api.models.message.BusinessUnitAssociateModeChangedMessage
451                    .deepCopy((com.commercetools.api.models.message.BusinessUnitAssociateModeChangedMessage) template);
452        }
453        if (template instanceof com.commercetools.api.models.message.BusinessUnitAssociateRemovedMessage) {
454            return com.commercetools.api.models.message.BusinessUnitAssociateRemovedMessage
455                    .deepCopy((com.commercetools.api.models.message.BusinessUnitAssociateRemovedMessage) template);
456        }
457        if (template instanceof com.commercetools.api.models.message.BusinessUnitAssociatesSetMessage) {
458            return com.commercetools.api.models.message.BusinessUnitAssociatesSetMessage
459                    .deepCopy((com.commercetools.api.models.message.BusinessUnitAssociatesSetMessage) template);
460        }
461        if (template instanceof com.commercetools.api.models.message.BusinessUnitBillingAddressAddedMessage) {
462            return com.commercetools.api.models.message.BusinessUnitBillingAddressAddedMessage
463                    .deepCopy((com.commercetools.api.models.message.BusinessUnitBillingAddressAddedMessage) template);
464        }
465        if (template instanceof com.commercetools.api.models.message.BusinessUnitBillingAddressRemovedMessage) {
466            return com.commercetools.api.models.message.BusinessUnitBillingAddressRemovedMessage
467                    .deepCopy((com.commercetools.api.models.message.BusinessUnitBillingAddressRemovedMessage) template);
468        }
469        if (template instanceof com.commercetools.api.models.message.BusinessUnitContactEmailSetMessage) {
470            return com.commercetools.api.models.message.BusinessUnitContactEmailSetMessage
471                    .deepCopy((com.commercetools.api.models.message.BusinessUnitContactEmailSetMessage) template);
472        }
473        if (template instanceof com.commercetools.api.models.message.BusinessUnitCreatedMessage) {
474            return com.commercetools.api.models.message.BusinessUnitCreatedMessage
475                    .deepCopy((com.commercetools.api.models.message.BusinessUnitCreatedMessage) template);
476        }
477        if (template instanceof com.commercetools.api.models.message.BusinessUnitDefaultBillingAddressSetMessage) {
478            return com.commercetools.api.models.message.BusinessUnitDefaultBillingAddressSetMessage.deepCopy(
479                (com.commercetools.api.models.message.BusinessUnitDefaultBillingAddressSetMessage) template);
480        }
481        if (template instanceof com.commercetools.api.models.message.BusinessUnitDefaultShippingAddressSetMessage) {
482            return com.commercetools.api.models.message.BusinessUnitDefaultShippingAddressSetMessage.deepCopy(
483                (com.commercetools.api.models.message.BusinessUnitDefaultShippingAddressSetMessage) template);
484        }
485        if (template instanceof com.commercetools.api.models.message.BusinessUnitDeletedMessage) {
486            return com.commercetools.api.models.message.BusinessUnitDeletedMessage
487                    .deepCopy((com.commercetools.api.models.message.BusinessUnitDeletedMessage) template);
488        }
489        if (template instanceof com.commercetools.api.models.message.BusinessUnitNameChangedMessage) {
490            return com.commercetools.api.models.message.BusinessUnitNameChangedMessage
491                    .deepCopy((com.commercetools.api.models.message.BusinessUnitNameChangedMessage) template);
492        }
493        if (template instanceof com.commercetools.api.models.message.BusinessUnitParentChangedMessage) {
494            return com.commercetools.api.models.message.BusinessUnitParentChangedMessage
495                    .deepCopy((com.commercetools.api.models.message.BusinessUnitParentChangedMessage) template);
496        }
497        if (template instanceof com.commercetools.api.models.message.BusinessUnitShippingAddressAddedMessage) {
498            return com.commercetools.api.models.message.BusinessUnitShippingAddressAddedMessage
499                    .deepCopy((com.commercetools.api.models.message.BusinessUnitShippingAddressAddedMessage) template);
500        }
501        if (template instanceof com.commercetools.api.models.message.BusinessUnitShippingAddressRemovedMessage) {
502            return com.commercetools.api.models.message.BusinessUnitShippingAddressRemovedMessage.deepCopy(
503                (com.commercetools.api.models.message.BusinessUnitShippingAddressRemovedMessage) template);
504        }
505        if (template instanceof com.commercetools.api.models.message.BusinessUnitStatusChangedMessage) {
506            return com.commercetools.api.models.message.BusinessUnitStatusChangedMessage
507                    .deepCopy((com.commercetools.api.models.message.BusinessUnitStatusChangedMessage) template);
508        }
509        if (template instanceof com.commercetools.api.models.message.BusinessUnitStoreAddedMessage) {
510            return com.commercetools.api.models.message.BusinessUnitStoreAddedMessage
511                    .deepCopy((com.commercetools.api.models.message.BusinessUnitStoreAddedMessage) template);
512        }
513        if (template instanceof com.commercetools.api.models.message.BusinessUnitStoreModeChangedMessage) {
514            return com.commercetools.api.models.message.BusinessUnitStoreModeChangedMessage
515                    .deepCopy((com.commercetools.api.models.message.BusinessUnitStoreModeChangedMessage) template);
516        }
517        if (template instanceof com.commercetools.api.models.message.BusinessUnitStoreRemovedMessage) {
518            return com.commercetools.api.models.message.BusinessUnitStoreRemovedMessage
519                    .deepCopy((com.commercetools.api.models.message.BusinessUnitStoreRemovedMessage) template);
520        }
521        if (template instanceof com.commercetools.api.models.message.BusinessUnitStoresSetMessage) {
522            return com.commercetools.api.models.message.BusinessUnitStoresSetMessage
523                    .deepCopy((com.commercetools.api.models.message.BusinessUnitStoresSetMessage) template);
524        }
525        if (template instanceof com.commercetools.api.models.message.CategoryCreatedMessage) {
526            return com.commercetools.api.models.message.CategoryCreatedMessage
527                    .deepCopy((com.commercetools.api.models.message.CategoryCreatedMessage) template);
528        }
529        if (template instanceof com.commercetools.api.models.message.CategorySlugChangedMessage) {
530            return com.commercetools.api.models.message.CategorySlugChangedMessage
531                    .deepCopy((com.commercetools.api.models.message.CategorySlugChangedMessage) template);
532        }
533        if (template instanceof com.commercetools.api.models.message.CustomerAddressAddedMessage) {
534            return com.commercetools.api.models.message.CustomerAddressAddedMessage
535                    .deepCopy((com.commercetools.api.models.message.CustomerAddressAddedMessage) template);
536        }
537        if (template instanceof com.commercetools.api.models.message.CustomerAddressChangedMessage) {
538            return com.commercetools.api.models.message.CustomerAddressChangedMessage
539                    .deepCopy((com.commercetools.api.models.message.CustomerAddressChangedMessage) template);
540        }
541        if (template instanceof com.commercetools.api.models.message.CustomerAddressCustomFieldAddedMessage) {
542            return com.commercetools.api.models.message.CustomerAddressCustomFieldAddedMessage
543                    .deepCopy((com.commercetools.api.models.message.CustomerAddressCustomFieldAddedMessage) template);
544        }
545        if (template instanceof com.commercetools.api.models.message.CustomerAddressCustomFieldChangedMessage) {
546            return com.commercetools.api.models.message.CustomerAddressCustomFieldChangedMessage
547                    .deepCopy((com.commercetools.api.models.message.CustomerAddressCustomFieldChangedMessage) template);
548        }
549        if (template instanceof com.commercetools.api.models.message.CustomerAddressCustomFieldRemovedMessage) {
550            return com.commercetools.api.models.message.CustomerAddressCustomFieldRemovedMessage
551                    .deepCopy((com.commercetools.api.models.message.CustomerAddressCustomFieldRemovedMessage) template);
552        }
553        if (template instanceof com.commercetools.api.models.message.CustomerAddressCustomTypeRemovedMessage) {
554            return com.commercetools.api.models.message.CustomerAddressCustomTypeRemovedMessage
555                    .deepCopy((com.commercetools.api.models.message.CustomerAddressCustomTypeRemovedMessage) template);
556        }
557        if (template instanceof com.commercetools.api.models.message.CustomerAddressCustomTypeSetMessage) {
558            return com.commercetools.api.models.message.CustomerAddressCustomTypeSetMessage
559                    .deepCopy((com.commercetools.api.models.message.CustomerAddressCustomTypeSetMessage) template);
560        }
561        if (template instanceof com.commercetools.api.models.message.CustomerAddressRemovedMessage) {
562            return com.commercetools.api.models.message.CustomerAddressRemovedMessage
563                    .deepCopy((com.commercetools.api.models.message.CustomerAddressRemovedMessage) template);
564        }
565        if (template instanceof com.commercetools.api.models.message.CustomerCompanyNameSetMessage) {
566            return com.commercetools.api.models.message.CustomerCompanyNameSetMessage
567                    .deepCopy((com.commercetools.api.models.message.CustomerCompanyNameSetMessage) template);
568        }
569        if (template instanceof com.commercetools.api.models.message.CustomerCreatedMessage) {
570            return com.commercetools.api.models.message.CustomerCreatedMessage
571                    .deepCopy((com.commercetools.api.models.message.CustomerCreatedMessage) template);
572        }
573        if (template instanceof com.commercetools.api.models.message.CustomerCustomFieldAddedMessage) {
574            return com.commercetools.api.models.message.CustomerCustomFieldAddedMessage
575                    .deepCopy((com.commercetools.api.models.message.CustomerCustomFieldAddedMessage) template);
576        }
577        if (template instanceof com.commercetools.api.models.message.CustomerCustomFieldChangedMessage) {
578            return com.commercetools.api.models.message.CustomerCustomFieldChangedMessage
579                    .deepCopy((com.commercetools.api.models.message.CustomerCustomFieldChangedMessage) template);
580        }
581        if (template instanceof com.commercetools.api.models.message.CustomerCustomFieldRemovedMessage) {
582            return com.commercetools.api.models.message.CustomerCustomFieldRemovedMessage
583                    .deepCopy((com.commercetools.api.models.message.CustomerCustomFieldRemovedMessage) template);
584        }
585        if (template instanceof com.commercetools.api.models.message.CustomerCustomTypeRemovedMessage) {
586            return com.commercetools.api.models.message.CustomerCustomTypeRemovedMessage
587                    .deepCopy((com.commercetools.api.models.message.CustomerCustomTypeRemovedMessage) template);
588        }
589        if (template instanceof com.commercetools.api.models.message.CustomerCustomTypeSetMessage) {
590            return com.commercetools.api.models.message.CustomerCustomTypeSetMessage
591                    .deepCopy((com.commercetools.api.models.message.CustomerCustomTypeSetMessage) template);
592        }
593        if (template instanceof com.commercetools.api.models.message.CustomerDateOfBirthSetMessage) {
594            return com.commercetools.api.models.message.CustomerDateOfBirthSetMessage
595                    .deepCopy((com.commercetools.api.models.message.CustomerDateOfBirthSetMessage) template);
596        }
597        if (template instanceof com.commercetools.api.models.message.CustomerDeletedMessage) {
598            return com.commercetools.api.models.message.CustomerDeletedMessage
599                    .deepCopy((com.commercetools.api.models.message.CustomerDeletedMessage) template);
600        }
601        if (template instanceof com.commercetools.api.models.message.CustomerEmailChangedMessage) {
602            return com.commercetools.api.models.message.CustomerEmailChangedMessage
603                    .deepCopy((com.commercetools.api.models.message.CustomerEmailChangedMessage) template);
604        }
605        if (template instanceof com.commercetools.api.models.message.CustomerEmailVerifiedMessage) {
606            return com.commercetools.api.models.message.CustomerEmailVerifiedMessage
607                    .deepCopy((com.commercetools.api.models.message.CustomerEmailVerifiedMessage) template);
608        }
609        if (template instanceof com.commercetools.api.models.message.CustomerFirstNameSetMessage) {
610            return com.commercetools.api.models.message.CustomerFirstNameSetMessage
611                    .deepCopy((com.commercetools.api.models.message.CustomerFirstNameSetMessage) template);
612        }
613        if (template instanceof com.commercetools.api.models.message.CustomerGroupSetMessage) {
614            return com.commercetools.api.models.message.CustomerGroupSetMessage
615                    .deepCopy((com.commercetools.api.models.message.CustomerGroupSetMessage) template);
616        }
617        if (template instanceof com.commercetools.api.models.message.CustomerLastNameSetMessage) {
618            return com.commercetools.api.models.message.CustomerLastNameSetMessage
619                    .deepCopy((com.commercetools.api.models.message.CustomerLastNameSetMessage) template);
620        }
621        if (template instanceof com.commercetools.api.models.message.CustomerPasswordUpdatedMessage) {
622            return com.commercetools.api.models.message.CustomerPasswordUpdatedMessage
623                    .deepCopy((com.commercetools.api.models.message.CustomerPasswordUpdatedMessage) template);
624        }
625        if (template instanceof com.commercetools.api.models.message.CustomerTitleSetMessage) {
626            return com.commercetools.api.models.message.CustomerTitleSetMessage
627                    .deepCopy((com.commercetools.api.models.message.CustomerTitleSetMessage) template);
628        }
629        if (template instanceof com.commercetools.api.models.message.InventoryEntryCreatedMessage) {
630            return com.commercetools.api.models.message.InventoryEntryCreatedMessage
631                    .deepCopy((com.commercetools.api.models.message.InventoryEntryCreatedMessage) template);
632        }
633        if (template instanceof com.commercetools.api.models.message.InventoryEntryDeletedMessage) {
634            return com.commercetools.api.models.message.InventoryEntryDeletedMessage
635                    .deepCopy((com.commercetools.api.models.message.InventoryEntryDeletedMessage) template);
636        }
637        if (template instanceof com.commercetools.api.models.message.InventoryEntryQuantitySetMessage) {
638            return com.commercetools.api.models.message.InventoryEntryQuantitySetMessage
639                    .deepCopy((com.commercetools.api.models.message.InventoryEntryQuantitySetMessage) template);
640        }
641        if (template instanceof com.commercetools.api.models.message.OrderMessage) {
642            return com.commercetools.api.models.message.OrderMessage
643                    .deepCopy((com.commercetools.api.models.message.OrderMessage) template);
644        }
645        if (template instanceof com.commercetools.api.models.message.OrderPaymentAddedMessage) {
646            return com.commercetools.api.models.message.OrderPaymentAddedMessage
647                    .deepCopy((com.commercetools.api.models.message.OrderPaymentAddedMessage) template);
648        }
649        if (template instanceof com.commercetools.api.models.message.PaymentCreatedMessage) {
650            return com.commercetools.api.models.message.PaymentCreatedMessage
651                    .deepCopy((com.commercetools.api.models.message.PaymentCreatedMessage) template);
652        }
653        if (template instanceof com.commercetools.api.models.message.PaymentInteractionAddedMessage) {
654            return com.commercetools.api.models.message.PaymentInteractionAddedMessage
655                    .deepCopy((com.commercetools.api.models.message.PaymentInteractionAddedMessage) template);
656        }
657        if (template instanceof com.commercetools.api.models.message.PaymentStatusInterfaceCodeSetMessage) {
658            return com.commercetools.api.models.message.PaymentStatusInterfaceCodeSetMessage
659                    .deepCopy((com.commercetools.api.models.message.PaymentStatusInterfaceCodeSetMessage) template);
660        }
661        if (template instanceof com.commercetools.api.models.message.PaymentStatusStateTransitionMessage) {
662            return com.commercetools.api.models.message.PaymentStatusStateTransitionMessage
663                    .deepCopy((com.commercetools.api.models.message.PaymentStatusStateTransitionMessage) template);
664        }
665        if (template instanceof com.commercetools.api.models.message.PaymentTransactionAddedMessage) {
666            return com.commercetools.api.models.message.PaymentTransactionAddedMessage
667                    .deepCopy((com.commercetools.api.models.message.PaymentTransactionAddedMessage) template);
668        }
669        if (template instanceof com.commercetools.api.models.message.PaymentTransactionStateChangedMessage) {
670            return com.commercetools.api.models.message.PaymentTransactionStateChangedMessage
671                    .deepCopy((com.commercetools.api.models.message.PaymentTransactionStateChangedMessage) template);
672        }
673        if (template instanceof com.commercetools.api.models.message.ProductAddedToCategoryMessage) {
674            return com.commercetools.api.models.message.ProductAddedToCategoryMessage
675                    .deepCopy((com.commercetools.api.models.message.ProductAddedToCategoryMessage) template);
676        }
677        if (template instanceof com.commercetools.api.models.message.ProductCreatedMessage) {
678            return com.commercetools.api.models.message.ProductCreatedMessage
679                    .deepCopy((com.commercetools.api.models.message.ProductCreatedMessage) template);
680        }
681        if (template instanceof com.commercetools.api.models.message.ProductDeletedMessage) {
682            return com.commercetools.api.models.message.ProductDeletedMessage
683                    .deepCopy((com.commercetools.api.models.message.ProductDeletedMessage) template);
684        }
685        if (template instanceof com.commercetools.api.models.message.ProductImageAddedMessage) {
686            return com.commercetools.api.models.message.ProductImageAddedMessage
687                    .deepCopy((com.commercetools.api.models.message.ProductImageAddedMessage) template);
688        }
689        if (template instanceof com.commercetools.api.models.message.ProductPriceAddedMessage) {
690            return com.commercetools.api.models.message.ProductPriceAddedMessage
691                    .deepCopy((com.commercetools.api.models.message.ProductPriceAddedMessage) template);
692        }
693        if (template instanceof com.commercetools.api.models.message.ProductPriceChangedMessage) {
694            return com.commercetools.api.models.message.ProductPriceChangedMessage
695                    .deepCopy((com.commercetools.api.models.message.ProductPriceChangedMessage) template);
696        }
697        if (template instanceof com.commercetools.api.models.message.ProductPriceDiscountsSetMessage) {
698            return com.commercetools.api.models.message.ProductPriceDiscountsSetMessage
699                    .deepCopy((com.commercetools.api.models.message.ProductPriceDiscountsSetMessage) template);
700        }
701        if (template instanceof com.commercetools.api.models.message.ProductPriceExternalDiscountSetMessage) {
702            return com.commercetools.api.models.message.ProductPriceExternalDiscountSetMessage
703                    .deepCopy((com.commercetools.api.models.message.ProductPriceExternalDiscountSetMessage) template);
704        }
705        if (template instanceof com.commercetools.api.models.message.ProductPriceKeySetMessage) {
706            return com.commercetools.api.models.message.ProductPriceKeySetMessage
707                    .deepCopy((com.commercetools.api.models.message.ProductPriceKeySetMessage) template);
708        }
709        if (template instanceof com.commercetools.api.models.message.ProductPriceModeSetMessage) {
710            return com.commercetools.api.models.message.ProductPriceModeSetMessage
711                    .deepCopy((com.commercetools.api.models.message.ProductPriceModeSetMessage) template);
712        }
713        if (template instanceof com.commercetools.api.models.message.ProductPriceRemovedMessage) {
714            return com.commercetools.api.models.message.ProductPriceRemovedMessage
715                    .deepCopy((com.commercetools.api.models.message.ProductPriceRemovedMessage) template);
716        }
717        if (template instanceof com.commercetools.api.models.message.ProductPricesSetMessage) {
718            return com.commercetools.api.models.message.ProductPricesSetMessage
719                    .deepCopy((com.commercetools.api.models.message.ProductPricesSetMessage) template);
720        }
721        if (template instanceof com.commercetools.api.models.message.ProductPublishedMessage) {
722            return com.commercetools.api.models.message.ProductPublishedMessage
723                    .deepCopy((com.commercetools.api.models.message.ProductPublishedMessage) template);
724        }
725        if (template instanceof com.commercetools.api.models.message.ProductRemovedFromCategoryMessage) {
726            return com.commercetools.api.models.message.ProductRemovedFromCategoryMessage
727                    .deepCopy((com.commercetools.api.models.message.ProductRemovedFromCategoryMessage) template);
728        }
729        if (template instanceof com.commercetools.api.models.message.ProductRevertedStagedChangesMessage) {
730            return com.commercetools.api.models.message.ProductRevertedStagedChangesMessage
731                    .deepCopy((com.commercetools.api.models.message.ProductRevertedStagedChangesMessage) template);
732        }
733        if (template instanceof com.commercetools.api.models.message.ProductSelectionCreatedMessage) {
734            return com.commercetools.api.models.message.ProductSelectionCreatedMessage
735                    .deepCopy((com.commercetools.api.models.message.ProductSelectionCreatedMessage) template);
736        }
737        if (template instanceof com.commercetools.api.models.message.ProductSelectionDeletedMessage) {
738            return com.commercetools.api.models.message.ProductSelectionDeletedMessage
739                    .deepCopy((com.commercetools.api.models.message.ProductSelectionDeletedMessage) template);
740        }
741        if (template instanceof com.commercetools.api.models.message.ProductSelectionProductAddedMessage) {
742            return com.commercetools.api.models.message.ProductSelectionProductAddedMessage
743                    .deepCopy((com.commercetools.api.models.message.ProductSelectionProductAddedMessage) template);
744        }
745        if (template instanceof com.commercetools.api.models.message.ProductSelectionProductExcludedMessage) {
746            return com.commercetools.api.models.message.ProductSelectionProductExcludedMessage
747                    .deepCopy((com.commercetools.api.models.message.ProductSelectionProductExcludedMessage) template);
748        }
749        if (template instanceof com.commercetools.api.models.message.ProductSelectionProductRemovedMessage) {
750            return com.commercetools.api.models.message.ProductSelectionProductRemovedMessage
751                    .deepCopy((com.commercetools.api.models.message.ProductSelectionProductRemovedMessage) template);
752        }
753        if (template instanceof com.commercetools.api.models.message.ProductSelectionVariantExclusionChangedMessage) {
754            return com.commercetools.api.models.message.ProductSelectionVariantExclusionChangedMessage.deepCopy(
755                (com.commercetools.api.models.message.ProductSelectionVariantExclusionChangedMessage) template);
756        }
757        if (template instanceof com.commercetools.api.models.message.ProductSelectionVariantSelectionChangedMessage) {
758            return com.commercetools.api.models.message.ProductSelectionVariantSelectionChangedMessage.deepCopy(
759                (com.commercetools.api.models.message.ProductSelectionVariantSelectionChangedMessage) template);
760        }
761        if (template instanceof com.commercetools.api.models.message.ProductSlugChangedMessage) {
762            return com.commercetools.api.models.message.ProductSlugChangedMessage
763                    .deepCopy((com.commercetools.api.models.message.ProductSlugChangedMessage) template);
764        }
765        if (template instanceof com.commercetools.api.models.message.ProductStateTransitionMessage) {
766            return com.commercetools.api.models.message.ProductStateTransitionMessage
767                    .deepCopy((com.commercetools.api.models.message.ProductStateTransitionMessage) template);
768        }
769        if (template instanceof com.commercetools.api.models.message.ProductUnpublishedMessage) {
770            return com.commercetools.api.models.message.ProductUnpublishedMessage
771                    .deepCopy((com.commercetools.api.models.message.ProductUnpublishedMessage) template);
772        }
773        if (template instanceof com.commercetools.api.models.message.ProductVariantAddedMessage) {
774            return com.commercetools.api.models.message.ProductVariantAddedMessage
775                    .deepCopy((com.commercetools.api.models.message.ProductVariantAddedMessage) template);
776        }
777        if (template instanceof com.commercetools.api.models.message.ProductVariantDeletedMessage) {
778            return com.commercetools.api.models.message.ProductVariantDeletedMessage
779                    .deepCopy((com.commercetools.api.models.message.ProductVariantDeletedMessage) template);
780        }
781        if (template instanceof com.commercetools.api.models.message.QuoteCreatedMessage) {
782            return com.commercetools.api.models.message.QuoteCreatedMessage
783                    .deepCopy((com.commercetools.api.models.message.QuoteCreatedMessage) template);
784        }
785        if (template instanceof com.commercetools.api.models.message.QuoteCustomerChangedMessage) {
786            return com.commercetools.api.models.message.QuoteCustomerChangedMessage
787                    .deepCopy((com.commercetools.api.models.message.QuoteCustomerChangedMessage) template);
788        }
789        if (template instanceof com.commercetools.api.models.message.QuoteDeletedMessage) {
790            return com.commercetools.api.models.message.QuoteDeletedMessage
791                    .deepCopy((com.commercetools.api.models.message.QuoteDeletedMessage) template);
792        }
793        if (template instanceof com.commercetools.api.models.message.QuoteRenegotiationRequestedMessage) {
794            return com.commercetools.api.models.message.QuoteRenegotiationRequestedMessage
795                    .deepCopy((com.commercetools.api.models.message.QuoteRenegotiationRequestedMessage) template);
796        }
797        if (template instanceof com.commercetools.api.models.message.QuoteRequestCreatedMessage) {
798            return com.commercetools.api.models.message.QuoteRequestCreatedMessage
799                    .deepCopy((com.commercetools.api.models.message.QuoteRequestCreatedMessage) template);
800        }
801        if (template instanceof com.commercetools.api.models.message.QuoteRequestCustomerChangedMessage) {
802            return com.commercetools.api.models.message.QuoteRequestCustomerChangedMessage
803                    .deepCopy((com.commercetools.api.models.message.QuoteRequestCustomerChangedMessage) template);
804        }
805        if (template instanceof com.commercetools.api.models.message.QuoteRequestDeletedMessage) {
806            return com.commercetools.api.models.message.QuoteRequestDeletedMessage
807                    .deepCopy((com.commercetools.api.models.message.QuoteRequestDeletedMessage) template);
808        }
809        if (template instanceof com.commercetools.api.models.message.QuoteRequestStateChangedMessage) {
810            return com.commercetools.api.models.message.QuoteRequestStateChangedMessage
811                    .deepCopy((com.commercetools.api.models.message.QuoteRequestStateChangedMessage) template);
812        }
813        if (template instanceof com.commercetools.api.models.message.QuoteRequestStateTransitionMessage) {
814            return com.commercetools.api.models.message.QuoteRequestStateTransitionMessage
815                    .deepCopy((com.commercetools.api.models.message.QuoteRequestStateTransitionMessage) template);
816        }
817        if (template instanceof com.commercetools.api.models.message.QuoteStateChangedMessage) {
818            return com.commercetools.api.models.message.QuoteStateChangedMessage
819                    .deepCopy((com.commercetools.api.models.message.QuoteStateChangedMessage) template);
820        }
821        if (template instanceof com.commercetools.api.models.message.QuoteStateTransitionMessage) {
822            return com.commercetools.api.models.message.QuoteStateTransitionMessage
823                    .deepCopy((com.commercetools.api.models.message.QuoteStateTransitionMessage) template);
824        }
825        if (template instanceof com.commercetools.api.models.message.ReviewCreatedMessage) {
826            return com.commercetools.api.models.message.ReviewCreatedMessage
827                    .deepCopy((com.commercetools.api.models.message.ReviewCreatedMessage) template);
828        }
829        if (template instanceof com.commercetools.api.models.message.ReviewRatingSetMessage) {
830            return com.commercetools.api.models.message.ReviewRatingSetMessage
831                    .deepCopy((com.commercetools.api.models.message.ReviewRatingSetMessage) template);
832        }
833        if (template instanceof com.commercetools.api.models.message.ReviewStateTransitionMessage) {
834            return com.commercetools.api.models.message.ReviewStateTransitionMessage
835                    .deepCopy((com.commercetools.api.models.message.ReviewStateTransitionMessage) template);
836        }
837        if (template instanceof com.commercetools.api.models.message.StagedQuoteCreatedMessage) {
838            return com.commercetools.api.models.message.StagedQuoteCreatedMessage
839                    .deepCopy((com.commercetools.api.models.message.StagedQuoteCreatedMessage) template);
840        }
841        if (template instanceof com.commercetools.api.models.message.StagedQuoteDeletedMessage) {
842            return com.commercetools.api.models.message.StagedQuoteDeletedMessage
843                    .deepCopy((com.commercetools.api.models.message.StagedQuoteDeletedMessage) template);
844        }
845        if (template instanceof com.commercetools.api.models.message.StagedQuoteSellerCommentSetMessage) {
846            return com.commercetools.api.models.message.StagedQuoteSellerCommentSetMessage
847                    .deepCopy((com.commercetools.api.models.message.StagedQuoteSellerCommentSetMessage) template);
848        }
849        if (template instanceof com.commercetools.api.models.message.StagedQuoteStateChangedMessage) {
850            return com.commercetools.api.models.message.StagedQuoteStateChangedMessage
851                    .deepCopy((com.commercetools.api.models.message.StagedQuoteStateChangedMessage) template);
852        }
853        if (template instanceof com.commercetools.api.models.message.StagedQuoteStateTransitionMessage) {
854            return com.commercetools.api.models.message.StagedQuoteStateTransitionMessage
855                    .deepCopy((com.commercetools.api.models.message.StagedQuoteStateTransitionMessage) template);
856        }
857        if (template instanceof com.commercetools.api.models.message.StagedQuoteValidToSetMessage) {
858            return com.commercetools.api.models.message.StagedQuoteValidToSetMessage
859                    .deepCopy((com.commercetools.api.models.message.StagedQuoteValidToSetMessage) template);
860        }
861        if (template instanceof com.commercetools.api.models.message.StandalonePriceActiveChangedMessage) {
862            return com.commercetools.api.models.message.StandalonePriceActiveChangedMessage
863                    .deepCopy((com.commercetools.api.models.message.StandalonePriceActiveChangedMessage) template);
864        }
865        if (template instanceof com.commercetools.api.models.message.StandalonePriceCreatedMessage) {
866            return com.commercetools.api.models.message.StandalonePriceCreatedMessage
867                    .deepCopy((com.commercetools.api.models.message.StandalonePriceCreatedMessage) template);
868        }
869        if (template instanceof com.commercetools.api.models.message.StandalonePriceDeletedMessage) {
870            return com.commercetools.api.models.message.StandalonePriceDeletedMessage
871                    .deepCopy((com.commercetools.api.models.message.StandalonePriceDeletedMessage) template);
872        }
873        if (template instanceof com.commercetools.api.models.message.StandalonePriceDiscountSetMessage) {
874            return com.commercetools.api.models.message.StandalonePriceDiscountSetMessage
875                    .deepCopy((com.commercetools.api.models.message.StandalonePriceDiscountSetMessage) template);
876        }
877        if (template instanceof com.commercetools.api.models.message.StandalonePriceExternalDiscountSetMessage) {
878            return com.commercetools.api.models.message.StandalonePriceExternalDiscountSetMessage.deepCopy(
879                (com.commercetools.api.models.message.StandalonePriceExternalDiscountSetMessage) template);
880        }
881        if (template instanceof com.commercetools.api.models.message.StandalonePriceKeySetMessage) {
882            return com.commercetools.api.models.message.StandalonePriceKeySetMessage
883                    .deepCopy((com.commercetools.api.models.message.StandalonePriceKeySetMessage) template);
884        }
885        if (template instanceof com.commercetools.api.models.message.StandalonePriceStagedChangesAppliedMessage) {
886            return com.commercetools.api.models.message.StandalonePriceStagedChangesAppliedMessage.deepCopy(
887                (com.commercetools.api.models.message.StandalonePriceStagedChangesAppliedMessage) template);
888        }
889        if (template instanceof com.commercetools.api.models.message.StandalonePriceStagedChangesRemovedMessage) {
890            return com.commercetools.api.models.message.StandalonePriceStagedChangesRemovedMessage.deepCopy(
891                (com.commercetools.api.models.message.StandalonePriceStagedChangesRemovedMessage) template);
892        }
893        if (template instanceof com.commercetools.api.models.message.StandalonePriceTierAddedMessage) {
894            return com.commercetools.api.models.message.StandalonePriceTierAddedMessage
895                    .deepCopy((com.commercetools.api.models.message.StandalonePriceTierAddedMessage) template);
896        }
897        if (template instanceof com.commercetools.api.models.message.StandalonePriceTierRemovedMessage) {
898            return com.commercetools.api.models.message.StandalonePriceTierRemovedMessage
899                    .deepCopy((com.commercetools.api.models.message.StandalonePriceTierRemovedMessage) template);
900        }
901        if (template instanceof com.commercetools.api.models.message.StandalonePriceTiersSetMessage) {
902            return com.commercetools.api.models.message.StandalonePriceTiersSetMessage
903                    .deepCopy((com.commercetools.api.models.message.StandalonePriceTiersSetMessage) template);
904        }
905        if (template instanceof com.commercetools.api.models.message.StandalonePriceValidFromAndUntilSetMessage) {
906            return com.commercetools.api.models.message.StandalonePriceValidFromAndUntilSetMessage.deepCopy(
907                (com.commercetools.api.models.message.StandalonePriceValidFromAndUntilSetMessage) template);
908        }
909        if (template instanceof com.commercetools.api.models.message.StandalonePriceValidFromSetMessage) {
910            return com.commercetools.api.models.message.StandalonePriceValidFromSetMessage
911                    .deepCopy((com.commercetools.api.models.message.StandalonePriceValidFromSetMessage) template);
912        }
913        if (template instanceof com.commercetools.api.models.message.StandalonePriceValidUntilSetMessage) {
914            return com.commercetools.api.models.message.StandalonePriceValidUntilSetMessage
915                    .deepCopy((com.commercetools.api.models.message.StandalonePriceValidUntilSetMessage) template);
916        }
917        if (template instanceof com.commercetools.api.models.message.StandalonePriceValueChangedMessage) {
918            return com.commercetools.api.models.message.StandalonePriceValueChangedMessage
919                    .deepCopy((com.commercetools.api.models.message.StandalonePriceValueChangedMessage) template);
920        }
921        if (template instanceof com.commercetools.api.models.message.StoreCountriesChangedMessage) {
922            return com.commercetools.api.models.message.StoreCountriesChangedMessage
923                    .deepCopy((com.commercetools.api.models.message.StoreCountriesChangedMessage) template);
924        }
925        if (template instanceof com.commercetools.api.models.message.StoreCreatedMessage) {
926            return com.commercetools.api.models.message.StoreCreatedMessage
927                    .deepCopy((com.commercetools.api.models.message.StoreCreatedMessage) template);
928        }
929        if (template instanceof com.commercetools.api.models.message.StoreDeletedMessage) {
930            return com.commercetools.api.models.message.StoreDeletedMessage
931                    .deepCopy((com.commercetools.api.models.message.StoreDeletedMessage) template);
932        }
933        if (template instanceof com.commercetools.api.models.message.StoreDistributionChannelsChangedMessage) {
934            return com.commercetools.api.models.message.StoreDistributionChannelsChangedMessage
935                    .deepCopy((com.commercetools.api.models.message.StoreDistributionChannelsChangedMessage) template);
936        }
937        if (template instanceof com.commercetools.api.models.message.StoreLanguagesChangedMessage) {
938            return com.commercetools.api.models.message.StoreLanguagesChangedMessage
939                    .deepCopy((com.commercetools.api.models.message.StoreLanguagesChangedMessage) template);
940        }
941        if (template instanceof com.commercetools.api.models.message.StoreNameSetMessage) {
942            return com.commercetools.api.models.message.StoreNameSetMessage
943                    .deepCopy((com.commercetools.api.models.message.StoreNameSetMessage) template);
944        }
945        if (template instanceof com.commercetools.api.models.message.StoreProductSelectionsChangedMessage) {
946            return com.commercetools.api.models.message.StoreProductSelectionsChangedMessage
947                    .deepCopy((com.commercetools.api.models.message.StoreProductSelectionsChangedMessage) template);
948        }
949        if (template instanceof com.commercetools.api.models.message.StoreSupplyChannelsChangedMessage) {
950            return com.commercetools.api.models.message.StoreSupplyChannelsChangedMessage
951                    .deepCopy((com.commercetools.api.models.message.StoreSupplyChannelsChangedMessage) template);
952        }
953        MessageImpl instance = new MessageImpl();
954        instance.setId(template.getId());
955        instance.setVersion(template.getVersion());
956        instance.setCreatedAt(template.getCreatedAt());
957        instance.setLastModifiedAt(template.getLastModifiedAt());
958        instance.setLastModifiedBy(
959            com.commercetools.api.models.common.LastModifiedBy.deepCopy(template.getLastModifiedBy()));
960        instance.setCreatedBy(com.commercetools.api.models.common.CreatedBy.deepCopy(template.getCreatedBy()));
961        instance.setSequenceNumber(template.getSequenceNumber());
962        instance.setResource(com.commercetools.api.models.common.Reference.deepCopy(template.getResource()));
963        instance.setResourceVersion(template.getResourceVersion());
964        instance.setResourceUserProvidedIdentifiers(com.commercetools.api.models.message.UserProvidedIdentifiers
965                .deepCopy(template.getResourceUserProvidedIdentifiers()));
966        return instance;
967    }
968
969    /**
970     * builder for associateRoleBuyerAssignableChanged subtype
971     * @return builder
972     */
973    public static com.commercetools.api.models.message.AssociateRoleBuyerAssignableChangedMessageBuilder associateRoleBuyerAssignableChangedBuilder() {
974        return com.commercetools.api.models.message.AssociateRoleBuyerAssignableChangedMessageBuilder.of();
975    }
976
977    /**
978     * builder for associateRoleCreated subtype
979     * @return builder
980     */
981    public static com.commercetools.api.models.message.AssociateRoleCreatedMessageBuilder associateRoleCreatedBuilder() {
982        return com.commercetools.api.models.message.AssociateRoleCreatedMessageBuilder.of();
983    }
984
985    /**
986     * builder for associateRoleDeleted subtype
987     * @return builder
988     */
989    public static com.commercetools.api.models.message.AssociateRoleDeletedMessageBuilder associateRoleDeletedBuilder() {
990        return com.commercetools.api.models.message.AssociateRoleDeletedMessageBuilder.of();
991    }
992
993    /**
994     * builder for associateRoleNameSet subtype
995     * @return builder
996     */
997    public static com.commercetools.api.models.message.AssociateRoleNameChangedMessageBuilder associateRoleNameSetBuilder() {
998        return com.commercetools.api.models.message.AssociateRoleNameChangedMessageBuilder.of();
999    }
1000
1001    /**
1002     * builder for associateRolePermissionAdded subtype
1003     * @return builder
1004     */
1005    public static com.commercetools.api.models.message.AssociateRolePermissionAddedMessageBuilder associateRolePermissionAddedBuilder() {
1006        return com.commercetools.api.models.message.AssociateRolePermissionAddedMessageBuilder.of();
1007    }
1008
1009    /**
1010     * builder for associateRolePermissionRemoved subtype
1011     * @return builder
1012     */
1013    public static com.commercetools.api.models.message.AssociateRolePermissionRemovedMessageBuilder associateRolePermissionRemovedBuilder() {
1014        return com.commercetools.api.models.message.AssociateRolePermissionRemovedMessageBuilder.of();
1015    }
1016
1017    /**
1018     * builder for associateRolePermissionsSet subtype
1019     * @return builder
1020     */
1021    public static com.commercetools.api.models.message.AssociateRolePermissionsSetMessageBuilder associateRolePermissionsSetBuilder() {
1022        return com.commercetools.api.models.message.AssociateRolePermissionsSetMessageBuilder.of();
1023    }
1024
1025    /**
1026     * builder for businessUnitAddressAdded subtype
1027     * @return builder
1028     */
1029    public static com.commercetools.api.models.message.BusinessUnitAddressAddedMessageBuilder businessUnitAddressAddedBuilder() {
1030        return com.commercetools.api.models.message.BusinessUnitAddressAddedMessageBuilder.of();
1031    }
1032
1033    /**
1034     * builder for businessUnitAddressChanged subtype
1035     * @return builder
1036     */
1037    public static com.commercetools.api.models.message.BusinessUnitAddressChangedMessageBuilder businessUnitAddressChangedBuilder() {
1038        return com.commercetools.api.models.message.BusinessUnitAddressChangedMessageBuilder.of();
1039    }
1040
1041    /**
1042     * builder for businessUnitAddressRemoved subtype
1043     * @return builder
1044     */
1045    public static com.commercetools.api.models.message.BusinessUnitAddressRemovedMessageBuilder businessUnitAddressRemovedBuilder() {
1046        return com.commercetools.api.models.message.BusinessUnitAddressRemovedMessageBuilder.of();
1047    }
1048
1049    /**
1050     * builder for businessUnitAssociateAdded subtype
1051     * @return builder
1052     */
1053    public static com.commercetools.api.models.message.BusinessUnitAssociateAddedMessageBuilder businessUnitAssociateAddedBuilder() {
1054        return com.commercetools.api.models.message.BusinessUnitAssociateAddedMessageBuilder.of();
1055    }
1056
1057    /**
1058     * builder for businessUnitAssociateChanged subtype
1059     * @return builder
1060     */
1061    public static com.commercetools.api.models.message.BusinessUnitAssociateChangedMessageBuilder businessUnitAssociateChangedBuilder() {
1062        return com.commercetools.api.models.message.BusinessUnitAssociateChangedMessageBuilder.of();
1063    }
1064
1065    /**
1066     * builder for businessUnitAssociateModeChanged subtype
1067     * @return builder
1068     */
1069    public static com.commercetools.api.models.message.BusinessUnitAssociateModeChangedMessageBuilder businessUnitAssociateModeChangedBuilder() {
1070        return com.commercetools.api.models.message.BusinessUnitAssociateModeChangedMessageBuilder.of();
1071    }
1072
1073    /**
1074     * builder for businessUnitAssociateRemoved subtype
1075     * @return builder
1076     */
1077    public static com.commercetools.api.models.message.BusinessUnitAssociateRemovedMessageBuilder businessUnitAssociateRemovedBuilder() {
1078        return com.commercetools.api.models.message.BusinessUnitAssociateRemovedMessageBuilder.of();
1079    }
1080
1081    /**
1082     * builder for businessUnitAssociatesSet subtype
1083     * @return builder
1084     */
1085    public static com.commercetools.api.models.message.BusinessUnitAssociatesSetMessageBuilder businessUnitAssociatesSetBuilder() {
1086        return com.commercetools.api.models.message.BusinessUnitAssociatesSetMessageBuilder.of();
1087    }
1088
1089    /**
1090     * builder for businessUnitBillingAddressAdded subtype
1091     * @return builder
1092     */
1093    public static com.commercetools.api.models.message.BusinessUnitBillingAddressAddedMessageBuilder businessUnitBillingAddressAddedBuilder() {
1094        return com.commercetools.api.models.message.BusinessUnitBillingAddressAddedMessageBuilder.of();
1095    }
1096
1097    /**
1098     * builder for businessUnitBillingAddressRemoved subtype
1099     * @return builder
1100     */
1101    public static com.commercetools.api.models.message.BusinessUnitBillingAddressRemovedMessageBuilder businessUnitBillingAddressRemovedBuilder() {
1102        return com.commercetools.api.models.message.BusinessUnitBillingAddressRemovedMessageBuilder.of();
1103    }
1104
1105    /**
1106     * builder for businessUnitContactEmailSet subtype
1107     * @return builder
1108     */
1109    public static com.commercetools.api.models.message.BusinessUnitContactEmailSetMessageBuilder businessUnitContactEmailSetBuilder() {
1110        return com.commercetools.api.models.message.BusinessUnitContactEmailSetMessageBuilder.of();
1111    }
1112
1113    /**
1114     * builder for businessUnitCreated subtype
1115     * @return builder
1116     */
1117    public static com.commercetools.api.models.message.BusinessUnitCreatedMessageBuilder businessUnitCreatedBuilder() {
1118        return com.commercetools.api.models.message.BusinessUnitCreatedMessageBuilder.of();
1119    }
1120
1121    /**
1122     * builder for businessUnitDefaultBillingAddressSet subtype
1123     * @return builder
1124     */
1125    public static com.commercetools.api.models.message.BusinessUnitDefaultBillingAddressSetMessageBuilder businessUnitDefaultBillingAddressSetBuilder() {
1126        return com.commercetools.api.models.message.BusinessUnitDefaultBillingAddressSetMessageBuilder.of();
1127    }
1128
1129    /**
1130     * builder for businessUnitDefaultShippingAddressSet subtype
1131     * @return builder
1132     */
1133    public static com.commercetools.api.models.message.BusinessUnitDefaultShippingAddressSetMessageBuilder businessUnitDefaultShippingAddressSetBuilder() {
1134        return com.commercetools.api.models.message.BusinessUnitDefaultShippingAddressSetMessageBuilder.of();
1135    }
1136
1137    /**
1138     * builder for businessUnitDeleted subtype
1139     * @return builder
1140     */
1141    public static com.commercetools.api.models.message.BusinessUnitDeletedMessageBuilder businessUnitDeletedBuilder() {
1142        return com.commercetools.api.models.message.BusinessUnitDeletedMessageBuilder.of();
1143    }
1144
1145    /**
1146     * builder for businessUnitNameChanged subtype
1147     * @return builder
1148     */
1149    public static com.commercetools.api.models.message.BusinessUnitNameChangedMessageBuilder businessUnitNameChangedBuilder() {
1150        return com.commercetools.api.models.message.BusinessUnitNameChangedMessageBuilder.of();
1151    }
1152
1153    /**
1154     * builder for businessUnitParentChanged subtype
1155     * @return builder
1156     */
1157    public static com.commercetools.api.models.message.BusinessUnitParentChangedMessageBuilder businessUnitParentChangedBuilder() {
1158        return com.commercetools.api.models.message.BusinessUnitParentChangedMessageBuilder.of();
1159    }
1160
1161    /**
1162     * builder for businessUnitShippingAddressAdded subtype
1163     * @return builder
1164     */
1165    public static com.commercetools.api.models.message.BusinessUnitShippingAddressAddedMessageBuilder businessUnitShippingAddressAddedBuilder() {
1166        return com.commercetools.api.models.message.BusinessUnitShippingAddressAddedMessageBuilder.of();
1167    }
1168
1169    /**
1170     * builder for businessUnitShippingAddressRemoved subtype
1171     * @return builder
1172     */
1173    public static com.commercetools.api.models.message.BusinessUnitShippingAddressRemovedMessageBuilder businessUnitShippingAddressRemovedBuilder() {
1174        return com.commercetools.api.models.message.BusinessUnitShippingAddressRemovedMessageBuilder.of();
1175    }
1176
1177    /**
1178     * builder for businessUnitStatusChanged subtype
1179     * @return builder
1180     */
1181    public static com.commercetools.api.models.message.BusinessUnitStatusChangedMessageBuilder businessUnitStatusChangedBuilder() {
1182        return com.commercetools.api.models.message.BusinessUnitStatusChangedMessageBuilder.of();
1183    }
1184
1185    /**
1186     * builder for businessUnitStoreAdded subtype
1187     * @return builder
1188     */
1189    public static com.commercetools.api.models.message.BusinessUnitStoreAddedMessageBuilder businessUnitStoreAddedBuilder() {
1190        return com.commercetools.api.models.message.BusinessUnitStoreAddedMessageBuilder.of();
1191    }
1192
1193    /**
1194     * builder for businessUnitStoreModeChanged subtype
1195     * @return builder
1196     */
1197    public static com.commercetools.api.models.message.BusinessUnitStoreModeChangedMessageBuilder businessUnitStoreModeChangedBuilder() {
1198        return com.commercetools.api.models.message.BusinessUnitStoreModeChangedMessageBuilder.of();
1199    }
1200
1201    /**
1202     * builder for businessUnitStoreRemoved subtype
1203     * @return builder
1204     */
1205    public static com.commercetools.api.models.message.BusinessUnitStoreRemovedMessageBuilder businessUnitStoreRemovedBuilder() {
1206        return com.commercetools.api.models.message.BusinessUnitStoreRemovedMessageBuilder.of();
1207    }
1208
1209    /**
1210     * builder for businessUnitStoresSet subtype
1211     * @return builder
1212     */
1213    public static com.commercetools.api.models.message.BusinessUnitStoresSetMessageBuilder businessUnitStoresSetBuilder() {
1214        return com.commercetools.api.models.message.BusinessUnitStoresSetMessageBuilder.of();
1215    }
1216
1217    /**
1218     * builder for categoryCreated subtype
1219     * @return builder
1220     */
1221    public static com.commercetools.api.models.message.CategoryCreatedMessageBuilder categoryCreatedBuilder() {
1222        return com.commercetools.api.models.message.CategoryCreatedMessageBuilder.of();
1223    }
1224
1225    /**
1226     * builder for categorySlugChanged subtype
1227     * @return builder
1228     */
1229    public static com.commercetools.api.models.message.CategorySlugChangedMessageBuilder categorySlugChangedBuilder() {
1230        return com.commercetools.api.models.message.CategorySlugChangedMessageBuilder.of();
1231    }
1232
1233    /**
1234     * builder for customLineItemStateTransition subtype
1235     * @return builder
1236     */
1237    public static com.commercetools.api.models.message.CustomLineItemStateTransitionMessageBuilder customLineItemStateTransitionBuilder() {
1238        return com.commercetools.api.models.message.CustomLineItemStateTransitionMessageBuilder.of();
1239    }
1240
1241    /**
1242     * builder for customerAddressAdded subtype
1243     * @return builder
1244     */
1245    public static com.commercetools.api.models.message.CustomerAddressAddedMessageBuilder customerAddressAddedBuilder() {
1246        return com.commercetools.api.models.message.CustomerAddressAddedMessageBuilder.of();
1247    }
1248
1249    /**
1250     * builder for customerAddressChanged subtype
1251     * @return builder
1252     */
1253    public static com.commercetools.api.models.message.CustomerAddressChangedMessageBuilder customerAddressChangedBuilder() {
1254        return com.commercetools.api.models.message.CustomerAddressChangedMessageBuilder.of();
1255    }
1256
1257    /**
1258     * builder for customerAddressCustomFieldAdded subtype
1259     * @return builder
1260     */
1261    public static com.commercetools.api.models.message.CustomerAddressCustomFieldAddedMessageBuilder customerAddressCustomFieldAddedBuilder() {
1262        return com.commercetools.api.models.message.CustomerAddressCustomFieldAddedMessageBuilder.of();
1263    }
1264
1265    /**
1266     * builder for customerAddressCustomFieldChanged subtype
1267     * @return builder
1268     */
1269    public static com.commercetools.api.models.message.CustomerAddressCustomFieldChangedMessageBuilder customerAddressCustomFieldChangedBuilder() {
1270        return com.commercetools.api.models.message.CustomerAddressCustomFieldChangedMessageBuilder.of();
1271    }
1272
1273    /**
1274     * builder for customerAddressCustomFieldRemoved subtype
1275     * @return builder
1276     */
1277    public static com.commercetools.api.models.message.CustomerAddressCustomFieldRemovedMessageBuilder customerAddressCustomFieldRemovedBuilder() {
1278        return com.commercetools.api.models.message.CustomerAddressCustomFieldRemovedMessageBuilder.of();
1279    }
1280
1281    /**
1282     * builder for customerAddressCustomTypeRemoved subtype
1283     * @return builder
1284     */
1285    public static com.commercetools.api.models.message.CustomerAddressCustomTypeRemovedMessageBuilder customerAddressCustomTypeRemovedBuilder() {
1286        return com.commercetools.api.models.message.CustomerAddressCustomTypeRemovedMessageBuilder.of();
1287    }
1288
1289    /**
1290     * builder for customerAddressCustomTypeSet subtype
1291     * @return builder
1292     */
1293    public static com.commercetools.api.models.message.CustomerAddressCustomTypeSetMessageBuilder customerAddressCustomTypeSetBuilder() {
1294        return com.commercetools.api.models.message.CustomerAddressCustomTypeSetMessageBuilder.of();
1295    }
1296
1297    /**
1298     * builder for customerAddressRemoved subtype
1299     * @return builder
1300     */
1301    public static com.commercetools.api.models.message.CustomerAddressRemovedMessageBuilder customerAddressRemovedBuilder() {
1302        return com.commercetools.api.models.message.CustomerAddressRemovedMessageBuilder.of();
1303    }
1304
1305    /**
1306     * builder for customerCompanyNameSet subtype
1307     * @return builder
1308     */
1309    public static com.commercetools.api.models.message.CustomerCompanyNameSetMessageBuilder customerCompanyNameSetBuilder() {
1310        return com.commercetools.api.models.message.CustomerCompanyNameSetMessageBuilder.of();
1311    }
1312
1313    /**
1314     * builder for customerCreated subtype
1315     * @return builder
1316     */
1317    public static com.commercetools.api.models.message.CustomerCreatedMessageBuilder customerCreatedBuilder() {
1318        return com.commercetools.api.models.message.CustomerCreatedMessageBuilder.of();
1319    }
1320
1321    /**
1322     * builder for customerCustomFieldAdded subtype
1323     * @return builder
1324     */
1325    public static com.commercetools.api.models.message.CustomerCustomFieldAddedMessageBuilder customerCustomFieldAddedBuilder() {
1326        return com.commercetools.api.models.message.CustomerCustomFieldAddedMessageBuilder.of();
1327    }
1328
1329    /**
1330     * builder for customerCustomFieldChanged subtype
1331     * @return builder
1332     */
1333    public static com.commercetools.api.models.message.CustomerCustomFieldChangedMessageBuilder customerCustomFieldChangedBuilder() {
1334        return com.commercetools.api.models.message.CustomerCustomFieldChangedMessageBuilder.of();
1335    }
1336
1337    /**
1338     * builder for customerCustomFieldRemoved subtype
1339     * @return builder
1340     */
1341    public static com.commercetools.api.models.message.CustomerCustomFieldRemovedMessageBuilder customerCustomFieldRemovedBuilder() {
1342        return com.commercetools.api.models.message.CustomerCustomFieldRemovedMessageBuilder.of();
1343    }
1344
1345    /**
1346     * builder for customerCustomTypeRemoved subtype
1347     * @return builder
1348     */
1349    public static com.commercetools.api.models.message.CustomerCustomTypeRemovedMessageBuilder customerCustomTypeRemovedBuilder() {
1350        return com.commercetools.api.models.message.CustomerCustomTypeRemovedMessageBuilder.of();
1351    }
1352
1353    /**
1354     * builder for customerCustomTypeSet subtype
1355     * @return builder
1356     */
1357    public static com.commercetools.api.models.message.CustomerCustomTypeSetMessageBuilder customerCustomTypeSetBuilder() {
1358        return com.commercetools.api.models.message.CustomerCustomTypeSetMessageBuilder.of();
1359    }
1360
1361    /**
1362     * builder for customerDateOfBirthSet subtype
1363     * @return builder
1364     */
1365    public static com.commercetools.api.models.message.CustomerDateOfBirthSetMessageBuilder customerDateOfBirthSetBuilder() {
1366        return com.commercetools.api.models.message.CustomerDateOfBirthSetMessageBuilder.of();
1367    }
1368
1369    /**
1370     * builder for customerDeleted subtype
1371     * @return builder
1372     */
1373    public static com.commercetools.api.models.message.CustomerDeletedMessageBuilder customerDeletedBuilder() {
1374        return com.commercetools.api.models.message.CustomerDeletedMessageBuilder.of();
1375    }
1376
1377    /**
1378     * builder for customerEmailChanged subtype
1379     * @return builder
1380     */
1381    public static com.commercetools.api.models.message.CustomerEmailChangedMessageBuilder customerEmailChangedBuilder() {
1382        return com.commercetools.api.models.message.CustomerEmailChangedMessageBuilder.of();
1383    }
1384
1385    /**
1386     * builder for customerEmailVerified subtype
1387     * @return builder
1388     */
1389    public static com.commercetools.api.models.message.CustomerEmailVerifiedMessageBuilder customerEmailVerifiedBuilder() {
1390        return com.commercetools.api.models.message.CustomerEmailVerifiedMessageBuilder.of();
1391    }
1392
1393    /**
1394     * builder for customerFirstNameSet subtype
1395     * @return builder
1396     */
1397    public static com.commercetools.api.models.message.CustomerFirstNameSetMessageBuilder customerFirstNameSetBuilder() {
1398        return com.commercetools.api.models.message.CustomerFirstNameSetMessageBuilder.of();
1399    }
1400
1401    /**
1402     * builder for customerGroupSet subtype
1403     * @return builder
1404     */
1405    public static com.commercetools.api.models.message.CustomerGroupSetMessageBuilder customerGroupSetBuilder() {
1406        return com.commercetools.api.models.message.CustomerGroupSetMessageBuilder.of();
1407    }
1408
1409    /**
1410     * builder for customerLastNameSet subtype
1411     * @return builder
1412     */
1413    public static com.commercetools.api.models.message.CustomerLastNameSetMessageBuilder customerLastNameSetBuilder() {
1414        return com.commercetools.api.models.message.CustomerLastNameSetMessageBuilder.of();
1415    }
1416
1417    /**
1418     * builder for customerPasswordUpdated subtype
1419     * @return builder
1420     */
1421    public static com.commercetools.api.models.message.CustomerPasswordUpdatedMessageBuilder customerPasswordUpdatedBuilder() {
1422        return com.commercetools.api.models.message.CustomerPasswordUpdatedMessageBuilder.of();
1423    }
1424
1425    /**
1426     * builder for customerTitleSet subtype
1427     * @return builder
1428     */
1429    public static com.commercetools.api.models.message.CustomerTitleSetMessageBuilder customerTitleSetBuilder() {
1430        return com.commercetools.api.models.message.CustomerTitleSetMessageBuilder.of();
1431    }
1432
1433    /**
1434     * builder for deliveryAdded subtype
1435     * @return builder
1436     */
1437    public static com.commercetools.api.models.message.DeliveryAddedMessageBuilder deliveryAddedBuilder() {
1438        return com.commercetools.api.models.message.DeliveryAddedMessageBuilder.of();
1439    }
1440
1441    /**
1442     * builder for deliveryAddressSet subtype
1443     * @return builder
1444     */
1445    public static com.commercetools.api.models.message.DeliveryAddressSetMessageBuilder deliveryAddressSetBuilder() {
1446        return com.commercetools.api.models.message.DeliveryAddressSetMessageBuilder.of();
1447    }
1448
1449    /**
1450     * builder for deliveryItemsUpdated subtype
1451     * @return builder
1452     */
1453    public static com.commercetools.api.models.message.DeliveryItemsUpdatedMessageBuilder deliveryItemsUpdatedBuilder() {
1454        return com.commercetools.api.models.message.DeliveryItemsUpdatedMessageBuilder.of();
1455    }
1456
1457    /**
1458     * builder for deliveryRemoved subtype
1459     * @return builder
1460     */
1461    public static com.commercetools.api.models.message.DeliveryRemovedMessageBuilder deliveryRemovedBuilder() {
1462        return com.commercetools.api.models.message.DeliveryRemovedMessageBuilder.of();
1463    }
1464
1465    /**
1466     * builder for inventoryEntryCreated subtype
1467     * @return builder
1468     */
1469    public static com.commercetools.api.models.message.InventoryEntryCreatedMessageBuilder inventoryEntryCreatedBuilder() {
1470        return com.commercetools.api.models.message.InventoryEntryCreatedMessageBuilder.of();
1471    }
1472
1473    /**
1474     * builder for inventoryEntryDeleted subtype
1475     * @return builder
1476     */
1477    public static com.commercetools.api.models.message.InventoryEntryDeletedMessageBuilder inventoryEntryDeletedBuilder() {
1478        return com.commercetools.api.models.message.InventoryEntryDeletedMessageBuilder.of();
1479    }
1480
1481    /**
1482     * builder for inventoryEntryQuantitySet subtype
1483     * @return builder
1484     */
1485    public static com.commercetools.api.models.message.InventoryEntryQuantitySetMessageBuilder inventoryEntryQuantitySetBuilder() {
1486        return com.commercetools.api.models.message.InventoryEntryQuantitySetMessageBuilder.of();
1487    }
1488
1489    /**
1490     * builder for lineItemStateTransition subtype
1491     * @return builder
1492     */
1493    public static com.commercetools.api.models.message.LineItemStateTransitionMessageBuilder lineItemStateTransitionBuilder() {
1494        return com.commercetools.api.models.message.LineItemStateTransitionMessageBuilder.of();
1495    }
1496
1497    /**
1498     * builder for orderBillingAddressSet subtype
1499     * @return builder
1500     */
1501    public static com.commercetools.api.models.message.OrderBillingAddressSetMessageBuilder orderBillingAddressSetBuilder() {
1502        return com.commercetools.api.models.message.OrderBillingAddressSetMessageBuilder.of();
1503    }
1504
1505    /**
1506     * builder for orderCreated subtype
1507     * @return builder
1508     */
1509    public static com.commercetools.api.models.message.OrderCreatedMessageBuilder orderCreatedBuilder() {
1510        return com.commercetools.api.models.message.OrderCreatedMessageBuilder.of();
1511    }
1512
1513    /**
1514     * builder for orderCustomFieldAdded subtype
1515     * @return builder
1516     */
1517    public static com.commercetools.api.models.message.OrderCustomFieldAddedMessageBuilder orderCustomFieldAddedBuilder() {
1518        return com.commercetools.api.models.message.OrderCustomFieldAddedMessageBuilder.of();
1519    }
1520
1521    /**
1522     * builder for orderCustomFieldChanged subtype
1523     * @return builder
1524     */
1525    public static com.commercetools.api.models.message.OrderCustomFieldChangedMessageBuilder orderCustomFieldChangedBuilder() {
1526        return com.commercetools.api.models.message.OrderCustomFieldChangedMessageBuilder.of();
1527    }
1528
1529    /**
1530     * builder for orderCustomFieldRemoved subtype
1531     * @return builder
1532     */
1533    public static com.commercetools.api.models.message.OrderCustomFieldRemovedMessageBuilder orderCustomFieldRemovedBuilder() {
1534        return com.commercetools.api.models.message.OrderCustomFieldRemovedMessageBuilder.of();
1535    }
1536
1537    /**
1538     * builder for orderCustomLineItemAdded subtype
1539     * @return builder
1540     */
1541    public static com.commercetools.api.models.message.OrderCustomLineItemAddedMessageBuilder orderCustomLineItemAddedBuilder() {
1542        return com.commercetools.api.models.message.OrderCustomLineItemAddedMessageBuilder.of();
1543    }
1544
1545    /**
1546     * builder for orderCustomLineItemDiscountSet subtype
1547     * @return builder
1548     */
1549    public static com.commercetools.api.models.message.OrderCustomLineItemDiscountSetMessageBuilder orderCustomLineItemDiscountSetBuilder() {
1550        return com.commercetools.api.models.message.OrderCustomLineItemDiscountSetMessageBuilder.of();
1551    }
1552
1553    /**
1554     * builder for orderCustomLineItemQuantityChanged subtype
1555     * @return builder
1556     */
1557    public static com.commercetools.api.models.message.OrderCustomLineItemQuantityChangedMessageBuilder orderCustomLineItemQuantityChangedBuilder() {
1558        return com.commercetools.api.models.message.OrderCustomLineItemQuantityChangedMessageBuilder.of();
1559    }
1560
1561    /**
1562     * builder for orderCustomLineItemRemoved subtype
1563     * @return builder
1564     */
1565    public static com.commercetools.api.models.message.OrderCustomLineItemRemovedMessageBuilder orderCustomLineItemRemovedBuilder() {
1566        return com.commercetools.api.models.message.OrderCustomLineItemRemovedMessageBuilder.of();
1567    }
1568
1569    /**
1570     * builder for orderCustomTypeRemoved subtype
1571     * @return builder
1572     */
1573    public static com.commercetools.api.models.message.OrderCustomTypeRemovedMessageBuilder orderCustomTypeRemovedBuilder() {
1574        return com.commercetools.api.models.message.OrderCustomTypeRemovedMessageBuilder.of();
1575    }
1576
1577    /**
1578     * builder for orderCustomTypeSet subtype
1579     * @return builder
1580     */
1581    public static com.commercetools.api.models.message.OrderCustomTypeSetMessageBuilder orderCustomTypeSetBuilder() {
1582        return com.commercetools.api.models.message.OrderCustomTypeSetMessageBuilder.of();
1583    }
1584
1585    /**
1586     * builder for orderCustomerEmailSet subtype
1587     * @return builder
1588     */
1589    public static com.commercetools.api.models.message.OrderCustomerEmailSetMessageBuilder orderCustomerEmailSetBuilder() {
1590        return com.commercetools.api.models.message.OrderCustomerEmailSetMessageBuilder.of();
1591    }
1592
1593    /**
1594     * builder for orderCustomerGroupSet subtype
1595     * @return builder
1596     */
1597    public static com.commercetools.api.models.message.OrderCustomerGroupSetMessageBuilder orderCustomerGroupSetBuilder() {
1598        return com.commercetools.api.models.message.OrderCustomerGroupSetMessageBuilder.of();
1599    }
1600
1601    /**
1602     * builder for orderCustomerSet subtype
1603     * @return builder
1604     */
1605    public static com.commercetools.api.models.message.OrderCustomerSetMessageBuilder orderCustomerSetBuilder() {
1606        return com.commercetools.api.models.message.OrderCustomerSetMessageBuilder.of();
1607    }
1608
1609    /**
1610     * builder for orderDeleted subtype
1611     * @return builder
1612     */
1613    public static com.commercetools.api.models.message.OrderDeletedMessageBuilder orderDeletedBuilder() {
1614        return com.commercetools.api.models.message.OrderDeletedMessageBuilder.of();
1615    }
1616
1617    /**
1618     * builder for orderDiscountCodeAdded subtype
1619     * @return builder
1620     */
1621    public static com.commercetools.api.models.message.OrderDiscountCodeAddedMessageBuilder orderDiscountCodeAddedBuilder() {
1622        return com.commercetools.api.models.message.OrderDiscountCodeAddedMessageBuilder.of();
1623    }
1624
1625    /**
1626     * builder for orderDiscountCodeRemoved subtype
1627     * @return builder
1628     */
1629    public static com.commercetools.api.models.message.OrderDiscountCodeRemovedMessageBuilder orderDiscountCodeRemovedBuilder() {
1630        return com.commercetools.api.models.message.OrderDiscountCodeRemovedMessageBuilder.of();
1631    }
1632
1633    /**
1634     * builder for orderDiscountCodeStateSet subtype
1635     * @return builder
1636     */
1637    public static com.commercetools.api.models.message.OrderDiscountCodeStateSetMessageBuilder orderDiscountCodeStateSetBuilder() {
1638        return com.commercetools.api.models.message.OrderDiscountCodeStateSetMessageBuilder.of();
1639    }
1640
1641    /**
1642     * builder for orderEditApplied subtype
1643     * @return builder
1644     */
1645    public static com.commercetools.api.models.message.OrderEditAppliedMessageBuilder orderEditAppliedBuilder() {
1646        return com.commercetools.api.models.message.OrderEditAppliedMessageBuilder.of();
1647    }
1648
1649    /**
1650     * builder for orderImported subtype
1651     * @return builder
1652     */
1653    public static com.commercetools.api.models.message.OrderImportedMessageBuilder orderImportedBuilder() {
1654        return com.commercetools.api.models.message.OrderImportedMessageBuilder.of();
1655    }
1656
1657    /**
1658     * builder for orderLineItemAdded subtype
1659     * @return builder
1660     */
1661    public static com.commercetools.api.models.message.OrderLineItemAddedMessageBuilder orderLineItemAddedBuilder() {
1662        return com.commercetools.api.models.message.OrderLineItemAddedMessageBuilder.of();
1663    }
1664
1665    /**
1666     * builder for orderLineItemDiscountSet subtype
1667     * @return builder
1668     */
1669    public static com.commercetools.api.models.message.OrderLineItemDiscountSetMessageBuilder orderLineItemDiscountSetBuilder() {
1670        return com.commercetools.api.models.message.OrderLineItemDiscountSetMessageBuilder.of();
1671    }
1672
1673    /**
1674     * builder for orderLineItemDistributionChannelSet subtype
1675     * @return builder
1676     */
1677    public static com.commercetools.api.models.message.OrderLineItemDistributionChannelSetMessageBuilder orderLineItemDistributionChannelSetBuilder() {
1678        return com.commercetools.api.models.message.OrderLineItemDistributionChannelSetMessageBuilder.of();
1679    }
1680
1681    /**
1682     * builder for orderLineItemRemoved subtype
1683     * @return builder
1684     */
1685    public static com.commercetools.api.models.message.OrderLineItemRemovedMessageBuilder orderLineItemRemovedBuilder() {
1686        return com.commercetools.api.models.message.OrderLineItemRemovedMessageBuilder.of();
1687    }
1688
1689    /**
1690     * builder for orderPaymentAdded subtype
1691     * @return builder
1692     */
1693    public static com.commercetools.api.models.message.OrderPaymentAddedMessageBuilder orderPaymentAddedBuilder() {
1694        return com.commercetools.api.models.message.OrderPaymentAddedMessageBuilder.of();
1695    }
1696
1697    /**
1698     * builder for orderPaymentStateChanged subtype
1699     * @return builder
1700     */
1701    public static com.commercetools.api.models.message.OrderPaymentStateChangedMessageBuilder orderPaymentStateChangedBuilder() {
1702        return com.commercetools.api.models.message.OrderPaymentStateChangedMessageBuilder.of();
1703    }
1704
1705    /**
1706     * builder for orderPurchaseOrderNumberSet subtype
1707     * @return builder
1708     */
1709    public static com.commercetools.api.models.message.OrderPurchaseOrderNumberSetMessageBuilder orderPurchaseOrderNumberSetBuilder() {
1710        return com.commercetools.api.models.message.OrderPurchaseOrderNumberSetMessageBuilder.of();
1711    }
1712
1713    /**
1714     * builder for orderReturnShipmentStateChanged subtype
1715     * @return builder
1716     */
1717    public static com.commercetools.api.models.message.OrderReturnShipmentStateChangedMessageBuilder orderReturnShipmentStateChangedBuilder() {
1718        return com.commercetools.api.models.message.OrderReturnShipmentStateChangedMessageBuilder.of();
1719    }
1720
1721    /**
1722     * builder for orderShipmentStateChanged subtype
1723     * @return builder
1724     */
1725    public static com.commercetools.api.models.message.OrderShipmentStateChangedMessageBuilder orderShipmentStateChangedBuilder() {
1726        return com.commercetools.api.models.message.OrderShipmentStateChangedMessageBuilder.of();
1727    }
1728
1729    /**
1730     * builder for orderShippingAddressSet subtype
1731     * @return builder
1732     */
1733    public static com.commercetools.api.models.message.OrderShippingAddressSetMessageBuilder orderShippingAddressSetBuilder() {
1734        return com.commercetools.api.models.message.OrderShippingAddressSetMessageBuilder.of();
1735    }
1736
1737    /**
1738     * builder for orderShippingInfoSet subtype
1739     * @return builder
1740     */
1741    public static com.commercetools.api.models.message.OrderShippingInfoSetMessageBuilder orderShippingInfoSetBuilder() {
1742        return com.commercetools.api.models.message.OrderShippingInfoSetMessageBuilder.of();
1743    }
1744
1745    /**
1746     * builder for orderShippingRateInputSet subtype
1747     * @return builder
1748     */
1749    public static com.commercetools.api.models.message.OrderShippingRateInputSetMessageBuilder orderShippingRateInputSetBuilder() {
1750        return com.commercetools.api.models.message.OrderShippingRateInputSetMessageBuilder.of();
1751    }
1752
1753    /**
1754     * builder for orderStateChanged subtype
1755     * @return builder
1756     */
1757    public static com.commercetools.api.models.message.OrderStateChangedMessageBuilder orderStateChangedBuilder() {
1758        return com.commercetools.api.models.message.OrderStateChangedMessageBuilder.of();
1759    }
1760
1761    /**
1762     * builder for orderStateTransition subtype
1763     * @return builder
1764     */
1765    public static com.commercetools.api.models.message.OrderStateTransitionMessageBuilder orderStateTransitionBuilder() {
1766        return com.commercetools.api.models.message.OrderStateTransitionMessageBuilder.of();
1767    }
1768
1769    /**
1770     * builder for orderStoreSet subtype
1771     * @return builder
1772     */
1773    public static com.commercetools.api.models.message.OrderStoreSetMessageBuilder orderStoreSetBuilder() {
1774        return com.commercetools.api.models.message.OrderStoreSetMessageBuilder.of();
1775    }
1776
1777    /**
1778     * builder for parcelAddedToDelivery subtype
1779     * @return builder
1780     */
1781    public static com.commercetools.api.models.message.ParcelAddedToDeliveryMessageBuilder parcelAddedToDeliveryBuilder() {
1782        return com.commercetools.api.models.message.ParcelAddedToDeliveryMessageBuilder.of();
1783    }
1784
1785    /**
1786     * builder for parcelItemsUpdated subtype
1787     * @return builder
1788     */
1789    public static com.commercetools.api.models.message.ParcelItemsUpdatedMessageBuilder parcelItemsUpdatedBuilder() {
1790        return com.commercetools.api.models.message.ParcelItemsUpdatedMessageBuilder.of();
1791    }
1792
1793    /**
1794     * builder for parcelMeasurementsUpdated subtype
1795     * @return builder
1796     */
1797    public static com.commercetools.api.models.message.ParcelMeasurementsUpdatedMessageBuilder parcelMeasurementsUpdatedBuilder() {
1798        return com.commercetools.api.models.message.ParcelMeasurementsUpdatedMessageBuilder.of();
1799    }
1800
1801    /**
1802     * builder for parcelRemovedFromDelivery subtype
1803     * @return builder
1804     */
1805    public static com.commercetools.api.models.message.ParcelRemovedFromDeliveryMessageBuilder parcelRemovedFromDeliveryBuilder() {
1806        return com.commercetools.api.models.message.ParcelRemovedFromDeliveryMessageBuilder.of();
1807    }
1808
1809    /**
1810     * builder for parcelTrackingDataUpdated subtype
1811     * @return builder
1812     */
1813    public static com.commercetools.api.models.message.ParcelTrackingDataUpdatedMessageBuilder parcelTrackingDataUpdatedBuilder() {
1814        return com.commercetools.api.models.message.ParcelTrackingDataUpdatedMessageBuilder.of();
1815    }
1816
1817    /**
1818     * builder for paymentCreated subtype
1819     * @return builder
1820     */
1821    public static com.commercetools.api.models.message.PaymentCreatedMessageBuilder paymentCreatedBuilder() {
1822        return com.commercetools.api.models.message.PaymentCreatedMessageBuilder.of();
1823    }
1824
1825    /**
1826     * builder for paymentInteractionAdded subtype
1827     * @return builder
1828     */
1829    public static com.commercetools.api.models.message.PaymentInteractionAddedMessageBuilder paymentInteractionAddedBuilder() {
1830        return com.commercetools.api.models.message.PaymentInteractionAddedMessageBuilder.of();
1831    }
1832
1833    /**
1834     * builder for paymentStatusInterfaceCodeSet subtype
1835     * @return builder
1836     */
1837    public static com.commercetools.api.models.message.PaymentStatusInterfaceCodeSetMessageBuilder paymentStatusInterfaceCodeSetBuilder() {
1838        return com.commercetools.api.models.message.PaymentStatusInterfaceCodeSetMessageBuilder.of();
1839    }
1840
1841    /**
1842     * builder for paymentStatusStateTransition subtype
1843     * @return builder
1844     */
1845    public static com.commercetools.api.models.message.PaymentStatusStateTransitionMessageBuilder paymentStatusStateTransitionBuilder() {
1846        return com.commercetools.api.models.message.PaymentStatusStateTransitionMessageBuilder.of();
1847    }
1848
1849    /**
1850     * builder for paymentTransactionAdded subtype
1851     * @return builder
1852     */
1853    public static com.commercetools.api.models.message.PaymentTransactionAddedMessageBuilder paymentTransactionAddedBuilder() {
1854        return com.commercetools.api.models.message.PaymentTransactionAddedMessageBuilder.of();
1855    }
1856
1857    /**
1858     * builder for paymentTransactionStateChanged subtype
1859     * @return builder
1860     */
1861    public static com.commercetools.api.models.message.PaymentTransactionStateChangedMessageBuilder paymentTransactionStateChangedBuilder() {
1862        return com.commercetools.api.models.message.PaymentTransactionStateChangedMessageBuilder.of();
1863    }
1864
1865    /**
1866     * builder for productAddedToCategory subtype
1867     * @return builder
1868     */
1869    public static com.commercetools.api.models.message.ProductAddedToCategoryMessageBuilder productAddedToCategoryBuilder() {
1870        return com.commercetools.api.models.message.ProductAddedToCategoryMessageBuilder.of();
1871    }
1872
1873    /**
1874     * builder for productCreated subtype
1875     * @return builder
1876     */
1877    public static com.commercetools.api.models.message.ProductCreatedMessageBuilder productCreatedBuilder() {
1878        return com.commercetools.api.models.message.ProductCreatedMessageBuilder.of();
1879    }
1880
1881    /**
1882     * builder for productDeleted subtype
1883     * @return builder
1884     */
1885    public static com.commercetools.api.models.message.ProductDeletedMessageBuilder productDeletedBuilder() {
1886        return com.commercetools.api.models.message.ProductDeletedMessageBuilder.of();
1887    }
1888
1889    /**
1890     * builder for productImageAdded subtype
1891     * @return builder
1892     */
1893    public static com.commercetools.api.models.message.ProductImageAddedMessageBuilder productImageAddedBuilder() {
1894        return com.commercetools.api.models.message.ProductImageAddedMessageBuilder.of();
1895    }
1896
1897    /**
1898     * builder for productPriceAdded subtype
1899     * @return builder
1900     */
1901    public static com.commercetools.api.models.message.ProductPriceAddedMessageBuilder productPriceAddedBuilder() {
1902        return com.commercetools.api.models.message.ProductPriceAddedMessageBuilder.of();
1903    }
1904
1905    /**
1906     * builder for productPriceChanged subtype
1907     * @return builder
1908     */
1909    public static com.commercetools.api.models.message.ProductPriceChangedMessageBuilder productPriceChangedBuilder() {
1910        return com.commercetools.api.models.message.ProductPriceChangedMessageBuilder.of();
1911    }
1912
1913    /**
1914     * builder for productPriceDiscountsSet subtype
1915     * @return builder
1916     */
1917    public static com.commercetools.api.models.message.ProductPriceDiscountsSetMessageBuilder productPriceDiscountsSetBuilder() {
1918        return com.commercetools.api.models.message.ProductPriceDiscountsSetMessageBuilder.of();
1919    }
1920
1921    /**
1922     * builder for productPriceExternalDiscountSet subtype
1923     * @return builder
1924     */
1925    public static com.commercetools.api.models.message.ProductPriceExternalDiscountSetMessageBuilder productPriceExternalDiscountSetBuilder() {
1926        return com.commercetools.api.models.message.ProductPriceExternalDiscountSetMessageBuilder.of();
1927    }
1928
1929    /**
1930     * builder for productPriceKeySet subtype
1931     * @return builder
1932     */
1933    public static com.commercetools.api.models.message.ProductPriceKeySetMessageBuilder productPriceKeySetBuilder() {
1934        return com.commercetools.api.models.message.ProductPriceKeySetMessageBuilder.of();
1935    }
1936
1937    /**
1938     * builder for productPriceModeSet subtype
1939     * @return builder
1940     */
1941    public static com.commercetools.api.models.message.ProductPriceModeSetMessageBuilder productPriceModeSetBuilder() {
1942        return com.commercetools.api.models.message.ProductPriceModeSetMessageBuilder.of();
1943    }
1944
1945    /**
1946     * builder for productPriceRemoved subtype
1947     * @return builder
1948     */
1949    public static com.commercetools.api.models.message.ProductPriceRemovedMessageBuilder productPriceRemovedBuilder() {
1950        return com.commercetools.api.models.message.ProductPriceRemovedMessageBuilder.of();
1951    }
1952
1953    /**
1954     * builder for productPricesSet subtype
1955     * @return builder
1956     */
1957    public static com.commercetools.api.models.message.ProductPricesSetMessageBuilder productPricesSetBuilder() {
1958        return com.commercetools.api.models.message.ProductPricesSetMessageBuilder.of();
1959    }
1960
1961    /**
1962     * builder for productPublished subtype
1963     * @return builder
1964     */
1965    public static com.commercetools.api.models.message.ProductPublishedMessageBuilder productPublishedBuilder() {
1966        return com.commercetools.api.models.message.ProductPublishedMessageBuilder.of();
1967    }
1968
1969    /**
1970     * builder for productRemovedFromCategory subtype
1971     * @return builder
1972     */
1973    public static com.commercetools.api.models.message.ProductRemovedFromCategoryMessageBuilder productRemovedFromCategoryBuilder() {
1974        return com.commercetools.api.models.message.ProductRemovedFromCategoryMessageBuilder.of();
1975    }
1976
1977    /**
1978     * builder for productRevertedStagedChanges subtype
1979     * @return builder
1980     */
1981    public static com.commercetools.api.models.message.ProductRevertedStagedChangesMessageBuilder productRevertedStagedChangesBuilder() {
1982        return com.commercetools.api.models.message.ProductRevertedStagedChangesMessageBuilder.of();
1983    }
1984
1985    /**
1986     * builder for productSelectionCreated subtype
1987     * @return builder
1988     */
1989    public static com.commercetools.api.models.message.ProductSelectionCreatedMessageBuilder productSelectionCreatedBuilder() {
1990        return com.commercetools.api.models.message.ProductSelectionCreatedMessageBuilder.of();
1991    }
1992
1993    /**
1994     * builder for productSelectionDeleted subtype
1995     * @return builder
1996     */
1997    public static com.commercetools.api.models.message.ProductSelectionDeletedMessageBuilder productSelectionDeletedBuilder() {
1998        return com.commercetools.api.models.message.ProductSelectionDeletedMessageBuilder.of();
1999    }
2000
2001    /**
2002     * builder for productSelectionProductAdded subtype
2003     * @return builder
2004     */
2005    public static com.commercetools.api.models.message.ProductSelectionProductAddedMessageBuilder productSelectionProductAddedBuilder() {
2006        return com.commercetools.api.models.message.ProductSelectionProductAddedMessageBuilder.of();
2007    }
2008
2009    /**
2010     * builder for productSelectionProductExcluded subtype
2011     * @return builder
2012     */
2013    public static com.commercetools.api.models.message.ProductSelectionProductExcludedMessageBuilder productSelectionProductExcludedBuilder() {
2014        return com.commercetools.api.models.message.ProductSelectionProductExcludedMessageBuilder.of();
2015    }
2016
2017    /**
2018     * builder for productSelectionProductRemoved subtype
2019     * @return builder
2020     */
2021    public static com.commercetools.api.models.message.ProductSelectionProductRemovedMessageBuilder productSelectionProductRemovedBuilder() {
2022        return com.commercetools.api.models.message.ProductSelectionProductRemovedMessageBuilder.of();
2023    }
2024
2025    /**
2026     * builder for productSelectionVariantExclusionChanged subtype
2027     * @return builder
2028     */
2029    public static com.commercetools.api.models.message.ProductSelectionVariantExclusionChangedMessageBuilder productSelectionVariantExclusionChangedBuilder() {
2030        return com.commercetools.api.models.message.ProductSelectionVariantExclusionChangedMessageBuilder.of();
2031    }
2032
2033    /**
2034     * builder for productSelectionVariantSelectionChanged subtype
2035     * @return builder
2036     */
2037    public static com.commercetools.api.models.message.ProductSelectionVariantSelectionChangedMessageBuilder productSelectionVariantSelectionChangedBuilder() {
2038        return com.commercetools.api.models.message.ProductSelectionVariantSelectionChangedMessageBuilder.of();
2039    }
2040
2041    /**
2042     * builder for productSlugChanged subtype
2043     * @return builder
2044     */
2045    public static com.commercetools.api.models.message.ProductSlugChangedMessageBuilder productSlugChangedBuilder() {
2046        return com.commercetools.api.models.message.ProductSlugChangedMessageBuilder.of();
2047    }
2048
2049    /**
2050     * builder for productStateTransition subtype
2051     * @return builder
2052     */
2053    public static com.commercetools.api.models.message.ProductStateTransitionMessageBuilder productStateTransitionBuilder() {
2054        return com.commercetools.api.models.message.ProductStateTransitionMessageBuilder.of();
2055    }
2056
2057    /**
2058     * builder for productUnpublished subtype
2059     * @return builder
2060     */
2061    public static com.commercetools.api.models.message.ProductUnpublishedMessageBuilder productUnpublishedBuilder() {
2062        return com.commercetools.api.models.message.ProductUnpublishedMessageBuilder.of();
2063    }
2064
2065    /**
2066     * builder for productVariantAdded subtype
2067     * @return builder
2068     */
2069    public static com.commercetools.api.models.message.ProductVariantAddedMessageBuilder productVariantAddedBuilder() {
2070        return com.commercetools.api.models.message.ProductVariantAddedMessageBuilder.of();
2071    }
2072
2073    /**
2074     * builder for productVariantDeleted subtype
2075     * @return builder
2076     */
2077    public static com.commercetools.api.models.message.ProductVariantDeletedMessageBuilder productVariantDeletedBuilder() {
2078        return com.commercetools.api.models.message.ProductVariantDeletedMessageBuilder.of();
2079    }
2080
2081    /**
2082     * builder for quoteCreated subtype
2083     * @return builder
2084     */
2085    public static com.commercetools.api.models.message.QuoteCreatedMessageBuilder quoteCreatedBuilder() {
2086        return com.commercetools.api.models.message.QuoteCreatedMessageBuilder.of();
2087    }
2088
2089    /**
2090     * builder for quoteCustomerChanged subtype
2091     * @return builder
2092     */
2093    public static com.commercetools.api.models.message.QuoteCustomerChangedMessageBuilder quoteCustomerChangedBuilder() {
2094        return com.commercetools.api.models.message.QuoteCustomerChangedMessageBuilder.of();
2095    }
2096
2097    /**
2098     * builder for quoteDeleted subtype
2099     * @return builder
2100     */
2101    public static com.commercetools.api.models.message.QuoteDeletedMessageBuilder quoteDeletedBuilder() {
2102        return com.commercetools.api.models.message.QuoteDeletedMessageBuilder.of();
2103    }
2104
2105    /**
2106     * builder for quoteRenegotiationRequested subtype
2107     * @return builder
2108     */
2109    public static com.commercetools.api.models.message.QuoteRenegotiationRequestedMessageBuilder quoteRenegotiationRequestedBuilder() {
2110        return com.commercetools.api.models.message.QuoteRenegotiationRequestedMessageBuilder.of();
2111    }
2112
2113    /**
2114     * builder for quoteRequestCreated subtype
2115     * @return builder
2116     */
2117    public static com.commercetools.api.models.message.QuoteRequestCreatedMessageBuilder quoteRequestCreatedBuilder() {
2118        return com.commercetools.api.models.message.QuoteRequestCreatedMessageBuilder.of();
2119    }
2120
2121    /**
2122     * builder for quoteRequestCustomerChanged subtype
2123     * @return builder
2124     */
2125    public static com.commercetools.api.models.message.QuoteRequestCustomerChangedMessageBuilder quoteRequestCustomerChangedBuilder() {
2126        return com.commercetools.api.models.message.QuoteRequestCustomerChangedMessageBuilder.of();
2127    }
2128
2129    /**
2130     * builder for quoteRequestDeleted subtype
2131     * @return builder
2132     */
2133    public static com.commercetools.api.models.message.QuoteRequestDeletedMessageBuilder quoteRequestDeletedBuilder() {
2134        return com.commercetools.api.models.message.QuoteRequestDeletedMessageBuilder.of();
2135    }
2136
2137    /**
2138     * builder for quoteRequestStateChanged subtype
2139     * @return builder
2140     */
2141    public static com.commercetools.api.models.message.QuoteRequestStateChangedMessageBuilder quoteRequestStateChangedBuilder() {
2142        return com.commercetools.api.models.message.QuoteRequestStateChangedMessageBuilder.of();
2143    }
2144
2145    /**
2146     * builder for quoteRequestStateTransition subtype
2147     * @return builder
2148     */
2149    public static com.commercetools.api.models.message.QuoteRequestStateTransitionMessageBuilder quoteRequestStateTransitionBuilder() {
2150        return com.commercetools.api.models.message.QuoteRequestStateTransitionMessageBuilder.of();
2151    }
2152
2153    /**
2154     * builder for quoteStateChanged subtype
2155     * @return builder
2156     */
2157    public static com.commercetools.api.models.message.QuoteStateChangedMessageBuilder quoteStateChangedBuilder() {
2158        return com.commercetools.api.models.message.QuoteStateChangedMessageBuilder.of();
2159    }
2160
2161    /**
2162     * builder for quoteStateTransition subtype
2163     * @return builder
2164     */
2165    public static com.commercetools.api.models.message.QuoteStateTransitionMessageBuilder quoteStateTransitionBuilder() {
2166        return com.commercetools.api.models.message.QuoteStateTransitionMessageBuilder.of();
2167    }
2168
2169    /**
2170     * builder for returnInfoAdded subtype
2171     * @return builder
2172     */
2173    public static com.commercetools.api.models.message.ReturnInfoAddedMessageBuilder returnInfoAddedBuilder() {
2174        return com.commercetools.api.models.message.ReturnInfoAddedMessageBuilder.of();
2175    }
2176
2177    /**
2178     * builder for returnInfoSet subtype
2179     * @return builder
2180     */
2181    public static com.commercetools.api.models.message.ReturnInfoSetMessageBuilder returnInfoSetBuilder() {
2182        return com.commercetools.api.models.message.ReturnInfoSetMessageBuilder.of();
2183    }
2184
2185    /**
2186     * builder for reviewCreated subtype
2187     * @return builder
2188     */
2189    public static com.commercetools.api.models.message.ReviewCreatedMessageBuilder reviewCreatedBuilder() {
2190        return com.commercetools.api.models.message.ReviewCreatedMessageBuilder.of();
2191    }
2192
2193    /**
2194     * builder for reviewRatingSet subtype
2195     * @return builder
2196     */
2197    public static com.commercetools.api.models.message.ReviewRatingSetMessageBuilder reviewRatingSetBuilder() {
2198        return com.commercetools.api.models.message.ReviewRatingSetMessageBuilder.of();
2199    }
2200
2201    /**
2202     * builder for reviewStateTransition subtype
2203     * @return builder
2204     */
2205    public static com.commercetools.api.models.message.ReviewStateTransitionMessageBuilder reviewStateTransitionBuilder() {
2206        return com.commercetools.api.models.message.ReviewStateTransitionMessageBuilder.of();
2207    }
2208
2209    /**
2210     * builder for stagedQuoteCreated subtype
2211     * @return builder
2212     */
2213    public static com.commercetools.api.models.message.StagedQuoteCreatedMessageBuilder stagedQuoteCreatedBuilder() {
2214        return com.commercetools.api.models.message.StagedQuoteCreatedMessageBuilder.of();
2215    }
2216
2217    /**
2218     * builder for stagedQuoteDeleted subtype
2219     * @return builder
2220     */
2221    public static com.commercetools.api.models.message.StagedQuoteDeletedMessageBuilder stagedQuoteDeletedBuilder() {
2222        return com.commercetools.api.models.message.StagedQuoteDeletedMessageBuilder.of();
2223    }
2224
2225    /**
2226     * builder for stagedQuoteSellerCommentSet subtype
2227     * @return builder
2228     */
2229    public static com.commercetools.api.models.message.StagedQuoteSellerCommentSetMessageBuilder stagedQuoteSellerCommentSetBuilder() {
2230        return com.commercetools.api.models.message.StagedQuoteSellerCommentSetMessageBuilder.of();
2231    }
2232
2233    /**
2234     * builder for stagedQuoteStateChanged subtype
2235     * @return builder
2236     */
2237    public static com.commercetools.api.models.message.StagedQuoteStateChangedMessageBuilder stagedQuoteStateChangedBuilder() {
2238        return com.commercetools.api.models.message.StagedQuoteStateChangedMessageBuilder.of();
2239    }
2240
2241    /**
2242     * builder for stagedQuoteStateTransition subtype
2243     * @return builder
2244     */
2245    public static com.commercetools.api.models.message.StagedQuoteStateTransitionMessageBuilder stagedQuoteStateTransitionBuilder() {
2246        return com.commercetools.api.models.message.StagedQuoteStateTransitionMessageBuilder.of();
2247    }
2248
2249    /**
2250     * builder for stagedQuoteValidToSet subtype
2251     * @return builder
2252     */
2253    public static com.commercetools.api.models.message.StagedQuoteValidToSetMessageBuilder stagedQuoteValidToSetBuilder() {
2254        return com.commercetools.api.models.message.StagedQuoteValidToSetMessageBuilder.of();
2255    }
2256
2257    /**
2258     * builder for standalonePriceActiveChanged subtype
2259     * @return builder
2260     */
2261    public static com.commercetools.api.models.message.StandalonePriceActiveChangedMessageBuilder standalonePriceActiveChangedBuilder() {
2262        return com.commercetools.api.models.message.StandalonePriceActiveChangedMessageBuilder.of();
2263    }
2264
2265    /**
2266     * builder for standalonePriceCreated subtype
2267     * @return builder
2268     */
2269    public static com.commercetools.api.models.message.StandalonePriceCreatedMessageBuilder standalonePriceCreatedBuilder() {
2270        return com.commercetools.api.models.message.StandalonePriceCreatedMessageBuilder.of();
2271    }
2272
2273    /**
2274     * builder for standalonePriceDeleted subtype
2275     * @return builder
2276     */
2277    public static com.commercetools.api.models.message.StandalonePriceDeletedMessageBuilder standalonePriceDeletedBuilder() {
2278        return com.commercetools.api.models.message.StandalonePriceDeletedMessageBuilder.of();
2279    }
2280
2281    /**
2282     * builder for standalonePriceDiscountSet subtype
2283     * @return builder
2284     */
2285    public static com.commercetools.api.models.message.StandalonePriceDiscountSetMessageBuilder standalonePriceDiscountSetBuilder() {
2286        return com.commercetools.api.models.message.StandalonePriceDiscountSetMessageBuilder.of();
2287    }
2288
2289    /**
2290     * builder for standalonePriceExternalDiscountSet subtype
2291     * @return builder
2292     */
2293    public static com.commercetools.api.models.message.StandalonePriceExternalDiscountSetMessageBuilder standalonePriceExternalDiscountSetBuilder() {
2294        return com.commercetools.api.models.message.StandalonePriceExternalDiscountSetMessageBuilder.of();
2295    }
2296
2297    /**
2298     * builder for standalonePriceKeySet subtype
2299     * @return builder
2300     */
2301    public static com.commercetools.api.models.message.StandalonePriceKeySetMessageBuilder standalonePriceKeySetBuilder() {
2302        return com.commercetools.api.models.message.StandalonePriceKeySetMessageBuilder.of();
2303    }
2304
2305    /**
2306     * builder for standalonePriceStagedChangesApplied subtype
2307     * @return builder
2308     */
2309    public static com.commercetools.api.models.message.StandalonePriceStagedChangesAppliedMessageBuilder standalonePriceStagedChangesAppliedBuilder() {
2310        return com.commercetools.api.models.message.StandalonePriceStagedChangesAppliedMessageBuilder.of();
2311    }
2312
2313    /**
2314     * builder for standalonePriceStagedChangesRemoved subtype
2315     * @return builder
2316     */
2317    public static com.commercetools.api.models.message.StandalonePriceStagedChangesRemovedMessageBuilder standalonePriceStagedChangesRemovedBuilder() {
2318        return com.commercetools.api.models.message.StandalonePriceStagedChangesRemovedMessageBuilder.of();
2319    }
2320
2321    /**
2322     * builder for standalonePriceTierAdded subtype
2323     * @return builder
2324     */
2325    public static com.commercetools.api.models.message.StandalonePriceTierAddedMessageBuilder standalonePriceTierAddedBuilder() {
2326        return com.commercetools.api.models.message.StandalonePriceTierAddedMessageBuilder.of();
2327    }
2328
2329    /**
2330     * builder for standalonePriceTierRemoved subtype
2331     * @return builder
2332     */
2333    public static com.commercetools.api.models.message.StandalonePriceTierRemovedMessageBuilder standalonePriceTierRemovedBuilder() {
2334        return com.commercetools.api.models.message.StandalonePriceTierRemovedMessageBuilder.of();
2335    }
2336
2337    /**
2338     * builder for standalonePriceTiersSet subtype
2339     * @return builder
2340     */
2341    public static com.commercetools.api.models.message.StandalonePriceTiersSetMessageBuilder standalonePriceTiersSetBuilder() {
2342        return com.commercetools.api.models.message.StandalonePriceTiersSetMessageBuilder.of();
2343    }
2344
2345    /**
2346     * builder for standalonePriceValidFromAndUntilSet subtype
2347     * @return builder
2348     */
2349    public static com.commercetools.api.models.message.StandalonePriceValidFromAndUntilSetMessageBuilder standalonePriceValidFromAndUntilSetBuilder() {
2350        return com.commercetools.api.models.message.StandalonePriceValidFromAndUntilSetMessageBuilder.of();
2351    }
2352
2353    /**
2354     * builder for standalonePriceValidFromSet subtype
2355     * @return builder
2356     */
2357    public static com.commercetools.api.models.message.StandalonePriceValidFromSetMessageBuilder standalonePriceValidFromSetBuilder() {
2358        return com.commercetools.api.models.message.StandalonePriceValidFromSetMessageBuilder.of();
2359    }
2360
2361    /**
2362     * builder for standalonePriceValidUntilSet subtype
2363     * @return builder
2364     */
2365    public static com.commercetools.api.models.message.StandalonePriceValidUntilSetMessageBuilder standalonePriceValidUntilSetBuilder() {
2366        return com.commercetools.api.models.message.StandalonePriceValidUntilSetMessageBuilder.of();
2367    }
2368
2369    /**
2370     * builder for standalonePriceValueChanged subtype
2371     * @return builder
2372     */
2373    public static com.commercetools.api.models.message.StandalonePriceValueChangedMessageBuilder standalonePriceValueChangedBuilder() {
2374        return com.commercetools.api.models.message.StandalonePriceValueChangedMessageBuilder.of();
2375    }
2376
2377    /**
2378     * builder for storeCountriesChanged subtype
2379     * @return builder
2380     */
2381    public static com.commercetools.api.models.message.StoreCountriesChangedMessageBuilder storeCountriesChangedBuilder() {
2382        return com.commercetools.api.models.message.StoreCountriesChangedMessageBuilder.of();
2383    }
2384
2385    /**
2386     * builder for storeCreated subtype
2387     * @return builder
2388     */
2389    public static com.commercetools.api.models.message.StoreCreatedMessageBuilder storeCreatedBuilder() {
2390        return com.commercetools.api.models.message.StoreCreatedMessageBuilder.of();
2391    }
2392
2393    /**
2394     * builder for storeDeleted subtype
2395     * @return builder
2396     */
2397    public static com.commercetools.api.models.message.StoreDeletedMessageBuilder storeDeletedBuilder() {
2398        return com.commercetools.api.models.message.StoreDeletedMessageBuilder.of();
2399    }
2400
2401    /**
2402     * builder for storeDistributionChannelsChanged subtype
2403     * @return builder
2404     */
2405    public static com.commercetools.api.models.message.StoreDistributionChannelsChangedMessageBuilder storeDistributionChannelsChangedBuilder() {
2406        return com.commercetools.api.models.message.StoreDistributionChannelsChangedMessageBuilder.of();
2407    }
2408
2409    /**
2410     * builder for storeLanguagesChanged subtype
2411     * @return builder
2412     */
2413    public static com.commercetools.api.models.message.StoreLanguagesChangedMessageBuilder storeLanguagesChangedBuilder() {
2414        return com.commercetools.api.models.message.StoreLanguagesChangedMessageBuilder.of();
2415    }
2416
2417    /**
2418     * builder for storeNameSet subtype
2419     * @return builder
2420     */
2421    public static com.commercetools.api.models.message.StoreNameSetMessageBuilder storeNameSetBuilder() {
2422        return com.commercetools.api.models.message.StoreNameSetMessageBuilder.of();
2423    }
2424
2425    /**
2426     * builder for storeProductSelectionsChanged subtype
2427     * @return builder
2428     */
2429    public static com.commercetools.api.models.message.StoreProductSelectionsChangedMessageBuilder storeProductSelectionsChangedBuilder() {
2430        return com.commercetools.api.models.message.StoreProductSelectionsChangedMessageBuilder.of();
2431    }
2432
2433    /**
2434     * builder for storeSupplyChannelsChanged subtype
2435     * @return builder
2436     */
2437    public static com.commercetools.api.models.message.StoreSupplyChannelsChangedMessageBuilder storeSupplyChannelsChangedBuilder() {
2438        return com.commercetools.api.models.message.StoreSupplyChannelsChangedMessageBuilder.of();
2439    }
2440
2441    /**
2442     * accessor map function
2443     * @param <T> mapped type
2444     * @param helper function to map the object
2445     * @return mapped value
2446     */
2447    default <T> T withMessage(Function<Message, T> helper) {
2448        return helper.apply(this);
2449    }
2450
2451    /**
2452     * gives a TypeReference for usage with Jackson DataBind
2453     * @return TypeReference
2454     */
2455    public static com.fasterxml.jackson.core.type.TypeReference<Message> typeReference() {
2456        return new com.fasterxml.jackson.core.type.TypeReference<Message>() {
2457            @Override
2458            public String toString() {
2459                return "TypeReference<Message>";
2460            }
2461        };
2462    }
2463}