001 002package com.commercetools.api.models.project; 003 004import java.time.*; 005import java.util.*; 006import java.util.function.Function; 007 008import javax.annotation.Nullable; 009import javax.validation.Valid; 010import javax.validation.constraints.NotNull; 011 012import com.fasterxml.jackson.annotation.*; 013import com.fasterxml.jackson.databind.annotation.*; 014 015import io.vrap.rmf.base.client.utils.Generated; 016 017/** 018 * ProjectChangeCartsConfigurationAction 019 * 020 * <hr> 021 * Example to create an instance using the builder pattern 022 * <div class=code-example> 023 * <pre><code class='java'> 024 * ProjectChangeCartsConfigurationAction projectChangeCartsConfigurationAction = ProjectChangeCartsConfigurationAction.builder() 025 * .cartsConfiguration(cartsConfigurationBuilder -> cartsConfigurationBuilder) 026 * .build() 027 * </code></pre> 028 * </div> 029 */ 030@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 031@JsonDeserialize(as = ProjectChangeCartsConfigurationActionImpl.class) 032public interface ProjectChangeCartsConfigurationAction extends ProjectUpdateAction { 033 034 /** 035 * discriminator value for ProjectChangeCartsConfigurationAction 036 */ 037 String CHANGE_CARTS_CONFIGURATION = "changeCartsConfiguration"; 038 039 /** 040 * <p>Configuration for the Carts feature.</p> 041 * @return cartsConfiguration 042 */ 043 @NotNull 044 @Valid 045 @JsonProperty("cartsConfiguration") 046 public CartsConfiguration getCartsConfiguration(); 047 048 /** 049 * <p>Configuration for the Carts feature.</p> 050 * @param cartsConfiguration value to be set 051 */ 052 053 public void setCartsConfiguration(final CartsConfiguration cartsConfiguration); 054 055 /** 056 * factory method 057 * @return instance of ProjectChangeCartsConfigurationAction 058 */ 059 public static ProjectChangeCartsConfigurationAction of() { 060 return new ProjectChangeCartsConfigurationActionImpl(); 061 } 062 063 /** 064 * factory method to create a shallow copy ProjectChangeCartsConfigurationAction 065 * @param template instance to be copied 066 * @return copy instance 067 */ 068 public static ProjectChangeCartsConfigurationAction of(final ProjectChangeCartsConfigurationAction template) { 069 ProjectChangeCartsConfigurationActionImpl instance = new ProjectChangeCartsConfigurationActionImpl(); 070 instance.setCartsConfiguration(template.getCartsConfiguration()); 071 return instance; 072 } 073 074 /** 075 * factory method to create a deep copy of ProjectChangeCartsConfigurationAction 076 * @param template instance to be copied 077 * @return copy instance 078 */ 079 @Nullable 080 public static ProjectChangeCartsConfigurationAction deepCopy( 081 @Nullable final ProjectChangeCartsConfigurationAction template) { 082 if (template == null) { 083 return null; 084 } 085 ProjectChangeCartsConfigurationActionImpl instance = new ProjectChangeCartsConfigurationActionImpl(); 086 instance.setCartsConfiguration( 087 com.commercetools.api.models.project.CartsConfiguration.deepCopy(template.getCartsConfiguration())); 088 return instance; 089 } 090 091 /** 092 * builder factory method for ProjectChangeCartsConfigurationAction 093 * @return builder 094 */ 095 public static ProjectChangeCartsConfigurationActionBuilder builder() { 096 return ProjectChangeCartsConfigurationActionBuilder.of(); 097 } 098 099 /** 100 * create builder for ProjectChangeCartsConfigurationAction instance 101 * @param template instance with prefilled values for the builder 102 * @return builder 103 */ 104 public static ProjectChangeCartsConfigurationActionBuilder builder( 105 final ProjectChangeCartsConfigurationAction template) { 106 return ProjectChangeCartsConfigurationActionBuilder.of(template); 107 } 108 109 /** 110 * accessor map function 111 * @param <T> mapped type 112 * @param helper function to map the object 113 * @return mapped value 114 */ 115 default <T> T withProjectChangeCartsConfigurationAction(Function<ProjectChangeCartsConfigurationAction, T> helper) { 116 return helper.apply(this); 117 } 118 119 /** 120 * gives a TypeReference for usage with Jackson DataBind 121 * @return TypeReference 122 */ 123 public static com.fasterxml.jackson.core.type.TypeReference<ProjectChangeCartsConfigurationAction> typeReference() { 124 return new com.fasterxml.jackson.core.type.TypeReference<ProjectChangeCartsConfigurationAction>() { 125 @Override 126 public String toString() { 127 return "TypeReference<ProjectChangeCartsConfigurationAction>"; 128 } 129 }; 130 } 131}