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

stripe / stripe-java / #16562

18 Oct 2024 07:00PM UTC coverage: 12.614% (-0.1%) from 12.74%
#16562

push

github

web-flow
Merge pull request #1897 from stripe/latest-codegen-beta

Update generated code for beta

49 of 1978 new or added lines in 47 files covered. (2.48%)

68 existing lines in 20 files now uncovered.

18798 of 149026 relevant lines covered (12.61%)

0.13 hits per line

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

8.71
/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 set of functionalities that the platform can restrict on the FinancialAccount. */
53
  @SerializedName("platform_restrictions")
54
  PlatformRestrictions platformRestrictions;
55

56
  /** <strong>Required.</strong> The currencies the FinancialAccount can hold a balance in. */
57
  @SerializedName("supported_currencies")
58
  List<String> supportedCurrencies;
59

60
  private FinancialAccountCreateParams(
61
      Object displayName,
62
      List<String> expand,
63
      Map<String, Object> extraParams,
64
      Features features,
65
      Map<String, String> metadata,
66
      PlatformRestrictions platformRestrictions,
67
      List<String> supportedCurrencies) {
1✔
68
    this.displayName = displayName;
1✔
69
    this.expand = expand;
1✔
70
    this.extraParams = extraParams;
1✔
71
    this.features = features;
1✔
72
    this.metadata = metadata;
1✔
73
    this.platformRestrictions = platformRestrictions;
1✔
74
    this.supportedCurrencies = supportedCurrencies;
1✔
75
  }
1✔
76

77
  public static Builder builder() {
78
    return new Builder();
1✔
79
  }
80

81
  public static class Builder {
1✔
82
    private Object displayName;
83

84
    private List<String> expand;
85

86
    private Map<String, Object> extraParams;
87

88
    private Features features;
89

90
    private Map<String, String> metadata;
91

92
    private PlatformRestrictions platformRestrictions;
93

94
    private List<String> supportedCurrencies;
95

96
    /** Finalize and obtain parameter instance from this builder. */
97
    public FinancialAccountCreateParams build() {
98
      return new FinancialAccountCreateParams(
1✔
99
          this.displayName,
100
          this.expand,
101
          this.extraParams,
102
          this.features,
103
          this.metadata,
104
          this.platformRestrictions,
105
          this.supportedCurrencies);
106
    }
107

108
    /**
109
     * The display name for the FinancialAccount. Use this field to customize the names of the
110
     * FinancialAccounts for your connected accounts. Unlike the {@code nickname} field, {@code
111
     * display_name} is not internal metadata and will be exposed to connected accounts.
112
     */
113
    public Builder setDisplayName(String displayName) {
114
      this.displayName = displayName;
×
115
      return this;
×
116
    }
117

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

128
    /**
129
     * Add an element to `expand` list. A list is initialized for the first `add/addAll` call, and
130
     * subsequent calls adds additional elements to the original list. See {@link
131
     * FinancialAccountCreateParams#expand} for the field documentation.
132
     */
133
    public Builder addExpand(String element) {
134
      if (this.expand == null) {
×
135
        this.expand = new ArrayList<>();
×
136
      }
137
      this.expand.add(element);
×
138
      return this;
×
139
    }
140

141
    /**
142
     * Add all elements 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
     * FinancialAccountCreateParams#expand} for the field documentation.
145
     */
146
    public Builder addAllExpand(List<String> elements) {
147
      if (this.expand == null) {
×
148
        this.expand = new ArrayList<>();
×
149
      }
150
      this.expand.addAll(elements);
×
151
      return this;
×
152
    }
153

154
    /**
155
     * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
156
     * call, and subsequent calls add additional key/value pairs to the original map. See {@link
157
     * FinancialAccountCreateParams#extraParams} for the field documentation.
158
     */
159
    public Builder putExtraParam(String key, Object value) {
160
      if (this.extraParams == null) {
×
161
        this.extraParams = new HashMap<>();
×
162
      }
163
      this.extraParams.put(key, value);
×
164
      return this;
×
165
    }
166

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

180
    /**
181
     * Encodes whether a FinancialAccount has access to a particular feature. Stripe or the platform
182
     * can control features via the requested field.
183
     */
184
    public Builder setFeatures(FinancialAccountCreateParams.Features features) {
185
      this.features = features;
1✔
186
      return this;
1✔
187
    }
188

189
    /**
190
     * Add a key/value pair to `metadata` map. A map is initialized for the first `put/putAll` call,
191
     * and subsequent calls add additional key/value pairs to the original map. See {@link
192
     * FinancialAccountCreateParams#metadata} for the field documentation.
193
     */
194
    public Builder putMetadata(String key, String value) {
195
      if (this.metadata == null) {
×
196
        this.metadata = new HashMap<>();
×
197
      }
198
      this.metadata.put(key, value);
×
199
      return this;
×
200
    }
201

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

215
    /** The set of functionalities that the platform can restrict on the FinancialAccount. */
216
    public Builder setPlatformRestrictions(
217
        FinancialAccountCreateParams.PlatformRestrictions platformRestrictions) {
218
      this.platformRestrictions = platformRestrictions;
×
219
      return this;
×
220
    }
221

222
    /**
223
     * Add an element to `supportedCurrencies` list. A list is initialized for the first
224
     * `add/addAll` call, and subsequent calls adds additional elements to the original list. See
225
     * {@link FinancialAccountCreateParams#supportedCurrencies} for the field documentation.
226
     */
227
    public Builder addSupportedCurrency(String element) {
228
      if (this.supportedCurrencies == null) {
1✔
229
        this.supportedCurrencies = new ArrayList<>();
1✔
230
      }
231
      this.supportedCurrencies.add(element);
1✔
232
      return this;
1✔
233
    }
234

235
    /**
236
     * Add all elements to `supportedCurrencies` list. A list is initialized for the first
237
     * `add/addAll` call, and subsequent calls adds additional elements to the original list. See
238
     * {@link FinancialAccountCreateParams#supportedCurrencies} for the field documentation.
239
     */
240
    public Builder addAllSupportedCurrency(List<String> elements) {
241
      if (this.supportedCurrencies == null) {
×
242
        this.supportedCurrencies = new ArrayList<>();
×
243
      }
244
      this.supportedCurrencies.addAll(elements);
×
245
      return this;
×
246
    }
247
  }
