001 002package com.commercetools.api.models.message; 003 004import java.time.*; 005import java.util.*; 006import java.util.function.Function; 007 008import javax.annotation.Nullable; 009import javax.validation.constraints.NotNull; 010 011import com.commercetools.api.models.business_unit.BusinessUnitStatus; 012import com.fasterxml.jackson.annotation.*; 013import com.fasterxml.jackson.databind.annotation.*; 014 015import io.vrap.rmf.base.client.utils.Generated; 016 017/** 018 * <p>Generated after a successful Change Status update action.</p> 019 * 020 * <hr> 021 * Example to create an instance using the builder pattern 022 * <div class=code-example> 023 * <pre><code class='java'> 024 * BusinessUnitStatusChangedMessage businessUnitStatusChangedMessage = BusinessUnitStatusChangedMessage.builder() 025 * .id("{id}") 026 * .version(0.3) 027 * .createdAt(ZonedDateTime.parse("2022-01-01T12:00:00.301Z")) 028 * .lastModifiedAt(ZonedDateTime.parse("2022-01-01T12:00:00.301Z")) 029 * .sequenceNumber(0.3) 030 * .resource(resourceBuilder -> resourceBuilder) 031 * .resourceVersion(0.3) 032 * .active(BusinessUnitStatus.ACTIVE) 033 * .build() 034 * </code></pre> 035 * </div> 036 */ 037@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 038@JsonDeserialize(as = BusinessUnitStatusChangedMessageImpl.class) 039public interface BusinessUnitStatusChangedMessage extends Message { 040 041 /** 042 * discriminator value for BusinessUnitStatusChangedMessage 043 */ 044 String BUSINESS_UNIT_STATUS_CHANGED = "BusinessUnitStatusChanged"; 045 046 /** 047 * <p>Updated status of the Business Unit.</p> 048 * @return active 049 */ 050 @NotNull 051 @JsonProperty("active") 052 public BusinessUnitStatus getActive(); 053 054 /** 055 * <p>Updated status of the Business Unit.</p> 056 * @param active value to be set 057 */ 058 059 public void setActive(final BusinessUnitStatus active); 060 061 /** 062 * factory method 063 * @return instance of BusinessUnitStatusChangedMessage 064 */ 065 public static BusinessUnitStatusChangedMessage of() { 066 return new BusinessUnitStatusChangedMessageImpl(); 067 } 068 069 /** 070 * factory method to create a shallow copy BusinessUnitStatusChangedMessage 071 * @param template instance to be copied 072 * @return copy instance 073 */ 074 public static BusinessUnitStatusChangedMessage of(final BusinessUnitStatusChangedMessage template) { 075 BusinessUnitStatusChangedMessageImpl instance = new BusinessUnitStatusChangedMessageImpl(); 076 instance.setId(template.getId()); 077 instance.setVersion(template.getVersion()); 078 instance.setCreatedAt(template.getCreatedAt()); 079 instance.setLastModifiedAt(template.getLastModifiedAt()); 080 instance.setLastModifiedBy(template.getLastModifiedBy()); 081 instance.setCreatedBy(template.getCreatedBy()); 082 instance.setSequenceNumber(template.getSequenceNumber()); 083 instance.setResource(template.getResource()); 084 instance.setResourceVersion(template.getResourceVersion()); 085 instance.setResourceUserProvidedIdentifiers(template.getResourceUserProvidedIdentifiers()); 086 instance.setActive(template.getActive()); 087 return instance; 088 } 089 090 /** 091 * factory method to create a deep copy of BusinessUnitStatusChangedMessage 092 * @param template instance to be copied 093 * @return copy instance 094 */ 095 @Nullable 096 public static BusinessUnitStatusChangedMessage deepCopy(@Nullable final BusinessUnitStatusChangedMessage template) { 097 if (template == null) { 098 return null; 099 } 100 BusinessUnitStatusChangedMessageImpl instance = new BusinessUnitStatusChangedMessageImpl(); 101 instance.setId(template.getId()); 102 instance.setVersion(template.getVersion()); 103 instance.setCreatedAt(template.getCreatedAt()); 104 instance.setLastModifiedAt(template.getLastModifiedAt()); 105 instance.setLastModifiedBy( 106 com.commercetools.api.models.common.LastModifiedBy.deepCopy(template.getLastModifiedBy())); 107 instance.setCreatedBy(com.commercetools.api.models.common.CreatedBy.deepCopy(template.getCreatedBy())); 108 instance.setSequenceNumber(template.getSequenceNumber()); 109 instance.setResource(com.commercetools.api.models.common.Reference.deepCopy(template.getResource())); 110 instance.setResourceVersion(template.getResourceVersion()); 111 instance.setResourceUserProvidedIdentifiers(com.commercetools.api.models.message.UserProvidedIdentifiers 112 .deepCopy(template.getResourceUserProvidedIdentifiers())); 113 instance.setActive(template.getActive()); 114 return instance; 115 } 116 117 /** 118 * builder factory method for BusinessUnitStatusChangedMessage 119 * @return builder 120 */ 121 public static BusinessUnitStatusChangedMessageBuilder builder() { 122 return BusinessUnitStatusChangedMessageBuilder.of(); 123 } 124 125 /** 126 * create builder for BusinessUnitStatusChangedMessage instance 127 * @param template instance with prefilled values for the builder 128 * @return builder 129 */ 130 public static BusinessUnitStatusChangedMessageBuilder builder(final BusinessUnitStatusChangedMessage template) { 131 return BusinessUnitStatusChangedMessageBuilder.of(template); 132 } 133 134 /** 135 * accessor map function 136 * @param <T> mapped type 137 * @param helper function to map the object 138 * @return mapped value 139 */ 140 default <T> T withBusinessUnitStatusChangedMessage(Function<BusinessUnitStatusChangedMessage, T> helper) { 141 return helper.apply(this); 142 } 143 144 /** 145 * gives a TypeReference for usage with Jackson DataBind 146 * @return TypeReference 147 */ 148 public static com.fasterxml.jackson.core.type.TypeReference<BusinessUnitStatusChangedMessage> typeReference() { 149 return new com.fasterxml.jackson.core.type.TypeReference<BusinessUnitStatusChangedMessage>() { 150 @Override 151 public String toString() { 152 return "TypeReference<BusinessUnitStatusChangedMessage>"; 153 } 154 }; 155 } 156}