001 002package com.commercetools.api.models.subscription; 003 004import java.util.*; 005import java.util.function.Function; 006 007import javax.annotation.Nullable; 008 009import io.vrap.rmf.base.client.Builder; 010import io.vrap.rmf.base.client.utils.Generated; 011 012/** 013 * ResourceUpdatedDeliveryPayloadBuilder 014 * <hr> 015 * Example to create an instance using the builder pattern 016 * <div class=code-example> 017 * <pre><code class='java'> 018 * ResourceUpdatedDeliveryPayload resourceUpdatedDeliveryPayload = ResourceUpdatedDeliveryPayload.builder() 019 * .projectKey("{projectKey}") 020 * .resource(resourceBuilder -> resourceBuilder) 021 * .version(0.3) 022 * .oldVersion(0.3) 023 * .modifiedAt(ZonedDateTime.parse("2022-01-01T12:00:00.301Z")) 024 * .build() 025 * </code></pre> 026 * </div> 027 */ 028@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 029public class ResourceUpdatedDeliveryPayloadBuilder implements Builder<ResourceUpdatedDeliveryPayload> { 030 031 private String projectKey; 032 033 private com.commercetools.api.models.common.Reference resource; 034 035 @Nullable 036 private com.commercetools.api.models.message.UserProvidedIdentifiers resourceUserProvidedIdentifiers; 037 038 private Long version; 039 040 private Long oldVersion; 041 042 private java.time.ZonedDateTime modifiedAt; 043 044 /** 045 * <p><code>key</code> of the Project. Useful in message processing if the Destination receives events from multiple Projects.</p> 046 * @param projectKey value to be set 047 * @return Builder 048 */ 049 050 public ResourceUpdatedDeliveryPayloadBuilder projectKey(final String projectKey) { 051 this.projectKey = projectKey; 052 return this; 053 } 054 055 /** 056 * <p>Reference to the resource that triggered the message.</p> 057 * @param resource value to be set 058 * @return Builder 059 */ 060 061 public ResourceUpdatedDeliveryPayloadBuilder resource( 062 final com.commercetools.api.models.common.Reference resource) { 063 this.resource = resource; 064 return this; 065 } 066 067 /** 068 * <p>Reference to the resource that triggered the message.</p> 069 * @param builder function to build the resource value 070 * @return Builder 071 */ 072 073 public ResourceUpdatedDeliveryPayloadBuilder resource( 074 Function<com.commercetools.api.models.common.ReferenceBuilder, Builder<? extends com.commercetools.api.models.common.Reference>> builder) { 075 this.resource = builder.apply(com.commercetools.api.models.common.ReferenceBuilder.of()).build(); 076 return this; 077 } 078 079 /** 080 * <p>User-defined unique identifiers of the resource.</p> 081 * @param builder function to build the resourceUserProvidedIdentifiers value 082 * @return Builder 083 */ 084 085 public ResourceUpdatedDeliveryPayloadBuilder resourceUserProvidedIdentifiers( 086 Function<com.commercetools.api.models.message.UserProvidedIdentifiersBuilder, com.commercetools.api.models.message.UserProvidedIdentifiersBuilder> builder) { 087 this.resourceUserProvidedIdentifiers = builder 088 .apply(com.commercetools.api.models.message.UserProvidedIdentifiersBuilder.of()) 089 .build(); 090 return this; 091 } 092 093 /** 094 * <p>User-defined unique identifiers of the resource.</p> 095 * @param builder function to build the resourceUserProvidedIdentifiers value 096 * @return Builder 097 */ 098 099 public ResourceUpdatedDeliveryPayloadBuilder withResourceUserProvidedIdentifiers( 100 Function<com.commercetools.api.models.message.UserProvidedIdentifiersBuilder, com.commercetools.api.models.message.UserProvidedIdentifiers> builder) { 101 this.resourceUserProvidedIdentifiers = builder 102 .apply(com.commercetools.api.models.message.UserProvidedIdentifiersBuilder.of()); 103 return this; 104 } 105 106 /** 107 * <p>User-defined unique identifiers of the resource.</p> 108 * @param resourceUserProvidedIdentifiers value to be set 109 * @return Builder 110 */ 111 112 public ResourceUpdatedDeliveryPayloadBuilder resourceUserProvidedIdentifiers( 113 @Nullable final com.commercetools.api.models.message.UserProvidedIdentifiers resourceUserProvidedIdentifiers) { 114 this.resourceUserProvidedIdentifiers = resourceUserProvidedIdentifiers; 115 return this; 116 } 117 118 /** 119 * <p>Last seen version of the resource.</p> 120 * @param version value to be set 121 * @return Builder 122 */ 123 124 public ResourceUpdatedDeliveryPayloadBuilder version(final Long version) { 125 this.version = version; 126 return this; 127 } 128 129 /** 130 * <p>Version of the resource before the update.</p> 131 * @param oldVersion value to be set 132 * @return Builder 133 */ 134 135 public ResourceUpdatedDeliveryPayloadBuilder oldVersion(final Long oldVersion) { 136 this.oldVersion = oldVersion; 137 return this; 138 } 139 140 /** 141 * <p>Date and time (UTC) the resource was last updated.</p> 142 * @param modifiedAt value to be set 143 * @return Builder 144 */ 145 146 public ResourceUpdatedDeliveryPayloadBuilder modifiedAt(final java.time.ZonedDateTime modifiedAt) { 147 this.modifiedAt = modifiedAt; 148 return this; 149 } 150 151 /** 152 * <p><code>key</code> of the Project. Useful in message processing if the Destination receives events from multiple Projects.</p> 153 * @return projectKey 154 */ 155 156 public String getProjectKey() { 157 return this.projectKey; 158 } 159 160 /** 161 * <p>Reference to the resource that triggered the message.</p> 162 * @return resource 163 */ 164 165 public com.commercetools.api.models.common.Reference getResource() { 166 return this.resource; 167 } 168 169 /** 170 * <p>User-defined unique identifiers of the resource.</p> 171 * @return resourceUserProvidedIdentifiers 172 */ 173 174 @Nullable 175 public com.commercetools.api.models.message.UserProvidedIdentifiers getResourceUserProvidedIdentifiers() { 176 return this.resourceUserProvidedIdentifiers; 177 } 178 179 /** 180 * <p>Last seen version of the resource.</p> 181 * @return version 182 */ 183 184 public Long getVersion() { 185 return this.version; 186 } 187 188 /** 189 * <p>Version of the resource before the update.</p> 190 * @return oldVersion 191 */ 192 193 public Long getOldVersion() { 194 return this.oldVersion; 195 } 196 197 /** 198 * <p>Date and time (UTC) the resource was last updated.</p> 199 * @return modifiedAt 200 */ 201 202 public java.time.ZonedDateTime getModifiedAt() { 203 return this.modifiedAt; 204 } 205 206 /** 207 * builds ResourceUpdatedDeliveryPayload with checking for non-null required values 208 * @return ResourceUpdatedDeliveryPayload 209 */ 210 public ResourceUpdatedDeliveryPayload build() { 211 Objects.requireNonNull(projectKey, ResourceUpdatedDeliveryPayload.class + ": projectKey is missing"); 212 Objects.requireNonNull(resource, ResourceUpdatedDeliveryPayload.class + ": resource is missing"); 213 Objects.requireNonNull(version, ResourceUpdatedDeliveryPayload.class + ": version is missing"); 214 Objects.requireNonNull(oldVersion, ResourceUpdatedDeliveryPayload.class + ": oldVersion is missing"); 215 Objects.requireNonNull(modifiedAt, ResourceUpdatedDeliveryPayload.class + ": modifiedAt is missing"); 216 return new ResourceUpdatedDeliveryPayloadImpl(projectKey, resource, resourceUserProvidedIdentifiers, version, 217 oldVersion, modifiedAt); 218 } 219 220 /** 221 * builds ResourceUpdatedDeliveryPayload without checking for non-null required values 222 * @return ResourceUpdatedDeliveryPayload 223 */ 224 public ResourceUpdatedDeliveryPayload buildUnchecked() { 225 return new ResourceUpdatedDeliveryPayloadImpl(projectKey, resource, resourceUserProvidedIdentifiers, version, 226 oldVersion, modifiedAt); 227 } 228 229 /** 230 * factory method for an instance of ResourceUpdatedDeliveryPayloadBuilder 231 * @return builder 232 */ 233 public static ResourceUpdatedDeliveryPayloadBuilder of() { 234 return new ResourceUpdatedDeliveryPayloadBuilder(); 235 } 236 237 /** 238 * create builder for ResourceUpdatedDeliveryPayload instance 239 * @param template instance with prefilled values for the builder 240 * @return builder 241 */ 242 public static ResourceUpdatedDeliveryPayloadBuilder of(final ResourceUpdatedDeliveryPayload template) { 243 ResourceUpdatedDeliveryPayloadBuilder builder = new ResourceUpdatedDeliveryPayloadBuilder(); 244 builder.projectKey = template.getProjectKey(); 245 builder.resource = template.getResource(); 246 builder.resourceUserProvidedIdentifiers = template.getResourceUserProvidedIdentifiers(); 247 builder.version = template.getVersion(); 248 builder.oldVersion = template.getOldVersion(); 249 builder.modifiedAt = template.getModifiedAt(); 250 return builder; 251 } 252 253}