-
Notifications
You must be signed in to change notification settings - Fork 15
/
CustomShippingDraft.java
169 lines (136 loc) · 5.58 KB
/
CustomShippingDraft.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
package com.commercetools.api.models.cart;
import java.time.*;
import java.util.*;
import java.util.function.Function;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import com.commercetools.api.models.common.BaseAddress;
import com.commercetools.api.models.order.Delivery;
import com.commercetools.api.models.shipping_method.ShippingRateDraft;
import com.commercetools.api.models.tax_category.TaxCategoryResourceIdentifier;
import com.fasterxml.jackson.annotation.*;
import com.fasterxml.jackson.databind.annotation.*;
import io.vrap.rmf.base.client.utils.Generated;
/**
* CustomShippingDraft
*
* <hr>
* Example to create an instance using the builder pattern
* <div class=code-example>
* <pre><code class='java'>
* CustomShippingDraft customShippingDraft = CustomShippingDraft.builder()
* .key("{key}")
* .shippingMethodName("{shippingMethodName}")
* .shippingRate(shippingRateBuilder -> shippingRateBuilder)
* .plusDeliveries(deliveriesBuilder -> deliveriesBuilder)
* .build()
* </code></pre>
* </div>
*/
@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
@JsonDeserialize(as = CustomShippingDraftImpl.class)
public interface CustomShippingDraft {
/**
* <p>User-defined unique identifier of the custom Shipping Method in a Cart with <code>Multiple</code> ShippingMode.</p>
*/
@NotNull
@JsonProperty("key")
public String getKey();
/**
* <p>Name of the custom Shipping Method.</p>
*/
@NotNull
@JsonProperty("shippingMethodName")
public String getShippingMethodName();
/**
* <p>Determines the shipping rate and Tax Rate of the associated Line Items.</p>
*/
@Valid
@JsonProperty("shippingAddress")
public BaseAddress getShippingAddress();
/**
* <p>Determines the shipping price.</p>
*/
@NotNull
@Valid
@JsonProperty("shippingRate")
public ShippingRateDraft getShippingRate();
/**
* <p>Used as an input to select a ShippingRatePriceTier.</p>
* <ul>
* <li>Must be ClassificationShippingRateInput if ShippingRateInputType is CartClassificationType.</li>
* <li>Must be ScoreShippingRateInput if ShippingRateInputType is CartScoreType.</li>
* </ul>
* <p>The <code>shippingRateInput</code> cannot be set on the Cart if CartValueType is defined.</p>
*/
@Valid
@JsonProperty("shippingRateInput")
public ShippingRateInputDraft getShippingRateInput();
/**
* <p>Tax Category used to determine a shipping Tax Rate if a Cart has the <code>Platform</code> TaxMode.</p>
*/
@Valid
@JsonProperty("taxCategory")
public TaxCategoryResourceIdentifier getTaxCategory();
/**
* <p>Tax Rate used to tax a shipping expense if the Cart has the <code>External</code> TaxMode.</p>
*/
@JsonProperty("externalTaxRate")
public String getExternalTaxRate();
/**
* <p>Deliveries tied to a Shipping Method in a multi-shipping method Cart. It holds information on how items are delivered to customers.</p>
*/
@NotNull
@Valid
@JsonProperty("deliveries")
public List<Delivery> getDeliveries();
/**
* <p>Custom Fields for the custom Shipping Method.</p>
*/
@JsonProperty("custom")
public String getCustom();
public void setKey(final String key);
public void setShippingMethodName(final String shippingMethodName);
public void setShippingAddress(final BaseAddress shippingAddress);
public void setShippingRate(final ShippingRateDraft shippingRate);
public void setShippingRateInput(final ShippingRateInputDraft shippingRateInput);
public void setTaxCategory(final TaxCategoryResourceIdentifier taxCategory);
public void setExternalTaxRate(final String externalTaxRate);
@JsonIgnore
public void setDeliveries(final Delivery... deliveries);
public void setDeliveries(final List<Delivery> deliveries);
public void setCustom(final String custom);
public static CustomShippingDraft of() {
return new CustomShippingDraftImpl();
}
public static CustomShippingDraft of(final CustomShippingDraft template) {
CustomShippingDraftImpl instance = new CustomShippingDraftImpl();
instance.setKey(template.getKey());
instance.setShippingMethodName(template.getShippingMethodName());
instance.setShippingAddress(template.getShippingAddress());
instance.setShippingRate(template.getShippingRate());
instance.setShippingRateInput(template.getShippingRateInput());
instance.setTaxCategory(template.getTaxCategory());
instance.setExternalTaxRate(template.getExternalTaxRate());
instance.setDeliveries(template.getDeliveries());
instance.setCustom(template.getCustom());
return instance;
}
public static CustomShippingDraftBuilder builder() {
return CustomShippingDraftBuilder.of();
}
public static CustomShippingDraftBuilder builder(final CustomShippingDraft template) {
return CustomShippingDraftBuilder.of(template);
}
default <T> T withCustomShippingDraft(Function<CustomShippingDraft, T> helper) {
return helper.apply(this);
}
public static com.fasterxml.jackson.core.type.TypeReference<CustomShippingDraft> typeReference() {
return new com.fasterxml.jackson.core.type.TypeReference<CustomShippingDraft>() {
@Override
public String toString() {
return "TypeReference<CustomShippingDraft>";
}
};
}
}