248

249
  @Getter
250
  public static class Features {
251
    /**
252
     * Encodes the FinancialAccount's ability to be used with the Issuing product, including
253
     * attaching cards to and drawing funds from the FinancialAccount.
254
     */
255
    @SerializedName("card_issuing")
256
    CardIssuing cardIssuing;
257

258
    /**
259
     * Represents whether this FinancialAccount is eligible for deposit insurance. Various factors
260
     * determine the insurance amount.
261
     */
262
    @SerializedName("deposit_insurance")
263
    DepositInsurance depositInsurance;
264

265
    /**
266
     * Map of extra parameters for custom features not available in this client library. The content
267
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
268
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
269
     * param object. Effectively, this map is flattened to its parent instance.
270
     */
271
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
272
    Map<String, Object> extraParams;
273

274
    /** Contains Features that add FinancialAddresses to the FinancialAccount. */
275
    @SerializedName("financial_addresses")
276
    FinancialAddresses financialAddresses;
277

278
    /**
279
     * Contains settings related to adding funds to a FinancialAccount from another Account with the
280
     * same owner.
281
     */
282
    @SerializedName("inbound_transfers")
283
    InboundTransfers inboundTransfers;
284

285
    /**
286
     * Represents the ability for the FinancialAccount to send money to, or receive money from other
287
     * FinancialAccounts (for example, via OutboundPayment).
288
     */
289
    @SerializedName("intra_stripe_flows")
290
    IntraStripeFlows intraStripeFlows;
291

292
    /**
293
     * Includes Features related to initiating money movement out of the FinancialAccount to someone
294
     * else's bucket of money.
295
     */
296
    @SerializedName("outbound_payments")
297
    OutboundPayments outboundPayments;
298

299
    /**
300
     * Contains a Feature and settings related to moving money out of the FinancialAccount into
301
     * another Account with the same owner.
302
     */
303
    @SerializedName("outbound_transfers")
304
    OutboundTransfers outboundTransfers;
305

306
    private Features(
307
        CardIssuing cardIssuing,
308
        DepositInsurance depositInsurance,
309
        Map<String, Object> extraParams,
310
        FinancialAddresses financialAddresses,
311
        InboundTransfers inboundTransfers,
312
        IntraStripeFlows intraStripeFlows,
313
        OutboundPayments outboundPayments,
314
        OutboundTransfers outboundTransfers) {
1✔
315
      this.cardIssuing = cardIssuing;
1✔
316
      this.depositInsurance = depositInsurance;
1✔
317
      this.extraParams = extraParams;
1✔
318
      this.financialAddresses = financialAddresses;
1✔
319
      this.inboundTransfers = inboundTransfers;
1✔
320
      this.intraStripeFlows = intraStripeFlows;
1✔
321
      this.outboundPayments = outboundPayments;
1✔
322
      this.outboundTransfers = outboundTransfers;
1✔
323
    }
1✔
324

325
    public static Builder builder() {
326
      return new Builder();
1✔
327
    }
328

329
    public static class Builder {
1✔
330
      private CardIssuing cardIssuing;
331

332
      private DepositInsurance depositInsurance;
333

334
      private Map<String, Object> extraParams;
335

336
      private FinancialAddresses financialAddresses;
337

338
      private InboundTransfers inboundTransfers;
339

340
      private IntraStripeFlows intraStripeFlows;
341

342
      private OutboundPayments outboundPayments;
343

344
      private OutboundTransfers outboundTransfers;
345

346
      /** Finalize and obtain parameter instance from this builder. */
347
      public FinancialAccountCreateParams.Features build() {
348
        return new FinancialAccountCreateParams.Features(
1✔
349
            this.cardIssuing,
350
            this.depositInsurance,
351
            this.extraParams,
352
            this.financialAddresses,
353
            this.inboundTransfers,
354
            this.intraStripeFlows,
355
            this.outboundPayments,
356
            this.outboundTransfers);
357
      }
358

359
      /**
360
       * Encodes the FinancialAccount's ability to be used with the Issuing product, including
361
       * attaching cards to and drawing funds from the FinancialAccount.
362
       */
363
      public Builder setCardIssuing(FinancialAccountCreateParams.Features.CardIssuing cardIssuing) {
364
        this.cardIssuing = cardIssuing;
×
365
        return this;
×
366
      }
367

368
      /**
369
       * Represents whether this FinancialAccount is eligible for deposit insurance. Various factors
370
       * determine the insurance amount.
371
       */
372
      public Builder setDepositInsurance(
373
          FinancialAccountCreateParams.Features.DepositInsurance depositInsurance) {
374
        this.depositInsurance = depositInsurance;
×
375
        return this;
×
376
      }
377

378
      /**
379
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
380
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
381
       * FinancialAccountCreateParams.Features#extraParams} for the field documentation.
382
       */
383
      public Builder putExtraParam(String key, Object value) {
384
        if (this.extraParams == null) {
×
385
          this.extraParams = new HashMap<>();
×
386
        }
387
        this.extraParams.put(key, value);
×
388
        return this;
×
389
      }
390

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

404
      /** Contains Features that add FinancialAddresses to the FinancialAccount. */
405
      public Builder setFinancialAddresses(
406
          FinancialAccountCreateParams.Features.FinancialAddresses financialAddresses) {
407
        this.financialAddresses = financialAddresses;
×
408
        return this;
×
409
      }
410

411
      /**
412
       * Contains settings related to adding funds to a FinancialAccount from another Account with
413
       * the same owner.
414
       */
415
      public Builder setInboundTransfers(
416
          FinancialAccountCreateParams.Features.InboundTransfers inboundTransfers) {
417
        this.inboundTransfers = inboundTransfers;
×
418
        return this;
×
419
      }
420

421
      /**
422
       * Represents the ability for the FinancialAccount to send money to, or receive money from
423
       * other FinancialAccounts (for example, via OutboundPayment).
424
       */
425
      public Builder setIntraStripeFlows(
426
          FinancialAccountCreateParams.Features.IntraStripeFlows intraStripeFlows) {
427
        this.intraStripeFlows = intraStripeFlows;
×
428
        return this;
×
429
      }
430

431
      /**
432
       * Includes Features related to initiating money movement out of the FinancialAccount to
433
       * someone else's bucket of money.
434
       */
435
      public Builder setOutboundPayments(
436
          FinancialAccountCreateParams.Features.OutboundPayments outboundPayments) {
437
        this.outboundPayments = outboundPayments;
×
438
        return this;
×
439
      }
440

441
      /**
442
       * Contains a Feature and settings related to moving money out of the FinancialAccount into
443
       * another Account with the same owner.
444
       */
445
      public Builder setOutboundTransfers(
446
          FinancialAccountCreateParams.Features.OutboundTransfers outboundTransfers) {
447
        this.outboundTransfers = outboundTransfers;
×
448
        return this;
×
449
      }
450
    }
451

452
    @Getter
453
    public static class CardIssuing {
454
      /**
455
       * Map of extra parameters for custom features not available in this client library. The
456
       * content in this map is not serialized under this field's {@code @SerializedName} value.
457
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
458
       * name in this param object. Effectively, this map is flattened to its parent instance.
459
       */
460
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
461
      Map<String, Object> extraParams;
462

463
      /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
464
      @SerializedName("requested")
465
      Boolean requested;
466

467
      private CardIssuing(Map<String, Object> extraParams, Boolean requested) {
×
468
        this.extraParams = extraParams;
×
469
        this.requested = requested;
×
470
      }
×
471

472
      public static Builder builder() {
473
        return new Builder();
×
474
      }
475

476
      public static class Builder {
×
477
        private Map<String, Object> extraParams;
478

479
        private Boolean requested;
480

481
        /** Finalize and obtain parameter instance from this builder. */
482
        public FinancialAccountCreateParams.Features.CardIssuing build() {
483
          return new FinancialAccountCreateParams.Features.CardIssuing(
×
484
              this.extraParams, this.requested);
485
        }
486

487
        /**
488
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
489
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
490
         * map. See {@link FinancialAccountCreateParams.Features.CardIssuing#extraParams} for the
491
         * field documentation.
492
         */
493
        public Builder putExtraParam(String key, Object value) {
494
          if (this.extraParams == null) {
×
495
            this.extraParams = new HashMap<>();
×
496
          }
497
          this.extraParams.put(key, value);
×
498
          return this;
×
499
        }
500

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

515
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
516
        public Builder setRequested(Boolean requested) {
517
          this.requested = requested;
×
518
          return this;
×
519
        }
520
      }
521
    }
522

523
    @Getter
524
    public static class DepositInsurance {
525
      /**
526
       * Map of extra parameters for custom features not available in this client library. The
527
       * content in this map is not serialized under this field's {@code @SerializedName} value.
528
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
529
       * name in this param object. Effectively, this map is flattened to its parent instance.
530
       */
531
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
532
      Map<String, Object> extraParams;
533

534
      /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
535
      @SerializedName("requested")
536
      Boolean requested;
537

538
      private DepositInsurance(Map<String, Object> extraParams, Boolean requested) {
×
539
        this.extraParams = extraParams;
×
540
        this.requested = requested;
×
541
      }
×
542

543
      public static Builder builder() {
544
        return new Builder();
×
545
      }
546

547
      public static class Builder {
×
548
        private Map<String, Object> extraParams;
549

550
        private Boolean requested;
551

552
        /** Finalize and obtain parameter instance from this builder. */
553
        public FinancialAccountCreateParams.Features.DepositInsurance build() {
554
          return new FinancialAccountCreateParams.Features.DepositInsurance(
×
555
              this.extraParams, this.requested);
556
        }
557

558
        /**
559
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
560
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
561
         * map. See {@link FinancialAccountCreateParams.Features.DepositInsurance#extraParams} for
562
         * the field documentation.
563
         */
564
        public Builder putExtraParam(String key, Object value) {
565
          if (this.extraParams == null) {
×
566
            this.extraParams = new HashMap<>();
×
567
          }
568
          this.extraParams.put(key, value);
×
569
          return this;
×
570
        }
571

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

586
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
587
        public Builder setRequested(Boolean requested) {
588
          this.requested = requested;
×
589
          return this;
×
590
        }
591
      }
592
    }
593

594
    @Getter
595
    public static class FinancialAddresses {
596
      /** Adds an ABA FinancialAddress to the FinancialAccount. */
597
      @SerializedName("aba")
598
      Aba aba;
599

600
      /**
601
       * Map of extra parameters for custom features not available in this client library. The
602
       * content in this map is not serialized under this field's {@code @SerializedName} value.
603
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
604
       * name in this param object. Effectively, this map is flattened to its parent instance.
605
       */
606
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
607
      Map<String, Object> extraParams;
608

609
      private FinancialAddresses(Aba aba, Map<String, Object> extraParams) {
×
610
        this.aba = aba;
×
611
        this.extraParams = extraParams;
×
612
      }
×
613

614
      public static Builder builder() {
615
        return new Builder();
×
616
      }
617

618
      public static class Builder {
×
619
        private Aba aba;
620

621
        private Map<String, Object> extraParams;
622

623
        /** Finalize and obtain parameter instance from this builder. */
624
        public FinancialAccountCreateParams.Features.FinancialAddresses build() {
625
          return new FinancialAccountCreateParams.Features.FinancialAddresses(
×
626
              this.aba, this.extraParams);
627
        }
628

629
        /** Adds an ABA FinancialAddress to the FinancialAccount. */
630
        public Builder setAba(FinancialAccountCreateParams.Features.FinancialAddresses.Aba aba) {
631
          this.aba = aba;
×
632
          return this;
×
633
        }
634

635
        /**
636
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
637
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
638
         * map. See {@link FinancialAccountCreateParams.Features.FinancialAddresses#extraParams} for
639
         * the field documentation.
640
         */
641
        public Builder putExtraParam(String key, Object value) {
642
          if (this.extraParams == null) {
×
643
            this.extraParams = new HashMap<>();
×
644
          }
645
          this.extraParams.put(key, value);
×
646
          return this;
×
647
        }
648

649
        /**
650
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
651
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
652
         * map. See {@link FinancialAccountCreateParams.Features.FinancialAddresses#extraParams} for
653
         * the field documentation.
654
         */
655
        public Builder putAllExtraParam(Map<String, Object> map) {
656
          if (this.extraParams == null) {
×
657
            this.extraParams = new HashMap<>();
×
658
          }
659
          this.extraParams.putAll(map);
×
660
          return this;
×
661
        }
662
      }
663

664
      @Getter
665
      public static class Aba {
666
        /** Requested bank partner. */
667
        @SerializedName("bank")
668
        Bank bank;
669

670
        /**
671
         * Map of extra parameters for custom features not available in this client library. The
672
         * content in this map is not serialized under this field's {@code @SerializedName} value.
673
         * Instead, each key/value pair is serialized as if the key is a root-level field
674
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
675
         * instance.
676
         */
677
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
678
        Map<String, Object> extraParams;
679

680
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
681
        @SerializedName("requested")
682
        Boolean requested;
683

NEW
684
        private Aba(Bank bank, Map<String, Object> extraParams, Boolean requested) {
×
NEW
685
          this.bank = bank;
×
686
          this.extraParams = extraParams;
×
687
          this.requested = requested;
×
688
        }
×
689

690
        public static Builder builder() {
691
          return new Builder();
×
692
        }
693

694
        public static class Builder {
×
695
          private Bank bank;
696

697
          private Map<String, Object> extraParams;
698

699
          private Boolean requested;
700

701
          /** Finalize and obtain parameter instance from this builder. */
702
          public FinancialAccountCreateParams.Features.FinancialAddresses.Aba build() {
703
            return new FinancialAccountCreateParams.Features.FinancialAddresses.Aba(
×
704
                this.bank, this.extraParams, this.requested);
705
          }
706

707
          /** Requested bank partner. */
708
          public Builder setBank(
709
              FinancialAccountCreateParams.Features.FinancialAddresses.Aba.Bank bank) {
NEW
710
            this.bank = bank;
×
NEW
711
            return this;
×
712
          }
713

714
          /**
715
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
716
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
717
           * map. See {@link
718
           * FinancialAccountCreateParams.Features.FinancialAddresses.Aba#extraParams} for the field
719
           * documentation.
720
           */
721
          public Builder putExtraParam(String key, Object value) {
722
            if (this.extraParams == null) {
×
723
              this.extraParams = new HashMap<>();
×
724
            }
725
            this.extraParams.put(key, value);
×
726
            return this;
×
727
          }
728

729
          /**
730
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
731
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
732
           * map. See {@link
733
           * FinancialAccountCreateParams.Features.FinancialAddresses.Aba#extraParams} for the field
734
           * documentation.
735
           */
736
          public Builder putAllExtraParam(Map<String, Object> map) {
737
            if (this.extraParams == null) {
×
738
              this.extraParams = new HashMap<>();
×
739
            }
740
            this.extraParams.putAll(map);
×
741
            return this;
×
742
          }
743

744
          /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
745
          public Builder setRequested(Boolean requested) {
746
            this.requested = requested;
×
747
            return this;
×
748
          }
749
        }
750

NEW
751
        public enum Bank implements ApiRequestParams.EnumParam {
×
NEW
752
          @SerializedName("evolve")
×
753
          EVOLVE("evolve"),
754

NEW
755
          @SerializedName("fifth_third")
×
756
          FIFTH_THIRD("fifth_third"),
757

NEW
758
          @SerializedName("goldman_sachs")
×
759
          GOLDMAN_SACHS("goldman_sachs");
760

761
          @Getter(onMethod_ = {@Override})
762
          private final String value;
763

NEW
764
          Bank(String value) {
×
NEW
765
            this.value = value;
×
NEW
766
          }
×
767
        }
768
      }
769
    }
770

771
    @Getter
772
    public static class InboundTransfers {
773
      /** Enables ACH Debits via the InboundTransfers API. */
774
      @SerializedName("ach")
775
      Ach ach;
776

777
      /**
778
       * Map of extra parameters for custom features not available in this client library. The
779
       * content in this map is not serialized under this field's {@code @SerializedName} value.
780
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
781
       * name in this param object. Effectively, this map is flattened to its parent instance.
782
       */
783
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
784
      Map<String, Object> extraParams;
785

786
      private InboundTransfers(Ach ach, Map<String, Object> extraParams) {
×
787
        this.ach = ach;
×
788
        this.extraParams = extraParams;
×
789
      }
×
790

791
      public static Builder builder() {
792
        return new Builder();
×
793
      }
794

795
      public static class Builder {
×
796
        private Ach ach;
797

798
        private Map<String, Object> extraParams;
799

800
        /** Finalize and obtain parameter instance from this builder. */
801
        public FinancialAccountCreateParams.Features.InboundTransfers build() {
802
          return new FinancialAccountCreateParams.Features.InboundTransfers(
×
803
              this.ach, this.extraParams);
804
        }
805

806
        /** Enables ACH Debits via the InboundTransfers API. */
807
        public Builder setAch(FinancialAccountCreateParams.Features.InboundTransfers.Ach ach) {
808
          this.ach = ach;
×
809
          return this;
×
810
        }
811

812
        /**
813
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
814
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
815
         * map. See {@link FinancialAccountCreateParams.Features.InboundTransfers#extraParams} for
816
         * the field documentation.
817
         */
818
        public Builder putExtraParam(String key, Object value) {
819
          if (this.extraParams == null) {
×
820
            this.extraParams = new HashMap<>();
×
821
          }
822
          this.extraParams.put(key, value);
×
823
          return this;
×
824
        }
825

826
        /**
827
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
828
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
829
         * map. See {@link FinancialAccountCreateParams.Features.InboundTransfers#extraParams} for
830
         * the field documentation.
831
         */
832
        public Builder putAllExtraParam(Map<String, Object> map) {
833
          if (this.extraParams == null) {
×
834
            this.extraParams = new HashMap<>();
×
835
          }
836
          this.extraParams.putAll(map);
×
837
          return this;
×
838
        }
839
      }
840

841
      @Getter
842
      public static class Ach {
843
        /**
844
         * Map of extra parameters for custom features not available in this client library. The
845
         * content in this map is not serialized under this field's {@code @SerializedName} value.
846
         * Instead, each key/value pair is serialized as if the key is a root-level field
847
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
848
         * instance.
849
         */
850
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
851
        Map<String, Object> extraParams;
852

853
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
854
        @SerializedName("requested")
855
        Boolean requested;
856

857
        private Ach(Map<String, Object> extraParams, Boolean requested) {
×
858
          this.extraParams = extraParams;
×
859
          this.requested = requested;
×
860
        }
×
861

862
        public static Builder builder() {
863
          return new Builder();
×
864
        }
865

866
        public static class Builder {
×
867
          private Map<String, Object> extraParams;
868

869
          private Boolean requested;
870

871
          /** Finalize and obtain parameter instance from this builder. */
872
          public FinancialAccountCreateParams.Features.InboundTransfers.Ach build() {
873
            return new FinancialAccountCreateParams.Features.InboundTransfers.Ach(
×
874
                this.extraParams, this.requested);
875
          }
876

877
          /**
878
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
879
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
880
           * map. See {@link FinancialAccountCreateParams.Features.InboundTransfers.Ach#extraParams}
881
           * for the field documentation.
882
           */
883
          public Builder putExtraParam(String key, Object value) {
884
            if (this.extraParams == null) {
×
885
              this.extraParams = new HashMap<>();
×
886
            }
887
            this.extraParams.put(key, value);
×
888
            return this;
×
889
          }
890

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

905
          /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
906
          public Builder setRequested(Boolean requested) {
907
            this.requested = requested;
×
908
            return this;
×
909
          }
910
        }
911
      }
912
    }
913

914
    @Getter
915
    public static class IntraStripeFlows {
916
      /**
917
       * Map of extra parameters for custom features not available in this client library. The
918
       * content in this map is not serialized under this field's {@code @SerializedName} value.
919
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
920
       * name in this param object. Effectively, this map is flattened to its parent instance.
921
       */
922
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
923
      Map<String, Object> extraParams;
924

925
      /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
926
      @SerializedName("requested")
927
      Boolean requested;
928

929
      private IntraStripeFlows(Map<String, Object> extraParams, Boolean requested) {
×
930
        this.extraParams = extraParams;
×
931
        this.requested = requested;
×
932
      }
×
933

934
      public static Builder builder() {
935
        return new Builder();
×
936
      }
937

938
      public static class Builder {
×
939
        private Map<String, Object> extraParams;
940

941
        private Boolean requested;
942

943
        /** Finalize and obtain parameter instance from this builder. */
944
        public FinancialAccountCreateParams.Features.IntraStripeFlows build() {
945
          return new FinancialAccountCreateParams.Features.IntraStripeFlows(
×
946
              this.extraParams, this.requested);
947
        }
948

949
        /**
950
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
951
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
952
         * map. See {@link FinancialAccountCreateParams.Features.IntraStripeFlows#extraParams} for
953
         * the field documentation.
954
         */
955
        public Builder putExtraParam(String key, Object value) {
956
          if (this.extraParams == null) {
×
957
            this.extraParams = new HashMap<>();
×
958
          }
959
          this.extraParams.put(key, value);
×
960
          return this;
×
961
        }
962

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

977
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
978
        public Builder setRequested(Boolean requested) {
979
          this.requested = requested;
×
980
          return this;
×
981
        }
982
      }
983
    }
984

985
    @Getter
986
    public static class OutboundPayments {
987
      /** Enables ACH transfers via the OutboundPayments API. */
988
      @SerializedName("ach")
989
      Ach ach;
990

991
      /**
992
       * Map of extra parameters for custom features not available in this client library. The
993
       * content in this map is not serialized under this field's {@code @SerializedName} value.
994
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
995
       * name in this param object. Effectively, this map is flattened to its parent instance.
996
       */
997
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
998
      Map<String, Object> extraParams;
999

1000
      /** Enables US domestic wire transfers via the OutboundPayments API. */
1001
      @SerializedName("us_domestic_wire")
1002
      UsDomesticWire usDomesticWire;
1003

1004
      private OutboundPayments(
1005
          Ach ach, Map<String, Object> extraParams, UsDomesticWire usDomesticWire) {
×
1006
        this.ach = ach;
×
1007
        this.extraParams = extraParams;
×
1008
        this.usDomesticWire = usDomesticWire;
×
1009
      }
×
1010

1011
      public static Builder builder() {
1012
        return new Builder();
×
1013
      }
1014

1015
      public static class Builder {
×
1016
        private Ach ach;
1017

1018
        private Map<String, Object> extraParams;
1019

1020
        private UsDomesticWire usDomesticWire;
1021

1022
        /** Finalize and obtain parameter instance from this builder. */
1023
        public FinancialAccountCreateParams.Features.OutboundPayments build() {
1024
          return new FinancialAccountCreateParams.Features.OutboundPayments(
×
1025
              this.ach, this.extraParams, this.usDomesticWire);
1026
        }
1027

1028
        /** Enables ACH transfers via the OutboundPayments API. */
1029
        public Builder setAch(FinancialAccountCreateParams.Features.OutboundPayments.Ach ach) {
1030
          this.ach = ach;
×
1031
          return this;
×
1032
        }
1033

1034
        /**
1035
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
1036
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1037
         * map. See {@link FinancialAccountCreateParams.Features.OutboundPayments#extraParams} for
1038
         * the field documentation.
1039
         */
1040
        public Builder putExtraParam(String key, Object value) {
1041
          if (this.extraParams == null) {
×
1042
            this.extraParams = new HashMap<>();
×
1043
          }
1044
          this.extraParams.put(key, value);
×
1045
          return this;
×
1046
        }
1047

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

1062
        /** Enables US domestic wire transfers via the OutboundPayments API. */
1063
        public Builder setUsDomesticWire(
1064
            FinancialAccountCreateParams.Features.OutboundPayments.UsDomesticWire usDomesticWire) {
1065
          this.usDomesticWire = usDomesticWire;
×
1066
          return this;
×
1067
        }
1068
      }
1069

1070
      @Getter
1071
      public static class Ach {
1072
        /**
1073
         * Map of extra parameters for custom features not available in this client library. The
1074
         * content in this map is not serialized under this field's {@code @SerializedName} value.
1075
         * Instead, each key/value pair is serialized as if the key is a root-level field
1076
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
1077
         * instance.
1078
         */
1079
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1080
        Map<String, Object> extraParams;
1081

1082
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
1083
        @SerializedName("requested")
1084
        Boolean requested;
1085

1086
        private Ach(Map<String, Object> extraParams, Boolean requested) {
×
1087
          this.extraParams = extraParams;
×
1088
          this.requested = requested;
×
1089
        }
×
1090

1091
        public static Builder builder() {
1092
          return new Builder();
×
1093
        }
1094

1095
        public static class Builder {
×
1096
          private Map<String, Object> extraParams;
1097

1098
          private Boolean requested;
1099

1100
          /** Finalize and obtain parameter instance from this builder. */
1101
          public FinancialAccountCreateParams.Features.OutboundPayments.Ach build() {
1102
            return new FinancialAccountCreateParams.Features.OutboundPayments.Ach(
×
1103
                this.extraParams, this.requested);
1104
          }
1105

1106
          /**
1107
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
1108
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1109
           * map. See {@link FinancialAccountCreateParams.Features.OutboundPayments.Ach#extraParams}
1110
           * for the field documentation.
1111
           */
1112
          public Builder putExtraParam(String key, Object value) {
1113
            if (this.extraParams == null) {
×
1114
              this.extraParams = new HashMap<>();
×
1115
            }
1116
            this.extraParams.put(key, value);
×
1117
            return this;
×
1118
          }
1119

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

1134
          /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
1135
          public Builder setRequested(Boolean requested) {
1136
            this.requested = requested;
×
1137
            return this;
×
1138
          }
1139
        }
1140
      }
1141

1142
      @Getter
1143
      public static class UsDomesticWire {
1144
        /**
1145
         * Map of extra parameters for custom features not available in this client library. The
1146
         * content in this map is not serialized under this field's {@code @SerializedName} value.
1147
         * Instead, each key/value pair is serialized as if the key is a root-level field
1148
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
1149
         * instance.
1150
         */
1151
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1152
        Map<String, Object> extraParams;
1153

1154
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
1155
        @SerializedName("requested")
1156
        Boolean requested;
1157

1158
        private UsDomesticWire(Map<String, Object> extraParams, Boolean requested) {
×
1159
          this.extraParams = extraParams;
×
1160
          this.requested = requested;
×
1161
        }
×
1162

1163
        public static Builder builder() {
1164
          return new Builder();
×
1165
        }
1166

1167
        public static class Builder {
×
1168
          private Map<String, Object> extraParams;
1169

1170
          private Boolean requested;
1171

1172
          /** Finalize and obtain parameter instance from this builder. */
1173
          public FinancialAccountCreateParams.Features.OutboundPayments.UsDomesticWire build() {
1174
            return new FinancialAccountCreateParams.Features.OutboundPayments.UsDomesticWire(
×
1175
                this.extraParams, this.requested);
1176
          }
1177

1178
          /**
1179
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
1180
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1181
           * map. See {@link
1182
           * FinancialAccountCreateParams.Features.OutboundPayments.UsDomesticWire#extraParams} for
1183
           * the field documentation.
1184
           */
1185
          public Builder putExtraParam(String key, Object value) {
1186
            if (this.extraParams == null) {
×
1187
              this.extraParams = new HashMap<>();
×
1188
            }
1189
            this.extraParams.put(key, value);
×
1190
            return this;
×
1191
          }
1192

1193
          /**
1194
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1195
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1196
           * map. See {@link
1197
           * FinancialAccountCreateParams.Features.OutboundPayments.UsDomesticWire#extraParams} for
1198
           * the field documentation.
1199
           */
1200
          public Builder putAllExtraParam(Map<String, Object> map) {
1201
            if (this.extraParams == null) {
×
1202
              this.extraParams = new HashMap<>();
×
1203
            }
1204
            this.extraParams.putAll(map);
×
1205
            return this;
×
1206
          }
1207

1208
          /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
1209
          public Builder setRequested(Boolean requested) {
1210
            this.requested = requested;
×
1211
            return this;
×
1212
          }
1213
        }
1214
      }
1215
    }
1216

1217
    @Getter
1218
    public static class OutboundTransfers {
1219
      /** Enables ACH transfers via the OutboundTransfers API. */
1220
      @SerializedName("ach")
1221
      Ach ach;
1222

1223
      /**
1224
       * Map of extra parameters for custom features not available in this client library. The
1225
       * content in this map is not serialized under this field's {@code @SerializedName} value.
1226
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
1227
       * name in this param object. Effectively, this map is flattened to its parent instance.
1228
       */
1229
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1230
      Map<String, Object> extraParams;
1231

1232
      /** Enables US domestic wire transfers via the OutboundTransfers API. */
1233
      @SerializedName("us_domestic_wire")
1234
      UsDomesticWire usDomesticWire;
1235

1236
      private OutboundTransfers(
1237
          Ach ach, Map<String, Object> extraParams, UsDomesticWire usDomesticWire) {
×
1238
        this.ach = ach;
×
1239
        this.extraParams = extraParams;
×
1240
        this.usDomesticWire = usDomesticWire;
×
1241
      }
×
1242

1243
      public static Builder builder() {
1244
        return new Builder();
×
1245
      }
1246

1247
      public static class Builder {
×
1248
        private Ach ach;
1249

1250
        private Map<String, Object> extraParams;
1251

1252
        private UsDomesticWire usDomesticWire;
1253

1254
        /** Finalize and obtain parameter instance from this builder. */
1255
        public FinancialAccountCreateParams.Features.OutboundTransfers build() {
1256
          return new FinancialAccountCreateParams.Features.OutboundTransfers(
×
1257
              this.ach, this.extraParams, this.usDomesticWire);
1258
        }
1259

1260
        /** Enables ACH transfers via the OutboundTransfers API. */
1261
        public Builder setAch(FinancialAccountCreateParams.Features.OutboundTransfers.Ach ach) {
1262
          this.ach = ach;
×
1263
          return this;
×
1264
        }
1265

1266
        /**
1267
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
1268
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1269
         * map. See {@link FinancialAccountCreateParams.Features.OutboundTransfers#extraParams} for
1270
         * the field documentation.
1271
         */
1272
        public Builder putExtraParam(String key, Object value) {
1273
          if (this.extraParams == null) {
×
1274
            this.extraParams = new HashMap<>();
×
1275
          }
1276
          this.extraParams.put(key, value);
×
1277
          return this;
×
1278
        }
1279

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

1294
        /** Enables US domestic wire transfers via the OutboundTransfers API. */
1295
        public Builder setUsDomesticWire(
1296
            FinancialAccountCreateParams.Features.OutboundTransfers.UsDomesticWire usDomesticWire) {
1297
          this.usDomesticWire = usDomesticWire;
×
1298
          return this;
×
1299
        }
1300
      }
1301

1302
      @Getter
1303
      public static class Ach {
1304
        /**
1305
         * Map of extra parameters for custom features not available in this client library. The
1306
         * content in this map is not serialized under this field's {@code @SerializedName} value.
1307
         * Instead, each key/value pair is serialized as if the key is a root-level field
1308
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
1309
         * instance.
1310
         */
1311
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1312
        Map<String, Object> extraParams;
1313

1314
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
1315
        @SerializedName("requested")
1316
        Boolean requested;
1317

1318
        private Ach(Map<String, Object> extraParams, Boolean requested) {
×
1319
          this.extraParams = extraParams;
×
1320
          this.requested = requested;
×
1321
        }
×
1322

1323
        public static Builder builder() {
1324
          return new Builder();
×
1325
        }
1326

1327
        public static class Builder {
×
1328
          private Map<String, Object> extraParams;
1329

1330
          private Boolean requested;
1331

1332
          /** Finalize and obtain parameter instance from this builder. */
1333
          public FinancialAccountCreateParams.Features.OutboundTransfers.Ach build() {
1334
            return new FinancialAccountCreateParams.Features.OutboundTransfers.Ach(
×
1335
                this.extraParams, this.requested);
1336
          }
1337

1338
          /**
1339
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
1340
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1341
           * map. See {@link
1342
           * FinancialAccountCreateParams.Features.OutboundTransfers.Ach#extraParams} for the field
1343
           * documentation.
1344
           */
1345
          public Builder putExtraParam(String key, Object value) {
1346
            if (this.extraParams == null) {
×
1347
              this.extraParams = new HashMap<>();
×
1348
            }
1349
            this.extraParams.put(key, value);
×
1350
            return this;
×
1351
          }
1352

1353
          /**
1354
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1355
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1356
           * map. See {@link
1357
           * FinancialAccountCreateParams.Features.OutboundTransfers.Ach#extraParams} for the field
1358
           * documentation.
1359
           */
1360
          public Builder putAllExtraParam(Map<String, Object> map) {
1361
            if (this.extraParams == null) {
×
1362
              this.extraParams = new HashMap<>();
×
1363
            }
1364
            this.extraParams.putAll(map);
×
1365
            return this;
×
1366
          }
1367

1368
          /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
1369
          public Builder setRequested(Boolean requested) {
1370
            this.requested = requested;
×
1371
            return this;
×
1372
          }
1373
        }
1374
      }
1375

1376
      @Getter
1377
      public static class UsDomesticWire {
1378
        /**
1379
         * Map of extra parameters for custom features not available in this client library. The
1380
         * content in this map is not serialized under this field's {@code @SerializedName} value.
1381
         * Instead, each key/value pair is serialized as if the key is a root-level field
1382
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
1383
         * instance.
1384
         */
1385
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1386
        Map<String, Object> extraParams;
1387

1388
        /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
1389
        @SerializedName("requested")
1390
        Boolean requested;
1391

1392
        private UsDomesticWire(Map<String, Object> extraParams, Boolean requested) {
×
1393
          this.extraParams = extraParams;
×
1394
          this.requested = requested;
×
1395
        }
×
1396

1397
        public static Builder builder() {
1398
          return new Builder();
×
1399
        }
1400

1401
        public static class Builder {
×
1402
          private Map<String, Object> extraParams;
1403

1404
          private Boolean requested;
1405

1406
          /** Finalize and obtain parameter instance from this builder. */
1407
          public FinancialAccountCreateParams.Features.OutboundTransfers.UsDomesticWire build() {
1408
            return new FinancialAccountCreateParams.Features.OutboundTransfers.UsDomesticWire(
×
1409
                this.extraParams, this.requested);
1410
          }
1411

1412
          /**
1413
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
1414
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1415
           * map. See {@link
1416
           * FinancialAccountCreateParams.Features.OutboundTransfers.UsDomesticWire#extraParams} for
1417
           * the field documentation.
1418
           */
1419
          public Builder putExtraParam(String key, Object value) {
1420
            if (this.extraParams == null) {
×
1421
              this.extraParams = new HashMap<>();
×
1422
            }
1423
            this.extraParams.put(key, value);
×
1424
            return this;
×
1425
          }
1426

1427
          /**
1428
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1429
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1430
           * map. See {@link
1431
           * FinancialAccountCreateParams.Features.OutboundTransfers.UsDomesticWire#extraParams} for
1432
           * the field documentation.
1433
           */
1434
          public Builder putAllExtraParam(Map<String, Object> map) {
1435
            if (this.extraParams == null) {
×
1436
              this.extraParams = new HashMap<>();
×
1437
            }
1438
            this.extraParams.putAll(map);
×
1439
            return this;
×
1440
          }
1441

1442
          /** <strong>Required.</strong> Whether the FinancialAccount should have the Feature. */
1443
          public Builder setRequested(Boolean requested) {
1444
            this.requested = requested;
×
1445
            return this;
×
1446
          }
1447
        }
1448
      }
1449
    }
1450
  }
