• 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

8.86
/src/main/java/com/stripe/param/treasury/FinancialAccountCreateParams.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 FinancialAccountCreateParams 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. Stripe or the platform
38
   * can control features via the requested field.
39
   */
40
  @SerializedName("features")
41
  Features features;
42

43
  /**
44
   * Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach
45
   * to an object. This can be useful for storing additional information about the object in a
46
   * structured format. Individual keys can be unset by posting an empty value to them. All keys can
47
   * be unset by posting an empty value to {@code metadata}.
48
   */
49
  @SerializedName("metadata")
50
  Map<String, String> metadata;
51

52
  /** The nickname for the FinancialAccount. */
53
  @SerializedName("nickname")
54
  Object nickname;
55

56
  /** The set of functionalities that the platform can restrict on the FinancialAccount. */
57
  @SerializedName("platform_restrictions")
58
  PlatformRestrictions platformRestrictions;
59

60
  /** <strong>Required.</strong> The currencies the FinancialAccount can hold a balance in. */
61
  @SerializedName("supported_currencies")
62
  List<String> supportedCurrencies;
63

64
  private FinancialAccountCreateParams(
65
      Object displayName,
66
      List<String> expand,
67
      Map<String, Object> extraParams,
68
      Features features,
69
      Map<String, String> metadata,
70
      Object nickname,
71
      PlatformRestrictions platformRestrictions,
72
      List<String> supportedCurrencies) {
1✔
73
    this.displayName = displayName;
1✔
74
    this.expand = expand;
1✔
75
    this.extraParams = extraParams;
1✔
76
    this.features = features;
1✔
77
    this.metadata = metadata;
1✔
78
    this.nickname = nickname;
1✔
79
    this.platformRestrictions = platformRestrictions;
1✔
80
    this.supportedCurrencies = supportedCurrencies;
1✔
81
  }
1✔
82

83
  public static Builder builder() {
84
    return new Builder();
1✔
85
  }
86

87
  public static class Builder {
1✔
88
    private Object displayName;
89

90
    private List<String> expand;
91

92
    private Map<String, Object> extraParams;
93

94
    private Features features;
95

96
    private Map<String, String> metadata;
97

98
    private Object nickname;
99

100
    private PlatformRestrictions platformRestrictions;
101

102
    private List<String> supportedCurrencies;
103

104
    /** Finalize and obtain parameter instance from this builder. */
105
    public FinancialAccountCreateParams build() {
106
      return new FinancialAccountCreateParams(
1✔
107
          this.displayName,
108
          this.expand,
109
          this.extraParams,
110
          this.features,
111
          this.metadata,
112
          this.nickname,
113
          this.platformRestrictions,
114
          this.supportedCurrencies);
115
    }
116

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

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

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

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

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

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

189
    /**
190
     * Encodes whether a FinancialAccount has access to a particular feature. Stripe or the platform
191
     * can control features via the requested field.
192
     */
193
    public Builder setFeatures(FinancialAccountCreateParams.Features features) {
194
      this.features = features;
1✔
195
      return this;
1✔
196
    }
197

198
    /**
199
     * Add a key/value pair to `metadata` map. A map is initialized for the first `put/putAll` call,
200
     * and subsequent calls add additional key/value pairs to the original map. See {@link
201
     * FinancialAccountCreateParams#metadata} for the field documentation.
202
     */
203
    public Builder putMetadata(String key, String value) {
204
      if (this.metadata == null) {
×
205
        this.metadata = new HashMap<>();
×
206
      }
207
      this.metadata.put(key, value);
×
208
      return this;
×
209
    }
210

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

224
    /** The nickname for the FinancialAccount. */
225
    public Builder setNickname(String nickname) {
NEW
226
      this.nickname = nickname;
×
NEW
227
      return this;
×
228
    }
229

230
    /** The nickname for the FinancialAccount. */
231
    public Builder setNickname(EmptyParam nickname) {
NEW
232
      this.nickname = nickname;
×
NEW
233
      return this;
×
234
    }
235

236
    /** The set of functionalities that the platform can restrict on the FinancialAccount. */
237
    public Builder setPlatformRestrictions(
238
        FinancialAccountCreateParams.PlatformRestrictions platformRestrictions) {
239
      this.platformRestrictions = platformRestrictions;
×
240
      return this;
×
241
    }
242

243
    /**
244
     * Add an element to `supportedCurrencies` list. A list is initialized for the first
245
     * `add/addAll` call, and subsequent calls adds additional elements to the original list. See
246
     * {@link FinancialAccountCreateParams#supportedCurrencies} for the field documentation.
247
     */
248
    public Builder addSupportedCurrency(String element) {
249
      if (this.supportedCurrencies == null) {
1✔
250
        this.supportedCurrencies = new ArrayList<>();
1✔
251
      }
252
      this.supportedCurrencies.add(element);
1✔
253
      return this;
1✔
254
    }
255

256
    /**
257
     * Add all elements to `supportedCurrencies` list. A list is initialized for the first
258
     * `add/addAll` call, and subsequent calls adds additional elements to the original list. See
259
     * {@link FinancialAccountCreateParams#supportedCurrencies} for the field documentation.
260
     */
261
    public Builder addAllSupportedCurrency(List<String> elements) {
262
      if (this.supportedCurrencies == null) {
×
263
        this.supportedCurrencies = new ArrayList<>();
×
264
      }
265
      this.supportedCurrencies.addAll(elements);
×
266
      return this;
×
267
    }
268
  }
