• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

stripe / stripe-java / #16725

08 Jan 2025 03:19PM UTC coverage: 12.341% (-0.04%) from 12.384%
#16725

Pull #1932

github

web-flow
Merge 1890010d3 into 9aeb03b42
Pull Request #1932: Update generated code for beta

29 of 1339 new or added lines in 25 files covered. (2.17%)

45 existing lines in 12 files now uncovered.

18905 of 153189 relevant lines covered (12.34%)

0.12 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

4.38
/src/main/java/com/stripe/param/treasury/FinancialAccountUpdateParams.java
1
// File generated from our OpenAPI spec
2
package com.stripe.param.treasury;
3

4
import com.google.gson.annotations.SerializedName;
5
import com.stripe.net.ApiRequestParams;
6
import com.stripe.param.common.EmptyParam;
7
import java.util.ArrayList;
8
import java.util.HashMap;
9
import java.util.List;
10
import java.util.Map;
11
import lombok.Getter;
12

13
@Getter
14
public class FinancialAccountUpdateParams extends ApiRequestParams {
15
  /**
16
   * The display name for the FinancialAccount. Use this field to customize the names of the
17
   * FinancialAccounts for your connected accounts. Unlike the {@code nickname} field, {@code
18
   * display_name} is not internal metadata and will be exposed to connected accounts.
19
   */
20
  @SerializedName("display_name")
21
  Object displayName;
22

23
  /** Specifies which fields in the response should be expanded. */
24
  @SerializedName("expand")
25
  List<String> expand;
26

27
  /**
28
   * Map of extra parameters for custom features not available in this client library. The content
29
   * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
30
   * key/value pair is serialized as if the key is a root-level field (serialized) name in this
31
   * param object. Effectively, this map is flattened to its parent instance.
32
   */
33
  @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
34
  Map<String, Object> extraParams;
35

36
  /**
37
   * Encodes whether a FinancialAccount has access to a particular feature, with a status enum and
38
   * associated {@code status_details}. Stripe or the platform may control features via the
39
   * requested field.
40
   */
41
  @SerializedName("features")
42
  Features features;
43

44
  /**
45
   * A different bank account where funds can be deposited/debited in order to get the closing FA's
46
   * balance to $0.
47
   */
48
  @SerializedName("forwarding_settings")
49
  ForwardingSettings forwardingSettings;
50

51
  /**
52
   * Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach
53
   * to an object. This can be useful for storing additional information about the object in a
54
   * structured format. Individual keys can be unset by posting an empty value to them. All keys can
55
   * be unset by posting an empty value to {@code metadata}.
56
   */
57
  @SerializedName("metadata")
58
  Map<String, String> metadata;
59

60
  /** The nickname for the FinancialAccount. */
61
  @SerializedName("nickname")
62
  Object nickname;
63

64
  /** The set of functionalities that the platform can restrict on the FinancialAccount. */
65
  @SerializedName("platform_restrictions")
66
  PlatformRestrictions platformRestrictions;
67

68
  private FinancialAccountUpdateParams(
69
      Object displayName,
70
      List<String> expand,
71
      Map<String, Object> extraParams,
72
      Features features,
73
      ForwardingSettings forwardingSettings,
74
      Map<String, String> metadata,
75
      Object nickname,
76
      PlatformRestrictions platformRestrictions) {
1✔
77
    this.displayName = displayName;
1✔
78
    this.expand = expand;
1✔
79
    this.extraParams = extraParams;
1✔
80
    this.features = features;
1✔
81
    this.forwardingSettings = forwardingSettings;
1✔
82
    this.metadata = metadata;
1✔
83
    this.nickname = nickname;
1✔
84
    this.platformRestrictions = platformRestrictions;
1✔
85
  }
1✔
86

87
  public static Builder builder() {
88
    return new Builder();
1✔
89
  }
90

91
  public static class Builder {
1✔
92
    private Object displayName;
93

94
    private List<String> expand;
95

96
    private Map<String, Object> extraParams;
97

98
    private Features features;
99

100
    private ForwardingSettings forwardingSettings;
101

102
    private Map<String, String> metadata;
103

104
    private Object nickname;
105

106
    private PlatformRestrictions platformRestrictions;
107

108
    /** Finalize and obtain parameter instance from this builder. */
109
    public FinancialAccountUpdateParams build() {
110
      return new FinancialAccountUpdateParams(
1✔
111
          this.displayName,
112
          this.expand,
113
          this.extraParams,
114
          this.features,
115
          this.forwardingSettings,
116
          this.metadata,
117
          this.nickname,
118
          this.platformRestrictions);
119
    }
120

121
    /**
122
     * The display name for the FinancialAccount. Use this field to customize the names of the
123
     * FinancialAccounts for your connected accounts. Unlike the {@code nickname} field, {@code
124
     * display_name} is not internal metadata and will be exposed to connected accounts.
125
     */
126
    public Builder setDisplayName(String displayName) {
127
      this.displayName = displayName;
×
128
      return this;
×
129
    }
130

131
    /**
132
     * The display name for the FinancialAccount. Use this field to customize the names of the
133
     * FinancialAccounts for your connected accounts. Unlike the {@code nickname} field, {@code
134
     * display_name} is not internal metadata and will be exposed to connected accounts.
135
     */
136
    public Builder setDisplayName(EmptyParam displayName) {
137
      this.displayName = displayName;
×
138
      return this;
×
139
    }
140

141
    /**
142
     * Add an element to `expand` list. A list is initialized for the first `add/addAll` call, and
143
     * subsequent calls adds additional elements to the original list. See {@link
144
     * FinancialAccountUpdateParams#expand} for the field documentation.
145
     */
146
    public Builder addExpand(String element) {
147
      if (this.expand == null) {
×
148
        this.expand = new ArrayList<>();
×
149
      }
150
      this.expand.add(element);
×
151
      return this;
×
152
    }
153

154
    /**
155
     * Add all elements to `expand` list. A list is initialized for the first `add/addAll` call, and
156
     * subsequent calls adds additional elements to the original list. See {@link
157
     * FinancialAccountUpdateParams#expand} for the field documentation.
158
     */
159
    public Builder addAllExpand(List<String> elements) {
160
      if (this.expand == null) {
×
161
        this.expand = new ArrayList<>();
×
162
      }
163
      this.expand.addAll(elements);
×
164
      return this;
×
165
    }
166

167
    /**
168
     * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
169
     * call, and subsequent calls add additional key/value pairs to the original map. See {@link
170
     * FinancialAccountUpdateParams#extraParams} for the field documentation.
171
     */
172
    public Builder putExtraParam(String key, Object value) {
173
      if (this.extraParams == null) {
×
174
        this.extraParams = new HashMap<>();
×
175
      }
176
      this.extraParams.put(key, value);
×
177
      return this;
×
178
    }
179

180
    /**
181
     * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
182
     * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
183
     * See {@link FinancialAccountUpdateParams#extraParams} for the field documentation.
184
     */
185
    public Builder putAllExtraParam(Map<String, Object> map) {
186
      if (this.extraParams == null) {
×
187
        this.extraParams = new HashMap<>();
×
188
      }
189
      this.extraParams.putAll(map);
×
190
      return this;
×
191
    }
192

193
    /**
194
     * Encodes whether a FinancialAccount has access to a particular feature, with a status enum and
195
     * associated {@code status_details}. Stripe or the platform may control features via the
196
     * requested field.
197
     */
198
    public Builder setFeatures(FinancialAccountUpdateParams.Features features) {
199
      this.features = features;
×
200
      return this;
×
201
    }
202

203
    /**
204
     * A different bank account where funds can be deposited/debited in order to get the closing
205
     * FA's balance to $0.
206
     */
207
    public Builder setForwardingSettings(
208
        FinancialAccountUpdateParams.ForwardingSettings forwardingSettings) {
NEW
209
      this.forwardingSettings = forwardingSettings;
×
NEW
210
      return this;
×
211
    }
212

213
    /**
214
     * Add a key/value pair to `metadata` map. A map is initialized for the first `put/putAll` call,
215
     * and subsequent calls add additional key/value pairs to the original map. See {@link
216
     * FinancialAccountUpdateParams#metadata} for the field documentation.
217
     */
218
    public Builder putMetadata(String key, String value) {
219
      if (this.metadata == null) {
1✔
220
        this.metadata = new HashMap<>();
1✔
221
      }
222
      this.metadata.put(key, value);
1✔
223
      return this;
1✔
224
    }
225

226
    /**
227
     * Add all map key/value pairs to `metadata` map. A map is initialized for the first
228
     * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
229
     * See {@link FinancialAccountUpdateParams#metadata} for the field documentation.
230
     */
231
    public Builder putAllMetadata(Map<String, String> map) {
232
      if (this.metadata == null) {
×
233
        this.metadata = new HashMap<>();
×
234
      }
235
      this.metadata.putAll(map);
×
236
      return this;
×
237
    }
238

239
    /** The nickname for the FinancialAccount. */
240
    public Builder setNickname(String nickname) {
NEW
241
      this.nickname = nickname;
×
NEW
242
      return this;
×
243
    }
244

245
    /** The nickname for the FinancialAccount. */
246
    public Builder setNickname(EmptyParam nickname) {
NEW
247
      this.nickname = nickname;
×
NEW
248
      return this;
×
249
    }
250

251
    /** The set of functionalities that the platform can restrict on the FinancialAccount. */
252
    public Builder setPlatformRestrictions(
253
        FinancialAccountUpdateParams.PlatformRestrictions platformRestrictions) {
254
      this.platformRestrictions = platformRestrictions;
×
255
      return this;
×
256
    }
257
  }
258

259
  @Getter
260
  public static class Features {
261
    /**
262
     * Encodes the FinancialAccount's ability to be used with the Issuing product, including
263
     * attaching cards to and drawing funds from the FinancialAccount.
264
     */
265
    @SerializedName("card_issuing")
266
    CardIssuing cardIssuing;
267

268
    /**
269
     * Represents whether this FinancialAccount is eligible for deposit insurance. Various factors
270
     * determine the insurance amount.
271
     */
272
    @SerializedName("deposit_insurance")
273
    DepositInsurance depositInsurance;
274

275
    /**
276
     * Map of extra parameters for custom features not available in this client library. The content
277
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
278
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
279
     * param object. Effectively, this map is flattened to its parent instance.
280
     */
281
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
282
    Map<String, Object> extraParams;
283

284
    /** Contains Features that add FinancialAddresses to the FinancialAccount. */
285
    @SerializedName("financial_addresses")
286
    FinancialAddresses financialAddresses;
287

288
    /**
289
     * Contains settings related to adding funds to a FinancialAccount from another Account with the
290
     * same owner.
291
     */
292
    @SerializedName("inbound_transfers")
293
    InboundTransfers inboundTransfers;
294

295
    /**
296
     * Represents the ability for the FinancialAccount to send money to, or receive money from other
297
     * FinancialAccounts (for example, via OutboundPayment).
298
     */
299
    @SerializedName("intra_stripe_flows")
300
    IntraStripeFlows intraStripeFlows;
301

302
    /**
303
     * Includes Features related to initiating money movement out of the FinancialAccount to someone
304
     * else's bucket of money.
305
     */
306
    @SerializedName("outbound_payments")
307
    OutboundPayments outboundPayments;
308

309
    /**
310
     * Contains a Feature and settings related to moving money out of the FinancialAccount into
311
     * another Account with the same owner.
312
     */
313
    @SerializedName("outbound_transfers")
314
    OutboundTransfers outboundTransfers;
315

316
    private Features(
317
        CardIssuing cardIssuing,
318
        DepositInsurance depositInsurance,
319
        Map<String, Object> extraParams,
320
        FinancialAddresses financialAddresses,
321
        InboundTransfers inboundTransfers,
322
        IntraStripeFlows intraStripeFlows,
323
        OutboundPayments outboundPayments,
324
        OutboundTransfers outboundTransfers) {
×
325
      this.cardIssuing = cardIssuing;
×
326
      this.depositInsurance = depositInsurance;
×
327
      this.extraParams = extraParams;
×
328
      this.financialAddresses = financialAddresses;
×
329
      this.inboundTransfers = inboundTransfers;
×
330
      this.intraStripeFlows = intraStripeFlows;
×
331
      this.outboundPayments = outboundPayments;
×
332
      this.outboundTransfers = outboundTransfers;
×
333
    }
×
334

335
    public static Builder builder() {
336
      return new Builder();
×
337
    }
338

339
    public static class Builder {
×
340
      private CardIssuing cardIssuing;
341

342
      private DepositInsurance depositInsurance;
343

344
      private Map<String, Object> extraParams;
345

346
      private FinancialAddresses financialAddresses;
347

348
      private InboundTransfers inboundTransfers;
349

350
      private IntraStripeFlows intraStripeFlows;
351

352
      private OutboundPayments outboundPayments;
353

354
      private OutboundTransfers outboundTransfers;
355

356
      /** Finalize and obtain parameter instance from this builder. */
357
      public FinancialAccountUpdateParams.Features build() {
358
        return new FinancialAccountUpdateParams.Features(
×
359
            this.cardIssuing,
360
            this.depositInsurance,
361
            this.extraParams,
362
            this.financialAddresses,
363
            this.inboundTransfers,
364
            this.intraStripeFlows,
365
            this.outboundPayments,
366
            this.outboundTransfers);
367
      }
368

369
      /**
370
       * Encodes the FinancialAccount's ability to be used with the Issuing product, including
371
       * attaching cards to and drawing funds from the FinancialAccount.
372
       */
373
      public Builder setCardIssuing(FinancialAccountUpdateParams.Features.CardIssuing cardIssuing) {
374
        this.cardIssuing = cardIssuing;
×
375
        return this;
×
376
      }
377

378
      /**
379
       * Represents whether this FinancialAccount is eligible for deposit insurance. Various factors
380
       * determine the insurance amount.
381
       */
382
      public Builder setDepositInsurance(
383
          FinancialAccountUpdateParams.Features.DepositInsurance depositInsurance) {
384
        this.depositInsurance = depositInsurance;
×
385
        return this;
×
386
      }
387

388
      /**
389
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
390
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
391
       * FinancialAccountUpdateParams.Features#extraParams} for the field documentation.
392
       */
393
      public Builder putExtraParam(String key, Object value) {
394
        if (this.extraParams == null) {
×
395
          this.extraParams = new HashMap<>();
×
396
        }
397
        this.extraParams.put(key, value);
×
398
        return this;
×
399
      }
400

401
      /**
402
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
403
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
404
       * See {@link FinancialAccountUpdateParams.Features#extraParams} for the field documentation.
405
       */
406
      public Builder putAllExtraParam(Map<String, Object> map) {
407
        if (this.extraParams == null) {
×
408
          this.extraParams = new HashMap<>();
×
409
        }
410
        this.extraParams.putAll(map);
×
411
        return this;
×
412
      }
413

414
      /** Contains Features that add FinancialAddresses to the FinancialAccount. */
415
      public Builder setFinancialAddresses(
416
          FinancialAccountUpdateParams.Features.FinancialAddresses financialAddresses) {
417
        this.financialAddresses = financialAddresses;
×
418
        return this;
×
419
      }
420

421
      /**
422
       * Contains settings related to adding funds to a FinancialAccount from another Account with
423
       * the same owner.
424
       */
425
      public Builder setInboundTransfers(
426
          FinancialAccountUpdateParams.Features.InboundTransfers inboundTransfers) {
427
        this.inboundTransfers = inboundTransfers;
×
428
        return this;
×
429
      }
430

431
      /**
432
       * Represents the ability for the FinancialAccount to send money to, or receive money from
433
       * other FinancialAccounts (for example, via OutboundPayment).
434
       */
435
      public Builder setIntraStripeFlows(
436
          FinancialAccountUpdateParams.Features.IntraStripeFlows intraStripeFlows) {
437
        this.intraStripeFlows = intraStripeFlows;
×
438
        return this;
×
439
      }
440

441
      /**
442
       * Includes Features related to initiating money movement out of the FinancialAccount to
443
       * someone else's bucket of money.
444
       */
445
      public Builder setOutboundPayments(
446
          FinancialAccountUpdateParams.Features.OutboundPayments outboundPayments) {
447
        this.outboundPayments = outboundPayments;
×
448
        return this;
×
449
      }
450

451
      /**
452
       * Contains a Feature and settings related to moving money out of the FinancialAccount into
453
       * another Account with the same owner.
454
       */
455
      public Builder setOutboundTransfers(
456
          FinancialAccountUpdateParams.Features.OutboundTransfers outboundTransfers) {
457
        this.outboundTransfers = outboundTransfers;
×
458
        return this;
×
459
      }
460
    }
461

462
    @Getter
463
    public static class CardIssuing {
464
      /**
465
       * Map of extra parameters for custom features not available in this client library. The
466
       * content in this map is not serialized under this field's {@code @SerializedName} value.
467
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
468
       * name in this param object. Effectively, this map is flattened to its parent instance.
469
       */
470
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
471
      Map<String, Object> extraParams;
472

473
      /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
474
      @SerializedName("requested")
475
      Boolean requested;
476

477
      private CardIssuing(Map<String, Object> extraParams, Boolean requested) {
×
478
        this.extraParams = extraParams;
×
479
        this.requested = requested;
×
480
      }
×
481

482
      public static Builder builder() {
483
        return new Builder();
×
484
      }
485

486
      public static class Builder {
×
487
        private Map<String, Object> extraParams;
488

489
        private Boolean requested;
490

491
        /** Finalize and obtain parameter instance from this builder. */
492
        public FinancialAccountUpdateParams.Features.CardIssuing build() {
493
          return new FinancialAccountUpdateParams.Features.CardIssuing(
×
494
              this.extraParams, this.requested);
495
        }
496

497
        /**
498
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
499
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
500
         * map. See {@link FinancialAccountUpdateParams.Features.CardIssuing#extraParams} for the
501
         * field documentation.
502
         */
503
        public Builder putExtraParam(String key, Object value) {
504
          if (this.extraParams == null) {
×
505
            this.extraParams = new HashMap<>();
×
506
          }
507
          this.extraParams.put(key, value);
×
508
          return this;
×
509
        }
510

511
        /**
512
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
513
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
514
         * map. See {@link FinancialAccountUpdateParams.Features.CardIssuing#extraParams} for the
515
         * field documentation.
516
         */
517
        public Builder putAllExtraParam(Map<String, Object> map) {
518
          if (this.extraParams == null) {
×
519
            this.extraParams = new HashMap<>();
×
520
          }
521
          this.extraParams.putAll(map);
×
522
          return this;
×
523
        }
524

525
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
526
        public Builder setRequested(Boolean requested) {
527
          this.requested = requested;
×
528
          return this;
×
529
        }
530
      }
531
    }
532

533
    @Getter
534
    public static class DepositInsurance {
535
      /**
536
       * Map of extra parameters for custom features not available in this client library. The
537
       * content in this map is not serialized under this field's {@code @SerializedName} value.
538
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
539
       * name in this param object. Effectively, this map is flattened to its parent instance.
540
       */
541
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
542
      Map<String, Object> extraParams;
543

544
      /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
545
      @SerializedName("requested")
546
      Boolean requested;
547

548
      private DepositInsurance(Map<String, Object> extraParams, Boolean requested) {
×
549
        this.extraParams = extraParams;
×
550
        this.requested = requested;
×
551
      }
×
552

553
      public static Builder builder() {
554
        return new Builder();
×
555
      }
556

557
      public static class Builder {
×
558
        private Map<String, Object> extraParams;
559

560
        private Boolean requested;
561

562
        /** Finalize and obtain parameter instance from this builder. */
563
        public FinancialAccountUpdateParams.Features.DepositInsurance build() {
564
          return new FinancialAccountUpdateParams.Features.DepositInsurance(
×
565
              this.extraParams, this.requested);
566
        }
567

568
        /**
569
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
570
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
571
         * map. See {@link FinancialAccountUpdateParams.Features.DepositInsurance#extraParams} for
572
         * the field documentation.
573
         */
574
        public Builder putExtraParam(String key, Object value) {
575
          if (this.extraParams == null) {
×
576
            this.extraParams = new HashMap<>();
×
577
          }
578
          this.extraParams.put(key, value);
×
579
          return this;
×
580
        }
581

582
        /**
583
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
584
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
585
         * map. See {@link FinancialAccountUpdateParams.Features.DepositInsurance#extraParams} for
586
         * the field documentation.
587
         */
588
        public Builder putAllExtraParam(Map<String, Object> map) {
589
          if (this.extraParams == null) {
×
590
            this.extraParams = new HashMap<>();
×
591
          }
592
          this.extraParams.putAll(map);
×
593
          return this;
×
594
        }
595

596
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
597
        public Builder setRequested(Boolean requested) {
598
          this.requested = requested;
×
599
          return this;
×
600
        }
601
      }
602
    }
603

604
    @Getter
605
    public static class FinancialAddresses {
606
      /** Adds an ABA FinancialAddress to the FinancialAccount. */
607
      @SerializedName("aba")
608
      Aba aba;
609

610
      /**
611
       * Map of extra parameters for custom features not available in this client library. The
612
       * content in this map is not serialized under this field's {@code @SerializedName} value.
613
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
614
       * name in this param object. Effectively, this map is flattened to its parent instance.
615
       */
616
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
617
      Map<String, Object> extraParams;
618

619
      private FinancialAddresses(Aba aba, Map<String, Object> extraParams) {
×
620
        this.aba = aba;
×
621
        this.extraParams = extraParams;
×
622
      }
×
623

624
      public static Builder builder() {
625
        return new Builder();
×
626
      }
627

628
      public static class Builder {
×
629
        private Aba aba;
630

631
        private Map<String, Object> extraParams;
632

633
        /** Finalize and obtain parameter instance from this builder. */
634
        public FinancialAccountUpdateParams.Features.FinancialAddresses build() {
635
          return new FinancialAccountUpdateParams.Features.FinancialAddresses(
×
636
              this.aba, this.extraParams);
637
        }
638

639
        /** Adds an ABA FinancialAddress to the FinancialAccount. */
640
        public Builder setAba(FinancialAccountUpdateParams.Features.FinancialAddresses.Aba aba) {
641
          this.aba = aba;
×
642
          return this;
×
643
        }
644

645
        /**
646
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
647
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
648
         * map. See {@link FinancialAccountUpdateParams.Features.FinancialAddresses#extraParams} for
649
         * the field documentation.
650
         */
651
        public Builder putExtraParam(String key, Object value) {
652
          if (this.extraParams == null) {
×
653
            this.extraParams = new HashMap<>();
×
654
          }
655
          this.extraParams.put(key, value);
×
656
          return this;
×
657
        }
658

659
        /**
660
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
661
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
662
         * map. See {@link FinancialAccountUpdateParams.Features.FinancialAddresses#extraParams} for
663
         * the field documentation.
664
         */
665
        public Builder putAllExtraParam(Map<String, Object> map) {
666
          if (this.extraParams == null) {
×
667
            this.extraParams = new HashMap<>();
×
668
          }
669
          this.extraParams.putAll(map);
×
670
          return this;
×
671
        }
672
      }
673

674
      @Getter
675
      public static class Aba {
676
        /** Requested bank partner. */
677
        @SerializedName("bank")
678
        Bank bank;
679

680
        /**
681
         * Map of extra parameters for custom features not available in this client library. The
682
         * content in this map is not serialized under this field's {@code @SerializedName} value.
683
         * Instead, each key/value pair is serialized as if the key is a root-level field
684
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
685
         * instance.
686
         */
687
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
688
        Map<String, Object> extraParams;
689

690
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
691
        @SerializedName("requested")
692
        Boolean requested;
693

694
        private Aba(Bank bank, Map<String, Object> extraParams, Boolean requested) {
×
695
          this.bank = bank;
×
696
          this.extraParams = extraParams;
×
697
          this.requested = requested;
×
698
        }
×
699

700
        public static Builder builder() {
701
          return new Builder();
×
702
        }
703

704
        public static class Builder {
×
705
          private Bank bank;
706

707
          private Map<String, Object> extraParams;
708

709
          private Boolean requested;
710

711
          /** Finalize and obtain parameter instance from this builder. */
712
          public FinancialAccountUpdateParams.Features.FinancialAddresses.Aba build() {
713
            return new FinancialAccountUpdateParams.Features.FinancialAddresses.Aba(
×
714
                this.bank, this.extraParams, this.requested);
715
          }
716

717
          /** Requested bank partner. */
718
          public Builder setBank(
719
              FinancialAccountUpdateParams.Features.FinancialAddresses.Aba.Bank bank) {
720
            this.bank = bank;
×
721
            return this;
×
722
          }
723

724
          /**
725
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
726
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
727
           * map. See {@link
728
           * FinancialAccountUpdateParams.Features.FinancialAddresses.Aba#extraParams} for the field
729
           * documentation.
730
           */
731
          public Builder putExtraParam(String key, Object value) {
732
            if (this.extraParams == null) {
×
733
              this.extraParams = new HashMap<>();
×
734
            }
735
            this.extraParams.put(key, value);
×
736
            return this;
×
737
          }
738

739
          /**
740
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
741
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
742
           * map. See {@link
743
           * FinancialAccountUpdateParams.Features.FinancialAddresses.Aba#extraParams} for the field
744
           * documentation.
745
           */
746
          public Builder putAllExtraParam(Map<String, Object> map) {
747
            if (this.extraParams == null) {
×
748
              this.extraParams = new HashMap<>();
×
749
            }
750
            this.extraParams.putAll(map);
×
751
            return this;
×
752
          }
753

754
          /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
755
          public Builder setRequested(Boolean requested) {
756
            this.requested = requested;
×
757
            return this;
×
758
          }
759
        }
760

761
        public enum Bank implements ApiRequestParams.EnumParam {
×
762
          @SerializedName("evolve")
×
763
          EVOLVE("evolve"),
764

765
          @SerializedName("fifth_third")
×
766
          FIFTH_THIRD("fifth_third"),
767

768
          @SerializedName("goldman_sachs")
×
769
          GOLDMAN_SACHS("goldman_sachs");
770

771
          @Getter(onMethod_ = {@Override})
772
          private final String value;
773

774
          Bank(String value) {
×
775
            this.value = value;
×
776
          }
×
777
        }
778
      }
779
    }
780

781
    @Getter
782
    public static class InboundTransfers {
783
      /** Enables ACH Debits via the InboundTransfers API. */
784
      @SerializedName("ach")
785
      Ach ach;
786

787
      /**
788
       * Map of extra parameters for custom features not available in this client library. The
789
       * content in this map is not serialized under this field's {@code @SerializedName} value.
790
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
791
       * name in this param object. Effectively, this map is flattened to its parent instance.
792
       */
793
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
794
      Map<String, Object> extraParams;
795

796
      private InboundTransfers(Ach ach, Map<String, Object> extraParams) {
×
797
        this.ach = ach;
×
798
        this.extraParams = extraParams;
×
799
      }
×
800

801
      public static Builder builder() {
802
        return new Builder();
×
803
      }
804

805
      public static class Builder {
×
806
        private Ach ach;
807

808
        private Map<String, Object> extraParams;
809

810
        /** Finalize and obtain parameter instance from this builder. */
811
        public FinancialAccountUpdateParams.Features.InboundTransfers build() {
812
          return new FinancialAccountUpdateParams.Features.InboundTransfers(
×
813
              this.ach, this.extraParams);
814
        }
815

816
        /** Enables ACH Debits via the InboundTransfers API. */
817
        public Builder setAch(FinancialAccountUpdateParams.Features.InboundTransfers.Ach ach) {
818
          this.ach = ach;
×
819
          return this;
×
820
        }
821

822
        /**
823
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
824
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
825
         * map. See {@link FinancialAccountUpdateParams.Features.InboundTransfers#extraParams} for
826
         * the field documentation.
827
         */
828
        public Builder putExtraParam(String key, Object value) {
829
          if (this.extraParams == null) {
×
830
            this.extraParams = new HashMap<>();
×
831
          }
832
          this.extraParams.put(key, value);
×
833
          return this;
×
834
        }
835

836
        /**
837
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
838
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
839
         * map. See {@link FinancialAccountUpdateParams.Features.InboundTransfers#extraParams} for
840
         * the field documentation.
841
         */
842
        public Builder putAllExtraParam(Map<String, Object> map) {
843
          if (this.extraParams == null) {
×
844
            this.extraParams = new HashMap<>();
×
845
          }
846
          this.extraParams.putAll(map);
×
847
          return this;
×
848
        }
849
      }
850

851
      @Getter
852
      public static class Ach {
853
        /**
854
         * Map of extra parameters for custom features not available in this client library. The
855
         * content in this map is not serialized under this field's {@code @SerializedName} value.
856
         * Instead, each key/value pair is serialized as if the key is a root-level field
857
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
858
         * instance.
859
         */
860
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
861
        Map<String, Object> extraParams;
862

863
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
864
        @SerializedName("requested")
865
        Boolean requested;
866

867
        private Ach(Map<String, Object> extraParams, Boolean requested) {
×
868
          this.extraParams = extraParams;
×
869
          this.requested = requested;
×
870
        }
×
871

872
        public static Builder builder() {
873
          return new Builder();
×
874
        }
875

876
        public static class Builder {
×
877
          private Map<String, Object> extraParams;
878

879
          private Boolean requested;
880

881
          /** Finalize and obtain parameter instance from this builder. */
882
          public FinancialAccountUpdateParams.Features.InboundTransfers.Ach build() {
883
            return new FinancialAccountUpdateParams.Features.InboundTransfers.Ach(
×
884
                this.extraParams, this.requested);
885
          }
886

887
          /**
888
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
889
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
890
           * map. See {@link FinancialAccountUpdateParams.Features.InboundTransfers.Ach#extraParams}
891
           * for the field documentation.
892
           */
893
          public Builder putExtraParam(String key, Object value) {
894
            if (this.extraParams == null) {
×
895
              this.extraParams = new HashMap<>();
×
896
            }
897
            this.extraParams.put(key, value);
×
898
            return this;
×
899
          }
900

901
          /**
902
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
903
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
904
           * map. See {@link FinancialAccountUpdateParams.Features.InboundTransfers.Ach#extraParams}
905
           * for the field documentation.
906
           */
907
          public Builder putAllExtraParam(Map<String, Object> map) {
908
            if (this.extraParams == null) {
×
909
              this.extraParams = new HashMap<>();
×
910
            }
911
            this.extraParams.putAll(map);
×
912
            return this;
×
913
          }
914

915
          /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
916
          public Builder setRequested(Boolean requested) {
917
            this.requested = requested;
×
918
            return this;
×
919
          }
920
        }
921
      }
922
    }
923

924
    @Getter
925
    public static class IntraStripeFlows {
926
      /**
927
       * Map of extra parameters for custom features not available in this client library. The
928
       * content in this map is not serialized under this field's {@code @SerializedName} value.
929
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
930
       * name in this param object. Effectively, this map is flattened to its parent instance.
931
       */
932
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
933
      Map<String, Object> extraParams;
934

935
      /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
936
      @SerializedName("requested")
937
      Boolean requested;
938

939
      private IntraStripeFlows(Map<String, Object> extraParams, Boolean requested) {
×
940
        this.extraParams = extraParams;
×
941
        this.requested = requested;
×
942
      }
×
943

944
      public static Builder builder() {
945
        return new Builder();
×
946
      }
947

948
      public static class Builder {
×
949
        private Map<String, Object> extraParams;
950

951
        private Boolean requested;
952

953
        /** Finalize and obtain parameter instance from this builder. */
954
        public FinancialAccountUpdateParams.Features.IntraStripeFlows build() {
955
          return new FinancialAccountUpdateParams.Features.IntraStripeFlows(
×
956
              this.extraParams, this.requested);
957
        }
958

959
        /**
960
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
961
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
962
         * map. See {@link FinancialAccountUpdateParams.Features.IntraStripeFlows#extraParams} for
963
         * the field documentation.
964
         */
965
        public Builder putExtraParam(String key, Object value) {
966
          if (this.extraParams == null) {
×
967
            this.extraParams = new HashMap<>();
×
968
          }
969
          this.extraParams.put(key, value);
×
970
          return this;
×
971
        }
972

973
        /**
974
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
975
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
976
         * map. See {@link FinancialAccountUpdateParams.Features.IntraStripeFlows#extraParams} for
977
         * the field documentation.
978
         */
979
        public Builder putAllExtraParam(Map<String, Object> map) {
980
          if (this.extraParams == null) {
×
981
            this.extraParams = new HashMap<>();
×
982
          }
983
          this.extraParams.putAll(map);
×
984
          return this;
×
985
        }
986

987
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
988
        public Builder setRequested(Boolean requested) {
989
          this.requested = requested;
×
990
          return this;
×
991
        }
992
      }
993
    }
994

995
    @Getter
996
    public static class OutboundPayments {
997
      /** Enables ACH transfers via the OutboundPayments API. */
998
      @SerializedName("ach")
999
      Ach ach;
1000

1001
      /**
1002
       * Map of extra parameters for custom features not available in this client library. The
1003
       * content in this map is not serialized under this field's {@code @SerializedName} value.
1004
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
1005
       * name in this param object. Effectively, this map is flattened to its parent instance.
1006
       */
1007
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1008
      Map<String, Object> extraParams;
1009

1010
      /** Enables US domestic wire transfers via the OutboundPayments API. */
1011
      @SerializedName("us_domestic_wire")
1012
      UsDomesticWire usDomesticWire;
1013

1014
      private OutboundPayments(
1015
          Ach ach, Map<String, Object> extraParams, UsDomesticWire usDomesticWire) {
×
1016
        this.ach = ach;
×
1017
        this.extraParams = extraParams;
×
1018
        this.usDomesticWire = usDomesticWire;
×
1019
      }
×
1020

1021
      public static Builder builder() {
1022
        return new Builder();
×
1023
      }
1024

1025
      public static class Builder {
×
1026
        private Ach ach;
1027

1028
        private Map<String, Object> extraParams;
1029

1030
        private UsDomesticWire usDomesticWire;
1031

1032
        /** Finalize and obtain parameter instance from this builder. */
1033
        public FinancialAccountUpdateParams.Features.OutboundPayments build() {
1034
          return new FinancialAccountUpdateParams.Features.OutboundPayments(
×
1035
              this.ach, this.extraParams, this.usDomesticWire);
1036
        }
1037

1038
        /** Enables ACH transfers via the OutboundPayments API. */
1039
        public Builder setAch(FinancialAccountUpdateParams.Features.OutboundPayments.Ach ach) {
1040
          this.ach = ach;
×
1041
          return this;
×
1042
        }
1043

1044
        /**
1045
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
1046
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1047
         * map. See {@link FinancialAccountUpdateParams.Features.OutboundPayments#extraParams} for
1048
         * the field documentation.
1049
         */
1050
        public Builder putExtraParam(String key, Object value) {
1051
          if (this.extraParams == null) {
×
1052
            this.extraParams = new HashMap<>();
×
1053
          }
1054
          this.extraParams.put(key, value);
×
1055
          return this;
×
1056
        }
1057

1058
        /**
1059
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1060
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1061
         * map. See {@link FinancialAccountUpdateParams.Features.OutboundPayments#extraParams} for
1062
         * the field documentation.
1063
         */
1064
        public Builder putAllExtraParam(Map<String, Object> map) {
1065
          if (this.extraParams == null) {
×
1066
            this.extraParams = new HashMap<>();
×
1067
          }
1068
          this.extraParams.putAll(map);
×
1069
          return this;
×
1070
        }
1071

1072
        /** Enables US domestic wire transfers via the OutboundPayments API. */
1073
        public Builder setUsDomesticWire(
1074
            FinancialAccountUpdateParams.Features.OutboundPayments.UsDomesticWire usDomesticWire) {
1075
          this.usDomesticWire = usDomesticWire;
×
1076
          return this;
×
1077
        }
1078
      }
1079

1080
      @Getter
1081
      public static class Ach {
1082
        /**
1083
         * Map of extra parameters for custom features not available in this client library. The
1084
         * content in this map is not serialized under this field's {@code @SerializedName} value.
1085
         * Instead, each key/value pair is serialized as if the key is a root-level field
1086
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
1087
         * instance.
1088
         */
1089
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1090
        Map<String, Object> extraParams;
1091

1092
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
1093
        @SerializedName("requested")
1094
        Boolean requested;
1095

1096
        private Ach(Map<String, Object> extraParams, Boolean requested) {
×
1097
          this.extraParams = extraParams;
×
1098
          this.requested = requested;
×
1099
        }
×
1100

1101
        public static Builder builder() {
1102
          return new Builder();
×
1103
        }
1104

1105
        public static class Builder {
×
1106
          private Map<String, Object> extraParams;
1107

1108
          private Boolean requested;
1109

1110
          /** Finalize and obtain parameter instance from this builder. */
1111
          public FinancialAccountUpdateParams.Features.OutboundPayments.Ach build() {
1112
            return new FinancialAccountUpdateParams.Features.OutboundPayments.Ach(
×
1113
                this.extraParams, this.requested);
1114
          }
1115

1116
          /**
1117
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
1118
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1119
           * map. See {@link FinancialAccountUpdateParams.Features.OutboundPayments.Ach#extraParams}
1120
           * for the field documentation.
1121
           */
1122
          public Builder putExtraParam(String key, Object value) {
1123
            if (this.extraParams == null) {
×
1124
              this.extraParams = new HashMap<>();
×
1125
            }
1126
            this.extraParams.put(key, value);
×
1127
            return this;
×
1128
          }
1129

1130
          /**
1131
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1132
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1133
           * map. See {@link FinancialAccountUpdateParams.Features.OutboundPayments.Ach#extraParams}
1134
           * for the field documentation.
1135
           */
1136
          public Builder putAllExtraParam(Map<String, Object> map) {
1137
            if (this.extraParams == null) {
×
1138
              this.extraParams = new HashMap<>();
×
1139
            }
1140
            this.extraParams.putAll(map);
×
1141
            return this;
×
1142
          }
1143

1144
          /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
1145
          public Builder setRequested(Boolean requested) {
1146
            this.requested = requested;
×
1147
            return this;
×
1148
          }
1149
        }
1150
      }
1151

1152
      @Getter
1153
      public static class UsDomesticWire {
1154
        /**
1155
         * Map of extra parameters for custom features not available in this client library. The
1156
         * content in this map is not serialized under this field's {@code @SerializedName} value.
1157
         * Instead, each key/value pair is serialized as if the key is a root-level field
1158
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
1159
         * instance.
1160
         */
1161
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1162
        Map<String, Object> extraParams;
1163

1164
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
1165
        @SerializedName("requested")
1166
        Boolean requested;
1167

1168
        private UsDomesticWire(Map<String, Object> extraParams, Boolean requested) {
×
1169
          this.extraParams = extraParams;
×
1170
          this.requested = requested;
×
1171
        }
×
1172

1173
        public static Builder builder() {
1174
          return new Builder();
×
1175
        }
1176

1177
        public static class Builder {
×
1178
          private Map<String, Object> extraParams;
1179

1180
          private Boolean requested;
1181

1182
          /** Finalize and obtain parameter instance from this builder. */
1183
          public FinancialAccountUpdateParams.Features.OutboundPayments.UsDomesticWire build() {
1184
            return new FinancialAccountUpdateParams.Features.OutboundPayments.UsDomesticWire(
×
1185
                this.extraParams, this.requested);
1186
          }
1187

1188
          /**
1189
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
1190
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1191
           * map. See {@link
1192
           * FinancialAccountUpdateParams.Features.OutboundPayments.UsDomesticWire#extraParams} for
1193
           * the field documentation.
1194
           */
1195
          public Builder putExtraParam(String key, Object value) {
1196
            if (this.extraParams == null) {
×
1197
              this.extraParams = new HashMap<>();
×
1198
            }
1199
            this.extraParams.put(key, value);
×
1200
            return this;
×
1201
          }
1202

1203
          /**
1204
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1205
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1206
           * map. See {@link
1207
           * FinancialAccountUpdateParams.Features.OutboundPayments.UsDomesticWire#extraParams} for
1208
           * the field documentation.
1209
           */
1210
          public Builder putAllExtraParam(Map<String, Object> map) {
1211
            if (this.extraParams == null) {
×
1212
              this.extraParams = new HashMap<>();
×
1213
            }
1214
            this.extraParams.putAll(map);
×
1215
            return this;
×
1216
          }
1217

1218
          /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
1219
          public Builder setRequested(Boolean requested) {
1220
            this.requested = requested;
×
1221
            return this;
×
1222
          }
1223
        }
1224
      }
1225
    }
1226

1227
    @Getter
1228
    public static class OutboundTransfers {
1229
      /** Enables ACH transfers via the OutboundTransfers API. */
1230
      @SerializedName("ach")
1231
      Ach ach;
1232

1233
      /**
1234
       * Map of extra parameters for custom features not available in this client library. The
1235
       * content in this map is not serialized under this field's {@code @SerializedName} value.
1236
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
1237
       * name in this param object. Effectively, this map is flattened to its parent instance.
1238
       */
1239
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1240
      Map<String, Object> extraParams;
1241

1242
      /** Enables US domestic wire transfers via the OutboundTransfers API. */
1243
      @SerializedName("us_domestic_wire")
1244
      UsDomesticWire usDomesticWire;
1245

1246
      private OutboundTransfers(
1247
          Ach ach, Map<String, Object> extraParams, UsDomesticWire usDomesticWire) {
×
1248
        this.ach = ach;
×
1249
        this.extraParams = extraParams;
×
1250
        this.usDomesticWire = usDomesticWire;
×
1251
      }
×
1252

1253
      public static Builder builder() {
1254
        return new Builder();
×
1255
      }
1256

1257
      public static class Builder {
×
1258
        private Ach ach;
1259

1260
        private Map<String, Object> extraParams;
1261

1262
        private UsDomesticWire usDomesticWire;
1263

1264
        /** Finalize and obtain parameter instance from this builder. */
1265
        public FinancialAccountUpdateParams.Features.OutboundTransfers build() {
1266
          return new FinancialAccountUpdateParams.Features.OutboundTransfers(
×
1267
              this.ach, this.extraParams, this.usDomesticWire);
1268
        }
1269

1270
        /** Enables ACH transfers via the OutboundTransfers API. */
1271
        public Builder setAch(FinancialAccountUpdateParams.Features.OutboundTransfers.Ach ach) {
1272
          this.ach = ach;
×
1273
          return this;
×
1274
        }
1275

1276
        /**
1277
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
1278
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1279
         * map. See {@link FinancialAccountUpdateParams.Features.OutboundTransfers#extraParams} for
1280
         * the field documentation.
1281
         */
1282
        public Builder putExtraParam(String key, Object value) {
1283
          if (this.extraParams == null) {
×
1284
            this.extraParams = new HashMap<>();
×
1285
          }
1286
          this.extraParams.put(key, value);
×
1287
          return this;
×
1288
        }
1289

1290
        /**
1291
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1292
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1293
         * map. See {@link FinancialAccountUpdateParams.Features.OutboundTransfers#extraParams} for
1294
         * the field documentation.
1295
         */
1296
        public Builder putAllExtraParam(Map<String, Object> map) {
1297
          if (this.extraParams == null) {
×
1298
            this.extraParams = new HashMap<>();
×
1299
          }
1300
          this.extraParams.putAll(map);
×
1301
          return this;
×
1302
        }
1303

1304
        /** Enables US domestic wire transfers via the OutboundTransfers API. */
1305
        public Builder setUsDomesticWire(
1306
            FinancialAccountUpdateParams.Features.OutboundTransfers.UsDomesticWire usDomesticWire) {
1307
          this.usDomesticWire = usDomesticWire;
×
1308
          return this;
×
1309
        }
1310
      }
1311

1312
      @Getter
1313
      public static class Ach {
1314
        /**
1315
         * Map of extra parameters for custom features not available in this client library. The
1316
         * content in this map is not serialized under this field's {@code @SerializedName} value.
1317
         * Instead, each key/value pair is serialized as if the key is a root-level field
1318
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
1319
         * instance.
1320
         */
1321
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1322
        Map<String, Object> extraParams;
1323

1324
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
1325
        @SerializedName("requested")
1326
        Boolean requested;
1327

1328
        private Ach(Map<String, Object> extraParams, Boolean requested) {
×
1329
          this.extraParams = extraParams;
×
1330
          this.requested = requested;
×
1331
        }
×
1332

1333
        public static Builder builder() {
1334
          return new Builder();
×
1335
        }
1336

1337
        public static class Builder {
×
1338
          private Map<String, Object> extraParams;
1339

1340
          private Boolean requested;
1341

1342
          /** Finalize and obtain parameter instance from this builder. */
1343
          public FinancialAccountUpdateParams.Features.OutboundTransfers.Ach build() {
1344
            return new FinancialAccountUpdateParams.Features.OutboundTransfers.Ach(
×
1345
                this.extraParams, this.requested);
1346
          }
1347

1348
          /**
1349
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
1350
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1351
           * map. See {@link
1352
           * FinancialAccountUpdateParams.Features.OutboundTransfers.Ach#extraParams} for the field
1353
           * documentation.
1354
           */
1355
          public Builder putExtraParam(String key, Object value) {
1356
            if (this.extraParams == null) {
×
1357
              this.extraParams = new HashMap<>();
×
1358
            }
1359
            this.extraParams.put(key, value);
×
1360
            return this;
×
1361
          }
1362

1363
          /**
1364
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1365
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1366
           * map. See {@link
1367
           * FinancialAccountUpdateParams.Features.OutboundTransfers.Ach#extraParams} for the field
1368
           * documentation.
1369
           */
1370
          public Builder putAllExtraParam(Map<String, Object> map) {
1371
            if (this.extraParams == null) {
×
1372
              this.extraParams = new HashMap<>();
×
1373
            }
1374
            this.extraParams.putAll(map);
×
1375
            return this;
×
1376
          }
1377

1378
          /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
1379
          public Builder setRequested(Boolean requested) {
1380
            this.requested = requested;
×
1381
            return this;
×
1382
          }
1383
        }
1384
      }
1385

1386
      @Getter
1387
      public static class UsDomesticWire {
1388
        /**
1389
         * Map of extra parameters for custom features not available in this client library. The
1390
         * content in this map is not serialized under this field's {@code @SerializedName} value.
1391
         * Instead, each key/value pair is serialized as if the key is a root-level field
1392
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
1393
         * instance.
1394
         */
1395
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1396
        Map<String, Object> extraParams;
1397

1398
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
1399
        @SerializedName("requested")
1400
        Boolean requested;
1401

1402
        private UsDomesticWire(Map<String, Object> extraParams, Boolean requested) {
×
1403
          this.extraParams = extraParams;
×
1404
          this.requested = requested;
×
1405
        }
×
1406

1407
        public static Builder builder() {
1408
          return new Builder();
×
1409
        }
1410

1411
        public static class Builder {
×
1412
          private Map<String, Object> extraParams;
1413

1414
          private Boolean requested;
1415

1416
          /** Finalize and obtain parameter instance from this builder. */
1417
          public FinancialAccountUpdateParams.Features.OutboundTransfers.UsDomesticWire build() {
1418
            return new FinancialAccountUpdateParams.Features.OutboundTransfers.UsDomesticWire(
×
1419
                this.extraParams, this.requested);
1420
          }
1421

1422
          /**
1423
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
1424
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1425
           * map. See {@link
1426
           * FinancialAccountUpdateParams.Features.OutboundTransfers.UsDomesticWire#extraParams} for
1427
           * the field documentation.
1428
           */
1429
          public Builder putExtraParam(String key, Object value) {
1430
            if (this.extraParams == null) {
×
1431
              this.extraParams = new HashMap<>();
×
1432
            }
1433
            this.extraParams.put(key, value);
×
1434
            return this;
×
1435
          }
1436

1437
          /**
1438
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1439
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1440
           * map. See {@link
1441
           * FinancialAccountUpdateParams.Features.OutboundTransfers.UsDomesticWire#extraParams} for
1442
           * the field documentation.
1443
           */
1444
          public Builder putAllExtraParam(Map<String, Object> map) {
1445
            if (this.extraParams == null) {
×
1446
              this.extraParams = new HashMap<>();
×
1447
            }
1448
            this.extraParams.putAll(map);
×
1449
            return this;
×
1450
          }
1451

1452
          /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
1453
          public Builder setRequested(Boolean requested) {
1454
            this.requested = requested;
×
1455
            return this;
×
1456
          }
1457
        }
1458
      }
1459
    }
1460
  }
1461

1462
  @Getter
1463
  public static class ForwardingSettings {
1464
    /**
1465
     * Map of extra parameters for custom features not available in this client library. The content
1466
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1467
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1468
     * param object. Effectively, this map is flattened to its parent instance.
1469
     */
1470
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1471
    Map<String, Object> extraParams;
1472

1473
    /** The financial_account id. */
1474
    @SerializedName("financial_account")
1475
    Object financialAccount;
1476

1477
    /** The payment_method or bank account id. This needs to be a verified bank account. */
1478
    @SerializedName("payment_method")
1479
    Object paymentMethod;
1480

1481
    /**
1482
     * <strong>Required.</strong> The type of the bank account provided. This can be either
1483
     * &quot;financial_account&quot; or &quot;payment_method&quot;
1484
     */
1485
    @SerializedName("type")
1486
    Type type;
1487

1488
    private ForwardingSettings(
NEW
1489
        Map<String, Object> extraParams, Object financialAccount, Object paymentMethod, Type type) {
×
NEW
1490
      this.extraParams = extraParams;
×
NEW
1491
      this.financialAccount = financialAccount;
×
NEW
1492
      this.paymentMethod = paymentMethod;
×
NEW
1493
      this.type = type;
×
NEW
1494
    }
×
1495

1496
    public static Builder builder() {
NEW
1497
      return new Builder();
×
1498
    }
1499

NEW
1500
    public static class Builder {
×
1501
      private Map<String, Object> extraParams;
1502

1503
      private Object financialAccount;
1504

1505
      private Object paymentMethod;
1506

1507
      private Type type;
1508

1509
      /** Finalize and obtain parameter instance from this builder. */
1510
      public FinancialAccountUpdateParams.ForwardingSettings build() {
NEW
1511
        return new FinancialAccountUpdateParams.ForwardingSettings(
×
1512
            this.extraParams, this.financialAccount, this.paymentMethod, this.type);
1513
      }
1514

1515
      /**
1516
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1517
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1518
       * FinancialAccountUpdateParams.ForwardingSettings#extraParams} for the field documentation.
1519
       */
1520
      public Builder putExtraParam(String key, Object value) {
NEW
1521
        if (this.extraParams == null) {
×
NEW
1522
          this.extraParams = new HashMap<>();
×
1523
        }
NEW
1524
        this.extraParams.put(key, value);
×
NEW
1525
        return this;
×
1526
      }
1527

1528
      /**
1529
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1530
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1531
       * See {@link FinancialAccountUpdateParams.ForwardingSettings#extraParams} for the field
1532
       * documentation.
1533
       */
1534
      public Builder putAllExtraParam(Map<String, Object> map) {
NEW
1535
        if (this.extraParams == null) {
×
NEW
1536
          this.extraParams = new HashMap<>();
×
1537
        }
NEW
1538
        this.extraParams.putAll(map);
×
NEW
1539
        return this;
×
1540
      }
1541

1542
      /** The financial_account id. */
1543
      public Builder setFinancialAccount(String financialAccount) {
NEW
1544
        this.financialAccount = financialAccount;
×
NEW
1545
        return this;
×
1546
      }
1547

1548
      /** The financial_account id. */
1549
      public Builder setFinancialAccount(EmptyParam financialAccount) {
NEW
1550
        this.financialAccount = financialAccount;
×
NEW
1551
        return this;
×
1552
      }
1553

1554
      /** The payment_method or bank account id. This needs to be a verified bank account. */
1555
      public Builder setPaymentMethod(String paymentMethod) {
NEW
1556
        this.paymentMethod = paymentMethod;
×
NEW
1557
        return this;
×
1558
      }
1559

1560
      /** The payment_method or bank account id. This needs to be a verified bank account. */
1561
      public Builder setPaymentMethod(EmptyParam paymentMethod) {
NEW
1562
        this.paymentMethod = paymentMethod;
×
NEW
1563
        return this;
×
1564
      }
1565

1566
      /**
1567
       * <strong>Required.</strong> The type of the bank account provided. This can be either
1568
       * &quot;financial_account&quot; or &quot;payment_method&quot;
1569
       */
1570
      public Builder setType(FinancialAccountUpdateParams.ForwardingSettings.Type type) {
NEW
1571
        this.type = type;
×
NEW
1572
        return this;
×
1573
      }
1574
    }
1575

NEW
1576
    public enum Type implements ApiRequestParams.EnumParam {
×
NEW
1577
      @SerializedName("financial_account")
×
1578
      FINANCIAL_ACCOUNT("financial_account"),
1579

NEW
1580
      @SerializedName("payment_method")
×
1581
      PAYMENT_METHOD("payment_method");
1582

1583
      @Getter(onMethod_ = {@Override})
1584
      private final String value;
1585

NEW
1586
      Type(String value) {
×
NEW
1587
        this.value = value;
×
NEW
1588
      }
×
1589
    }
1590
  }
1591

1592
  @Getter
1593
  public static class PlatformRestrictions {
1594
    /**
1595
     * Map of extra parameters for custom features not available in this client library. The content
1596
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1597
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1598
     * param object. Effectively, this map is flattened to its parent instance.
1599
     */
1600
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1601
    Map<String, Object> extraParams;
1602

1603
    /** Restricts all inbound money movement. */
1604
    @SerializedName("inbound_flows")
1605
    InboundFlows inboundFlows;
1606

1607
    /** Restricts all outbound money movement. */
1608
    @SerializedName("outbound_flows")
1609
    OutboundFlows outboundFlows;
1610

1611
    private PlatformRestrictions(
1612
        Map<String, Object> extraParams, InboundFlows inboundFlows, OutboundFlows outboundFlows) {
×
1613
      this.extraParams = extraParams;
×
1614
      this.inboundFlows = inboundFlows;
×
1615
      this.outboundFlows = outboundFlows;
×
1616
    }
×
1617

1618
    public static Builder builder() {
1619
      return new Builder();
×
1620
    }
1621

1622
    public static class Builder {
×
1623
      private Map<String, Object> extraParams;
1624

1625
      private InboundFlows inboundFlows;
1626

1627
      private OutboundFlows outboundFlows;
1628

1629
      /** Finalize and obtain parameter instance from this builder. */
1630
      public FinancialAccountUpdateParams.PlatformRestrictions build() {
1631
        return new FinancialAccountUpdateParams.PlatformRestrictions(
×
1632
            this.extraParams, this.inboundFlows, this.outboundFlows);
1633
      }
1634

1635
      /**
1636
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1637
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1638
       * FinancialAccountUpdateParams.PlatformRestrictions#extraParams} for the field documentation.
1639
       */
1640
      public Builder putExtraParam(String key, Object value) {
1641
        if (this.extraParams == null) {
×
1642
          this.extraParams = new HashMap<>();
×
1643
        }
1644
        this.extraParams.put(key, value);
×
1645
        return this;
×
1646
      }
1647

1648
      /**
1649
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1650
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1651
       * See {@link FinancialAccountUpdateParams.PlatformRestrictions#extraParams} for the field
1652
       * documentation.
1653
       */
1654
      public Builder putAllExtraParam(Map<String, Object> map) {
1655
        if (this.extraParams == null) {
×
1656
          this.extraParams = new HashMap<>();
×
1657
        }
1658
        this.extraParams.putAll(map);
×
1659
        return this;
×
1660
      }
1661

1662
      /** Restricts all inbound money movement. */
1663
      public Builder setInboundFlows(
1664
          FinancialAccountUpdateParams.PlatformRestrictions.InboundFlows inboundFlows) {
1665
        this.inboundFlows = inboundFlows;
×
1666
        return this;
×
1667
      }
1668

1669
      /** Restricts all outbound money movement. */
1670
      public Builder setOutboundFlows(
1671
          FinancialAccountUpdateParams.PlatformRestrictions.OutboundFlows outboundFlows) {
1672
        this.outboundFlows = outboundFlows;
×
1673
        return this;
×
1674
      }
1675
    }
1676

1677
    public enum InboundFlows implements ApiRequestParams.EnumParam {
×
1678
      @SerializedName("restricted")
×
1679
      RESTRICTED("restricted"),
1680

1681
      @SerializedName("unrestricted")
×
1682
      UNRESTRICTED("unrestricted");
1683

1684
      @Getter(onMethod_ = {@Override})
1685
      private final String value;
1686

1687
      InboundFlows(String value) {
×
1688
        this.value = value;
×
1689
      }
×
1690
    }
1691

1692
    public enum OutboundFlows implements ApiRequestParams.EnumParam {
×
1693
      @SerializedName("restricted")
×
1694
      RESTRICTED("restricted"),
1695

1696
      @SerializedName("unrestricted")
×
1697
      UNRESTRICTED("unrestricted");
1698

1699
      @Getter(onMethod_ = {@Override})
1700
      private final String value;
1701

1702
      OutboundFlows(String value) {
×
1703
        this.value = value;
×
1704
      }
×
1705
    }
1706
  }
1707
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc