001 002package com.commercetools.api.models.message; 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 * BusinessUnitAssociateModeChangedMessageBuilder 014 * <hr> 015 * Example to create an instance using the builder pattern 016 * <div class=code-example> 017 * <pre><code class='java'> 018 * BusinessUnitAssociateModeChangedMessage businessUnitAssociateModeChangedMessage = BusinessUnitAssociateModeChangedMessage.builder() 019 * .id("{id}") 020 * .version(0.3) 021 * .createdAt(ZonedDateTime.parse("2022-01-01T12:00:00.301Z")) 022 * .lastModifiedAt(ZonedDateTime.parse("2022-01-01T12:00:00.301Z")) 023 * .sequenceNumber(0.3) 024 * .resource(resourceBuilder -> resourceBuilder) 025 * .resourceVersion(0.3) 026 * .associateMode(BusinessUnitAssociateMode.EXPLICIT) 027 * .oldAssociateMode(BusinessUnitAssociateMode.EXPLICIT) 028 * .build() 029 * </code></pre> 030 * </div> 031 */ 032@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 033public class BusinessUnitAssociateModeChangedMessageBuilder 034 implements Builder<BusinessUnitAssociateModeChangedMessage> { 035 036 private String id; 037 038 private Long version; 039 040 private java.time.ZonedDateTime createdAt; 041 042 private java.time.ZonedDateTime lastModifiedAt; 043 044 @Nullable 045 private com.commercetools.api.models.common.LastModifiedBy lastModifiedBy; 046 047 @Nullable 048 private com.commercetools.api.models.common.CreatedBy createdBy; 049 050 private Long sequenceNumber; 051 052 private com.commercetools.api.models.common.Reference resource; 053 054 private Long resourceVersion; 055 056 @Nullable 057 private com.commercetools.api.models.message.UserProvidedIdentifiers resourceUserProvidedIdentifiers; 058 059 private com.commercetools.api.models.business_unit.BusinessUnitAssociateMode associateMode; 060 061 private com.commercetools.api.models.business_unit.BusinessUnitAssociateMode oldAssociateMode; 062 063 /** 064 * <p>Unique identifier of the Message. Can be used to track which Messages have been processed.</p> 065 * @param id value to be set 066 * @return Builder 067 */ 068 069 public BusinessUnitAssociateModeChangedMessageBuilder id(final String id) { 070 this.id = id; 071 return this; 072 } 073 074 /** 075 * <p>Version of a resource. In case of Messages, this is always <code>1</code>.</p> 076 * @param version value to be set 077 * @return Builder 078 */ 079 080 public BusinessUnitAssociateModeChangedMessageBuilder version(final Long version) { 081 this.version = version; 082 return this; 083 } 084 085 /** 086 * <p>Date and time (UTC) the Message was generated.</p> 087 * @param createdAt value to be set 088 * @return Builder 089 */ 090 091 public BusinessUnitAssociateModeChangedMessageBuilder createdAt(final java.time.ZonedDateTime createdAt) { 092 this.createdAt = createdAt; 093 return this; 094 } 095 096 /** 097 * <p>Value of <code>createdAt</code>.</p> 098 * @param lastModifiedAt value to be set 099 * @return Builder 100 */ 101 102 public BusinessUnitAssociateModeChangedMessageBuilder lastModifiedAt(final java.time.ZonedDateTime lastModifiedAt) { 103 this.lastModifiedAt = lastModifiedAt; 104 return this; 105 } 106 107 /** 108 * <p>Value of <code>createdBy</code>.</p> 109 * @param builder function to build the lastModifiedBy value 110 * @return Builder 111 */ 112 113 public BusinessUnitAssociateModeChangedMessageBuilder lastModifiedBy( 114 Function<com.commercetools.api.models.common.LastModifiedByBuilder, com.commercetools.api.models.common.LastModifiedByBuilder> builder) { 115 this.lastModifiedBy = builder.apply(com.commercetools.api.models.common.LastModifiedByBuilder.of()).build(); 116 return this; 117 } 118 119 /** 120 * <p>Value of <code>createdBy</code>.</p> 121 * @param builder function to build the lastModifiedBy value 122 * @return Builder 123 */ 124 125 public BusinessUnitAssociateModeChangedMessageBuilder withLastModifiedBy( 126 Function<com.commercetools.api.models.common.LastModifiedByBuilder, com.commercetools.api.models.common.LastModifiedBy> builder) { 127 this.lastModifiedBy = builder.apply(com.commercetools.api.models.common.LastModifiedByBuilder.of()); 128 return this; 129 } 130 131 /** 132 * <p>Value of <code>createdBy</code>.</p> 133 * @param lastModifiedBy value to be set 134 * @return Builder 135 */ 136 137 public BusinessUnitAssociateModeChangedMessageBuilder lastModifiedBy( 138 @Nullable final com.commercetools.api.models.common.LastModifiedBy lastModifiedBy) { 139 this.lastModifiedBy = lastModifiedBy; 140 return this; 141 } 142 143 /** 144 * <p>Present on resources created after 1 February 2019 except for events not tracked.</p> 145 * @param builder function to build the createdBy value 146 * @return Builder 147 */ 148 149 public BusinessUnitAssociateModeChangedMessageBuilder createdBy( 150 Function<com.commercetools.api.models.common.CreatedByBuilder, com.commercetools.api.models.common.CreatedByBuilder> builder) { 151 this.createdBy = builder.apply(com.commercetools.api.models.common.CreatedByBuilder.of()).build(); 152 return this; 153 } 154 155 /** 156 * <p>Present on resources created after 1 February 2019 except for events not tracked.</p> 157 * @param builder function to build the createdBy value 158 * @return Builder 159 */ 160 161 public BusinessUnitAssociateModeChangedMessageBuilder withCreatedBy( 162 Function<com.commercetools.api.models.common.CreatedByBuilder, com.commercetools.api.models.common.CreatedBy> builder) { 163 this.createdBy = builder.apply(com.commercetools.api.models.common.CreatedByBuilder.of()); 164 return this; 165 } 166 167 /** 168 * <p>Present on resources created after 1 February 2019 except for events not tracked.</p> 169 * @param createdBy value to be set 170 * @return Builder 171 */ 172 173 public BusinessUnitAssociateModeChangedMessageBuilder createdBy( 174 @Nullable final com.commercetools.api.models.common.CreatedBy createdBy) { 175 this.createdBy = createdBy; 176 return this; 177 } 178 179 /** 180 * <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> 181 * @param sequenceNumber value to be set 182 * @return Builder 183 */ 184 185 public BusinessUnitAssociateModeChangedMessageBuilder sequenceNumber(final Long sequenceNumber) { 186 this.sequenceNumber = sequenceNumber; 187 return this; 188 } 189 190 /** 191 * <p>Reference to the resource on which the change or action was performed.</p> 192 * @param resource value to be set 193 * @return Builder 194 */ 195 196 public BusinessUnitAssociateModeChangedMessageBuilder resource( 197 final com.commercetools.api.models.common.Reference resource) { 198 this.resource = resource; 199 return this; 200 } 201 202 /** 203 * <p>Reference to the resource on which the change or action was performed.</p> 204 * @param builder function to build the resource value 205 * @return Builder 206 */ 207 208 public BusinessUnitAssociateModeChangedMessageBuilder resource( 209 Function<com.commercetools.api.models.common.ReferenceBuilder, Builder<? extends com.commercetools.api.models.common.Reference>> builder) { 210 this.resource = builder.apply(com.commercetools.api.models.common.ReferenceBuilder.of()).build(); 211 return this; 212 } 213 214 /** 215 * <p>Version of the resource on which the change or action was performed.</p> 216 * @param resourceVersion value to be set 217 * @return Builder 218 */ 219 220 public BusinessUnitAssociateModeChangedMessageBuilder resourceVersion(final Long resourceVersion) { 221 this.resourceVersion = resourceVersion; 222 return this; 223 } 224 225 /** 226 * <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> 227 * @param builder function to build the resourceUserProvidedIdentifiers value 228 * @return Builder 229 */ 230 231 public BusinessUnitAssociateModeChangedMessageBuilder resourceUserProvidedIdentifiers( 232 Function<com.commercetools.api.models.message.UserProvidedIdentifiersBuilder, com.commercetools.api.models.message.UserProvidedIdentifiersBuilder> builder) { 233 this.resourceUserProvidedIdentifiers = builder 234 .apply(com.commercetools.api.models.message.UserProvidedIdentifiersBuilder.of()) 235 .build(); 236 return this; 237 } 238 239 /** 240 * <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> 241 * @param builder function to build the resourceUserProvidedIdentifiers value 242 * @return Builder 243 */ 244 245 public BusinessUnitAssociateModeChangedMessageBuilder withResourceUserProvidedIdentifiers( 246 Function<com.commercetools.api.models.message.UserProvidedIdentifiersBuilder, com.commercetools.api.models.message.UserProvidedIdentifiers> builder) { 247 this.resourceUserProvidedIdentifiers = builder 248 .apply(com.commercetools.api.models.message.UserProvidedIdentifiersBuilder.of()); 249 return this; 250 } 251 252 /** 253 * <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> 254 * @param resourceUserProvidedIdentifiers value to be set 255 * @return Builder 256 */ 257 258 public BusinessUnitAssociateModeChangedMessageBuilder resourceUserProvidedIdentifiers( 259 @Nullable final com.commercetools.api.models.message.UserProvidedIdentifiers resourceUserProvidedIdentifiers) { 260 this.resourceUserProvidedIdentifiers = resourceUserProvidedIdentifiers; 261 return this; 262 } 263 264 /** 265 * <p>BusinessUnitAssociateMode of the Business Unit after the Change Associate Mode update action.</p> 266 * @param associateMode value to be set 267 * @return Builder 268 */ 269 270 public BusinessUnitAssociateModeChangedMessageBuilder associateMode( 271 final com.commercetools.api.models.business_unit.BusinessUnitAssociateMode associateMode) { 272 this.associateMode = associateMode; 273 return this; 274 } 275 276 /** 277 * <p>BusinessUnitAssociateMode of the Business Unit before the Change Associate Mode update action.</p> 278 * @param oldAssociateMode value to be set 279 * @return Builder 280 */ 281 282 public BusinessUnitAssociateModeChangedMessageBuilder oldAssociateMode( 283 final com.commercetools.api.models.business_unit.BusinessUnitAssociateMode oldAssociateMode) { 284 this.oldAssociateMode = oldAssociateMode; 285 return this; 286 } 287 288 /** 289 * <p>Unique identifier of the Message. Can be used to track which Messages have been processed.</p> 290 * @return id 291 */ 292 293 public String getId() { 294 return this.id; 295 } 296 297 /** 298 * <p>Version of a resource. In case of Messages, this is always <code>1</code>.</p> 299 * @return version 300 */ 301 302 public Long getVersion() { 303 return this.version; 304 } 305 306 /** 307 * <p>Date and time (UTC) the Message was generated.</p> 308 * @return createdAt 309 */ 310 311 public java.time.ZonedDateTime getCreatedAt() { 312 return this.createdAt; 313 } 314 315 /** 316 * <p>Value of <code>createdAt</code>.</p> 317 * @return lastModifiedAt 318 */ 319 320 public java.time.ZonedDateTime getLastModifiedAt() { 321 return this.lastModifiedAt; 322 } 323 324 /** 325 * <p>Value of <code>createdBy</code>.</p> 326 * @return lastModifiedBy 327 */ 328 329 @Nullable 330 public com.commercetools.api.models.common.LastModifiedBy getLastModifiedBy() { 331 return this.lastModifiedBy; 332 } 333 334 /** 335 * <p>Present on resources created after 1 February 2019 except for events not tracked.</p> 336 * @return createdBy 337 */ 338 339 @Nullable 340 public com.commercetools.api.models.common.CreatedBy getCreatedBy() { 341 return this.createdBy; 342 } 343 344 /** 345 * <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> 346 * @return sequenceNumber 347 */ 348 349 public Long getSequenceNumber() { 350 return this.sequenceNumber; 351 } 352 353 /** 354 * <p>Reference to the resource on which the change or action was performed.</p> 355 * @return resource 356 */ 357 358 public com.commercetools.api.models.common.Reference getResource() { 359 return this.resource; 360 } 361 362 /** 363 * <p>Version of the resource on which the change or action was performed.</p> 364 * @return resourceVersion 365 */ 366 367 public Long getResourceVersion() { 368 return this.resourceVersion; 369 } 370 371 /** 372 * <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> 373 * @return resourceUserProvidedIdentifiers 374 */ 375 376 @Nullable 377 public com.commercetools.api.models.message.UserProvidedIdentifiers getResourceUserProvidedIdentifiers() { 378 return this.resourceUserProvidedIdentifiers; 379 } 380 381 /** 382 * <p>BusinessUnitAssociateMode of the Business Unit after the Change Associate Mode update action.</p> 383 * @return associateMode 384 */ 385 386 public com.commercetools.api.models.business_unit.BusinessUnitAssociateMode getAssociateMode() { 387 return this.associateMode; 388 } 389 390 /** 391 * <p>BusinessUnitAssociateMode of the Business Unit before the Change Associate Mode update action.</p> 392 * @return oldAssociateMode 393 */ 394 395 public com.commercetools.api.models.business_unit.BusinessUnitAssociateMode getOldAssociateMode() { 396 return this.oldAssociateMode; 397 } 398 399 /** 400 * builds BusinessUnitAssociateModeChangedMessage with checking for non-null required values 401 * @return BusinessUnitAssociateModeChangedMessage 402 */ 403 public BusinessUnitAssociateModeChangedMessage build() { 404 Objects.requireNonNull(id, BusinessUnitAssociateModeChangedMessage.class + ": id is missing"); 405 Objects.requireNonNull(version, BusinessUnitAssociateModeChangedMessage.class + ": version is missing"); 406 Objects.requireNonNull(createdAt, BusinessUnitAssociateModeChangedMessage.class + ": createdAt is missing"); 407 Objects.requireNonNull(lastModifiedAt, 408 BusinessUnitAssociateModeChangedMessage.class + ": lastModifiedAt is missing"); 409 Objects.requireNonNull(sequenceNumber, 410 BusinessUnitAssociateModeChangedMessage.class + ": sequenceNumber is missing"); 411 Objects.requireNonNull(resource, BusinessUnitAssociateModeChangedMessage.class + ": resource is missing"); 412 Objects.requireNonNull(resourceVersion, 413 BusinessUnitAssociateModeChangedMessage.class + ": resourceVersion is missing"); 414 Objects.requireNonNull(associateMode, 415 BusinessUnitAssociateModeChangedMessage.class + ": associateMode is missing"); 416 Objects.requireNonNull(oldAssociateMode, 417 BusinessUnitAssociateModeChangedMessage.class + ": oldAssociateMode is missing"); 418 return new BusinessUnitAssociateModeChangedMessageImpl(id, version, createdAt, lastModifiedAt, lastModifiedBy, 419 createdBy, sequenceNumber, resource, resourceVersion, resourceUserProvidedIdentifiers, associateMode, 420 oldAssociateMode); 421 } 422 423 /** 424 * builds BusinessUnitAssociateModeChangedMessage without checking for non-null required values 425 * @return BusinessUnitAssociateModeChangedMessage 426 */ 427 public BusinessUnitAssociateModeChangedMessage buildUnchecked() { 428 return new BusinessUnitAssociateModeChangedMessageImpl(id, version, createdAt, lastModifiedAt, lastModifiedBy, 429 createdBy, sequenceNumber, resource, resourceVersion, resourceUserProvidedIdentifiers, associateMode, 430 oldAssociateMode); 431 } 432 433 /** 434 * factory method for an instance of BusinessUnitAssociateModeChangedMessageBuilder 435 * @return builder 436 */ 437 public static BusinessUnitAssociateModeChangedMessageBuilder of() { 438 return new BusinessUnitAssociateModeChangedMessageBuilder(); 439 } 440 441 /** 442 * create builder for BusinessUnitAssociateModeChangedMessage instance 443 * @param template instance with prefilled values for the builder 444 * @return builder 445 */ 446 public static BusinessUnitAssociateModeChangedMessageBuilder of( 447 final BusinessUnitAssociateModeChangedMessage template) { 448 BusinessUnitAssociateModeChangedMessageBuilder builder = new BusinessUnitAssociateModeChangedMessageBuilder(); 449 builder.id = template.getId(); 450 builder.version = template.getVersion(); 451 builder.createdAt = template.getCreatedAt(); 452 builder.lastModifiedAt = template.getLastModifiedAt(); 453 builder.lastModifiedBy = template.getLastModifiedBy(); 454 builder.createdBy = template.getCreatedBy(); 455 builder.sequenceNumber = template.getSequenceNumber(); 456 builder.resource = template.getResource(); 457 builder.resourceVersion = template.getResourceVersion(); 458 builder.resourceUserProvidedIdentifiers = template.getResourceUserProvidedIdentifiers(); 459 builder.associateMode = template.getAssociateMode(); 460 builder.oldAssociateMode = template.getOldAssociateMode(); 461 return builder; 462 } 463 464}