269

270
  @Getter
271
  public static class Features {
272
    /**
273
     * Encodes the FinancialAccount's ability to be used with the Issuing product, including
274
     * attaching cards to and drawing funds from the FinancialAccount.
275
     */
276
    @SerializedName("card_issuing")
277
    CardIssuing cardIssuing;
278

279
    /**
280
     * Represents whether this FinancialAccount is eligible for deposit insurance. Various factors
281
     * determine the insurance amount.
282
     */
283
    @SerializedName("deposit_insurance")
284
    DepositInsurance depositInsurance;
285

286
    /**
287
     * Map of extra parameters for custom features not available in this client library. The content
288
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
289
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
290
     * param object. Effectively, this map is flattened to its parent instance.
291
     */
292
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
293
    Map<String, Object> extraParams;
294

295
    /** Contains Features that add FinancialAddresses to the FinancialAccount. */
296
    @SerializedName("financial_addresses")
297
    FinancialAddresses financialAddresses;
298

299
    /**
300
     * Contains settings related to adding funds to a FinancialAccount from another Account with the
301
     * same owner.
302
     */
303
    @SerializedName("inbound_transfers")
304
    InboundTransfers inboundTransfers;
305

306
    /**
307
     * Represents the ability for the FinancialAccount to send money to, or receive money from other
308
     * FinancialAccounts (for example, via OutboundPayment).
309
     */
310
    @SerializedName("intra_stripe_flows")
311
    IntraStripeFlows intraStripeFlows;
312

313
    /**
314
     * Includes Features related to initiating money movement out of the FinancialAccount to someone
315
     * else's bucket of money.
316
     */
317
    @SerializedName("outbound_payments")
318
    OutboundPayments outboundPayments;
319

320
    /**
321
     * Contains a Feature and settings related to moving money out of the FinancialAccount into
322
     * another Account with the same owner.
323
     */
324
    @SerializedName("outbound_transfers")
325
    OutboundTransfers outboundTransfers;
326

327
    private Features(
328
        CardIssuing cardIssuing,
329
        DepositInsurance depositInsurance,
330
        Map<String, Object> extraParams,
331
        FinancialAddresses financialAddresses,
332
        InboundTransfers inboundTransfers,
333
        IntraStripeFlows intraStripeFlows,
334
        OutboundPayments outboundPayments,
335
        OutboundTransfers outboundTransfers) {
1✔
336
      this.cardIssuing = cardIssuing;
1✔
337
      this.depositInsurance = depositInsurance;
1✔
338
      this.extraParams = extraParams;
1✔
339
      this.financialAddresses = financialAddresses;
1✔
340
      this.inboundTransfers = inboundTransfers;
1✔
341
      this.intraStripeFlows = intraStripeFlows;
1✔
342
      this.outboundPayments = outboundPayments;
1✔
343
      this.outboundTransfers = outboundTransfers;
1✔
344
    }
1✔
345

346
    public static Builder builder() {
347
      return new Builder();
1✔
348
    }
349

350
    public static class Builder {
1✔
351
      private CardIssuing cardIssuing;
352

353
      private DepositInsurance depositInsurance;
354

355
      private Map<String, Object> extraParams;
356

357
      private FinancialAddresses financialAddresses;
358

359
      private InboundTransfers inboundTransfers;
360

361
      private IntraStripeFlows intraStripeFlows;
362

363
      private OutboundPayments outboundPayments;
364

365
      private OutboundTransfers outboundTransfers;
366

367
      /** Finalize and obtain parameter instance from this builder. */
368
      public FinancialAccountCreateParams.Features build() {
369
        return new FinancialAccountCreateParams.Features(
1✔
370
            this.cardIssuing,
371
            this.depositInsurance,
372
            this.extraParams,
373
            this.financialAddresses,
374
            this.inboundTransfers,
375
            this.intraStripeFlows,
376
            this.outboundPayments,
377
            this.outboundTransfers);
378
      }
379

380
      /**
381
       * Encodes the FinancialAccount's ability to be used with the Issuing product, including
382
       * attaching cards to and drawing funds from the FinancialAccount.
383
       */
384
      public Builder setCardIssuing(FinancialAccountCreateParams.Features.CardIssuing cardIssuing) {
385
        this.cardIssuing = cardIssuing;
×
386
        return this;
×
387
      }
388

389
      /**
390
       * Represents whether this FinancialAccount is eligible for deposit insurance. Various factors
391
       * determine the insurance amount.
392
       */
393
      public Builder setDepositInsurance(
394
          FinancialAccountCreateParams.Features.DepositInsurance depositInsurance) {
395
        this.depositInsurance = depositInsurance;
×
396
        return this;
×
397
      }
398

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

412
      /**
413
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
414
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
415
       * See {@link FinancialAccountCreateParams.Features#extraParams} for the field documentation.
416
       */
417
      public Builder putAllExtraParam(Map<String, Object> map) {
418
        if (this.extraParams == null) {
×
419
          this.extraParams = new HashMap<>();
×
420
        }
421
        this.extraParams.putAll(map);
×
422
        return this;
×
423
      }
424

425
      /** Contains Features that add FinancialAddresses to the FinancialAccount. */
426
      public Builder setFinancialAddresses(
427
          FinancialAccountCreateParams.Features.FinancialAddresses financialAddresses) {
428
        this.financialAddresses = financialAddresses;
×
429
        return this;
×
430
      }
431

432
      /**
433
       * Contains settings related to adding funds to a FinancialAccount from another Account with
434
       * the same owner.
435
       */
436
      public Builder setInboundTransfers(
437
          FinancialAccountCreateParams.Features.InboundTransfers inboundTransfers) {
438
        this.inboundTransfers = inboundTransfers;
×
439
        return this;
×
440
      }
441

442
      /**
443
       * Represents the ability for the FinancialAccount to send money to, or receive money from
444
       * other FinancialAccounts (for example, via OutboundPayment).
445
       */
446
      public Builder setIntraStripeFlows(
447
          FinancialAccountCreateParams.Features.IntraStripeFlows intraStripeFlows) {
448
        this.intraStripeFlows = intraStripeFlows;
×
449
        return this;
×
450
      }
451

452
      /**
453
       * Includes Features related to initiating money movement out of the FinancialAccount to
454
       * someone else's bucket of money.
455
       */
456
      public Builder setOutboundPayments(
457
          FinancialAccountCreateParams.Features.OutboundPayments outboundPayments) {
458
        this.outboundPayments = outboundPayments;
×
459
        return this;
×
460
      }
461

462
      /**
463
       * Contains a Feature and settings related to moving money out of the FinancialAccount into
464
       * another Account with the same owner.
465
       */
466
      public Builder setOutboundTransfers(
467
          FinancialAccountCreateParams.Features.OutboundTransfers outboundTransfers) {
468
        this.outboundTransfers = outboundTransfers;
×
469
        return this;
×
470
      }
471
    }
472

473
    @Getter
474
    public static class CardIssuing {
475
      /**
476
       * Map of extra parameters for custom features not available in this client library. The
477
       * content in this map is not serialized under this field's {@code @SerializedName} value.
478
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
479
       * name in this param object. Effectively, this map is flattened to its parent instance.
480
       */
481
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
482
      Map<String, Object> extraParams;
483

484
      /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
485
      @SerializedName("requested")
486
      Boolean requested;
487

488
      private CardIssuing(Map<String, Object> extraParams, Boolean requested) {
×
489
        this.extraParams = extraParams;
×
490
        this.requested = requested;
×
491
      }
×
492

493
      public static Builder builder() {
494
        return new Builder();
×
495
      }
496

497
      public static class Builder {
×
498
        private Map<String, Object> extraParams;
499

500
        private Boolean requested;
501

502
        /** Finalize and obtain parameter instance from this builder. */
503
        public FinancialAccountCreateParams.Features.CardIssuing build() {
504
          return new FinancialAccountCreateParams.Features.CardIssuing(
×
505
              this.extraParams, this.requested);
506
        }
507

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

522
        /**
523
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
524
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
525
         * map. See {@link FinancialAccountCreateParams.Features.CardIssuing#extraParams} for the
526
         * field documentation.
527
         */
528
        public Builder putAllExtraParam(Map<String, Object> map) {
529
          if (this.extraParams == null) {
×
530
            this.extraParams = new HashMap<>();
×
531
          }
532
          this.extraParams.putAll(map);
×
533
          return this;
×
534
        }
535

536
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
537
        public Builder setRequested(Boolean requested) {
538
          this.requested = requested;
×
539
          return this;
×
540
        }
541
      }
542
    }
543

544
    @Getter
545
    public static class DepositInsurance {
546
      /**
547
       * Map of extra parameters for custom features not available in this client library. The
548
       * content in this map is not serialized under this field's {@code @SerializedName} value.
549
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
550
       * name in this param object. Effectively, this map is flattened to its parent instance.
551
       */
552
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
553
      Map<String, Object> extraParams;
554

555
      /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
556
      @SerializedName("requested")
557
      Boolean requested;
558

559
      private DepositInsurance(Map<String, Object> extraParams, Boolean requested) {
×
560
        this.extraParams = extraParams;
×
561
        this.requested = requested;
×
562
      }
×
563

564
      public static Builder builder() {
565
        return new Builder();
×
566
      }
567

568
      public static class Builder {
×
569
        private Map<String, Object> extraParams;
570

571
        private Boolean requested;
572

573
        /** Finalize and obtain parameter instance from this builder. */
574
        public FinancialAccountCreateParams.Features.DepositInsurance build() {
575
          return new FinancialAccountCreateParams.Features.DepositInsurance(
×
576
              this.extraParams, this.requested);
577
        }
578

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

593
        /**
594
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
595
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
596
         * map. See {@link FinancialAccountCreateParams.Features.DepositInsurance#extraParams} for
597
         * the field documentation.
598
         */
599
        public Builder putAllExtraParam(Map<String, Object> map) {
600
          if (this.extraParams == null) {
×
601
            this.extraParams = new HashMap<>();
×
602
          }
603
          this.extraParams.putAll(map);
×
604
          return this;
×
605
        }
606

607
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
608
        public Builder setRequested(Boolean requested) {
609
          this.requested = requested;
×
610
          return this;
×
611
        }
612
      }
613
    }
614

615
    @Getter
616
    public static class FinancialAddresses {
617
      /** Adds an ABA FinancialAddress to the FinancialAccount. */
618
      @SerializedName("aba")
619
      Aba aba;
620

621
      /**
622
       * Map of extra parameters for custom features not available in this client library. The
623
       * content in this map is not serialized under this field's {@code @SerializedName} value.
624
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
625
       * name in this param object. Effectively, this map is flattened to its parent instance.
626
       */
627
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
628
      Map<String, Object> extraParams;
629

630
      private FinancialAddresses(Aba aba, Map<String, Object> extraParams) {
×
631
        this.aba = aba;
×
632
        this.extraParams = extraParams;
×
633
      }
×
634

635
      public static Builder builder() {
636
        return new Builder();
×
637
      }
638

639
      public static class Builder {
×
640
        private Aba aba;
641

642
        private Map<String, Object> extraParams;
643

644
        /** Finalize and obtain parameter instance from this builder. */
645
        public FinancialAccountCreateParams.Features.FinancialAddresses build() {
646
          return new FinancialAccountCreateParams.Features.FinancialAddresses(
×
647
              this.aba, this.extraParams);
648
        }
649

650
        /** Adds an ABA FinancialAddress to the FinancialAccount. */
651
        public Builder setAba(FinancialAccountCreateParams.Features.FinancialAddresses.Aba aba) {
652
          this.aba = aba;
×
653
          return this;
×
654
        }
655

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

670
        /**
671
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
672
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
673
         * map. See {@link FinancialAccountCreateParams.Features.FinancialAddresses#extraParams} for
674
         * the field documentation.
675
         */
676
        public Builder putAllExtraParam(Map<String, Object> map) {
677
          if (this.extraParams == null) {
×
678
            this.extraParams = new HashMap<>();
×
679
          }
680
          this.extraParams.putAll(map);
×
681
          return this;
×
682
        }
683
      }
684

685
      @Getter
686
      public static class Aba {
687
        /** Requested bank partner. */
688
        @SerializedName("bank")
689
        Bank bank;
690

691
        /**
692
         * Map of extra parameters for custom features not available in this client library. The
693
         * content in this map is not serialized under this field's {@code @SerializedName} value.
694
         * Instead, each key/value pair is serialized as if the key is a root-level field
695
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
696
         * instance.
697
         */
698
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
699
        Map<String, Object> extraParams;
700

701
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
702
        @SerializedName("requested")
703
        Boolean requested;
704

705
        private Aba(Bank bank, Map<String, Object> extraParams, Boolean requested) {
×
706
          this.bank = bank;
×
707
          this.extraParams = extraParams;
×
708
          this.requested = requested;
×
709
        }
×
710

711
        public static Builder builder() {
712
          return new Builder();
×
713
        }
714

715
        public static class Builder {
×
716
          private Bank bank;
717

718
          private Map<String, Object> extraParams;
719

720
          private Boolean requested;
721

722
          /** Finalize and obtain parameter instance from this builder. */
723
          public FinancialAccountCreateParams.Features.FinancialAddresses.Aba build() {
724
            return new FinancialAccountCreateParams.Features.FinancialAddresses.Aba(
×
725
                this.bank, this.extraParams, this.requested);
726
          }
727

728
          /** Requested bank partner. */
729
          public Builder setBank(
730
              FinancialAccountCreateParams.Features.FinancialAddresses.Aba.Bank bank) {
731
            this.bank = bank;
×
732
            return this;
×
733
          }
734

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

750
          /**
751
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
752
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
753
           * map. See {@link
754
           * FinancialAccountCreateParams.Features.FinancialAddresses.Aba#extraParams} for the field
755
           * documentation.
756
           */
757
          public Builder putAllExtraParam(Map<String, Object> map) {
758
            if (this.extraParams == null) {
×
759
              this.extraParams = new HashMap<>();
×
760
            }
761
            this.extraParams.putAll(map);
×
762
            return this;
×
763
          }
764

765
          /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
766
          public Builder setRequested(Boolean requested) {
767
            this.requested = requested;
×
768
            return this;
×
769
          }
770
        }
771

772
        public enum Bank implements ApiRequestParams.EnumParam {
×
773
          @SerializedName("evolve")
×
774
          EVOLVE("evolve"),
775

776
          @SerializedName("fifth_third")
×
777
          FIFTH_THIRD("fifth_third"),
778

779
          @SerializedName("goldman_sachs")
×
780
          GOLDMAN_SACHS("goldman_sachs");
781

782
          @Getter(onMethod_ = {@Override})
783
          private final String value;
784

785
          Bank(String value) {
×
786
            this.value = value;
×
787
          }
×
788
        }
789
      }
790
    }
791

792
    @Getter
793
    public static class InboundTransfers {
794
      /** Enables ACH Debits via the InboundTransfers API. */
795
      @SerializedName("ach")
796
      Ach ach;
797

798
      /**
799
       * Map of extra parameters for custom features not available in this client library. The
800
       * content in this map is not serialized under this field's {@code @SerializedName} value.
801
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
802
       * name in this param object. Effectively, this map is flattened to its parent instance.
803
       */
804
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
805
      Map<String, Object> extraParams;
806

807
      private InboundTransfers(Ach ach, Map<String, Object> extraParams) {
×
808
        this.ach = ach;
×
809
        this.extraParams = extraParams;
×
810
      }
×
811

812
      public static Builder builder() {
813
        return new Builder();
×
814
      }
815

816
      public static class Builder {
×
817
        private Ach ach;
818

819
        private Map<String, Object> extraParams;
820

821
        /** Finalize and obtain parameter instance from this builder. */
822
        public FinancialAccountCreateParams.Features.InboundTransfers build() {
823
          return new FinancialAccountCreateParams.Features.InboundTransfers(
×
824
              this.ach, this.extraParams);
825
        }
826

827
        /** Enables ACH Debits via the InboundTransfers API. */
828
        public Builder setAch(FinancialAccountCreateParams.Features.InboundTransfers.Ach ach) {
829
          this.ach = ach;
×
830
          return this;
×
831
        }
832

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

847
        /**
848
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
849
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
850
         * map. See {@link FinancialAccountCreateParams.Features.InboundTransfers#extraParams} for
851
         * the field documentation.
852
         */
853
        public Builder putAllExtraParam(Map<String, Object> map) {
854
          if (this.extraParams == null) {
×
855
            this.extraParams = new HashMap<>();
×
856
          }
857
          this.extraParams.putAll(map);
×
858
          return this;
×
859
        }
860
      }
861

862
      @Getter
863
      public static class Ach {
864
        /**
865
         * Map of extra parameters for custom features not available in this client library. The
866
         * content in this map is not serialized under this field's {@code @SerializedName} value.
867
         * Instead, each key/value pair is serialized as if the key is a root-level field
868
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
869
         * instance.
870
         */
871
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
872
        Map<String, Object> extraParams;
873

874
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
875
        @SerializedName("requested")
876
        Boolean requested;
877

878
        private Ach(Map<String, Object> extraParams, Boolean requested) {
×
879
          this.extraParams = extraParams;
×
880
          this.requested = requested;
×
881
        }
×
882

883
        public static Builder builder() {
884
          return new Builder();
×
885
        }
886

887
        public static class Builder {
×
888
          private Map<String, Object> extraParams;
889

890
          private Boolean requested;
891

892
          /** Finalize and obtain parameter instance from this builder. */
893
          public FinancialAccountCreateParams.Features.InboundTransfers.Ach build() {
894
            return new FinancialAccountCreateParams.Features.InboundTransfers.Ach(
×
895
                this.extraParams, this.requested);
896
          }
897

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

912
          /**
913
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
914
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
915
           * map. See {@link FinancialAccountCreateParams.Features.InboundTransfers.Ach#extraParams}
916
           * for the field documentation.
917
           */
918
          public Builder putAllExtraParam(Map<String, Object> map) {
919
            if (this.extraParams == null) {
×
920
              this.extraParams = new HashMap<>();
×
921
            }
922
            this.extraParams.putAll(map);
×
923
            return this;
×
924
          }
925

926
          /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
927
          public Builder setRequested(Boolean requested) {
928
            this.requested = requested;
×
929
            return this;
×
930
          }
931
        }
932
      }
933
    }
934

935
    @Getter
936
    public static class IntraStripeFlows {
937
      /**
938
       * Map of extra parameters for custom features not available in this client library. The
939
       * content in this map is not serialized under this field's {@code @SerializedName} value.
940
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
941
       * name in this param object. Effectively, this map is flattened to its parent instance.
942
       */
943
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
944
      Map<String, Object> extraParams;
945

946
      /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
947
      @SerializedName("requested")
948
      Boolean requested;
949

950
      private IntraStripeFlows(Map<String, Object> extraParams, Boolean requested) {
×
951
        this.extraParams = extraParams;
×
952
        this.requested = requested;
×
953
      }
×
954

955
      public static Builder builder() {
956
        return new Builder();
×
957
      }
958

959
      public static class Builder {
×
960
        private Map<String, Object> extraParams;
961

962
        private Boolean requested;
963

964
        /** Finalize and obtain parameter instance from this builder. */
965
        public FinancialAccountCreateParams.Features.IntraStripeFlows build() {
966
          return new FinancialAccountCreateParams.Features.IntraStripeFlows(
×
967
              this.extraParams, this.requested);
968
        }
969

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

984
        /**
985
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
986
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
987
         * map. See {@link FinancialAccountCreateParams.Features.IntraStripeFlows#extraParams} for
988
         * the field documentation.
989
         */
990
        public Builder putAllExtraParam(Map<String, Object> map) {
991
          if (this.extraParams == null) {
×
992
            this.extraParams = new HashMap<>();
×
993
          }
994
          this.extraParams.putAll(map);
×
995
          return this;
×
996
        }
997

998
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
999
        public Builder setRequested(Boolean requested) {
1000
          this.requested = requested;
×
1001
          return this;
×
1002
        }
1003
      }
1004
    }
1005

1006
    @Getter
1007
    public static class OutboundPayments {
1008
      /** Enables ACH transfers via the OutboundPayments API. */
1009
      @SerializedName("ach")
1010
      Ach ach;
1011

1012
      /**
1013
       * Map of extra parameters for custom features not available in this client library. The
1014
       * content in this map is not serialized under this field's {@code @SerializedName} value.
1015
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
1016
       * name in this param object. Effectively, this map is flattened to its parent instance.
1017
       */
1018
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1019
      Map<String, Object> extraParams;
1020

1021
      /** Enables US domestic wire transfers via the OutboundPayments API. */
1022
      @SerializedName("us_domestic_wire")
1023
      UsDomesticWire usDomesticWire;
1024

1025
      private OutboundPayments(
1026
          Ach ach, Map<String, Object> extraParams, UsDomesticWire usDomesticWire) {
×
1027
        this.ach = ach;
×
1028
        this.extraParams = extraParams;
×
1029
        this.usDomesticWire = usDomesticWire;
×
1030
      }
×
1031

1032
      public static Builder builder() {
1033
        return new Builder();
×
1034
      }
1035

1036
      public static class Builder {
×
1037
        private Ach ach;
1038

1039
        private Map<String, Object> extraParams;
1040

1041
        private UsDomesticWire usDomesticWire;
1042

1043
        /** Finalize and obtain parameter instance from this builder. */
1044
        public FinancialAccountCreateParams.Features.OutboundPayments build() {
1045
          return new FinancialAccountCreateParams.Features.OutboundPayments(
×
1046
              this.ach, this.extraParams, this.usDomesticWire);
1047
        }
1048

1049
        /** Enables ACH transfers via the OutboundPayments API. */
1050
        public Builder setAch(FinancialAccountCreateParams.Features.OutboundPayments.Ach ach) {
1051
          this.ach = ach;
×
1052
          return this;
×
1053
        }
1054

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

1069
        /**
1070
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1071
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1072
         * map. See {@link FinancialAccountCreateParams.Features.OutboundPayments#extraParams} for
1073
         * the field documentation.
1074
         */
1075
        public Builder putAllExtraParam(Map<String, Object> map) {
1076
          if (this.extraParams == null) {
×
1077
            this.extraParams = new HashMap<>();
×
1078
          }
1079
          this.extraParams.putAll(map);
×
1080
          return this;
×
1081
        }
1082

1083
        /** Enables US domestic wire transfers via the OutboundPayments API. */
1084
        public Builder setUsDomesticWire(
1085
            FinancialAccountCreateParams.Features.OutboundPayments.UsDomesticWire usDomesticWire) {
1086
          this.usDomesticWire = usDomesticWire;
×
1087
          return this;
×
1088
        }
1089
      }
1090

1091
      @Getter
1092
      public static class Ach {
1093
        /**
1094
         * Map of extra parameters for custom features not available in this client library. The
1095
         * content in this map is not serialized under this field's {@code @SerializedName} value.
1096
         * Instead, each key/value pair is serialized as if the key is a root-level field
1097
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
1098
         * instance.
1099
         */
1100
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1101
        Map<String, Object> extraParams;
1102

1103
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
1104
        @SerializedName("requested")
1105
        Boolean requested;
1106

1107
        private Ach(Map<String, Object> extraParams, Boolean requested) {
×
1108
          this.extraParams = extraParams;
×
1109
          this.requested = requested;
×
1110
        }
×
1111

1112
        public static Builder builder() {
1113
          return new Builder();
×
1114
        }
1115

1116
        public static class Builder {
×
1117
          private Map<String, Object> extraParams;
1118

1119
          private Boolean requested;
1120

1121
          /** Finalize and obtain parameter instance from this builder. */
1122
          public FinancialAccountCreateParams.Features.OutboundPayments.Ach build() {
1123
            return new FinancialAccountCreateParams.Features.OutboundPayments.Ach(
×
1124
                this.extraParams, this.requested);
1125
          }
1126

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

1141
          /**
1142
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1143
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1144
           * map. See {@link FinancialAccountCreateParams.Features.OutboundPayments.Ach#extraParams}
1145
           * for the field documentation.
1146
           */
1147
          public Builder putAllExtraParam(Map<String, Object> map) {
1148
            if (this.extraParams == null) {
×
1149
              this.extraParams = new HashMap<>();
×
1150
            }
1151
            this.extraParams.putAll(map);
×
1152
            return this;
×
1153
          }
1154

1155
          /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
1156
          public Builder setRequested(Boolean requested) {
1157
            this.requested = requested;
×
1158
            return this;
×
1159
          }
1160
        }
1161
      }
1162

1163
      @Getter
1164
      public static class UsDomesticWire {
1165
        /**
1166
         * Map of extra parameters for custom features not available in this client library. The
1167
         * content in this map is not serialized under this field's {@code @SerializedName} value.
1168
         * Instead, each key/value pair is serialized as if the key is a root-level field
1169
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
1170
         * instance.
1171
         */
1172
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1173
        Map<String, Object> extraParams;
1174

1175
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
1176
        @SerializedName("requested")
1177
        Boolean requested;
1178

1179
        private UsDomesticWire(Map<String, Object> extraParams, Boolean requested) {
×
1180
          this.extraParams = extraParams;
×
1181
          this.requested = requested;
×
1182
        }
×
1183

1184
        public static Builder builder() {
1185
          return new Builder();
×
1186
        }
1187

1188
        public static class Builder {
×
1189
          private Map<String, Object> extraParams;
1190

1191
          private Boolean requested;
1192

1193
          /** Finalize and obtain parameter instance from this builder. */
1194
          public FinancialAccountCreateParams.Features.OutboundPayments.UsDomesticWire build() {
1195
            return new FinancialAccountCreateParams.Features.OutboundPayments.UsDomesticWire(
×
1196
                this.extraParams, this.requested);
1197
          }
1198

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

1214
          /**
1215
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1216
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1217
           * map. See {@link
1218
           * FinancialAccountCreateParams.Features.OutboundPayments.UsDomesticWire#extraParams} for
1219
           * the field documentation.
1220
           */
1221
          public Builder putAllExtraParam(Map<String, Object> map) {
1222
            if (this.extraParams == null) {
×
1223
              this.extraParams = new HashMap<>();
×
1224
            }
1225
            this.extraParams.putAll(map);
×
1226
            return this;
×
1227
          }
1228

1229
          /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
1230
          public Builder setRequested(Boolean requested) {
1231
            this.requested = requested;
×
1232
            return this;
×
1233
          }
1234
        }
1235
      }
1236
    }
1237

1238
    @Getter
1239
    public static class OutboundTransfers {
1240
      /** Enables ACH transfers via the OutboundTransfers API. */
1241
      @SerializedName("ach")
1242
      Ach ach;
1243

1244
      /**
1245
       * Map of extra parameters for custom features not available in this client library. The
1246
       * content in this map is not serialized under this field's {@code @SerializedName} value.
1247
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
1248
       * name in this param object. Effectively, this map is flattened to its parent instance.
1249
       */
1250
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1251
      Map<String, Object> extraParams;
1252

1253
      /** Enables US domestic wire transfers via the OutboundTransfers API. */
1254
      @SerializedName("us_domestic_wire")
1255
      UsDomesticWire usDomesticWire;
1256

1257
      private OutboundTransfers(
1258
          Ach ach, Map<String, Object> extraParams, UsDomesticWire usDomesticWire) {
×
1259
        this.ach = ach;
×
1260
        this.extraParams = extraParams;
×
1261
        this.usDomesticWire = usDomesticWire;
×
1262
      }
×
1263

1264
      public static Builder builder() {
1265
        return new Builder();
×
1266
      }
1267

1268
      public static class Builder {
×
1269
        private Ach ach;
1270

1271
        private Map<String, Object> extraParams;
1272

1273
        private UsDomesticWire usDomesticWire;
1274

1275
        /** Finalize and obtain parameter instance from this builder. */
1276
        public FinancialAccountCreateParams.Features.OutboundTransfers build() {
1277
          return new FinancialAccountCreateParams.Features.OutboundTransfers(
×
1278
              this.ach, this.extraParams, this.usDomesticWire);
1279
        }
1280

1281
        /** Enables ACH transfers via the OutboundTransfers API. */
1282
        public Builder setAch(FinancialAccountCreateParams.Features.OutboundTransfers.Ach ach) {
1283
          this.ach = ach;
×
1284
          return this;
×
1285
        }
1286

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

1301
        /**
1302
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1303
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1304
         * map. See {@link FinancialAccountCreateParams.Features.OutboundTransfers#extraParams} for
1305
         * the field documentation.
1306
         */
1307
        public Builder putAllExtraParam(Map<String, Object> map) {
1308
          if (this.extraParams == null) {
×
1309
            this.extraParams = new HashMap<>();
×
1310
          }
1311
          this.extraParams.putAll(map);
×
1312
          return this;
×
1313
        }
1314

1315
        /** Enables US domestic wire transfers via the OutboundTransfers API. */
1316
        public Builder setUsDomesticWire(
1317
            FinancialAccountCreateParams.Features.OutboundTransfers.UsDomesticWire usDomesticWire) {
1318
          this.usDomesticWire = usDomesticWire;
×
1319
          return this;
×
1320
        }
1321
      }
1322

1323
      @Getter
1324
      public static class Ach {
1325
        /**
1326
         * Map of extra parameters for custom features not available in this client library. The
1327
         * content in this map is not serialized under this field's {@code @SerializedName} value.
1328
         * Instead, each key/value pair is serialized as if the key is a root-level field
1329
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
1330
         * instance.
1331
         */
1332
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1333
        Map<String, Object> extraParams;
1334

1335
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
1336
        @SerializedName("requested")
1337
        Boolean requested;
1338

1339
        private Ach(Map<String, Object> extraParams, Boolean requested) {
×
1340
          this.extraParams = extraParams;
×
1341
          this.requested = requested;
×
1342
        }
×
1343

1344
        public static Builder builder() {
1345
          return new Builder();
×
1346
        }
1347

1348
        public static class Builder {
×
1349
          private Map<String, Object> extraParams;
1350

1351
          private Boolean requested;
1352

1353
          /** Finalize and obtain parameter instance from this builder. */
1354
          public FinancialAccountCreateParams.Features.OutboundTransfers.Ach build() {
1355
            return new FinancialAccountCreateParams.Features.OutboundTransfers.Ach(
×
1356
                this.extraParams, this.requested);
1357
          }
1358

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

1374
          /**
1375
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1376
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1377
           * map. See {@link
1378
           * FinancialAccountCreateParams.Features.OutboundTransfers.Ach#extraParams} for the field
1379
           * documentation.
1380
           */
1381
          public Builder putAllExtraParam(Map<String, Object> map) {
1382
            if (this.extraParams == null) {
×
1383
              this.extraParams = new HashMap<>();
×
1384
            }
1385
            this.extraParams.putAll(map);
×
1386
            return this;
×
1387
          }
1388

1389
          /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
1390
          public Builder setRequested(Boolean requested) {
1391
            this.requested = requested;
×
1392
            return this;
×
1393
          }
1394
        }
1395
      }
1396

1397
      @Getter
1398
      public static class UsDomesticWire {
1399
        /**
1400
         * Map of extra parameters for custom features not available in this client library. The
1401
         * content in this map is not serialized under this field's {@code @SerializedName} value.
1402
         * Instead, each key/value pair is serialized as if the key is a root-level field
1403
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
1404
         * instance.
1405
         */
1406
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1407
        Map<String, Object> extraParams;
1408

1409
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
1410
        @SerializedName("requested")
1411
        Boolean requested;
1412

1413
        private UsDomesticWire(Map<String, Object> extraParams, Boolean requested) {
×
1414
          this.extraParams = extraParams;
×
1415
          this.requested = requested;
×
1416
        }
×
1417

1418
        public static Builder builder() {
1419
          return new Builder();
×
1420
        }
1421

1422
        public static class Builder {
×
1423
          private Map<String, Object> extraParams;
1424

1425
          private Boolean requested;
1426

1427
          /** Finalize and obtain parameter instance from this builder. */
1428
          public FinancialAccountCreateParams.Features.OutboundTransfers.UsDomesticWire build() {
1429
            return new FinancialAccountCreateParams.Features.OutboundTransfers.UsDomesticWire(
×
1430
                this.extraParams, this.requested);
1431
          }
1432

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

1448
          /**
1449
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1450
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1451
           * map. See {@link
1452
           * FinancialAccountCreateParams.Features.OutboundTransfers.UsDomesticWire#extraParams} for
1453
           * the field documentation.
1454
           */
1455
          public Builder putAllExtraParam(Map<String, Object> map) {
1456
            if (this.extraParams == null) {
×
1457
              this.extraParams = new HashMap<>();
×
1458
            }
1459
            this.extraParams.putAll(map);
×
1460
            return this;
×
1461
          }
1462

1463
          /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
1464
          public Builder setRequested(Boolean requested) {
1465
            this.requested = requested;
×
1466
            return this;
×
1467
          }
1468
        }
1469
      }
1470
    }
1471
  }
