@@ -30,6 +30,10 @@ public final class MpesaDetails {
3030
3131 private final Optional <String > emailId ;
3232
33+ private final Optional <String > name ;
34+
35+ private final Optional <Address > address ;
36+
3337 private final Optional <List <Tag >> tags ;
3438
3539 private final Map <String , Object > additionalProperties ;
@@ -39,12 +43,16 @@ private MpesaDetails(
3943 MpesaTransactionType transactionType ,
4044 String phoneNumber ,
4145 Optional <String > emailId ,
46+ Optional <String > name ,
47+ Optional <Address > address ,
4248 Optional <List <Tag >> tags ,
4349 Map <String , Object > additionalProperties ) {
4450 this .businessShortCode = businessShortCode ;
4551 this .transactionType = transactionType ;
4652 this .phoneNumber = phoneNumber ;
4753 this .emailId = emailId ;
54+ this .name = name ;
55+ this .address = address ;
4856 this .tags = tags ;
4957 this .additionalProperties = additionalProperties ;
5058 }
@@ -75,6 +83,19 @@ public Optional<String> getEmailId() {
7583 return emailId ;
7684 }
7785
86+ /**
87+ * @return Name of the account holder
88+ */
89+ @ JsonProperty ("name" )
90+ public Optional <String > getName () {
91+ return name ;
92+ }
93+
94+ @ JsonProperty ("address" )
95+ public Optional <Address > getAddress () {
96+ return address ;
97+ }
98+
7899 /**
79100 * @return Additional information that can be added via tags
80101 */
@@ -99,12 +120,21 @@ private boolean equalTo(MpesaDetails other) {
99120 && transactionType .equals (other .transactionType )
100121 && phoneNumber .equals (other .phoneNumber )
101122 && emailId .equals (other .emailId )
123+ && name .equals (other .name )
124+ && address .equals (other .address )
102125 && tags .equals (other .tags );
103126 }
104127
105128 @ java .lang .Override
106129 public int hashCode () {
107- return Objects .hash (this .businessShortCode , this .transactionType , this .phoneNumber , this .emailId , this .tags );
130+ return Objects .hash (
131+ this .businessShortCode ,
132+ this .transactionType ,
133+ this .phoneNumber ,
134+ this .emailId ,
135+ this .name ,
136+ this .address ,
137+ this .tags );
108138 }
109139
110140 @ java .lang .Override
@@ -137,6 +167,14 @@ public interface _FinalStage {
137167
138168 _FinalStage emailId (String emailId );
139169
170+ _FinalStage name (Optional <String > name );
171+
172+ _FinalStage name (String name );
173+
174+ _FinalStage address (Optional <Address > address );
175+
176+ _FinalStage address (Address address );
177+
140178 _FinalStage tags (Optional <List <Tag >> tags );
141179
142180 _FinalStage tags (List <Tag > tags );
@@ -153,6 +191,10 @@ public static final class Builder
153191
154192 private Optional <List <Tag >> tags = Optional .empty ();
155193
194+ private Optional <Address > address = Optional .empty ();
195+
196+ private Optional <String > name = Optional .empty ();
197+
156198 private Optional <String > emailId = Optional .empty ();
157199
158200 @ JsonAnySetter
@@ -166,6 +208,8 @@ public Builder from(MpesaDetails other) {
166208 transactionType (other .getTransactionType ());
167209 phoneNumber (other .getPhoneNumber ());
168210 emailId (other .getEmailId ());
211+ name (other .getName ());
212+ address (other .getAddress ());
169213 tags (other .getTags ());
170214 return this ;
171215 }
@@ -216,6 +260,36 @@ public _FinalStage tags(Optional<List<Tag>> tags) {
216260 return this ;
217261 }
218262
263+ @ java .lang .Override
264+ public _FinalStage address (Address address ) {
265+ this .address = Optional .ofNullable (address );
266+ return this ;
267+ }
268+
269+ @ java .lang .Override
270+ @ JsonSetter (value = "address" , nulls = Nulls .SKIP )
271+ public _FinalStage address (Optional <Address > address ) {
272+ this .address = address ;
273+ return this ;
274+ }
275+
276+ /**
277+ * <p>Name of the account holder</p>
278+ * @return Reference to {@code this} so that method calls can be chained together.
279+ */
280+ @ java .lang .Override
281+ public _FinalStage name (String name ) {
282+ this .name = Optional .ofNullable (name );
283+ return this ;
284+ }
285+
286+ @ java .lang .Override
287+ @ JsonSetter (value = "name" , nulls = Nulls .SKIP )
288+ public _FinalStage name (Optional <String > name ) {
289+ this .name = name ;
290+ return this ;
291+ }
292+
219293 @ java .lang .Override
220294 public _FinalStage emailId (String emailId ) {
221295 this .emailId = Optional .ofNullable (emailId );
@@ -232,7 +306,14 @@ public _FinalStage emailId(Optional<String> emailId) {
232306 @ java .lang .Override
233307 public MpesaDetails build () {
234308 return new MpesaDetails (
235- businessShortCode , transactionType , phoneNumber , emailId , tags , additionalProperties );
309+ businessShortCode ,
310+ transactionType ,
311+ phoneNumber ,
312+ emailId ,
313+ name ,
314+ address ,
315+ tags ,
316+ additionalProperties );
236317 }
237318 }
238319}
0 commit comments