1451

1452
  @Getter
1453
  public static class PlatformRestrictions {
1454
    /**
1455
     * Map of extra parameters for custom features not available in this client library. The content
1456
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1457
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1458
     * param object. Effectively, this map is flattened to its parent instance.
1459
     */
1460
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1461
    Map<String, Object> extraParams;
1462

1463
    /** Restricts all inbound money movement. */
1464
    @SerializedName("inbound_flows")
1465
    InboundFlows inboundFlows;
1466

1467
    /** Restricts all outbound money movement. */
1468
    @SerializedName("outbound_flows")
1469
    OutboundFlows outboundFlows;
1470

1471
    private PlatformRestrictions(
1472
        Map<String, Object> extraParams, InboundFlows inboundFlows, OutboundFlows outboundFlows) {
×
1473
      this.extraParams = extraParams;
×
1474
      this.inboundFlows = inboundFlows;
×
1475
      this.outboundFlows = outboundFlows;
×
1476
    }
×
1477

1478
    public static Builder builder() {
1479
      return new Builder();
×
1480
    }
1481

1482
    public static class Builder {
×
1483
      private Map<String, Object> extraParams;
1484

1485
      private InboundFlows inboundFlows;
1486

1487
      private OutboundFlows outboundFlows;
1488

1489
      /** Finalize and obtain parameter instance from this builder. */
1490
      public FinancialAccountCreateParams.PlatformRestrictions build() {
1491
        return new FinancialAccountCreateParams.PlatformRestrictions(
×
1492
            this.extraParams, this.inboundFlows, this.outboundFlows);
1493
      }
1494

1495
      /**
1496
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1497
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1498
       * FinancialAccountCreateParams.PlatformRestrictions#extraParams} for the field documentation.
1499
       */
1500
      public Builder putExtraParam(String key, Object value) {
1501
        if (this.extraParams == null) {
×
1502
          this.extraParams = new HashMap<>();
×
1503
        }
1504
        this.extraParams.put(key, value);
×
1505
        return this;
×
1506
      }
1507

1508
      /**
1509
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1510
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1511
       * See {@link FinancialAccountCreateParams.PlatformRestrictions#extraParams} for the field
1512
       * documentation.
1513
       */
1514
      public Builder putAllExtraParam(Map<String, Object> map) {
1515
        if (this.extraParams == null) {
×
1516
          this.extraParams = new HashMap<>();
×
1517
        }
1518
        this.extraParams.putAll(map);
×
1519
        return this;
×
1520
      }
1521

1522
      /** Restricts all inbound money movement. */
1523
      public Builder setInboundFlows(
1524
          FinancialAccountCreateParams.PlatformRestrictions.InboundFlows inboundFlows) {
1525
        this.inboundFlows = inboundFlows;
×
1526
        return this;
×
1527
      }
1528

1529
      /** Restricts all outbound money movement. */
1530
      public Builder setOutboundFlows(
1531
          FinancialAccountCreateParams.PlatformRestrictions.OutboundFlows outboundFlows) {
1532
        this.outboundFlows = outboundFlows;
×
1533
        return this;
×
1534
      }
1535
    }
1536

1537
    public enum InboundFlows implements ApiRequestParams.EnumParam {
×
1538
      @SerializedName("restricted")
×
1539
      RESTRICTED("restricted"),
1540

1541
      @SerializedName("unrestricted")
×
1542
      UNRESTRICTED("unrestricted");
1543

1544
      @Getter(onMethod_ = {@Override})
1545
      private final String value;
1546

1547
      InboundFlows(String value) {
×
1548
        this.value = value;
×
1549
      }
×
1550
    }
1551

1552
    public enum OutboundFlows implements ApiRequestParams.EnumParam {
×
1553
      @SerializedName("restricted")
×
1554
      RESTRICTED("restricted"),
1555

1556
      @SerializedName("unrestricted")
×
1557
      UNRESTRICTED("unrestricted");
1558

1559
      @Getter(onMethod_ = {@Override})
1560
      private final String value;
1561

1562
      OutboundFlows(String value) {
×
1563
        this.value = value;
×
1564
      }
×
1565
    }
1566
  }
1567
}
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

© 2026 Coveralls, Inc