1472

1473
  @Getter
1474
  public static class PlatformRestrictions {
1475
    /**
1476
     * Map of extra parameters for custom features not available in this client library. The content
1477
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1478
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1479
     * param object. Effectively, this map is flattened to its parent instance.
1480
     */
1481
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1482
    Map<String, Object> extraParams;
1483

1484
    /** Restricts all inbound money movement. */
1485
    @SerializedName("inbound_flows")
1486
    InboundFlows inboundFlows;
1487

1488
    /** Restricts all outbound money movement. */
1489
    @SerializedName("outbound_flows")
1490
    OutboundFlows outboundFlows;
1491

1492
    private PlatformRestrictions(
1493
        Map<String, Object> extraParams, InboundFlows inboundFlows, OutboundFlows outboundFlows) {
×
1494
      this.extraParams = extraParams;
×
1495
      this.inboundFlows = inboundFlows;
×
1496
      this.outboundFlows = outboundFlows;
×
1497
    }
×
1498

1499
    public static Builder builder() {
1500
      return new Builder();
×
1501
    }
1502

1503
    public static class Builder {
×
1504
      private Map<String, Object> extraParams;
1505

1506
      private InboundFlows inboundFlows;
1507

1508
      private OutboundFlows outboundFlows;
1509

1510
      /** Finalize and obtain parameter instance from this builder. */
1511
      public FinancialAccountCreateParams.PlatformRestrictions build() {
1512
        return new FinancialAccountCreateParams.PlatformRestrictions(
×
1513
            this.extraParams, this.inboundFlows, this.outboundFlows);
1514
      }
1515

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

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

1543
      /** Restricts all inbound money movement. */
1544
      public Builder setInboundFlows(
1545
          FinancialAccountCreateParams.PlatformRestrictions.InboundFlows inboundFlows) {
1546
        this.inboundFlows = inboundFlows;
×
1547
        return this;
×
1548
      }
1549

1550
      /** Restricts all outbound money movement. */
1551
      public Builder setOutboundFlows(
1552
          FinancialAccountCreateParams.PlatformRestrictions.OutboundFlows outboundFlows) {
1553
        this.outboundFlows = outboundFlows;
×
1554
        return this;
×
1555
      }
1556
    }
1557

1558
    public enum InboundFlows implements ApiRequestParams.EnumParam {
×
1559
      @SerializedName("restricted")
×
1560
      RESTRICTED("restricted"),
1561

1562
      @SerializedName("unrestricted")
×
1563
      UNRESTRICTED("unrestricted");
1564

1565
      @Getter(onMethod_ = {@Override})
1566
      private final String value;
1567

1568
      InboundFlows(String value) {
×
1569
        this.value = value;
×
1570
      }
×
1571
    }
1572

1573
    public enum OutboundFlows implements ApiRequestParams.EnumParam {
×
1574
      @SerializedName("restricted")
×
1575
      RESTRICTED("restricted"),
1576

1577
      @SerializedName("unrestricted")
×
1578
      UNRESTRICTED("unrestricted");
1579

1580
      @Getter(onMethod_ = {@Override})
1581
      private final String value;
1582

1583
      OutboundFlows(String value) {
×
1584
        this.value = value;
×
1585
      }
×
1586
    }
1587
  }
1588
}
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