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

stripe / stripe-java / #16438

18 Sep 2024 09:46PM UTC coverage: 12.864% (+0.008%) from 12.856%
#16438

push

github

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

Update generated code for beta

0 of 67 new or added lines in 7 files covered. (0.0%)

3 existing lines in 3 files now uncovered.

18469 of 143567 relevant lines covered (12.86%)

0.13 hits per line

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

0.0
/src/main/java/com/stripe/param/AccountSessionCreateParams.java
1
// File generated from our OpenAPI spec
2
package com.stripe.param;
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 AccountSessionCreateParams extends ApiRequestParams {
15
  /** <strong>Required.</strong> The identifier of the account to create an Account Session for. */
16
  @SerializedName("account")
17
  String account;
18

19
  /**
20
   * <strong>Required.</strong> Each key of the dictionary represents an embedded component, and
21
   * each embedded component maps to its configuration (e.g. whether it has been enabled or not).
22
   */
23
  @SerializedName("components")
24
  Components components;
25

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

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

39
  private AccountSessionCreateParams(
40
      String account, Components components, List<String> expand, Map<String, Object> extraParams) {
×
41
    this.account = account;
×
42
    this.components = components;
×
43
    this.expand = expand;
×
44
    this.extraParams = extraParams;
×
45
  }
×
46

47
  public static Builder builder() {
48
    return new Builder();
×
49
  }
50

51
  public static class Builder {
×
52
    private String account;
53

54
    private Components components;
55

56
    private List<String> expand;
57

58
    private Map<String, Object> extraParams;
59

60
    /** Finalize and obtain parameter instance from this builder. */
61
    public AccountSessionCreateParams build() {
62
      return new AccountSessionCreateParams(
×
63
          this.account, this.components, this.expand, this.extraParams);
64
    }
65

66
    /**
67
     * <strong>Required.</strong> The identifier of the account to create an Account Session for.
68
     */
69
    public Builder setAccount(String account) {
70
      this.account = account;
×
71
      return this;
×
72
    }
73

74
    /**
75
     * <strong>Required.</strong> Each key of the dictionary represents an embedded component, and
76
     * each embedded component maps to its configuration (e.g. whether it has been enabled or not).
77
     */
78
    public Builder setComponents(AccountSessionCreateParams.Components components) {
79
      this.components = components;
×
80
      return this;
×
81
    }
82

83
    /**
84
     * Add an element to `expand` list. A list is initialized for the first `add/addAll` call, and
85
     * subsequent calls adds additional elements to the original list. See {@link
86
     * AccountSessionCreateParams#expand} for the field documentation.
87
     */
88
    public Builder addExpand(String element) {
89
      if (this.expand == null) {
×
90
        this.expand = new ArrayList<>();
×
91
      }
92
      this.expand.add(element);
×
93
      return this;
×
94
    }
95

96
    /**
97
     * Add all elements to `expand` list. A list is initialized for the first `add/addAll` call, and
98
     * subsequent calls adds additional elements to the original list. See {@link
99
     * AccountSessionCreateParams#expand} for the field documentation.
100
     */
101
    public Builder addAllExpand(List<String> elements) {
102
      if (this.expand == null) {
×
103
        this.expand = new ArrayList<>();
×
104
      }
105
      this.expand.addAll(elements);
×
106
      return this;
×
107
    }
108

109
    /**
110
     * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
111
     * call, and subsequent calls add additional key/value pairs to the original map. See {@link
112
     * AccountSessionCreateParams#extraParams} for the field documentation.
113
     */
114
    public Builder putExtraParam(String key, Object value) {
115
      if (this.extraParams == null) {
×
116
        this.extraParams = new HashMap<>();
×
117
      }
118
      this.extraParams.put(key, value);
×
119
      return this;
×
120
    }
121

122
    /**
123
     * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
124
     * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
125
     * See {@link AccountSessionCreateParams#extraParams} for the field documentation.
126
     */
127
    public Builder putAllExtraParam(Map<String, Object> map) {
128
      if (this.extraParams == null) {
×
129
        this.extraParams = new HashMap<>();
×
130
      }
131
      this.extraParams.putAll(map);
×
132
      return this;
×
133
    }
134
  }
135

136
  @Getter
137
  public static class Components {
138
    /** Configuration for the account management embedded component. */
139
    @SerializedName("account_management")
140
    AccountManagement accountManagement;
141

142
    /** Configuration for the account onboarding embedded component. */
143
    @SerializedName("account_onboarding")
144
    AccountOnboarding accountOnboarding;
145

146
    /** Configuration for the app install component. */
147
    @SerializedName("app_install")
148
    AppInstall appInstall;
149

150
    /** Configuration for the app viewport component. */
151
    @SerializedName("app_viewport")
152
    AppViewport appViewport;
153

154
    /** Configuration for the balances embedded component. */
155
    @SerializedName("balances")
156
    Balances balances;
157

158
    /** Configuration for the capital financing embedded component. */
159
    @SerializedName("capital_financing")
160
    CapitalFinancing capitalFinancing;
161

162
    /** Configuration for the capital financing application embedded component. */
163
    @SerializedName("capital_financing_application")
164
    CapitalFinancingApplication capitalFinancingApplication;
165

166
    /** Configuration for the capital financing promotion embedded component. */
167
    @SerializedName("capital_financing_promotion")
168
    CapitalFinancingPromotion capitalFinancingPromotion;
169

170
    /** Configuration for the capital overview embedded component. */
171
    @SerializedName("capital_overview")
172
    CapitalOverview capitalOverview;
173

174
    /** Configuration for the documents embedded component. */
175
    @SerializedName("documents")
176
    Documents documents;
177

178
    /**
179
     * Map of extra parameters for custom features not available in this client library. The content
180
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
181
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
182
     * param object. Effectively, this map is flattened to its parent instance.
183
     */
184
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
185
    Map<String, Object> extraParams;
186

187
    /** Configuration for the financial account component. */
188
    @SerializedName("financial_account")
189
    FinancialAccount financialAccount;
190

191
    /** Configuration for the financial account transactions component. */
192
    @SerializedName("financial_account_transactions")
193
    FinancialAccountTransactions financialAccountTransactions;
194

195
    /** Configuration for the issuing card component. */
196
    @SerializedName("issuing_card")
197
    IssuingCard issuingCard;
198

199
    /** Configuration for the issuing cards list component. */
200
    @SerializedName("issuing_cards_list")
201
    IssuingCardsList issuingCardsList;
202

203
    /** Configuration for the notification banner embedded component. */
204
    @SerializedName("notification_banner")
205
    NotificationBanner notificationBanner;
206

207
    /** Configuration for the payment details embedded component. */
208
    @SerializedName("payment_details")
209
    PaymentDetails paymentDetails;
210

211
    /** Configuration for the payment method settings embedded component. */
212
    @SerializedName("payment_method_settings")
213
    PaymentMethodSettings paymentMethodSettings;
214

215
    /** Configuration for the payments embedded component. */
216
    @SerializedName("payments")
217
    Payments payments;
218

219
    /** Configuration for the payouts embedded component. */
220
    @SerializedName("payouts")
221
    Payouts payouts;
222

223
    /** Configuration for the payouts list embedded component. */
224
    @SerializedName("payouts_list")
225
    PayoutsList payoutsList;
226

227
    @SerializedName("recipients")
228
    Recipients recipients;
229

230
    /** Configuration for the tax registrations embedded component. */
231
    @SerializedName("tax_registrations")
232
    TaxRegistrations taxRegistrations;
233

234
    /** Configuration for the tax settings embedded component. */
235
    @SerializedName("tax_settings")
236
    TaxSettings taxSettings;
237

238
    private Components(
239
        AccountManagement accountManagement,
240
        AccountOnboarding accountOnboarding,
241
        AppInstall appInstall,
242
        AppViewport appViewport,
243
        Balances balances,
244
        CapitalFinancing capitalFinancing,
245
        CapitalFinancingApplication capitalFinancingApplication,
246
        CapitalFinancingPromotion capitalFinancingPromotion,
247
        CapitalOverview capitalOverview,
248
        Documents documents,
249
        Map<String, Object> extraParams,
250
        FinancialAccount financialAccount,
251
        FinancialAccountTransactions financialAccountTransactions,
252
        IssuingCard issuingCard,
253
        IssuingCardsList issuingCardsList,
254
        NotificationBanner notificationBanner,
255
        PaymentDetails paymentDetails,
256
        PaymentMethodSettings paymentMethodSettings,
257
        Payments payments,
258
        Payouts payouts,
259
        PayoutsList payoutsList,
260
        Recipients recipients,
261
        TaxRegistrations taxRegistrations,
262
        TaxSettings taxSettings) {
×
263
      this.accountManagement = accountManagement;
×
264
      this.accountOnboarding = accountOnboarding;
×
265
      this.appInstall = appInstall;
×
266
      this.appViewport = appViewport;
×
267
      this.balances = balances;
×
268
      this.capitalFinancing = capitalFinancing;
×
269
      this.capitalFinancingApplication = capitalFinancingApplication;
×
270
      this.capitalFinancingPromotion = capitalFinancingPromotion;
×
271
      this.capitalOverview = capitalOverview;
×
272
      this.documents = documents;
×
273
      this.extraParams = extraParams;
×
274
      this.financialAccount = financialAccount;
×
275
      this.financialAccountTransactions = financialAccountTransactions;
×
276
      this.issuingCard = issuingCard;
×
277
      this.issuingCardsList = issuingCardsList;
×
278
      this.notificationBanner = notificationBanner;
×
279
      this.paymentDetails = paymentDetails;
×
280
      this.paymentMethodSettings = paymentMethodSettings;
×
281
      this.payments = payments;
×
282
      this.payouts = payouts;
×
283
      this.payoutsList = payoutsList;
×
284
      this.recipients = recipients;
×
285
      this.taxRegistrations = taxRegistrations;
×
286
      this.taxSettings = taxSettings;
×
287
    }
×
288

289
    public static Builder builder() {
290
      return new Builder();
×
291
    }
292

293
    public static class Builder {
×
294
      private AccountManagement accountManagement;
295

296
      private AccountOnboarding accountOnboarding;
297

298
      private AppInstall appInstall;
299

300
      private AppViewport appViewport;
301

302
      private Balances balances;
303

304
      private CapitalFinancing capitalFinancing;
305

306
      private CapitalFinancingApplication capitalFinancingApplication;
307

308
      private CapitalFinancingPromotion capitalFinancingPromotion;
309

310
      private CapitalOverview capitalOverview;
311

312
      private Documents documents;
313

314
      private Map<String, Object> extraParams;
315

316
      private FinancialAccount financialAccount;
317

318
      private FinancialAccountTransactions financialAccountTransactions;
319

320
      private IssuingCard issuingCard;
321

322
      private IssuingCardsList issuingCardsList;
323

324
      private NotificationBanner notificationBanner;
325

326
      private PaymentDetails paymentDetails;
327

328
      private PaymentMethodSettings paymentMethodSettings;
329

330
      private Payments payments;
331

332
      private Payouts payouts;
333

334
      private PayoutsList payoutsList;
335

336
      private Recipients recipients;
337

338
      private TaxRegistrations taxRegistrations;
339

340
      private TaxSettings taxSettings;
341

342
      /** Finalize and obtain parameter instance from this builder. */
343
      public AccountSessionCreateParams.Components build() {
344
        return new AccountSessionCreateParams.Components(
×
345
            this.accountManagement,
346
            this.accountOnboarding,
347
            this.appInstall,
348
            this.appViewport,
349
            this.balances,
350
            this.capitalFinancing,
351
            this.capitalFinancingApplication,
352
            this.capitalFinancingPromotion,
353
            this.capitalOverview,
354
            this.documents,
355
            this.extraParams,
356
            this.financialAccount,
357
            this.financialAccountTransactions,
358
            this.issuingCard,
359
            this.issuingCardsList,
360
            this.notificationBanner,
361
            this.paymentDetails,
362
            this.paymentMethodSettings,
363
            this.payments,
364
            this.payouts,
365
            this.payoutsList,
366
            this.recipients,
367
            this.taxRegistrations,
368
            this.taxSettings);
369
      }
370

371
      /** Configuration for the account management embedded component. */
372
      public Builder setAccountManagement(
373
          AccountSessionCreateParams.Components.AccountManagement accountManagement) {
374
        this.accountManagement = accountManagement;
×
375
        return this;
×
376
      }
377

378
      /** Configuration for the account onboarding embedded component. */
379
      public Builder setAccountOnboarding(
380
          AccountSessionCreateParams.Components.AccountOnboarding accountOnboarding) {
381
        this.accountOnboarding = accountOnboarding;
×
382
        return this;
×
383
      }
384

385
      /** Configuration for the app install component. */
386
      public Builder setAppInstall(AccountSessionCreateParams.Components.AppInstall appInstall) {
387
        this.appInstall = appInstall;
×
388
        return this;
×
389
      }
390

391
      /** Configuration for the app viewport component. */
392
      public Builder setAppViewport(AccountSessionCreateParams.Components.AppViewport appViewport) {
393
        this.appViewport = appViewport;
×
394
        return this;
×
395
      }
396

397
      /** Configuration for the balances embedded component. */
398
      public Builder setBalances(AccountSessionCreateParams.Components.Balances balances) {
399
        this.balances = balances;
×
400
        return this;
×
401
      }
402

403
      /** Configuration for the capital financing embedded component. */
404
      public Builder setCapitalFinancing(
405
          AccountSessionCreateParams.Components.CapitalFinancing capitalFinancing) {
406
        this.capitalFinancing = capitalFinancing;
×
407
        return this;
×
408
      }
409

410
      /** Configuration for the capital financing application embedded component. */
411
      public Builder setCapitalFinancingApplication(
412
          AccountSessionCreateParams.Components.CapitalFinancingApplication
413
              capitalFinancingApplication) {
414
        this.capitalFinancingApplication = capitalFinancingApplication;
×
415
        return this;
×
416
      }
417

418
      /** Configuration for the capital financing promotion embedded component. */
419
      public Builder setCapitalFinancingPromotion(
420
          AccountSessionCreateParams.Components.CapitalFinancingPromotion
421
              capitalFinancingPromotion) {
422
        this.capitalFinancingPromotion = capitalFinancingPromotion;
×
423
        return this;
×
424
      }
425

426
      /** Configuration for the capital overview embedded component. */
427
      public Builder setCapitalOverview(
428
          AccountSessionCreateParams.Components.CapitalOverview capitalOverview) {
429
        this.capitalOverview = capitalOverview;
×
430
        return this;
×
431
      }
432

433
      /** Configuration for the documents embedded component. */
434
      public Builder setDocuments(AccountSessionCreateParams.Components.Documents documents) {
435
        this.documents = documents;
×
436
        return this;
×
437
      }
438

439
      /**
440
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
441
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
442
       * AccountSessionCreateParams.Components#extraParams} for the field documentation.
443
       */
444
      public Builder putExtraParam(String key, Object value) {
445
        if (this.extraParams == null) {
×
446
          this.extraParams = new HashMap<>();
×
447
        }
448
        this.extraParams.put(key, value);
×
449
        return this;
×
450
      }
451

452
      /**
453
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
454
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
455
       * See {@link AccountSessionCreateParams.Components#extraParams} for the field documentation.
456
       */
457
      public Builder putAllExtraParam(Map<String, Object> map) {
458
        if (this.extraParams == null) {
×
459
          this.extraParams = new HashMap<>();
×
460
        }
461
        this.extraParams.putAll(map);
×
462
        return this;
×
463
      }
464

465
      /** Configuration for the financial account component. */
466
      public Builder setFinancialAccount(
467
          AccountSessionCreateParams.Components.FinancialAccount financialAccount) {
468
        this.financialAccount = financialAccount;
×
469
        return this;
×
470
      }
471

472
      /** Configuration for the financial account transactions component. */
473
      public Builder setFinancialAccountTransactions(
474
          AccountSessionCreateParams.Components.FinancialAccountTransactions
475
              financialAccountTransactions) {
476
        this.financialAccountTransactions = financialAccountTransactions;
×
477
        return this;
×
478
      }
479

480
      /** Configuration for the issuing card component. */
481
      public Builder setIssuingCard(AccountSessionCreateParams.Components.IssuingCard issuingCard) {
482
        this.issuingCard = issuingCard;
×
483
        return this;
×
484
      }
485

486
      /** Configuration for the issuing cards list component. */
487
      public Builder setIssuingCardsList(
488
          AccountSessionCreateParams.Components.IssuingCardsList issuingCardsList) {
489
        this.issuingCardsList = issuingCardsList;
×
490
        return this;
×
491
      }
492

493
      /** Configuration for the notification banner embedded component. */
494
      public Builder setNotificationBanner(
495
          AccountSessionCreateParams.Components.NotificationBanner notificationBanner) {
496
        this.notificationBanner = notificationBanner;
×
497
        return this;
×
498
      }
499

500
      /** Configuration for the payment details embedded component. */
501
      public Builder setPaymentDetails(
502
          AccountSessionCreateParams.Components.PaymentDetails paymentDetails) {
503
        this.paymentDetails = paymentDetails;
×
504
        return this;
×
505
      }
506

507
      /** Configuration for the payment method settings embedded component. */
508
      public Builder setPaymentMethodSettings(
509
          AccountSessionCreateParams.Components.PaymentMethodSettings paymentMethodSettings) {
510
        this.paymentMethodSettings = paymentMethodSettings;
×
511
        return this;
×
512
      }
513

514
      /** Configuration for the payments embedded component. */
515
      public Builder setPayments(AccountSessionCreateParams.Components.Payments payments) {
516
        this.payments = payments;
×
517
        return this;
×
518
      }
519

520
      /** Configuration for the payouts embedded component. */
521
      public Builder setPayouts(AccountSessionCreateParams.Components.Payouts payouts) {
522
        this.payouts = payouts;
×
523
        return this;
×
524
      }
525

526
      /** Configuration for the payouts list embedded component. */
527
      public Builder setPayoutsList(AccountSessionCreateParams.Components.PayoutsList payoutsList) {
528
        this.payoutsList = payoutsList;
×
529
        return this;
×
530
      }
531

532
      public Builder setRecipients(AccountSessionCreateParams.Components.Recipients recipients) {
533
        this.recipients = recipients;
×
534
        return this;
×
535
      }
536

537
      /** Configuration for the tax registrations embedded component. */
538
      public Builder setTaxRegistrations(
539
          AccountSessionCreateParams.Components.TaxRegistrations taxRegistrations) {
540
        this.taxRegistrations = taxRegistrations;
×
541
        return this;
×
542
      }
543

544
      /** Configuration for the tax settings embedded component. */
545
      public Builder setTaxSettings(AccountSessionCreateParams.Components.TaxSettings taxSettings) {
546
        this.taxSettings = taxSettings;
×
547
        return this;
×
548
      }
549
    }
550

551
    @Getter
552
    public static class AccountManagement {
553
      /** <strong>Required.</strong> Whether the embedded component is enabled. */
554
      @SerializedName("enabled")
555
      Boolean enabled;
556

557
      /**
558
       * Map of extra parameters for custom features not available in this client library. The
559
       * content in this map is not serialized under this field's {@code @SerializedName} value.
560
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
561
       * name in this param object. Effectively, this map is flattened to its parent instance.
562
       */
563
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
564
      Map<String, Object> extraParams;
565

566
      /** The list of features enabled in the embedded component. */
567
      @SerializedName("features")
568
      Features features;
569

570
      private AccountManagement(
571
          Boolean enabled, Map<String, Object> extraParams, Features features) {
×
572
        this.enabled = enabled;
×
573
        this.extraParams = extraParams;
×
574
        this.features = features;
×
575
      }
×
576

577
      public static Builder builder() {
578
        return new Builder();
×
579
      }
580

581
      public static class Builder {
×
582
        private Boolean enabled;
583

584
        private Map<String, Object> extraParams;
585

586
        private Features features;
587

588
        /** Finalize and obtain parameter instance from this builder. */
589
        public AccountSessionCreateParams.Components.AccountManagement build() {
590
          return new AccountSessionCreateParams.Components.AccountManagement(
×
591
              this.enabled, this.extraParams, this.features);
592
        }
593

594
        /** <strong>Required.</strong> Whether the embedded component is enabled. */
595
        public Builder setEnabled(Boolean enabled) {
596
          this.enabled = enabled;
×
597
          return this;
×
598
        }
599

600
        /**
601
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
602
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
603
         * map. See {@link AccountSessionCreateParams.Components.AccountManagement#extraParams} for
604
         * the field documentation.
605
         */
606
        public Builder putExtraParam(String key, Object value) {
607
          if (this.extraParams == null) {
×
608
            this.extraParams = new HashMap<>();
×
609
          }
610
          this.extraParams.put(key, value);
×
611
          return this;
×
612
        }
613

614
        /**
615
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
616
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
617
         * map. See {@link AccountSessionCreateParams.Components.AccountManagement#extraParams} for
618
         * the field documentation.
619
         */
620
        public Builder putAllExtraParam(Map<String, Object> map) {
621
          if (this.extraParams == null) {
×
622
            this.extraParams = new HashMap<>();
×
623
          }
624
          this.extraParams.putAll(map);
×
625
          return this;
×
626
        }
627

628
        /** The list of features enabled in the embedded component. */
629
        public Builder setFeatures(
630
            AccountSessionCreateParams.Components.AccountManagement.Features features) {
631
          this.features = features;
×
632
          return this;
×
633
        }
634
      }
635

636
      @Getter
637
      public static class Features {
638
        /**
639
         * Whether to allow platforms to control bank account collection for their connected
640
         * accounts. This feature can only be false for custom accounts (or accounts where the
641
         * platform is compliance owner). Otherwise, bank account collection is determined by
642
         * compliance requirements.
643
         */
644
        @SerializedName("external_account_collection")
645
        Boolean externalAccountCollection;
646

647
        /**
648
         * Map of extra parameters for custom features not available in this client library. The
649
         * content in this map is not serialized under this field's {@code @SerializedName} value.
650
         * Instead, each key/value pair is serialized as if the key is a root-level field
651
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
652
         * instance.
653
         */
654
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
655
        Map<String, Object> extraParams;
656

657
        private Features(Boolean externalAccountCollection, Map<String, Object> extraParams) {
×
658
          this.externalAccountCollection = externalAccountCollection;
×
659
          this.extraParams = extraParams;
×
660
        }
×
661

662
        public static Builder builder() {
663
          return new Builder();
×
664
        }
665

666
        public static class Builder {
×
667
          private Boolean externalAccountCollection;
668

669
          private Map<String, Object> extraParams;
670

671
          /** Finalize and obtain parameter instance from this builder. */
672
          public AccountSessionCreateParams.Components.AccountManagement.Features build() {
673
            return new AccountSessionCreateParams.Components.AccountManagement.Features(
×
674
                this.externalAccountCollection, this.extraParams);
675
          }
676

677
          /**
678
           * Whether to allow platforms to control bank account collection for their connected
679
           * accounts. This feature can only be false for custom accounts (or accounts where the
680
           * platform is compliance owner). Otherwise, bank account collection is determined by
681
           * compliance requirements.
682
           */
683
          public Builder setExternalAccountCollection(Boolean externalAccountCollection) {
684
            this.externalAccountCollection = externalAccountCollection;
×
685
            return this;
×
686
          }
687

688
          /**
689
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
690
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
691
           * map. See {@link
692
           * AccountSessionCreateParams.Components.AccountManagement.Features#extraParams} for the
693
           * field documentation.
694
           */
695
          public Builder putExtraParam(String key, Object value) {
696
            if (this.extraParams == null) {
×
697
              this.extraParams = new HashMap<>();
×
698
            }
699
            this.extraParams.put(key, value);
×
700
            return this;
×
701
          }
702

703
          /**
704
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
705
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
706
           * map. See {@link
707
           * AccountSessionCreateParams.Components.AccountManagement.Features#extraParams} for the
708
           * field documentation.
709
           */
710
          public Builder putAllExtraParam(Map<String, Object> map) {
711
            if (this.extraParams == null) {
×
712
              this.extraParams = new HashMap<>();
×
713
            }
714
            this.extraParams.putAll(map);
×
715
            return this;
×
716
          }
717
        }
718
      }
719
    }
720

721
    @Getter
722
    public static class AccountOnboarding {
723
      /** <strong>Required.</strong> Whether the embedded component is enabled. */
724
      @SerializedName("enabled")
725
      Boolean enabled;
726

727
      /**
728
       * Map of extra parameters for custom features not available in this client library. The
729
       * content in this map is not serialized under this field's {@code @SerializedName} value.
730
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
731
       * name in this param object. Effectively, this map is flattened to its parent instance.
732
       */
733
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
734
      Map<String, Object> extraParams;
735

736
      /** The list of features enabled in the embedded component. */
737
      @SerializedName("features")
738
      Features features;
739

740
      private AccountOnboarding(
741
          Boolean enabled, Map<String, Object> extraParams, Features features) {
×
742
        this.enabled = enabled;
×
743
        this.extraParams = extraParams;
×
744
        this.features = features;
×
745
      }
×
746

747
      public static Builder builder() {
748
        return new Builder();
×
749
      }
750

751
      public static class Builder {
×
752
        private Boolean enabled;
753

754
        private Map<String, Object> extraParams;
755

756
        private Features features;
757

758
        /** Finalize and obtain parameter instance from this builder. */
759
        public AccountSessionCreateParams.Components.AccountOnboarding build() {
760
          return new AccountSessionCreateParams.Components.AccountOnboarding(
×
761
              this.enabled, this.extraParams, this.features);
762
        }
763

764
        /** <strong>Required.</strong> Whether the embedded component is enabled. */
765
        public Builder setEnabled(Boolean enabled) {
766
          this.enabled = enabled;
×
767
          return this;
×
768
        }
769

770
        /**
771
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
772
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
773
         * map. See {@link AccountSessionCreateParams.Components.AccountOnboarding#extraParams} for
774
         * the field documentation.
775
         */
776
        public Builder putExtraParam(String key, Object value) {
777
          if (this.extraParams == null) {
×
778
            this.extraParams = new HashMap<>();
×
779
          }
780
          this.extraParams.put(key, value);
×
781
          return this;
×
782
        }
783

784
        /**
785
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
786
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
787
         * map. See {@link AccountSessionCreateParams.Components.AccountOnboarding#extraParams} for
788
         * the field documentation.
789
         */
790
        public Builder putAllExtraParam(Map<String, Object> map) {
791
          if (this.extraParams == null) {
×
792
            this.extraParams = new HashMap<>();
×
793
          }
794
          this.extraParams.putAll(map);
×
795
          return this;
×
796
        }
797

798
        /** The list of features enabled in the embedded component. */
799
        public Builder setFeatures(
800
            AccountSessionCreateParams.Components.AccountOnboarding.Features features) {
801
          this.features = features;
×
802
          return this;
×
803
        }
804
      }
805

806
      @Getter
807
      public static class Features {
808
        /**
809
         * Whether to allow platforms to control bank account collection for their connected
810
         * accounts. This feature can only be false for custom accounts (or accounts where the
811
         * platform is compliance owner). Otherwise, bank account collection is determined by
812
         * compliance requirements.
813
         */
814
        @SerializedName("external_account_collection")
815
        Boolean externalAccountCollection;
816

817
        /**
818
         * Map of extra parameters for custom features not available in this client library. The
819
         * content in this map is not serialized under this field's {@code @SerializedName} value.
820
         * Instead, each key/value pair is serialized as if the key is a root-level field
821
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
822
         * instance.
823
         */
824
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
825
        Map<String, Object> extraParams;
826

827
        private Features(Boolean externalAccountCollection, Map<String, Object> extraParams) {
×
828
          this.externalAccountCollection = externalAccountCollection;
×
829
          this.extraParams = extraParams;
×
830
        }
×
831

832
        public static Builder builder() {
833
          return new Builder();
×
834
        }
835

836
        public static class Builder {
×
837
          private Boolean externalAccountCollection;
838

839
          private Map<String, Object> extraParams;
840

841
          /** Finalize and obtain parameter instance from this builder. */
842
          public AccountSessionCreateParams.Components.AccountOnboarding.Features build() {
843
            return new AccountSessionCreateParams.Components.AccountOnboarding.Features(
×
844
                this.externalAccountCollection, this.extraParams);
845
          }
846

847
          /**
848
           * Whether to allow platforms to control bank account collection for their connected
849
           * accounts. This feature can only be false for custom accounts (or accounts where the
850
           * platform is compliance owner). Otherwise, bank account collection is determined by
851
           * compliance requirements.
852
           */
853
          public Builder setExternalAccountCollection(Boolean externalAccountCollection) {
854
            this.externalAccountCollection = externalAccountCollection;
×
855
            return this;
×
856
          }
857

858
          /**
859
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
860
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
861
           * map. See {@link
862
           * AccountSessionCreateParams.Components.AccountOnboarding.Features#extraParams} for the
863
           * field documentation.
864
           */
865
          public Builder putExtraParam(String key, Object value) {
866
            if (this.extraParams == null) {
×
867
              this.extraParams = new HashMap<>();
×
868
            }
869
            this.extraParams.put(key, value);
×
870
            return this;
×
871
          }
872

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

891
    @Getter
892
    public static class AppInstall {
893
      /** <strong>Required.</strong> Whether the embedded component is enabled. */
894
      @SerializedName("enabled")
895
      Boolean enabled;
896

897
      /**
898
       * Map of extra parameters for custom features not available in this client library. The
899
       * content in this map is not serialized under this field's {@code @SerializedName} value.
900
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
901
       * name in this param object. Effectively, this map is flattened to its parent instance.
902
       */
903
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
904
      Map<String, Object> extraParams;
905

906
      /** The list of features enabled in the embedded component. */
907
      @SerializedName("features")
908
      Features features;
909

910
      private AppInstall(Boolean enabled, Map<String, Object> extraParams, Features features) {
×
911
        this.enabled = enabled;
×
912
        this.extraParams = extraParams;
×
913
        this.features = features;
×
914
      }
×
915

916
      public static Builder builder() {
917
        return new Builder();
×
918
      }
919

920
      public static class Builder {
×
921
        private Boolean enabled;
922

923
        private Map<String, Object> extraParams;
924

925
        private Features features;
926

927
        /** Finalize and obtain parameter instance from this builder. */
928
        public AccountSessionCreateParams.Components.AppInstall build() {
929
          return new AccountSessionCreateParams.Components.AppInstall(
×
930
              this.enabled, this.extraParams, this.features);
931
        }
932

933
        /** <strong>Required.</strong> Whether the embedded component is enabled. */
934
        public Builder setEnabled(Boolean enabled) {
935
          this.enabled = enabled;
×
936
          return this;
×
937
        }
938

939
        /**
940
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
941
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
942
         * map. See {@link AccountSessionCreateParams.Components.AppInstall#extraParams} for the
943
         * field documentation.
944
         */
945
        public Builder putExtraParam(String key, Object value) {
946
          if (this.extraParams == null) {
×
947
            this.extraParams = new HashMap<>();
×
948
          }
949
          this.extraParams.put(key, value);
×
950
          return this;
×
951
        }
952

953
        /**
954
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
955
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
956
         * map. See {@link AccountSessionCreateParams.Components.AppInstall#extraParams} for the
957
         * field documentation.
958
         */
959
        public Builder putAllExtraParam(Map<String, Object> map) {
960
          if (this.extraParams == null) {
×
961
            this.extraParams = new HashMap<>();
×
962
          }
963
          this.extraParams.putAll(map);
×
964
          return this;
×
965
        }
966

967
        /** The list of features enabled in the embedded component. */
968
        public Builder setFeatures(
969
            AccountSessionCreateParams.Components.AppInstall.Features features) {
970
          this.features = features;
×
971
          return this;
×
972
        }
973
      }
974

975
      @Getter
976
      public static class Features {
977
        /** List of apps allowed to be enabled for this account session. */
978
        @SerializedName("allowed_apps")
979
        Object allowedApps;
980

981
        /**
982
         * Map of extra parameters for custom features not available in this client library. The
983
         * content in this map is not serialized under this field's {@code @SerializedName} value.
984
         * Instead, each key/value pair is serialized as if the key is a root-level field
985
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
986
         * instance.
987
         */
988
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
989
        Map<String, Object> extraParams;
990

991
        private Features(Object allowedApps, Map<String, Object> extraParams) {
×
992
          this.allowedApps = allowedApps;
×
993
          this.extraParams = extraParams;
×
994
        }
×
995

996
        public static Builder builder() {
997
          return new Builder();
×
998
        }
999

1000
        public static class Builder {
×
1001
          private Object allowedApps;
1002

1003
          private Map<String, Object> extraParams;
1004

1005
          /** Finalize and obtain parameter instance from this builder. */
1006
          public AccountSessionCreateParams.Components.AppInstall.Features build() {
1007
            return new AccountSessionCreateParams.Components.AppInstall.Features(
×
1008
                this.allowedApps, this.extraParams);
1009
          }
1010

1011
          /**
1012
           * Add an element to `allowedApps` list. A list is initialized for the first `add/addAll`
1013
           * call, and subsequent calls adds additional elements to the original list. See {@link
1014
           * AccountSessionCreateParams.Components.AppInstall.Features#allowedApps} for the field
1015
           * documentation.
1016
           */
1017
          @SuppressWarnings("unchecked")
1018
          public Builder addAllowedApp(String element) {
1019
            if (this.allowedApps == null || this.allowedApps instanceof EmptyParam) {
×
1020
              this.allowedApps = new ArrayList<String>();
×
1021
            }
1022
            ((List<String>) this.allowedApps).add(element);
×
1023
            return this;
×
1024
          }
1025

1026
          /**
1027
           * Add all elements to `allowedApps` list. A list is initialized for the first
1028
           * `add/addAll` call, and subsequent calls adds additional elements to the original list.
1029
           * See {@link AccountSessionCreateParams.Components.AppInstall.Features#allowedApps} for
1030
           * the field documentation.
1031
           */
1032
          @SuppressWarnings("unchecked")
1033
          public Builder addAllAllowedApp(List<String> elements) {
1034
            if (this.allowedApps == null || this.allowedApps instanceof EmptyParam) {
×
1035
              this.allowedApps = new ArrayList<String>();
×
1036
            }
1037
            ((List<String>) this.allowedApps).addAll(elements);
×
1038
            return this;
×
1039
          }
1040

1041
          /** List of apps allowed to be enabled for this account session. */
1042
          public Builder setAllowedApps(EmptyParam allowedApps) {
1043
            this.allowedApps = allowedApps;
×
1044
            return this;
×
1045
          }
1046

1047
          /** List of apps allowed to be enabled for this account session. */
1048
          public Builder setAllowedApps(List<String> allowedApps) {
1049
            this.allowedApps = allowedApps;
×
1050
            return this;
×
1051
          }
1052

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

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

1084
    @Getter
1085
    public static class AppViewport {
1086
      /** <strong>Required.</strong> Whether the embedded component is enabled. */
1087
      @SerializedName("enabled")
1088
      Boolean enabled;
1089

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

1099
      /** The list of features enabled in the embedded component. */
1100
      @SerializedName("features")
1101
      Features features;
1102

1103
      private AppViewport(Boolean enabled, Map<String, Object> extraParams, Features features) {
×
1104
        this.enabled = enabled;
×
1105
        this.extraParams = extraParams;
×
1106
        this.features = features;
×
1107
      }
×
1108

1109
      public static Builder builder() {
1110
        return new Builder();
×
1111
      }
1112

1113
      public static class Builder {
×
1114
        private Boolean enabled;
1115

1116
        private Map<String, Object> extraParams;
1117

1118
        private Features features;
1119

1120
        /** Finalize and obtain parameter instance from this builder. */
1121
        public AccountSessionCreateParams.Components.AppViewport build() {
1122
          return new AccountSessionCreateParams.Components.AppViewport(
×
1123
              this.enabled, this.extraParams, this.features);
1124
        }
1125

1126
        /** <strong>Required.</strong> Whether the embedded component is enabled. */
1127
        public Builder setEnabled(Boolean enabled) {
1128
          this.enabled = enabled;
×
1129
          return this;
×
1130
        }
1131

1132
        /**
1133
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
1134
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1135
         * map. See {@link AccountSessionCreateParams.Components.AppViewport#extraParams} for the
1136
         * field documentation.
1137
         */
1138
        public Builder putExtraParam(String key, Object value) {
1139
          if (this.extraParams == null) {
×
1140
            this.extraParams = new HashMap<>();
×
1141
          }
1142
          this.extraParams.put(key, value);
×
1143
          return this;
×
1144
        }
1145

1146
        /**
1147
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1148
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1149
         * map. See {@link AccountSessionCreateParams.Components.AppViewport#extraParams} for the
1150
         * field documentation.
1151
         */
1152
        public Builder putAllExtraParam(Map<String, Object> map) {
1153
          if (this.extraParams == null) {
×
1154
            this.extraParams = new HashMap<>();
×
1155
          }
1156
          this.extraParams.putAll(map);
×
1157
          return this;
×
1158
        }
1159

1160
        /** The list of features enabled in the embedded component. */
1161
        public Builder setFeatures(
1162
            AccountSessionCreateParams.Components.AppViewport.Features features) {
1163
          this.features = features;
×
1164
          return this;
×
1165
        }
1166
      }
1167

1168
      @Getter
1169
      public static class Features {
1170
        /** List of apps allowed to be enabled for this account session. */
1171
        @SerializedName("allowed_apps")
1172
        Object allowedApps;
1173

1174
        /**
1175
         * Map of extra parameters for custom features not available in this client library. The
1176
         * content in this map is not serialized under this field's {@code @SerializedName} value.
1177
         * Instead, each key/value pair is serialized as if the key is a root-level field
1178
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
1179
         * instance.
1180
         */
1181
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1182
        Map<String, Object> extraParams;
1183

1184
        private Features(Object allowedApps, Map<String, Object> extraParams) {
×
1185
          this.allowedApps = allowedApps;
×
1186
          this.extraParams = extraParams;
×
1187
        }
×
1188

1189
        public static Builder builder() {
1190
          return new Builder();
×
1191
        }
1192

1193
        public static class Builder {
×
1194
          private Object allowedApps;
1195

1196
          private Map<String, Object> extraParams;
1197

1198
          /** Finalize and obtain parameter instance from this builder. */
1199
          public AccountSessionCreateParams.Components.AppViewport.Features build() {
1200
            return new AccountSessionCreateParams.Components.AppViewport.Features(
×
1201
                this.allowedApps, this.extraParams);
1202
          }
1203

1204
          /**
1205
           * Add an element to `allowedApps` list. A list is initialized for the first `add/addAll`
1206
           * call, and subsequent calls adds additional elements to the original list. See {@link
1207
           * AccountSessionCreateParams.Components.AppViewport.Features#allowedApps} for the field
1208
           * documentation.
1209
           */
1210
          @SuppressWarnings("unchecked")
1211
          public Builder addAllowedApp(String element) {
1212
            if (this.allowedApps == null || this.allowedApps instanceof EmptyParam) {
×
1213
              this.allowedApps = new ArrayList<String>();
×
1214
            }
1215
            ((List<String>) this.allowedApps).add(element);
×
1216
            return this;
×
1217
          }
1218

1219
          /**
1220
           * Add all elements to `allowedApps` list. A list is initialized for the first
1221
           * `add/addAll` call, and subsequent calls adds additional elements to the original list.
1222
           * See {@link AccountSessionCreateParams.Components.AppViewport.Features#allowedApps} for
1223
           * the field documentation.
1224
           */
1225
          @SuppressWarnings("unchecked")
1226
          public Builder addAllAllowedApp(List<String> elements) {
1227
            if (this.allowedApps == null || this.allowedApps instanceof EmptyParam) {
×
1228
              this.allowedApps = new ArrayList<String>();
×
1229
            }
1230
            ((List<String>) this.allowedApps).addAll(elements);
×
1231
            return this;
×
1232
          }
1233

1234
          /** List of apps allowed to be enabled for this account session. */
1235
          public Builder setAllowedApps(EmptyParam allowedApps) {
1236
            this.allowedApps = allowedApps;
×
1237
            return this;
×
1238
          }
1239

1240
          /** List of apps allowed to be enabled for this account session. */
1241
          public Builder setAllowedApps(List<String> allowedApps) {
1242
            this.allowedApps = allowedApps;
×
1243
            return this;
×
1244
          }
1245

1246
          /**
1247
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
1248
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1249
           * map. See {@link AccountSessionCreateParams.Components.AppViewport.Features#extraParams}
1250
           * for the field documentation.
1251
           */
1252
          public Builder putExtraParam(String key, Object value) {
1253
            if (this.extraParams == null) {
×
1254
              this.extraParams = new HashMap<>();
×
1255
            }
1256
            this.extraParams.put(key, value);
×
1257
            return this;
×
1258
          }
1259

1260
          /**
1261
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1262
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1263
           * map. See {@link AccountSessionCreateParams.Components.AppViewport.Features#extraParams}
1264
           * for the field documentation.
1265
           */
1266
          public Builder putAllExtraParam(Map<String, Object> map) {
1267
            if (this.extraParams == null) {
×
1268
              this.extraParams = new HashMap<>();
×
1269
            }
1270
            this.extraParams.putAll(map);
×
1271
            return this;
×
1272
          }
1273
        }
1274
      }
1275
    }
1276

1277
    @Getter
1278
    public static class Balances {
1279
      /** <strong>Required.</strong> Whether the embedded component is enabled. */
1280
      @SerializedName("enabled")
1281
      Boolean enabled;
1282

1283
      /**
1284
       * Map of extra parameters for custom features not available in this client library. The
1285
       * content in this map is not serialized under this field's {@code @SerializedName} value.
1286
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
1287
       * name in this param object. Effectively, this map is flattened to its parent instance.
1288
       */
1289
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1290
      Map<String, Object> extraParams;
1291

1292
      /** The list of features enabled in the embedded component. */
1293
      @SerializedName("features")
1294
      Features features;
1295

1296
      private Balances(Boolean enabled, Map<String, Object> extraParams, Features features) {
×
1297
        this.enabled = enabled;
×
1298
        this.extraParams = extraParams;
×
1299
        this.features = features;
×
1300
      }
×
1301

1302
      public static Builder builder() {
1303
        return new Builder();
×
1304
      }
1305

1306
      public static class Builder {
×
1307
        private Boolean enabled;
1308

1309
        private Map<String, Object> extraParams;
1310

1311
        private Features features;
1312

1313
        /** Finalize and obtain parameter instance from this builder. */
1314
        public AccountSessionCreateParams.Components.Balances build() {
1315
          return new AccountSessionCreateParams.Components.Balances(
×
1316
              this.enabled, this.extraParams, this.features);
1317
        }
1318

1319
        /** <strong>Required.</strong> Whether the embedded component is enabled. */
1320
        public Builder setEnabled(Boolean enabled) {
1321
          this.enabled = enabled;
×
1322
          return this;
×
1323
        }
1324

1325
        /**
1326
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
1327
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1328
         * map. See {@link AccountSessionCreateParams.Components.Balances#extraParams} for the field
1329
         * documentation.
1330
         */
1331
        public Builder putExtraParam(String key, Object value) {
1332
          if (this.extraParams == null) {
×
1333
            this.extraParams = new HashMap<>();
×
1334
          }
1335
          this.extraParams.put(key, value);
×
1336
          return this;
×
1337
        }
1338

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

1353
        /** The list of features enabled in the embedded component. */
1354
        public Builder setFeatures(
1355
            AccountSessionCreateParams.Components.Balances.Features features) {
1356
          this.features = features;
×
1357
          return this;
×
1358
        }
1359
      }
1360

1361
      @Getter
1362
      public static class Features {
1363
        /**
1364
         * Whether to allow payout schedule to be changed. Default {@code true} when Stripe owns
1365
         * Loss Liability, default {@code false} otherwise.
1366
         */
1367
        @SerializedName("edit_payout_schedule")
1368
        Boolean editPayoutSchedule;
1369

1370
        /**
1371
         * Whether to allow platforms to control bank account collection for their connected
1372
         * accounts. This feature can only be false for custom accounts (or accounts where the
1373
         * platform is compliance owner). Otherwise, bank account collection is determined by
1374
         * compliance requirements.
1375
         */
1376
        @SerializedName("external_account_collection")
1377
        Boolean externalAccountCollection;
1378

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

1389
        /**
1390
         * Whether to allow creation of instant payouts. Default {@code true} when Stripe owns Loss
1391
         * Liability, default {@code false} otherwise.
1392
         */
1393
        @SerializedName("instant_payouts")
1394
        Boolean instantPayouts;
1395

1396
        /**
1397
         * Whether to allow creation of standard payouts. Default {@code true} when Stripe owns Loss
1398
         * Liability, default {@code false} otherwise.
1399
         */
1400
        @SerializedName("standard_payouts")
1401
        Boolean standardPayouts;
1402

1403
        private Features(
1404
            Boolean editPayoutSchedule,
1405
            Boolean externalAccountCollection,
1406
            Map<String, Object> extraParams,
1407
            Boolean instantPayouts,
1408
            Boolean standardPayouts) {
×
1409
          this.editPayoutSchedule = editPayoutSchedule;
×
1410
          this.externalAccountCollection = externalAccountCollection;
×
1411
          this.extraParams = extraParams;
×
1412
          this.instantPayouts = instantPayouts;
×
1413
          this.standardPayouts = standardPayouts;
×
1414
        }
×
1415

1416
        public static Builder builder() {
1417
          return new Builder();
×
1418
        }
1419

1420
        public static class Builder {
×
1421
          private Boolean editPayoutSchedule;
1422

1423
          private Boolean externalAccountCollection;
1424

1425
          private Map<String, Object> extraParams;
1426

1427
          private Boolean instantPayouts;
1428

1429
          private Boolean standardPayouts;
1430

1431
          /** Finalize and obtain parameter instance from this builder. */
1432
          public AccountSessionCreateParams.Components.Balances.Features build() {
1433
            return new AccountSessionCreateParams.Components.Balances.Features(
×
1434
                this.editPayoutSchedule,
1435
                this.externalAccountCollection,
1436
                this.extraParams,
1437
                this.instantPayouts,
1438
                this.standardPayouts);
1439
          }
1440

1441
          /**
1442
           * Whether to allow payout schedule to be changed. Default {@code true} when Stripe owns
1443
           * Loss Liability, default {@code false} otherwise.
1444
           */
1445
          public Builder setEditPayoutSchedule(Boolean editPayoutSchedule) {
1446
            this.editPayoutSchedule = editPayoutSchedule;
×
1447
            return this;
×
1448
          }
1449

1450
          /**
1451
           * Whether to allow platforms to control bank account collection for their connected
1452
           * accounts. This feature can only be false for custom accounts (or accounts where the
1453
           * platform is compliance owner). Otherwise, bank account collection is determined by
1454
           * compliance requirements.
1455
           */
1456
          public Builder setExternalAccountCollection(Boolean externalAccountCollection) {
1457
            this.externalAccountCollection = externalAccountCollection;
×
1458
            return this;
×
1459
          }
1460

1461
          /**
1462
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
1463
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1464
           * map. See {@link AccountSessionCreateParams.Components.Balances.Features#extraParams}
1465
           * for the field documentation.
1466
           */
1467
          public Builder putExtraParam(String key, Object value) {
1468
            if (this.extraParams == null) {
×
1469
              this.extraParams = new HashMap<>();
×
1470
            }
1471
            this.extraParams.put(key, value);
×
1472
            return this;
×
1473
          }
1474

1475
          /**
1476
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1477
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1478
           * map. See {@link AccountSessionCreateParams.Components.Balances.Features#extraParams}
1479
           * for the field documentation.
1480
           */
1481
          public Builder putAllExtraParam(Map<String, Object> map) {
1482
            if (this.extraParams == null) {
×
1483
              this.extraParams = new HashMap<>();
×
1484
            }
1485
            this.extraParams.putAll(map);
×
1486
            return this;
×
1487
          }
1488

1489
          /**
1490
           * Whether to allow creation of instant payouts. Default {@code true} when Stripe owns
1491
           * Loss Liability, default {@code false} otherwise.
1492
           */
1493
          public Builder setInstantPayouts(Boolean instantPayouts) {
1494
            this.instantPayouts = instantPayouts;
×
1495
            return this;
×
1496
          }
1497

1498
          /**
1499
           * Whether to allow creation of standard payouts. Default {@code true} when Stripe owns
1500
           * Loss Liability, default {@code false} otherwise.
1501
           */
1502
          public Builder setStandardPayouts(Boolean standardPayouts) {
1503
            this.standardPayouts = standardPayouts;
×
1504
            return this;
×
1505
          }
1506
        }
1507
      }
1508
    }
1509

1510
    @Getter
1511
    public static class CapitalFinancing {
1512
      /** <strong>Required.</strong> Whether the embedded component is enabled. */
1513
      @SerializedName("enabled")
1514
      Boolean enabled;
1515

1516
      /**
1517
       * Map of extra parameters for custom features not available in this client library. The
1518
       * content in this map is not serialized under this field's {@code @SerializedName} value.
1519
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
1520
       * name in this param object. Effectively, this map is flattened to its parent instance.
1521
       */
1522
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1523
      Map<String, Object> extraParams;
1524

1525
      /** The list of features enabled in the embedded component. */
1526
      @SerializedName("features")
1527
      Features features;
1528

1529
      private CapitalFinancing(
1530
          Boolean enabled, Map<String, Object> extraParams, Features features) {
×
1531
        this.enabled = enabled;
×
1532
        this.extraParams = extraParams;
×
1533
        this.features = features;
×
1534
      }
×
1535

1536
      public static Builder builder() {
1537
        return new Builder();
×
1538
      }
1539

1540
      public static class Builder {
×
1541
        private Boolean enabled;
1542

1543
        private Map<String, Object> extraParams;
1544

1545
        private Features features;
1546

1547
        /** Finalize and obtain parameter instance from this builder. */
1548
        public AccountSessionCreateParams.Components.CapitalFinancing build() {
1549
          return new AccountSessionCreateParams.Components.CapitalFinancing(
×
1550
              this.enabled, this.extraParams, this.features);
1551
        }
1552

1553
        /** <strong>Required.</strong> Whether the embedded component is enabled. */
1554
        public Builder setEnabled(Boolean enabled) {
1555
          this.enabled = enabled;
×
1556
          return this;
×
1557
        }
1558

1559
        /**
1560
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
1561
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1562
         * map. See {@link AccountSessionCreateParams.Components.CapitalFinancing#extraParams} for
1563
         * the field documentation.
1564
         */
1565
        public Builder putExtraParam(String key, Object value) {
1566
          if (this.extraParams == null) {
×
1567
            this.extraParams = new HashMap<>();
×
1568
          }
1569
          this.extraParams.put(key, value);
×
1570
          return this;
×
1571
        }
1572

1573
        /**
1574
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1575
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1576
         * map. See {@link AccountSessionCreateParams.Components.CapitalFinancing#extraParams} for
1577
         * the field documentation.
1578
         */
1579
        public Builder putAllExtraParam(Map<String, Object> map) {
1580
          if (this.extraParams == null) {
×
1581
            this.extraParams = new HashMap<>();
×
1582
          }
1583
          this.extraParams.putAll(map);
×
1584
          return this;
×
1585
        }
1586

1587
        /** The list of features enabled in the embedded component. */
1588
        public Builder setFeatures(
1589
            AccountSessionCreateParams.Components.CapitalFinancing.Features features) {
1590
          this.features = features;
×
1591
          return this;
×
1592
        }
1593
      }
1594

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

1607
        private Features(Map<String, Object> extraParams) {
×
1608
          this.extraParams = extraParams;
×
1609
        }
×
1610

1611
        public static Builder builder() {
1612
          return new Builder();
×
1613
        }
1614

1615
        public static class Builder {
×
1616
          private Map<String, Object> extraParams;
1617

1618
          /** Finalize and obtain parameter instance from this builder. */
1619
          public AccountSessionCreateParams.Components.CapitalFinancing.Features build() {
1620
            return new AccountSessionCreateParams.Components.CapitalFinancing.Features(
×
1621
                this.extraParams);
1622
          }
1623

1624
          /**
1625
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
1626
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1627
           * map. See {@link
1628
           * AccountSessionCreateParams.Components.CapitalFinancing.Features#extraParams} for the
1629
           * field documentation.
1630
           */
1631
          public Builder putExtraParam(String key, Object value) {
1632
            if (this.extraParams == null) {
×
1633
              this.extraParams = new HashMap<>();
×
1634
            }
1635
            this.extraParams.put(key, value);
×
1636
            return this;
×
1637
          }
1638

1639
          /**
1640
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1641
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1642
           * map. See {@link
1643
           * AccountSessionCreateParams.Components.CapitalFinancing.Features#extraParams} for the
1644
           * field documentation.
1645
           */
1646
          public Builder putAllExtraParam(Map<String, Object> map) {
1647
            if (this.extraParams == null) {
×
1648
              this.extraParams = new HashMap<>();
×
1649
            }
1650
            this.extraParams.putAll(map);
×
1651
            return this;
×
1652
          }
1653
        }
1654
      }
1655
    }
1656

1657
    @Getter
1658
    public static class CapitalFinancingApplication {
1659
      /** <strong>Required.</strong> Whether the embedded component is enabled. */
1660
      @SerializedName("enabled")
1661
      Boolean enabled;
1662

1663
      /**
1664
       * Map of extra parameters for custom features not available in this client library. The
1665
       * content in this map is not serialized under this field's {@code @SerializedName} value.
1666
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
1667
       * name in this param object. Effectively, this map is flattened to its parent instance.
1668
       */
1669
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1670
      Map<String, Object> extraParams;
1671

1672
      /** The list of features enabled in the embedded component. */
1673
      @SerializedName("features")
1674
      Features features;
1675

1676
      private CapitalFinancingApplication(
1677
          Boolean enabled, Map<String, Object> extraParams, Features features) {
×
1678
        this.enabled = enabled;
×
1679
        this.extraParams = extraParams;
×
1680
        this.features = features;
×
1681
      }
×
1682

1683
      public static Builder builder() {
1684
        return new Builder();
×
1685
      }
1686

1687
      public static class Builder {
×
1688
        private Boolean enabled;
1689

1690
        private Map<String, Object> extraParams;
1691

1692
        private Features features;
1693

1694
        /** Finalize and obtain parameter instance from this builder. */
1695
        public AccountSessionCreateParams.Components.CapitalFinancingApplication build() {
1696
          return new AccountSessionCreateParams.Components.CapitalFinancingApplication(
×
1697
              this.enabled, this.extraParams, this.features);
1698
        }
1699

1700
        /** <strong>Required.</strong> Whether the embedded component is enabled. */
1701
        public Builder setEnabled(Boolean enabled) {
1702
          this.enabled = enabled;
×
1703
          return this;
×
1704
        }
1705

1706
        /**
1707
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
1708
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1709
         * map. See {@link
1710
         * AccountSessionCreateParams.Components.CapitalFinancingApplication#extraParams} for the
1711
         * field documentation.
1712
         */
1713
        public Builder putExtraParam(String key, Object value) {
1714
          if (this.extraParams == null) {
×
1715
            this.extraParams = new HashMap<>();
×
1716
          }
1717
          this.extraParams.put(key, value);
×
1718
          return this;
×
1719
        }
1720

1721
        /**
1722
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1723
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1724
         * map. See {@link
1725
         * AccountSessionCreateParams.Components.CapitalFinancingApplication#extraParams} for the
1726
         * field documentation.
1727
         */
1728
        public Builder putAllExtraParam(Map<String, Object> map) {
1729
          if (this.extraParams == null) {
×
1730
            this.extraParams = new HashMap<>();
×
1731
          }
1732
          this.extraParams.putAll(map);
×
1733
          return this;
×
1734
        }
1735

1736
        /** The list of features enabled in the embedded component. */
1737
        public Builder setFeatures(
1738
            AccountSessionCreateParams.Components.CapitalFinancingApplication.Features features) {
1739
          this.features = features;
×
1740
          return this;
×
1741
        }
1742
      }
1743

1744
      @Getter
1745
      public static class Features {
1746
        /**
1747
         * Map of extra parameters for custom features not available in this client library. The
1748
         * content in this map is not serialized under this field's {@code @SerializedName} value.
1749
         * Instead, each key/value pair is serialized as if the key is a root-level field
1750
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
1751
         * instance.
1752
         */
1753
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1754
        Map<String, Object> extraParams;
1755

1756
        private Features(Map<String, Object> extraParams) {
×
1757
          this.extraParams = extraParams;
×
1758
        }
×
1759

1760
        public static Builder builder() {
1761
          return new Builder();
×
1762
        }
1763

1764
        public static class Builder {
×
1765
          private Map<String, Object> extraParams;
1766

1767
          /** Finalize and obtain parameter instance from this builder. */
1768
          public AccountSessionCreateParams.Components.CapitalFinancingApplication.Features
1769
              build() {
1770
            return new AccountSessionCreateParams.Components.CapitalFinancingApplication.Features(
×
1771
                this.extraParams);
1772
          }
1773

1774
          /**
1775
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
1776
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1777
           * map. See {@link
1778
           * AccountSessionCreateParams.Components.CapitalFinancingApplication.Features#extraParams}
1779
           * for the field documentation.
1780
           */
1781
          public Builder putExtraParam(String key, Object value) {
1782
            if (this.extraParams == null) {
×
1783
              this.extraParams = new HashMap<>();
×
1784
            }
1785
            this.extraParams.put(key, value);
×
1786
            return this;
×
1787
          }
1788

1789
          /**
1790
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1791
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1792
           * map. See {@link
1793
           * AccountSessionCreateParams.Components.CapitalFinancingApplication.Features#extraParams}
1794
           * for the field documentation.
1795
           */
1796
          public Builder putAllExtraParam(Map<String, Object> map) {
1797
            if (this.extraParams == null) {
×
1798
              this.extraParams = new HashMap<>();
×
1799
            }
1800
            this.extraParams.putAll(map);
×
1801
            return this;
×
1802
          }
1803
        }
1804
      }
1805
    }
1806

1807
    @Getter
1808
    public static class CapitalFinancingPromotion {
1809
      /** <strong>Required.</strong> Whether the embedded component is enabled. */
1810
      @SerializedName("enabled")
1811
      Boolean enabled;
1812

1813
      /**
1814
       * Map of extra parameters for custom features not available in this client library. The
1815
       * content in this map is not serialized under this field's {@code @SerializedName} value.
1816
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
1817
       * name in this param object. Effectively, this map is flattened to its parent instance.
1818
       */
1819
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1820
      Map<String, Object> extraParams;
1821

1822
      /** The list of features enabled in the embedded component. */
1823
      @SerializedName("features")
1824
      Features features;
1825

1826
      private CapitalFinancingPromotion(
1827
          Boolean enabled, Map<String, Object> extraParams, Features features) {
×
1828
        this.enabled = enabled;
×
1829
        this.extraParams = extraParams;
×
1830
        this.features = features;
×
1831
      }
×
1832

1833
      public static Builder builder() {
1834
        return new Builder();
×
1835
      }
1836

1837
      public static class Builder {
×
1838
        private Boolean enabled;
1839

1840
        private Map<String, Object> extraParams;
1841

1842
        private Features features;
1843

1844
        /** Finalize and obtain parameter instance from this builder. */
1845
        public AccountSessionCreateParams.Components.CapitalFinancingPromotion build() {
1846
          return new AccountSessionCreateParams.Components.CapitalFinancingPromotion(
×
1847
              this.enabled, this.extraParams, this.features);
1848
        }
1849

1850
        /** <strong>Required.</strong> Whether the embedded component is enabled. */
1851
        public Builder setEnabled(Boolean enabled) {
1852
          this.enabled = enabled;
×
1853
          return this;
×
1854
        }
1855

1856
        /**
1857
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
1858
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1859
         * map. See {@link
1860
         * AccountSessionCreateParams.Components.CapitalFinancingPromotion#extraParams} for the
1861
         * field documentation.
1862
         */
1863
        public Builder putExtraParam(String key, Object value) {
1864
          if (this.extraParams == null) {
×
1865
            this.extraParams = new HashMap<>();
×
1866
          }
1867
          this.extraParams.put(key, value);
×
1868
          return this;
×
1869
        }
1870

1871
        /**
1872
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1873
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1874
         * map. See {@link
1875
         * AccountSessionCreateParams.Components.CapitalFinancingPromotion#extraParams} for the
1876
         * field documentation.
1877
         */
1878
        public Builder putAllExtraParam(Map<String, Object> map) {
1879
          if (this.extraParams == null) {
×
1880
            this.extraParams = new HashMap<>();
×
1881
          }
1882
          this.extraParams.putAll(map);
×
1883
          return this;
×
1884
        }
1885

1886
        /** The list of features enabled in the embedded component. */
1887
        public Builder setFeatures(
1888
            AccountSessionCreateParams.Components.CapitalFinancingPromotion.Features features) {
1889
          this.features = features;
×
1890
          return this;
×
1891
        }
1892
      }
1893

1894
      @Getter
1895
      public static class Features {
1896
        /**
1897
         * Map of extra parameters for custom features not available in this client library. The
1898
         * content in this map is not serialized under this field's {@code @SerializedName} value.
1899
         * Instead, each key/value pair is serialized as if the key is a root-level field
1900
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
1901
         * instance.
1902
         */
1903
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1904
        Map<String, Object> extraParams;
1905

1906
        private Features(Map<String, Object> extraParams) {
×
1907
          this.extraParams = extraParams;
×
1908
        }
×
1909

1910
        public static Builder builder() {
1911
          return new Builder();
×
1912
        }
1913

1914
        public static class Builder {
×
1915
          private Map<String, Object> extraParams;
1916

1917
          /** Finalize and obtain parameter instance from this builder. */
1918
          public AccountSessionCreateParams.Components.CapitalFinancingPromotion.Features build() {
1919
            return new AccountSessionCreateParams.Components.CapitalFinancingPromotion.Features(
×
1920
                this.extraParams);
1921
          }
1922

1923
          /**
1924
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
1925
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1926
           * map. See {@link
1927
           * AccountSessionCreateParams.Components.CapitalFinancingPromotion.Features#extraParams}
1928
           * for the field documentation.
1929
           */
1930
          public Builder putExtraParam(String key, Object value) {
1931
            if (this.extraParams == null) {
×
1932
              this.extraParams = new HashMap<>();
×
1933
            }
1934
            this.extraParams.put(key, value);
×
1935
            return this;
×
1936
          }
1937

1938
          /**
1939
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1940
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1941
           * map. See {@link
1942
           * AccountSessionCreateParams.Components.CapitalFinancingPromotion.Features#extraParams}
1943
           * for the field documentation.
1944
           */
1945
          public Builder putAllExtraParam(Map<String, Object> map) {
1946
            if (this.extraParams == null) {
×
1947
              this.extraParams = new HashMap<>();
×
1948
            }
1949
            this.extraParams.putAll(map);
×
1950
            return this;
×
1951
          }
1952
        }
1953
      }
1954
    }
1955

1956
    @Getter
1957
    public static class CapitalOverview {
1958
      /** <strong>Required.</strong> Whether the embedded component is enabled. */
1959
      @SerializedName("enabled")
1960
      Boolean enabled;
1961

1962
      /**
1963
       * Map of extra parameters for custom features not available in this client library. The
1964
       * content in this map is not serialized under this field's {@code @SerializedName} value.
1965
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
1966
       * name in this param object. Effectively, this map is flattened to its parent instance.
1967
       */
1968
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1969
      Map<String, Object> extraParams;
1970

1971
      /** The list of features enabled in the embedded component. */
1972
      @SerializedName("features")
1973
      Features features;
1974

1975
      private CapitalOverview(Boolean enabled, Map<String, Object> extraParams, Features features) {
×
1976
        this.enabled = enabled;
×
1977
        this.extraParams = extraParams;
×
1978
        this.features = features;
×
1979
      }
×
1980

1981
      public static Builder builder() {
1982
        return new Builder();
×
1983
      }
1984

1985
      public static class Builder {
×
1986
        private Boolean enabled;
1987

1988
        private Map<String, Object> extraParams;
1989

1990
        private Features features;
1991

1992
        /** Finalize and obtain parameter instance from this builder. */
1993
        public AccountSessionCreateParams.Components.CapitalOverview build() {
1994
          return new AccountSessionCreateParams.Components.CapitalOverview(
×
1995
              this.enabled, this.extraParams, this.features);
1996
        }
1997

1998
        /** <strong>Required.</strong> Whether the embedded component is enabled. */
1999
        public Builder setEnabled(Boolean enabled) {
2000
          this.enabled = enabled;
×
2001
          return this;
×
2002
        }
2003

2004
        /**
2005
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
2006
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2007
         * map. See {@link AccountSessionCreateParams.Components.CapitalOverview#extraParams} for
2008
         * the field documentation.
2009
         */
2010
        public Builder putExtraParam(String key, Object value) {
2011
          if (this.extraParams == null) {
×
2012
            this.extraParams = new HashMap<>();
×
2013
          }
2014
          this.extraParams.put(key, value);
×
2015
          return this;
×
2016
        }
2017

2018
        /**
2019
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2020
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2021
         * map. See {@link AccountSessionCreateParams.Components.CapitalOverview#extraParams} for
2022
         * the field documentation.
2023
         */
2024
        public Builder putAllExtraParam(Map<String, Object> map) {
2025
          if (this.extraParams == null) {
×
2026
            this.extraParams = new HashMap<>();
×
2027
          }
2028
          this.extraParams.putAll(map);
×
2029
          return this;
×
2030
        }
2031

2032
        /** The list of features enabled in the embedded component. */
2033
        public Builder setFeatures(
2034
            AccountSessionCreateParams.Components.CapitalOverview.Features features) {
2035
          this.features = features;
×
2036
          return this;
×
2037
        }
2038
      }
2039

2040
      @Getter
2041
      public static class Features {
2042
        /**
2043
         * Map of extra parameters for custom features not available in this client library. The
2044
         * content in this map is not serialized under this field's {@code @SerializedName} value.
2045
         * Instead, each key/value pair is serialized as if the key is a root-level field
2046
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
2047
         * instance.
2048
         */
2049
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2050
        Map<String, Object> extraParams;
2051

2052
        private Features(Map<String, Object> extraParams) {
×
2053
          this.extraParams = extraParams;
×
2054
        }
×
2055

2056
        public static Builder builder() {
2057
          return new Builder();
×
2058
        }
2059

2060
        public static class Builder {
×
2061
          private Map<String, Object> extraParams;
2062

2063
          /** Finalize and obtain parameter instance from this builder. */
2064
          public AccountSessionCreateParams.Components.CapitalOverview.Features build() {
2065
            return new AccountSessionCreateParams.Components.CapitalOverview.Features(
×
2066
                this.extraParams);
2067
          }
2068

2069
          /**
2070
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
2071
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2072
           * map. See {@link
2073
           * AccountSessionCreateParams.Components.CapitalOverview.Features#extraParams} for the
2074
           * field documentation.
2075
           */
2076
          public Builder putExtraParam(String key, Object value) {
2077
            if (this.extraParams == null) {
×
2078
              this.extraParams = new HashMap<>();
×
2079
            }
2080
            this.extraParams.put(key, value);
×
2081
            return this;
×
2082
          }
2083

2084
          /**
2085
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2086
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2087
           * map. See {@link
2088
           * AccountSessionCreateParams.Components.CapitalOverview.Features#extraParams} for the
2089
           * field documentation.
2090
           */
2091
          public Builder putAllExtraParam(Map<String, Object> map) {
2092
            if (this.extraParams == null) {
×
2093
              this.extraParams = new HashMap<>();
×
2094
            }
2095
            this.extraParams.putAll(map);
×
2096
            return this;
×
2097
          }
2098
        }
2099
      }
2100
    }
2101

2102
    @Getter
2103
    public static class Documents {
2104
      /** <strong>Required.</strong> Whether the embedded component is enabled. */
2105
      @SerializedName("enabled")
2106
      Boolean enabled;
2107

2108
      /**
2109
       * Map of extra parameters for custom features not available in this client library. The
2110
       * content in this map is not serialized under this field's {@code @SerializedName} value.
2111
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
2112
       * name in this param object. Effectively, this map is flattened to its parent instance.
2113
       */
2114
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2115
      Map<String, Object> extraParams;
2116

2117
      /** The list of features enabled in the embedded component. */
2118
      @SerializedName("features")
2119
      Features features;
2120

2121
      private Documents(Boolean enabled, Map<String, Object> extraParams, Features features) {
×
2122
        this.enabled = enabled;
×
2123
        this.extraParams = extraParams;
×
2124
        this.features = features;
×
2125
      }
×
2126

2127
      public static Builder builder() {
2128
        return new Builder();
×
2129
      }
2130

2131
      public static class Builder {
×
2132
        private Boolean enabled;
2133

2134
        private Map<String, Object> extraParams;
2135

2136
        private Features features;
2137

2138
        /** Finalize and obtain parameter instance from this builder. */
2139
        public AccountSessionCreateParams.Components.Documents build() {
2140
          return new AccountSessionCreateParams.Components.Documents(
×
2141
              this.enabled, this.extraParams, this.features);
2142
        }
2143

2144
        /** <strong>Required.</strong> Whether the embedded component is enabled. */
2145
        public Builder setEnabled(Boolean enabled) {
2146
          this.enabled = enabled;
×
2147
          return this;
×
2148
        }
2149

2150
        /**
2151
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
2152
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2153
         * map. See {@link AccountSessionCreateParams.Components.Documents#extraParams} for the
2154
         * field documentation.
2155
         */
2156
        public Builder putExtraParam(String key, Object value) {
2157
          if (this.extraParams == null) {
×
2158
            this.extraParams = new HashMap<>();
×
2159
          }
2160
          this.extraParams.put(key, value);
×
2161
          return this;
×
2162
        }
2163

2164
        /**
2165
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2166
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2167
         * map. See {@link AccountSessionCreateParams.Components.Documents#extraParams} for the
2168
         * field documentation.
2169
         */
2170
        public Builder putAllExtraParam(Map<String, Object> map) {
2171
          if (this.extraParams == null) {
×
2172
            this.extraParams = new HashMap<>();
×
2173
          }
2174
          this.extraParams.putAll(map);
×
2175
          return this;
×
2176
        }
2177

2178
        /** The list of features enabled in the embedded component. */
2179
        public Builder setFeatures(
2180
            AccountSessionCreateParams.Components.Documents.Features features) {
2181
          this.features = features;
×
2182
          return this;
×
2183
        }
2184
      }
2185

2186
      @Getter
2187
      public static class Features {
2188
        /**
2189
         * Map of extra parameters for custom features not available in this client library. The
2190
         * content in this map is not serialized under this field's {@code @SerializedName} value.
2191
         * Instead, each key/value pair is serialized as if the key is a root-level field
2192
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
2193
         * instance.
2194
         */
2195
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2196
        Map<String, Object> extraParams;
2197

2198
        private Features(Map<String, Object> extraParams) {
×
2199
          this.extraParams = extraParams;
×
2200
        }
×
2201

2202
        public static Builder builder() {
2203
          return new Builder();
×
2204
        }
2205

2206
        public static class Builder {
×
2207
          private Map<String, Object> extraParams;
2208

2209
          /** Finalize and obtain parameter instance from this builder. */
2210
          public AccountSessionCreateParams.Components.Documents.Features build() {
2211
            return new AccountSessionCreateParams.Components.Documents.Features(this.extraParams);
×
2212
          }
2213

2214
          /**
2215
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
2216
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2217
           * map. See {@link AccountSessionCreateParams.Components.Documents.Features#extraParams}
2218
           * for the field documentation.
2219
           */
2220
          public Builder putExtraParam(String key, Object value) {
2221
            if (this.extraParams == null) {
×
2222
              this.extraParams = new HashMap<>();
×
2223
            }
2224
            this.extraParams.put(key, value);
×
2225
            return this;
×
2226
          }
2227

2228
          /**
2229
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2230
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2231
           * map. See {@link AccountSessionCreateParams.Components.Documents.Features#extraParams}
2232
           * for the field documentation.
2233
           */
2234
          public Builder putAllExtraParam(Map<String, Object> map) {
2235
            if (this.extraParams == null) {
×
2236
              this.extraParams = new HashMap<>();
×
2237
            }
2238
            this.extraParams.putAll(map);
×
2239
            return this;
×
2240
          }
2241
        }
2242
      }
2243
    }
2244

2245
    @Getter
2246
    public static class FinancialAccount {
2247
      /** <strong>Required.</strong> Whether the embedded component is enabled. */
2248
      @SerializedName("enabled")
2249
      Boolean enabled;
2250

2251
      /**
2252
       * Map of extra parameters for custom features not available in this client library. The
2253
       * content in this map is not serialized under this field's {@code @SerializedName} value.
2254
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
2255
       * name in this param object. Effectively, this map is flattened to its parent instance.
2256
       */
2257
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2258
      Map<String, Object> extraParams;
2259

2260
      @SerializedName("features")
2261
      Features features;
2262

2263
      private FinancialAccount(
2264
          Boolean enabled, Map<String, Object> extraParams, Features features) {
×
2265
        this.enabled = enabled;
×
2266
        this.extraParams = extraParams;
×
2267
        this.features = features;
×
2268
      }
×
2269

2270
      public static Builder builder() {
2271
        return new Builder();
×
2272
      }
2273

2274
      public static class Builder {
×
2275
        private Boolean enabled;
2276

2277
        private Map<String, Object> extraParams;
2278

2279
        private Features features;
2280

2281
        /** Finalize and obtain parameter instance from this builder. */
2282
        public AccountSessionCreateParams.Components.FinancialAccount build() {
2283
          return new AccountSessionCreateParams.Components.FinancialAccount(
×
2284
              this.enabled, this.extraParams, this.features);
2285
        }
2286

2287
        /** <strong>Required.</strong> Whether the embedded component is enabled. */
2288
        public Builder setEnabled(Boolean enabled) {
2289
          this.enabled = enabled;
×
2290
          return this;
×
2291
        }
2292

2293
        /**
2294
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
2295
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2296
         * map. See {@link AccountSessionCreateParams.Components.FinancialAccount#extraParams} for
2297
         * the field documentation.
2298
         */
2299
        public Builder putExtraParam(String key, Object value) {
2300
          if (this.extraParams == null) {
×
2301
            this.extraParams = new HashMap<>();
×
2302
          }
2303
          this.extraParams.put(key, value);
×
2304
          return this;
×
2305
        }
2306

2307
        /**
2308
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2309
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2310
         * map. See {@link AccountSessionCreateParams.Components.FinancialAccount#extraParams} for
2311
         * the field documentation.
2312
         */
2313
        public Builder putAllExtraParam(Map<String, Object> map) {
2314
          if (this.extraParams == null) {
×
2315
            this.extraParams = new HashMap<>();
×
2316
          }
2317
          this.extraParams.putAll(map);
×
2318
          return this;
×
2319
        }
2320

2321
        public Builder setFeatures(
2322
            AccountSessionCreateParams.Components.FinancialAccount.Features features) {
2323
          this.features = features;
×
2324
          return this;
×
2325
        }
2326
      }
2327

2328
      @Getter
2329
      public static class Features {
2330
        /** Whether to allow external accounts to be linked for money transfer. */
2331
        @SerializedName("external_account_collection")
2332
        Boolean externalAccountCollection;
2333

2334
        /**
2335
         * Map of extra parameters for custom features not available in this client library. The
2336
         * content in this map is not serialized under this field's {@code @SerializedName} value.
2337
         * Instead, each key/value pair is serialized as if the key is a root-level field
2338
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
2339
         * instance.
2340
         */
2341
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2342
        Map<String, Object> extraParams;
2343

2344
        /** Whether to allow money movement features. */
2345
        @SerializedName("money_movement")
2346
        Boolean moneyMovement;
2347

2348
        /** Whether to allow sending money. */
2349
        @SerializedName("send_money")
2350
        Boolean sendMoney;
2351

2352
        /** Whether to allow transferring balance. */
2353
        @SerializedName("transfer_balance")
2354
        Boolean transferBalance;
2355

2356
        private Features(
2357
            Boolean externalAccountCollection,
2358
            Map<String, Object> extraParams,
2359
            Boolean moneyMovement,
2360
            Boolean sendMoney,
NEW
2361
            Boolean transferBalance) {
×
2362
          this.externalAccountCollection = externalAccountCollection;
×
2363
          this.extraParams = extraParams;
×
2364
          this.moneyMovement = moneyMovement;
×
NEW
2365
          this.sendMoney = sendMoney;
×
NEW
2366
          this.transferBalance = transferBalance;
×
UNCOV
2367
        }
×
2368

2369
        public static Builder builder() {
2370
          return new Builder();
×
2371
        }
2372

2373
        public static class Builder {
×
2374
          private Boolean externalAccountCollection;
2375

2376
          private Map<String, Object> extraParams;
2377

2378
          private Boolean moneyMovement;
2379

2380
          private Boolean sendMoney;
2381

2382
          private Boolean transferBalance;
2383

2384
          /** Finalize and obtain parameter instance from this builder. */
2385
          public AccountSessionCreateParams.Components.FinancialAccount.Features build() {
2386
            return new AccountSessionCreateParams.Components.FinancialAccount.Features(
×
2387
                this.externalAccountCollection,
2388
                this.extraParams,
2389
                this.moneyMovement,
2390
                this.sendMoney,
2391
                this.transferBalance);
2392
          }
2393

2394
          /** Whether to allow external accounts to be linked for money transfer. */
2395
          public Builder setExternalAccountCollection(Boolean externalAccountCollection) {
2396
            this.externalAccountCollection = externalAccountCollection;
×
2397
            return this;
×
2398
          }
2399

2400
          /**
2401
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
2402
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2403
           * map. See {@link
2404
           * AccountSessionCreateParams.Components.FinancialAccount.Features#extraParams} for the
2405
           * field documentation.
2406
           */
2407
          public Builder putExtraParam(String key, Object value) {
2408
            if (this.extraParams == null) {
×
2409
              this.extraParams = new HashMap<>();
×
2410
            }
2411
            this.extraParams.put(key, value);
×
2412
            return this;
×
2413
          }
2414

2415
          /**
2416
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2417
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2418
           * map. See {@link
2419
           * AccountSessionCreateParams.Components.FinancialAccount.Features#extraParams} for the
2420
           * field documentation.
2421
           */
2422
          public Builder putAllExtraParam(Map<String, Object> map) {
2423
            if (this.extraParams == null) {
×
2424
              this.extraParams = new HashMap<>();
×
2425
            }
2426
            this.extraParams.putAll(map);
×
2427
            return this;
×
2428
          }
2429

2430
          /** Whether to allow money movement features. */
2431
          public Builder setMoneyMovement(Boolean moneyMovement) {
2432
            this.moneyMovement = moneyMovement;
×
2433
            return this;
×
2434
          }
2435

2436
          /** Whether to allow sending money. */
2437
          public Builder setSendMoney(Boolean sendMoney) {
NEW
2438
            this.sendMoney = sendMoney;
×
NEW
2439
            return this;
×
2440
          }
2441

2442
          /** Whether to allow transferring balance. */
2443
          public Builder setTransferBalance(Boolean transferBalance) {
NEW
2444
            this.transferBalance = transferBalance;
×
NEW
2445
            return this;
×
2446
          }
2447
        }
2448
      }
2449
    }
2450

2451
    @Getter
2452
    public static class FinancialAccountTransactions {
2453
      /** <strong>Required.</strong> Whether the embedded component is enabled. */
2454
      @SerializedName("enabled")
2455
      Boolean enabled;
2456

2457
      /**
2458
       * Map of extra parameters for custom features not available in this client library. The
2459
       * content in this map is not serialized under this field's {@code @SerializedName} value.
2460
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
2461
       * name in this param object. Effectively, this map is flattened to its parent instance.
2462
       */
2463
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2464
      Map<String, Object> extraParams;
2465

2466
      @SerializedName("features")
2467
      Features features;
2468

2469
      private FinancialAccountTransactions(
2470
          Boolean enabled, Map<String, Object> extraParams, Features features) {
×
2471
        this.enabled = enabled;
×
2472
        this.extraParams = extraParams;
×
2473
        this.features = features;
×
2474
      }
×
2475

2476
      public static Builder builder() {
2477
        return new Builder();
×
2478
      }
2479

2480
      public static class Builder {
×
2481
        private Boolean enabled;
2482

2483
        private Map<String, Object> extraParams;
2484

2485
        private Features features;
2486

2487
        /** Finalize and obtain parameter instance from this builder. */
2488
        public AccountSessionCreateParams.Components.FinancialAccountTransactions build() {
2489
          return new AccountSessionCreateParams.Components.FinancialAccountTransactions(
×
2490
              this.enabled, this.extraParams, this.features);
2491
        }
2492

2493
        /** <strong>Required.</strong> Whether the embedded component is enabled. */
2494
        public Builder setEnabled(Boolean enabled) {
2495
          this.enabled = enabled;
×
2496
          return this;
×
2497
        }
2498

2499
        /**
2500
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
2501
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2502
         * map. See {@link
2503
         * AccountSessionCreateParams.Components.FinancialAccountTransactions#extraParams} for the
2504
         * field documentation.
2505
         */
2506
        public Builder putExtraParam(String key, Object value) {
2507
          if (this.extraParams == null) {
×
2508
            this.extraParams = new HashMap<>();
×
2509
          }
2510
          this.extraParams.put(key, value);
×
2511
          return this;
×
2512
        }
2513

2514
        /**
2515
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2516
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2517
         * map. See {@link
2518
         * AccountSessionCreateParams.Components.FinancialAccountTransactions#extraParams} for the
2519
         * field documentation.
2520
         */
2521
        public Builder putAllExtraParam(Map<String, Object> map) {
2522
          if (this.extraParams == null) {
×
2523
            this.extraParams = new HashMap<>();
×
2524
          }
2525
          this.extraParams.putAll(map);
×
2526
          return this;
×
2527
        }
2528

2529
        public Builder setFeatures(
2530
            AccountSessionCreateParams.Components.FinancialAccountTransactions.Features features) {
2531
          this.features = features;
×
2532
          return this;
×
2533
        }
2534
      }
2535

2536
      @Getter
2537
      public static class Features {
2538
        /** Whether to allow card spend dispute features. */
2539
        @SerializedName("card_spend_dispute_management")
2540
        Boolean cardSpendDisputeManagement;
2541

2542
        /**
2543
         * Map of extra parameters for custom features not available in this client library. The
2544
         * content in this map is not serialized under this field's {@code @SerializedName} value.
2545
         * Instead, each key/value pair is serialized as if the key is a root-level field
2546
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
2547
         * instance.
2548
         */
2549
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2550
        Map<String, Object> extraParams;
2551

2552
        private Features(Boolean cardSpendDisputeManagement, Map<String, Object> extraParams) {
×
2553
          this.cardSpendDisputeManagement = cardSpendDisputeManagement;
×
2554
          this.extraParams = extraParams;
×
2555
        }
×
2556

2557
        public static Builder builder() {
2558
          return new Builder();
×
2559
        }
2560

2561
        public static class Builder {
×
2562
          private Boolean cardSpendDisputeManagement;
2563

2564
          private Map<String, Object> extraParams;
2565

2566
          /** Finalize and obtain parameter instance from this builder. */
2567
          public AccountSessionCreateParams.Components.FinancialAccountTransactions.Features
2568
              build() {
2569
            return new AccountSessionCreateParams.Components.FinancialAccountTransactions.Features(
×
2570
                this.cardSpendDisputeManagement, this.extraParams);
2571
          }
2572

2573
          /** Whether to allow card spend dispute features. */
2574
          public Builder setCardSpendDisputeManagement(Boolean cardSpendDisputeManagement) {
2575
            this.cardSpendDisputeManagement = cardSpendDisputeManagement;
×
2576
            return this;
×
2577
          }
2578

2579
          /**
2580
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
2581
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2582
           * map. See {@link
2583
           * AccountSessionCreateParams.Components.FinancialAccountTransactions.Features#extraParams}
2584
           * for the field documentation.
2585
           */
2586
          public Builder putExtraParam(String key, Object value) {
2587
            if (this.extraParams == null) {
×
2588
              this.extraParams = new HashMap<>();
×
2589
            }
2590
            this.extraParams.put(key, value);
×
2591
            return this;
×
2592
          }
2593

2594
          /**
2595
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2596
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2597
           * map. See {@link
2598
           * AccountSessionCreateParams.Components.FinancialAccountTransactions.Features#extraParams}
2599
           * for the field documentation.
2600
           */
2601
          public Builder putAllExtraParam(Map<String, Object> map) {
2602
            if (this.extraParams == null) {
×
2603
              this.extraParams = new HashMap<>();
×
2604
            }
2605
            this.extraParams.putAll(map);
×
2606
            return this;
×
2607
          }
2608
        }
2609
      }
2610
    }
2611

2612
    @Getter
2613
    public static class IssuingCard {
2614
      /** <strong>Required.</strong> Whether the embedded component is enabled. */
2615
      @SerializedName("enabled")
2616
      Boolean enabled;
2617

2618
      /**
2619
       * Map of extra parameters for custom features not available in this client library. The
2620
       * content in this map is not serialized under this field's {@code @SerializedName} value.
2621
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
2622
       * name in this param object. Effectively, this map is flattened to its parent instance.
2623
       */
2624
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2625
      Map<String, Object> extraParams;
2626

2627
      /** The list of features enabled in the embedded component. */
2628
      @SerializedName("features")
2629
      Features features;
2630

2631
      private IssuingCard(Boolean enabled, Map<String, Object> extraParams, Features features) {
×
2632
        this.enabled = enabled;
×
2633
        this.extraParams = extraParams;
×
2634
        this.features = features;
×
2635
      }
×
2636

2637
      public static Builder builder() {
2638
        return new Builder();
×
2639
      }
2640

2641
      public static class Builder {
×
2642
        private Boolean enabled;
2643

2644
        private Map<String, Object> extraParams;
2645

2646
        private Features features;
2647

2648
        /** Finalize and obtain parameter instance from this builder. */
2649
        public AccountSessionCreateParams.Components.IssuingCard build() {
2650
          return new AccountSessionCreateParams.Components.IssuingCard(
×
2651
              this.enabled, this.extraParams, this.features);
2652
        }
2653

2654
        /** <strong>Required.</strong> Whether the embedded component is enabled. */
2655
        public Builder setEnabled(Boolean enabled) {
2656
          this.enabled = enabled;
×
2657
          return this;
×
2658
        }
2659

2660
        /**
2661
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
2662
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2663
         * map. See {@link AccountSessionCreateParams.Components.IssuingCard#extraParams} for the
2664
         * field documentation.
2665
         */
2666
        public Builder putExtraParam(String key, Object value) {
2667
          if (this.extraParams == null) {
×
2668
            this.extraParams = new HashMap<>();
×
2669
          }
2670
          this.extraParams.put(key, value);
×
2671
          return this;
×
2672
        }
2673

2674
        /**
2675
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2676
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2677
         * map. See {@link AccountSessionCreateParams.Components.IssuingCard#extraParams} for the
2678
         * field documentation.
2679
         */
2680
        public Builder putAllExtraParam(Map<String, Object> map) {
2681
          if (this.extraParams == null) {
×
2682
            this.extraParams = new HashMap<>();
×
2683
          }
2684
          this.extraParams.putAll(map);
×
2685
          return this;
×
2686
        }
2687

2688
        /** The list of features enabled in the embedded component. */
2689
        public Builder setFeatures(
2690
            AccountSessionCreateParams.Components.IssuingCard.Features features) {
2691
          this.features = features;
×
2692
          return this;
×
2693
        }
2694
      }
2695

2696
      @Getter
2697
      public static class Features {
2698
        /**
2699
         * Map of extra parameters for custom features not available in this client library. The
2700
         * content in this map is not serialized under this field's {@code @SerializedName} value.
2701
         * Instead, each key/value pair is serialized as if the key is a root-level field
2702
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
2703
         * instance.
2704
         */
2705
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2706
        Map<String, Object> extraParams;
2707

2708
        private Features(Map<String, Object> extraParams) {
×
2709
          this.extraParams = extraParams;
×
2710
        }
×
2711

2712
        public static Builder builder() {
2713
          return new Builder();
×
2714
        }
2715

2716
        public static class Builder {
×
2717
          private Map<String, Object> extraParams;
2718

2719
          /** Finalize and obtain parameter instance from this builder. */
2720
          public AccountSessionCreateParams.Components.IssuingCard.Features build() {
2721
            return new AccountSessionCreateParams.Components.IssuingCard.Features(this.extraParams);
×
2722
          }
2723

2724
          /**
2725
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
2726
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2727
           * map. See {@link AccountSessionCreateParams.Components.IssuingCard.Features#extraParams}
2728
           * for the field documentation.
2729
           */
2730
          public Builder putExtraParam(String key, Object value) {
2731
            if (this.extraParams == null) {
×
2732
              this.extraParams = new HashMap<>();
×
2733
            }
2734
            this.extraParams.put(key, value);
×
2735
            return this;
×
2736
          }
2737

2738
          /**
2739
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2740
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2741
           * map. See {@link AccountSessionCreateParams.Components.IssuingCard.Features#extraParams}
2742
           * for the field documentation.
2743
           */
2744
          public Builder putAllExtraParam(Map<String, Object> map) {
2745
            if (this.extraParams == null) {
×
2746
              this.extraParams = new HashMap<>();
×
2747
            }
2748
            this.extraParams.putAll(map);
×
2749
            return this;
×
2750
          }
2751
        }
2752
      }
2753
    }
2754

2755
    @Getter
2756
    public static class IssuingCardsList {
2757
      /** <strong>Required.</strong> Whether the embedded component is enabled. */
2758
      @SerializedName("enabled")
2759
      Boolean enabled;
2760

2761
      /**
2762
       * Map of extra parameters for custom features not available in this client library. The
2763
       * content in this map is not serialized under this field's {@code @SerializedName} value.
2764
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
2765
       * name in this param object. Effectively, this map is flattened to its parent instance.
2766
       */
2767
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2768
      Map<String, Object> extraParams;
2769

2770
      /** The list of features enabled in the embedded component. */
2771
      @SerializedName("features")
2772
      Features features;
2773

2774
      private IssuingCardsList(
2775
          Boolean enabled, Map<String, Object> extraParams, Features features) {
×
2776
        this.enabled = enabled;
×
2777
        this.extraParams = extraParams;
×
2778
        this.features = features;
×
2779
      }
×
2780

2781
      public static Builder builder() {
2782
        return new Builder();
×
2783
      }
2784

2785
      public static class Builder {
×
2786
        private Boolean enabled;
2787

2788
        private Map<String, Object> extraParams;
2789

2790
        private Features features;
2791

2792
        /** Finalize and obtain parameter instance from this builder. */
2793
        public AccountSessionCreateParams.Components.IssuingCardsList build() {
2794
          return new AccountSessionCreateParams.Components.IssuingCardsList(
×
2795
              this.enabled, this.extraParams, this.features);
2796
        }
2797

2798
        /** <strong>Required.</strong> Whether the embedded component is enabled. */
2799
        public Builder setEnabled(Boolean enabled) {
2800
          this.enabled = enabled;
×
2801
          return this;
×
2802
        }
2803

2804
        /**
2805
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
2806
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2807
         * map. See {@link AccountSessionCreateParams.Components.IssuingCardsList#extraParams} for
2808
         * the field documentation.
2809
         */
2810
        public Builder putExtraParam(String key, Object value) {
2811
          if (this.extraParams == null) {
×
2812
            this.extraParams = new HashMap<>();
×
2813
          }
2814
          this.extraParams.put(key, value);
×
2815
          return this;
×
2816
        }
2817

2818
        /**
2819
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2820
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2821
         * map. See {@link AccountSessionCreateParams.Components.IssuingCardsList#extraParams} for
2822
         * the field documentation.
2823
         */
2824
        public Builder putAllExtraParam(Map<String, Object> map) {
2825
          if (this.extraParams == null) {
×
2826
            this.extraParams = new HashMap<>();
×
2827
          }
2828
          this.extraParams.putAll(map);
×
2829
          return this;
×
2830
        }
2831

2832
        /** The list of features enabled in the embedded component. */
2833
        public Builder setFeatures(
2834
            AccountSessionCreateParams.Components.IssuingCardsList.Features features) {
2835
          this.features = features;
×
2836
          return this;
×
2837
        }
2838
      }
2839

2840
      @Getter
2841
      public static class Features {
2842
        /** Whether to allow card management features. */
2843
        @SerializedName("card_management")
2844
        Boolean cardManagement;
2845

2846
        /** Whether to allow cardholder management features. */
2847
        @SerializedName("cardholder_management")
2848
        Boolean cardholderManagement;
2849

2850
        /**
2851
         * Map of extra parameters for custom features not available in this client library. The
2852
         * content in this map is not serialized under this field's {@code @SerializedName} value.
2853
         * Instead, each key/value pair is serialized as if the key is a root-level field
2854
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
2855
         * instance.
2856
         */
2857
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2858
        Map<String, Object> extraParams;
2859

2860
        private Features(
2861
            Boolean cardManagement, Boolean cardholderManagement, Map<String, Object> extraParams) {
×
2862
          this.cardManagement = cardManagement;
×
2863
          this.cardholderManagement = cardholderManagement;
×
2864
          this.extraParams = extraParams;
×
2865
        }
×
2866

2867
        public static Builder builder() {
2868
          return new Builder();
×
2869
        }
2870

2871
        public static class Builder {
×
2872
          private Boolean cardManagement;
2873

2874
          private Boolean cardholderManagement;
2875

2876
          private Map<String, Object> extraParams;
2877

2878
          /** Finalize and obtain parameter instance from this builder. */
2879
          public AccountSessionCreateParams.Components.IssuingCardsList.Features build() {
2880
            return new AccountSessionCreateParams.Components.IssuingCardsList.Features(
×
2881
                this.cardManagement, this.cardholderManagement, this.extraParams);
2882
          }
2883

2884
          /** Whether to allow card management features. */
2885
          public Builder setCardManagement(Boolean cardManagement) {
2886
            this.cardManagement = cardManagement;
×
2887
            return this;
×
2888
          }
2889

2890
          /** Whether to allow cardholder management features. */
2891
          public Builder setCardholderManagement(Boolean cardholderManagement) {
2892
            this.cardholderManagement = cardholderManagement;
×
2893
            return this;
×
2894
          }
2895

2896
          /**
2897
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
2898
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2899
           * map. See {@link
2900
           * AccountSessionCreateParams.Components.IssuingCardsList.Features#extraParams} for the
2901
           * field documentation.
2902
           */
2903
          public Builder putExtraParam(String key, Object value) {
2904
            if (this.extraParams == null) {
×
2905
              this.extraParams = new HashMap<>();
×
2906
            }
2907
            this.extraParams.put(key, value);
×
2908
            return this;
×
2909
          }
2910

2911
          /**
2912
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2913
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2914
           * map. See {@link
2915
           * AccountSessionCreateParams.Components.IssuingCardsList.Features#extraParams} for the
2916
           * field documentation.
2917
           */
2918
          public Builder putAllExtraParam(Map<String, Object> map) {
2919
            if (this.extraParams == null) {
×
2920
              this.extraParams = new HashMap<>();
×
2921
            }
2922
            this.extraParams.putAll(map);
×
2923
            return this;
×
2924
          }
2925
        }
2926
      }
2927
    }
2928

2929
    @Getter
2930
    public static class NotificationBanner {
2931
      /** <strong>Required.</strong> Whether the embedded component is enabled. */
2932
      @SerializedName("enabled")
2933
      Boolean enabled;
2934

2935
      /**
2936
       * Map of extra parameters for custom features not available in this client library. The
2937
       * content in this map is not serialized under this field's {@code @SerializedName} value.
2938
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
2939
       * name in this param object. Effectively, this map is flattened to its parent instance.
2940
       */
2941
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2942
      Map<String, Object> extraParams;
2943

2944
      /** The list of features enabled in the embedded component. */
2945
      @SerializedName("features")
2946
      Features features;
2947

2948
      private NotificationBanner(
2949
          Boolean enabled, Map<String, Object> extraParams, Features features) {
×
2950
        this.enabled = enabled;
×
2951
        this.extraParams = extraParams;
×
2952
        this.features = features;
×
2953
      }
×
2954

2955
      public static Builder builder() {
2956
        return new Builder();
×
2957
      }
2958

2959
      public static class Builder {
×
2960
        private Boolean enabled;
2961

2962
        private Map<String, Object> extraParams;
2963

2964
        private Features features;
2965

2966
        /** Finalize and obtain parameter instance from this builder. */
2967
        public AccountSessionCreateParams.Components.NotificationBanner build() {
2968
          return new AccountSessionCreateParams.Components.NotificationBanner(
×
2969
              this.enabled, this.extraParams, this.features);
2970
        }
2971

2972
        /** <strong>Required.</strong> Whether the embedded component is enabled. */
2973
        public Builder setEnabled(Boolean enabled) {
2974
          this.enabled = enabled;
×
2975
          return this;
×
2976
        }
2977

2978
        /**
2979
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
2980
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2981
         * map. See {@link AccountSessionCreateParams.Components.NotificationBanner#extraParams} for
2982
         * the field documentation.
2983
         */
2984
        public Builder putExtraParam(String key, Object value) {
2985
          if (this.extraParams == null) {
×
2986
            this.extraParams = new HashMap<>();
×
2987
          }
2988
          this.extraParams.put(key, value);
×
2989
          return this;
×
2990
        }
2991

2992
        /**
2993
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2994
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2995
         * map. See {@link AccountSessionCreateParams.Components.NotificationBanner#extraParams} for
2996
         * the field documentation.
2997
         */
2998
        public Builder putAllExtraParam(Map<String, Object> map) {
2999
          if (this.extraParams == null) {
×
3000
            this.extraParams = new HashMap<>();
×
3001
          }
3002
          this.extraParams.putAll(map);
×
3003
          return this;
×
3004
        }
3005

3006
        /** The list of features enabled in the embedded component. */
3007
        public Builder setFeatures(
3008
            AccountSessionCreateParams.Components.NotificationBanner.Features features) {
3009
          this.features = features;
×
3010
          return this;
×
3011
        }
3012
      }
3013

3014
      @Getter
3015
      public static class Features {
3016
        /**
3017
         * Whether to allow platforms to control bank account collection for their connected
3018
         * accounts. This feature can only be false for custom accounts (or accounts where the
3019
         * platform is compliance owner). Otherwise, bank account collection is determined by
3020
         * compliance requirements.
3021
         */
3022
        @SerializedName("external_account_collection")
3023
        Boolean externalAccountCollection;
3024

3025
        /**
3026
         * Map of extra parameters for custom features not available in this client library. The
3027
         * content in this map is not serialized under this field's {@code @SerializedName} value.
3028
         * Instead, each key/value pair is serialized as if the key is a root-level field
3029
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
3030
         * instance.
3031
         */
3032
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3033
        Map<String, Object> extraParams;
3034

3035
        private Features(Boolean externalAccountCollection, Map<String, Object> extraParams) {
×
3036
          this.externalAccountCollection = externalAccountCollection;
×
3037
          this.extraParams = extraParams;
×
3038
        }
×
3039

3040
        public static Builder builder() {
3041
          return new Builder();
×
3042
        }
3043

3044
        public static class Builder {
×
3045
          private Boolean externalAccountCollection;
3046

3047
          private Map<String, Object> extraParams;
3048

3049
          /** Finalize and obtain parameter instance from this builder. */
3050
          public AccountSessionCreateParams.Components.NotificationBanner.Features build() {
3051
            return new AccountSessionCreateParams.Components.NotificationBanner.Features(
×
3052
                this.externalAccountCollection, this.extraParams);
3053
          }
3054

3055
          /**
3056
           * Whether to allow platforms to control bank account collection for their connected
3057
           * accounts. This feature can only be false for custom accounts (or accounts where the
3058
           * platform is compliance owner). Otherwise, bank account collection is determined by
3059
           * compliance requirements.
3060
           */
3061
          public Builder setExternalAccountCollection(Boolean externalAccountCollection) {
3062
            this.externalAccountCollection = externalAccountCollection;
×
3063
            return this;
×
3064
          }
3065

3066
          /**
3067
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
3068
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3069
           * map. See {@link
3070
           * AccountSessionCreateParams.Components.NotificationBanner.Features#extraParams} for the
3071
           * field documentation.
3072
           */
3073
          public Builder putExtraParam(String key, Object value) {
3074
            if (this.extraParams == null) {
×
3075
              this.extraParams = new HashMap<>();
×
3076
            }
3077
            this.extraParams.put(key, value);
×
3078
            return this;
×
3079
          }
3080

3081
          /**
3082
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3083
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3084
           * map. See {@link
3085
           * AccountSessionCreateParams.Components.NotificationBanner.Features#extraParams} for the
3086
           * field documentation.
3087
           */
3088
          public Builder putAllExtraParam(Map<String, Object> map) {
3089
            if (this.extraParams == null) {
×
3090
              this.extraParams = new HashMap<>();
×
3091
            }
3092
            this.extraParams.putAll(map);
×
3093
            return this;
×
3094
          }
3095
        }
3096
      }
3097
    }
3098

3099
    @Getter
3100
    public static class PaymentDetails {
3101
      /** <strong>Required.</strong> Whether the embedded component is enabled. */
3102
      @SerializedName("enabled")
3103
      Boolean enabled;
3104

3105
      /**
3106
       * Map of extra parameters for custom features not available in this client library. The
3107
       * content in this map is not serialized under this field's {@code @SerializedName} value.
3108
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
3109
       * name in this param object. Effectively, this map is flattened to its parent instance.
3110
       */
3111
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3112
      Map<String, Object> extraParams;
3113

3114
      /** The list of features enabled in the embedded component. */
3115
      @SerializedName("features")
3116
      Features features;
3117

3118
      private PaymentDetails(Boolean enabled, Map<String, Object> extraParams, Features features) {
×
3119
        this.enabled = enabled;
×
3120
        this.extraParams = extraParams;
×
3121
        this.features = features;
×
3122
      }
×
3123

3124
      public static Builder builder() {
3125
        return new Builder();
×
3126
      }
3127

3128
      public static class Builder {
×
3129
        private Boolean enabled;
3130

3131
        private Map<String, Object> extraParams;
3132

3133
        private Features features;
3134

3135
        /** Finalize and obtain parameter instance from this builder. */
3136
        public AccountSessionCreateParams.Components.PaymentDetails build() {
3137
          return new AccountSessionCreateParams.Components.PaymentDetails(
×
3138
              this.enabled, this.extraParams, this.features);
3139
        }
3140

3141
        /** <strong>Required.</strong> Whether the embedded component is enabled. */
3142
        public Builder setEnabled(Boolean enabled) {
3143
          this.enabled = enabled;
×
3144
          return this;
×
3145
        }
3146

3147
        /**
3148
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
3149
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3150
         * map. See {@link AccountSessionCreateParams.Components.PaymentDetails#extraParams} for the
3151
         * field documentation.
3152
         */
3153
        public Builder putExtraParam(String key, Object value) {
3154
          if (this.extraParams == null) {
×
3155
            this.extraParams = new HashMap<>();
×
3156
          }
3157
          this.extraParams.put(key, value);
×
3158
          return this;
×
3159
        }
3160

3161
        /**
3162
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3163
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3164
         * map. See {@link AccountSessionCreateParams.Components.PaymentDetails#extraParams} for the
3165
         * field documentation.
3166
         */
3167
        public Builder putAllExtraParam(Map<String, Object> map) {
3168
          if (this.extraParams == null) {
×
3169
            this.extraParams = new HashMap<>();
×
3170
          }
3171
          this.extraParams.putAll(map);
×
3172
          return this;
×
3173
        }
3174

3175
        /** The list of features enabled in the embedded component. */
3176
        public Builder setFeatures(
3177
            AccountSessionCreateParams.Components.PaymentDetails.Features features) {
3178
          this.features = features;
×
3179
          return this;
×
3180
        }
3181
      }
3182

3183
      @Getter
3184
      public static class Features {
3185
        /**
3186
         * Whether to allow capturing and cancelling payment intents. This is {@code true} by
3187
         * default.
3188
         */
3189
        @SerializedName("capture_payments")
3190
        Boolean capturePayments;
3191

3192
        /**
3193
         * Whether to allow connected accounts to manage destination charges that are created on
3194
         * behalf of them. This is {@code false} by default.
3195
         */
3196
        @SerializedName("destination_on_behalf_of_charge_management")
3197
        Boolean destinationOnBehalfOfChargeManagement;
3198

3199
        /**
3200
         * Whether to allow responding to disputes, including submitting evidence and accepting
3201
         * disputes. This is {@code true} by default.
3202
         */
3203
        @SerializedName("dispute_management")
3204
        Boolean disputeManagement;
3205

3206
        /**
3207
         * Map of extra parameters for custom features not available in this client library. The
3208
         * content in this map is not serialized under this field's {@code @SerializedName} value.
3209
         * Instead, each key/value pair is serialized as if the key is a root-level field
3210
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
3211
         * instance.
3212
         */
3213
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3214
        Map<String, Object> extraParams;
3215

3216
        /** Whether to allow sending refunds. This is {@code true} by default. */
3217
        @SerializedName("refund_management")
3218
        Boolean refundManagement;
3219

3220
        private Features(
3221
            Boolean capturePayments,
3222
            Boolean destinationOnBehalfOfChargeManagement,
3223
            Boolean disputeManagement,
3224
            Map<String, Object> extraParams,
3225
            Boolean refundManagement) {
×
3226
          this.capturePayments = capturePayments;
×
3227
          this.destinationOnBehalfOfChargeManagement = destinationOnBehalfOfChargeManagement;
×
3228
          this.disputeManagement = disputeManagement;
×
3229
          this.extraParams = extraParams;
×
3230
          this.refundManagement = refundManagement;
×
3231
        }
×
3232

3233
        public static Builder builder() {
3234
          return new Builder();
×
3235
        }
3236

3237
        public static class Builder {
×
3238
          private Boolean capturePayments;
3239

3240
          private Boolean destinationOnBehalfOfChargeManagement;
3241

3242
          private Boolean disputeManagement;
3243

3244
          private Map<String, Object> extraParams;
3245

3246
          private Boolean refundManagement;
3247

3248
          /** Finalize and obtain parameter instance from this builder. */
3249
          public AccountSessionCreateParams.Components.PaymentDetails.Features build() {
3250
            return new AccountSessionCreateParams.Components.PaymentDetails.Features(
×
3251
                this.capturePayments,
3252
                this.destinationOnBehalfOfChargeManagement,
3253
                this.disputeManagement,
3254
                this.extraParams,
3255
                this.refundManagement);
3256
          }
3257

3258
          /**
3259
           * Whether to allow capturing and cancelling payment intents. This is {@code true} by
3260
           * default.
3261
           */
3262
          public Builder setCapturePayments(Boolean capturePayments) {
3263
            this.capturePayments = capturePayments;
×
3264
            return this;
×
3265
          }
3266

3267
          /**
3268
           * Whether to allow connected accounts to manage destination charges that are created on
3269
           * behalf of them. This is {@code false} by default.
3270
           */
3271
          public Builder setDestinationOnBehalfOfChargeManagement(
3272
              Boolean destinationOnBehalfOfChargeManagement) {
3273
            this.destinationOnBehalfOfChargeManagement = destinationOnBehalfOfChargeManagement;
×
3274
            return this;
×
3275
          }
3276

3277
          /**
3278
           * Whether to allow responding to disputes, including submitting evidence and accepting
3279
           * disputes. This is {@code true} by default.
3280
           */
3281
          public Builder setDisputeManagement(Boolean disputeManagement) {
3282
            this.disputeManagement = disputeManagement;
×
3283
            return this;
×
3284
          }
3285

3286
          /**
3287
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
3288
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3289
           * map. See {@link
3290
           * AccountSessionCreateParams.Components.PaymentDetails.Features#extraParams} for the
3291
           * field documentation.
3292
           */
3293
          public Builder putExtraParam(String key, Object value) {
3294
            if (this.extraParams == null) {
×
3295
              this.extraParams = new HashMap<>();
×
3296
            }
3297
            this.extraParams.put(key, value);
×
3298
            return this;
×
3299
          }
3300

3301
          /**
3302
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3303
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3304
           * map. See {@link
3305
           * AccountSessionCreateParams.Components.PaymentDetails.Features#extraParams} for the
3306
           * field documentation.
3307
           */
3308
          public Builder putAllExtraParam(Map<String, Object> map) {
3309
            if (this.extraParams == null) {
×
3310
              this.extraParams = new HashMap<>();
×
3311
            }
3312
            this.extraParams.putAll(map);
×
3313
            return this;
×
3314
          }
3315

3316
          /** Whether to allow sending refunds. This is {@code true} by default. */
3317
          public Builder setRefundManagement(Boolean refundManagement) {
3318
            this.refundManagement = refundManagement;
×
3319
            return this;
×
3320
          }
3321
        }
3322
      }
3323
    }
3324

3325
    @Getter
3326
    public static class PaymentMethodSettings {
3327
      /** <strong>Required.</strong> Whether the embedded component is enabled. */
3328
      @SerializedName("enabled")
3329
      Boolean enabled;
3330

3331
      /**
3332
       * Map of extra parameters for custom features not available in this client library. The
3333
       * content in this map is not serialized under this field's {@code @SerializedName} value.
3334
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
3335
       * name in this param object. Effectively, this map is flattened to its parent instance.
3336
       */
3337
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3338
      Map<String, Object> extraParams;
3339

3340
      /** The list of features enabled in the embedded component. */
3341
      @SerializedName("features")
3342
      Features features;
3343

3344
      private PaymentMethodSettings(
3345
          Boolean enabled, Map<String, Object> extraParams, Features features) {
×
3346
        this.enabled = enabled;
×
3347
        this.extraParams = extraParams;
×
3348
        this.features = features;
×
3349
      }
×
3350

3351
      public static Builder builder() {
3352
        return new Builder();
×
3353
      }
3354

3355
      public static class Builder {
×
3356
        private Boolean enabled;
3357

3358
        private Map<String, Object> extraParams;
3359

3360
        private Features features;
3361

3362
        /** Finalize and obtain parameter instance from this builder. */
3363
        public AccountSessionCreateParams.Components.PaymentMethodSettings build() {
3364
          return new AccountSessionCreateParams.Components.PaymentMethodSettings(
×
3365
              this.enabled, this.extraParams, this.features);
3366
        }
3367

3368
        /** <strong>Required.</strong> Whether the embedded component is enabled. */
3369
        public Builder setEnabled(Boolean enabled) {
3370
          this.enabled = enabled;
×
3371
          return this;
×
3372
        }
3373

3374
        /**
3375
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
3376
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3377
         * map. See {@link AccountSessionCreateParams.Components.PaymentMethodSettings#extraParams}
3378
         * for the field documentation.
3379
         */
3380
        public Builder putExtraParam(String key, Object value) {
3381
          if (this.extraParams == null) {
×
3382
            this.extraParams = new HashMap<>();
×
3383
          }
3384
          this.extraParams.put(key, value);
×
3385
          return this;
×
3386
        }
3387

3388
        /**
3389
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3390
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3391
         * map. See {@link AccountSessionCreateParams.Components.PaymentMethodSettings#extraParams}
3392
         * for the field documentation.
3393
         */
3394
        public Builder putAllExtraParam(Map<String, Object> map) {
3395
          if (this.extraParams == null) {
×
3396
            this.extraParams = new HashMap<>();
×
3397
          }
3398
          this.extraParams.putAll(map);
×
3399
          return this;
×
3400
        }
3401

3402
        /** The list of features enabled in the embedded component. */
3403
        public Builder setFeatures(
3404
            AccountSessionCreateParams.Components.PaymentMethodSettings.Features features) {
3405
          this.features = features;
×
3406
          return this;
×
3407
        }
3408
      }
3409

3410
      @Getter
3411
      public static class Features {
3412
        /**
3413
         * Map of extra parameters for custom features not available in this client library. The
3414
         * content in this map is not serialized under this field's {@code @SerializedName} value.
3415
         * Instead, each key/value pair is serialized as if the key is a root-level field
3416
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
3417
         * instance.
3418
         */
3419
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3420
        Map<String, Object> extraParams;
3421

3422
        private Features(Map<String, Object> extraParams) {
×
3423
          this.extraParams = extraParams;
×
3424
        }
×
3425

3426
        public static Builder builder() {
3427
          return new Builder();
×
3428
        }
3429

3430
        public static class Builder {
×
3431
          private Map<String, Object> extraParams;
3432

3433
          /** Finalize and obtain parameter instance from this builder. */
3434
          public AccountSessionCreateParams.Components.PaymentMethodSettings.Features build() {
3435
            return new AccountSessionCreateParams.Components.PaymentMethodSettings.Features(
×
3436
                this.extraParams);
3437
          }
3438

3439
          /**
3440
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
3441
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3442
           * map. See {@link
3443
           * AccountSessionCreateParams.Components.PaymentMethodSettings.Features#extraParams} for
3444
           * the field documentation.
3445
           */
3446
          public Builder putExtraParam(String key, Object value) {
3447
            if (this.extraParams == null) {
×
3448
              this.extraParams = new HashMap<>();
×
3449
            }
3450
            this.extraParams.put(key, value);
×
3451
            return this;
×
3452
          }
3453

3454
          /**
3455
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3456
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3457
           * map. See {@link
3458
           * AccountSessionCreateParams.Components.PaymentMethodSettings.Features#extraParams} for
3459
           * the field documentation.
3460
           */
3461
          public Builder putAllExtraParam(Map<String, Object> map) {
3462
            if (this.extraParams == null) {
×
3463
              this.extraParams = new HashMap<>();
×
3464
            }
3465
            this.extraParams.putAll(map);
×
3466
            return this;
×
3467
          }
3468
        }
3469
      }
3470
    }
3471

3472
    @Getter
3473
    public static class Payments {
3474
      /** <strong>Required.</strong> Whether the embedded component is enabled. */
3475
      @SerializedName("enabled")
3476
      Boolean enabled;
3477

3478
      /**
3479
       * Map of extra parameters for custom features not available in this client library. The
3480
       * content in this map is not serialized under this field's {@code @SerializedName} value.
3481
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
3482
       * name in this param object. Effectively, this map is flattened to its parent instance.
3483
       */
3484
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3485
      Map<String, Object> extraParams;
3486

3487
      /** The list of features enabled in the embedded component. */
3488
      @SerializedName("features")
3489
      Features features;
3490

3491
      private Payments(Boolean enabled, Map<String, Object> extraParams, Features features) {
×
3492
        this.enabled = enabled;
×
3493
        this.extraParams = extraParams;
×
3494
        this.features = features;
×
3495
      }
×
3496

3497
      public static Builder builder() {
3498
        return new Builder();
×
3499
      }
3500

3501
      public static class Builder {
×
3502
        private Boolean enabled;
3503

3504
        private Map<String, Object> extraParams;
3505

3506
        private Features features;
3507

3508
        /** Finalize and obtain parameter instance from this builder. */
3509
        public AccountSessionCreateParams.Components.Payments build() {
3510
          return new AccountSessionCreateParams.Components.Payments(
×
3511
              this.enabled, this.extraParams, this.features);
3512
        }
3513

3514
        /** <strong>Required.</strong> Whether the embedded component is enabled. */
3515
        public Builder setEnabled(Boolean enabled) {
3516
          this.enabled = enabled;
×
3517
          return this;
×
3518
        }
3519

3520
        /**
3521
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
3522
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3523
         * map. See {@link AccountSessionCreateParams.Components.Payments#extraParams} for the field
3524
         * documentation.
3525
         */
3526
        public Builder putExtraParam(String key, Object value) {
3527
          if (this.extraParams == null) {
×
3528
            this.extraParams = new HashMap<>();
×
3529
          }
3530
          this.extraParams.put(key, value);
×
3531
          return this;
×
3532
        }
3533

3534
        /**
3535
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3536
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3537
         * map. See {@link AccountSessionCreateParams.Components.Payments#extraParams} for the field
3538
         * documentation.
3539
         */
3540
        public Builder putAllExtraParam(Map<String, Object> map) {
3541
          if (this.extraParams == null) {
×
3542
            this.extraParams = new HashMap<>();
×
3543
          }
3544
          this.extraParams.putAll(map);
×
3545
          return this;
×
3546
        }
3547

3548
        /** The list of features enabled in the embedded component. */
3549
        public Builder setFeatures(
3550
            AccountSessionCreateParams.Components.Payments.Features features) {
3551
          this.features = features;
×
3552
          return this;
×
3553
        }
3554
      }
3555

3556
      @Getter
3557
      public static class Features {
3558
        /**
3559
         * Whether to allow capturing and cancelling payment intents. This is {@code true} by
3560
         * default.
3561
         */
3562
        @SerializedName("capture_payments")
3563
        Boolean capturePayments;
3564

3565
        /**
3566
         * Whether to allow connected accounts to manage destination charges that are created on
3567
         * behalf of them. This is {@code false} by default.
3568
         */
3569
        @SerializedName("destination_on_behalf_of_charge_management")
3570
        Boolean destinationOnBehalfOfChargeManagement;
3571

3572
        /**
3573
         * Whether to allow responding to disputes, including submitting evidence and accepting
3574
         * disputes. This is {@code true} by default.
3575
         */
3576
        @SerializedName("dispute_management")
3577
        Boolean disputeManagement;
3578

3579
        /**
3580
         * Map of extra parameters for custom features not available in this client library. The
3581
         * content in this map is not serialized under this field's {@code @SerializedName} value.
3582
         * Instead, each key/value pair is serialized as if the key is a root-level field
3583
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
3584
         * instance.
3585
         */
3586
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3587
        Map<String, Object> extraParams;
3588

3589
        /** Whether to allow sending refunds. This is {@code true} by default. */
3590
        @SerializedName("refund_management")
3591
        Boolean refundManagement;
3592

3593
        private Features(
3594
            Boolean capturePayments,
3595
            Boolean destinationOnBehalfOfChargeManagement,
3596
            Boolean disputeManagement,
3597
            Map<String, Object> extraParams,
3598
            Boolean refundManagement) {
×
3599
          this.capturePayments = capturePayments;
×
3600
          this.destinationOnBehalfOfChargeManagement = destinationOnBehalfOfChargeManagement;
×
3601
          this.disputeManagement = disputeManagement;
×
3602
          this.extraParams = extraParams;
×
3603
          this.refundManagement = refundManagement;
×
3604
        }
×
3605

3606
        public static Builder builder() {
3607
          return new Builder();
×
3608
        }
3609

3610
        public static class Builder {
×
3611
          private Boolean capturePayments;
3612

3613
          private Boolean destinationOnBehalfOfChargeManagement;
3614

3615
          private Boolean disputeManagement;
3616

3617
          private Map<String, Object> extraParams;
3618

3619
          private Boolean refundManagement;
3620

3621
          /** Finalize and obtain parameter instance from this builder. */
3622
          public AccountSessionCreateParams.Components.Payments.Features build() {
3623
            return new AccountSessionCreateParams.Components.Payments.Features(
×
3624
                this.capturePayments,
3625
                this.destinationOnBehalfOfChargeManagement,
3626
                this.disputeManagement,
3627
                this.extraParams,
3628
                this.refundManagement);
3629
          }
3630

3631
          /**
3632
           * Whether to allow capturing and cancelling payment intents. This is {@code true} by
3633
           * default.
3634
           */
3635
          public Builder setCapturePayments(Boolean capturePayments) {
3636
            this.capturePayments = capturePayments;
×
3637
            return this;
×
3638
          }
3639

3640
          /**
3641
           * Whether to allow connected accounts to manage destination charges that are created on
3642
           * behalf of them. This is {@code false} by default.
3643
           */
3644
          public Builder setDestinationOnBehalfOfChargeManagement(
3645
              Boolean destinationOnBehalfOfChargeManagement) {
3646
            this.destinationOnBehalfOfChargeManagement = destinationOnBehalfOfChargeManagement;
×
3647
            return this;
×
3648
          }
3649

3650
          /**
3651
           * Whether to allow responding to disputes, including submitting evidence and accepting
3652
           * disputes. This is {@code true} by default.
3653
           */
3654
          public Builder setDisputeManagement(Boolean disputeManagement) {
3655
            this.disputeManagement = disputeManagement;
×
3656
            return this;
×
3657
          }
3658

3659
          /**
3660
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
3661
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3662
           * map. See {@link AccountSessionCreateParams.Components.Payments.Features#extraParams}
3663
           * for the field documentation.
3664
           */
3665
          public Builder putExtraParam(String key, Object value) {
3666
            if (this.extraParams == null) {
×
3667
              this.extraParams = new HashMap<>();
×
3668
            }
3669
            this.extraParams.put(key, value);
×
3670
            return this;
×
3671
          }
3672

3673
          /**
3674
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3675
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3676
           * map. See {@link AccountSessionCreateParams.Components.Payments.Features#extraParams}
3677
           * for the field documentation.
3678
           */
3679
          public Builder putAllExtraParam(Map<String, Object> map) {
3680
            if (this.extraParams == null) {
×
3681
              this.extraParams = new HashMap<>();
×
3682
            }
3683
            this.extraParams.putAll(map);
×
3684
            return this;
×
3685
          }
3686

3687
          /** Whether to allow sending refunds. This is {@code true} by default. */
3688
          public Builder setRefundManagement(Boolean refundManagement) {
3689
            this.refundManagement = refundManagement;
×
3690
            return this;
×
3691
          }
3692
        }
3693
      }
3694
    }
3695

3696
    @Getter
3697
    public static class Payouts {
3698
      /** <strong>Required.</strong> Whether the embedded component is enabled. */
3699
      @SerializedName("enabled")
3700
      Boolean enabled;
3701

3702
      /**
3703
       * Map of extra parameters for custom features not available in this client library. The
3704
       * content in this map is not serialized under this field's {@code @SerializedName} value.
3705
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
3706
       * name in this param object. Effectively, this map is flattened to its parent instance.
3707
       */
3708
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3709
      Map<String, Object> extraParams;
3710

3711
      /** The list of features enabled in the embedded component. */
3712
      @SerializedName("features")
3713
      Features features;
3714

3715
      private Payouts(Boolean enabled, Map<String, Object> extraParams, Features features) {
×
3716
        this.enabled = enabled;
×
3717
        this.extraParams = extraParams;
×
3718
        this.features = features;
×
3719
      }
×
3720

3721
      public static Builder builder() {
3722
        return new Builder();
×
3723
      }
3724

3725
      public static class Builder {
×
3726
        private Boolean enabled;
3727

3728
        private Map<String, Object> extraParams;
3729

3730
        private Features features;
3731

3732
        /** Finalize and obtain parameter instance from this builder. */
3733
        public AccountSessionCreateParams.Components.Payouts build() {
3734
          return new AccountSessionCreateParams.Components.Payouts(
×
3735
              this.enabled, this.extraParams, this.features);
3736
        }
3737

3738
        /** <strong>Required.</strong> Whether the embedded component is enabled. */
3739
        public Builder setEnabled(Boolean enabled) {
3740
          this.enabled = enabled;
×
3741
          return this;
×
3742
        }
3743

3744
        /**
3745
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
3746
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3747
         * map. See {@link AccountSessionCreateParams.Components.Payouts#extraParams} for the field
3748
         * documentation.
3749
         */
3750
        public Builder putExtraParam(String key, Object value) {
3751
          if (this.extraParams == null) {
×
3752
            this.extraParams = new HashMap<>();
×
3753
          }
3754
          this.extraParams.put(key, value);
×
3755
          return this;
×
3756
        }
3757

3758
        /**
3759
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3760
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3761
         * map. See {@link AccountSessionCreateParams.Components.Payouts#extraParams} for the field
3762
         * documentation.
3763
         */
3764
        public Builder putAllExtraParam(Map<String, Object> map) {
3765
          if (this.extraParams == null) {
×
3766
            this.extraParams = new HashMap<>();
×
3767
          }
3768
          this.extraParams.putAll(map);
×
3769
          return this;
×
3770
        }
3771

3772
        /** The list of features enabled in the embedded component. */
3773
        public Builder setFeatures(
3774
            AccountSessionCreateParams.Components.Payouts.Features features) {
3775
          this.features = features;
×
3776
          return this;
×
3777
        }
3778
      }
3779

3780
      @Getter
3781
      public static class Features {
3782
        /**
3783
         * Whether to allow payout schedule to be changed. Default {@code true} when Stripe owns
3784
         * Loss Liability, default {@code false} otherwise.
3785
         */
3786
        @SerializedName("edit_payout_schedule")
3787
        Boolean editPayoutSchedule;
3788

3789
        /**
3790
         * Whether to allow platforms to control bank account collection for their connected
3791
         * accounts. This feature can only be false for custom accounts (or accounts where the
3792
         * platform is compliance owner). Otherwise, bank account collection is determined by
3793
         * compliance requirements.
3794
         */
3795
        @SerializedName("external_account_collection")
3796
        Boolean externalAccountCollection;
3797

3798
        /**
3799
         * Map of extra parameters for custom features not available in this client library. The
3800
         * content in this map is not serialized under this field's {@code @SerializedName} value.
3801
         * Instead, each key/value pair is serialized as if the key is a root-level field
3802
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
3803
         * instance.
3804
         */
3805
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3806
        Map<String, Object> extraParams;
3807

3808
        /**
3809
         * Whether to allow creation of instant payouts. Default {@code true} when Stripe owns Loss
3810
         * Liability, default {@code false} otherwise.
3811
         */
3812
        @SerializedName("instant_payouts")
3813
        Boolean instantPayouts;
3814

3815
        /**
3816
         * Whether to allow creation of standard payouts. Default {@code true} when Stripe owns Loss
3817
         * Liability, default {@code false} otherwise.
3818
         */
3819
        @SerializedName("standard_payouts")
3820
        Boolean standardPayouts;
3821

3822
        private Features(
3823
            Boolean editPayoutSchedule,
3824
            Boolean externalAccountCollection,
3825
            Map<String, Object> extraParams,
3826
            Boolean instantPayouts,
3827
            Boolean standardPayouts) {
×
3828
          this.editPayoutSchedule = editPayoutSchedule;
×
3829
          this.externalAccountCollection = externalAccountCollection;
×
3830
          this.extraParams = extraParams;
×
3831
          this.instantPayouts = instantPayouts;
×
3832
          this.standardPayouts = standardPayouts;
×
3833
        }
×
3834

3835
        public static Builder builder() {
3836
          return new Builder();
×
3837
        }
3838

3839
        public static class Builder {
×
3840
          private Boolean editPayoutSchedule;
3841

3842
          private Boolean externalAccountCollection;
3843

3844
          private Map<String, Object> extraParams;
3845

3846
          private Boolean instantPayouts;
3847

3848
          private Boolean standardPayouts;
3849

3850
          /** Finalize and obtain parameter instance from this builder. */
3851
          public AccountSessionCreateParams.Components.Payouts.Features build() {
3852
            return new AccountSessionCreateParams.Components.Payouts.Features(
×
3853
                this.editPayoutSchedule,
3854
                this.externalAccountCollection,
3855
                this.extraParams,
3856
                this.instantPayouts,
3857
                this.standardPayouts);
3858
          }
3859

3860
          /**
3861
           * Whether to allow payout schedule to be changed. Default {@code true} when Stripe owns
3862
           * Loss Liability, default {@code false} otherwise.
3863
           */
3864
          public Builder setEditPayoutSchedule(Boolean editPayoutSchedule) {
3865
            this.editPayoutSchedule = editPayoutSchedule;
×
3866
            return this;
×
3867
          }
3868

3869
          /**
3870
           * Whether to allow platforms to control bank account collection for their connected
3871
           * accounts. This feature can only be false for custom accounts (or accounts where the
3872
           * platform is compliance owner). Otherwise, bank account collection is determined by
3873
           * compliance requirements.
3874
           */
3875
          public Builder setExternalAccountCollection(Boolean externalAccountCollection) {
3876
            this.externalAccountCollection = externalAccountCollection;
×
3877
            return this;
×
3878
          }
3879

3880
          /**
3881
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
3882
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3883
           * map. See {@link AccountSessionCreateParams.Components.Payouts.Features#extraParams} for
3884
           * the field documentation.
3885
           */
3886
          public Builder putExtraParam(String key, Object value) {
3887
            if (this.extraParams == null) {
×
3888
              this.extraParams = new HashMap<>();
×
3889
            }
3890
            this.extraParams.put(key, value);
×
3891
            return this;
×
3892
          }
3893

3894
          /**
3895
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3896
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3897
           * map. See {@link AccountSessionCreateParams.Components.Payouts.Features#extraParams} for
3898
           * the field documentation.
3899
           */
3900
          public Builder putAllExtraParam(Map<String, Object> map) {
3901
            if (this.extraParams == null) {
×
3902
              this.extraParams = new HashMap<>();
×
3903
            }
3904
            this.extraParams.putAll(map);
×
3905
            return this;
×
3906
          }
3907

3908
          /**
3909
           * Whether to allow creation of instant payouts. Default {@code true} when Stripe owns
3910
           * Loss Liability, default {@code false} otherwise.
3911
           */
3912
          public Builder setInstantPayouts(Boolean instantPayouts) {
3913
            this.instantPayouts = instantPayouts;
×
3914
            return this;
×
3915
          }
3916

3917
          /**
3918
           * Whether to allow creation of standard payouts. Default {@code true} when Stripe owns
3919
           * Loss Liability, default {@code false} otherwise.
3920
           */
3921
          public Builder setStandardPayouts(Boolean standardPayouts) {
3922
            this.standardPayouts = standardPayouts;
×
3923
            return this;
×
3924
          }
3925
        }
3926
      }
3927
    }
3928

3929
    @Getter
3930
    public static class PayoutsList {
3931
      /** <strong>Required.</strong> Whether the embedded component is enabled. */
3932
      @SerializedName("enabled")
3933
      Boolean enabled;
3934

3935
      /**
3936
       * Map of extra parameters for custom features not available in this client library. The
3937
       * content in this map is not serialized under this field's {@code @SerializedName} value.
3938
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
3939
       * name in this param object. Effectively, this map is flattened to its parent instance.
3940
       */
3941
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3942
      Map<String, Object> extraParams;
3943

3944
      /** The list of features enabled in the embedded component. */
3945
      @SerializedName("features")
3946
      Features features;
3947

3948
      private PayoutsList(Boolean enabled, Map<String, Object> extraParams, Features features) {
×
3949
        this.enabled = enabled;
×
3950
        this.extraParams = extraParams;
×
3951
        this.features = features;
×
3952
      }
×
3953

3954
      public static Builder builder() {
3955
        return new Builder();
×
3956
      }
3957

3958
      public static class Builder {
×
3959
        private Boolean enabled;
3960

3961
        private Map<String, Object> extraParams;
3962

3963
        private Features features;
3964

3965
        /** Finalize and obtain parameter instance from this builder. */
3966
        public AccountSessionCreateParams.Components.PayoutsList build() {
3967
          return new AccountSessionCreateParams.Components.PayoutsList(
×
3968
              this.enabled, this.extraParams, this.features);
3969
        }
3970

3971
        /** <strong>Required.</strong> Whether the embedded component is enabled. */
3972
        public Builder setEnabled(Boolean enabled) {
3973
          this.enabled = enabled;
×
3974
          return this;
×
3975
        }
3976

3977
        /**
3978
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
3979
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3980
         * map. See {@link AccountSessionCreateParams.Components.PayoutsList#extraParams} for the
3981
         * field documentation.
3982
         */
3983
        public Builder putExtraParam(String key, Object value) {
3984
          if (this.extraParams == null) {
×
3985
            this.extraParams = new HashMap<>();
×
3986
          }
3987
          this.extraParams.put(key, value);
×
3988
          return this;
×
3989
        }
3990

3991
        /**
3992
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3993
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3994
         * map. See {@link AccountSessionCreateParams.Components.PayoutsList#extraParams} for the
3995
         * field documentation.
3996
         */
3997
        public Builder putAllExtraParam(Map<String, Object> map) {
3998
          if (this.extraParams == null) {
×
3999
            this.extraParams = new HashMap<>();
×
4000
          }
4001
          this.extraParams.putAll(map);
×
4002
          return this;
×
4003
        }
4004

4005
        /** The list of features enabled in the embedded component. */
4006
        public Builder setFeatures(
4007
            AccountSessionCreateParams.Components.PayoutsList.Features features) {
4008
          this.features = features;
×
4009
          return this;
×
4010
        }
4011
      }
4012

4013
      @Getter
4014
      public static class Features {
4015
        /**
4016
         * Map of extra parameters for custom features not available in this client library. The
4017
         * content in this map is not serialized under this field's {@code @SerializedName} value.
4018
         * Instead, each key/value pair is serialized as if the key is a root-level field
4019
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
4020
         * instance.
4021
         */
4022
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4023
        Map<String, Object> extraParams;
4024

4025
        private Features(Map<String, Object> extraParams) {
×
4026
          this.extraParams = extraParams;
×
4027
        }
×
4028

4029
        public static Builder builder() {
4030
          return new Builder();
×
4031
        }
4032

4033
        public static class Builder {
×
4034
          private Map<String, Object> extraParams;
4035

4036
          /** Finalize and obtain parameter instance from this builder. */
4037
          public AccountSessionCreateParams.Components.PayoutsList.Features build() {
4038
            return new AccountSessionCreateParams.Components.PayoutsList.Features(this.extraParams);
×
4039
          }
4040

4041
          /**
4042
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
4043
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4044
           * map. See {@link AccountSessionCreateParams.Components.PayoutsList.Features#extraParams}
4045
           * for the field documentation.
4046
           */
4047
          public Builder putExtraParam(String key, Object value) {
4048
            if (this.extraParams == null) {
×
4049
              this.extraParams = new HashMap<>();
×
4050
            }
4051
            this.extraParams.put(key, value);
×
4052
            return this;
×
4053
          }
4054

4055
          /**
4056
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4057
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4058
           * map. See {@link AccountSessionCreateParams.Components.PayoutsList.Features#extraParams}
4059
           * for the field documentation.
4060
           */
4061
          public Builder putAllExtraParam(Map<String, Object> map) {
4062
            if (this.extraParams == null) {
×
4063
              this.extraParams = new HashMap<>();
×
4064
            }
4065
            this.extraParams.putAll(map);
×
4066
            return this;
×
4067
          }
4068
        }
4069
      }
4070
    }
4071

4072
    @Getter
4073
    public static class Recipients {
4074
      /** <strong>Required.</strong> Whether the embedded component is enabled. */
4075
      @SerializedName("enabled")
4076
      Boolean enabled;
4077

4078
      /**
4079
       * Map of extra parameters for custom features not available in this client library. The
4080
       * content in this map is not serialized under this field's {@code @SerializedName} value.
4081
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
4082
       * name in this param object. Effectively, this map is flattened to its parent instance.
4083
       */
4084
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4085
      Map<String, Object> extraParams;
4086

4087
      /** The list of features enabled in the embedded component. */
4088
      @SerializedName("features")
4089
      Features features;
4090

4091
      private Recipients(Boolean enabled, Map<String, Object> extraParams, Features features) {
×
4092
        this.enabled = enabled;
×
4093
        this.extraParams = extraParams;
×
4094
        this.features = features;
×
4095
      }
×
4096

4097
      public static Builder builder() {
4098
        return new Builder();
×
4099
      }
4100

4101
      public static class Builder {
×
4102
        private Boolean enabled;
4103

4104
        private Map<String, Object> extraParams;
4105

4106
        private Features features;
4107

4108
        /** Finalize and obtain parameter instance from this builder. */
4109
        public AccountSessionCreateParams.Components.Recipients build() {
4110
          return new AccountSessionCreateParams.Components.Recipients(
×
4111
              this.enabled, this.extraParams, this.features);
4112
        }
4113

4114
        /** <strong>Required.</strong> Whether the embedded component is enabled. */
4115
        public Builder setEnabled(Boolean enabled) {
4116
          this.enabled = enabled;
×
4117
          return this;
×
4118
        }
4119

4120
        /**
4121
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
4122
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4123
         * map. See {@link AccountSessionCreateParams.Components.Recipients#extraParams} for the
4124
         * field documentation.
4125
         */
4126
        public Builder putExtraParam(String key, Object value) {
4127
          if (this.extraParams == null) {
×
4128
            this.extraParams = new HashMap<>();
×
4129
          }
4130
          this.extraParams.put(key, value);
×
4131
          return this;
×
4132
        }
4133

4134
        /**
4135
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4136
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4137
         * map. See {@link AccountSessionCreateParams.Components.Recipients#extraParams} for the
4138
         * field documentation.
4139
         */
4140
        public Builder putAllExtraParam(Map<String, Object> map) {
4141
          if (this.extraParams == null) {
×
4142
            this.extraParams = new HashMap<>();
×
4143
          }
4144
          this.extraParams.putAll(map);
×
4145
          return this;
×
4146
        }
4147

4148
        /** The list of features enabled in the embedded component. */
4149
        public Builder setFeatures(
4150
            AccountSessionCreateParams.Components.Recipients.Features features) {
4151
          this.features = features;
×
4152
          return this;
×
4153
        }
4154
      }
4155

4156
      @Getter
4157
      public static class Features {
4158
        /**
4159
         * Map of extra parameters for custom features not available in this client library. The
4160
         * content in this map is not serialized under this field's {@code @SerializedName} value.
4161
         * Instead, each key/value pair is serialized as if the key is a root-level field
4162
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
4163
         * instance.
4164
         */
4165
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4166
        Map<String, Object> extraParams;
4167

4168
        private Features(Map<String, Object> extraParams) {
×
4169
          this.extraParams = extraParams;
×
4170
        }
×
4171

4172
        public static Builder builder() {
4173
          return new Builder();
×
4174
        }
4175

4176
        public static class Builder {
×
4177
          private Map<String, Object> extraParams;
4178

4179
          /** Finalize and obtain parameter instance from this builder. */
4180
          public AccountSessionCreateParams.Components.Recipients.Features build() {
4181
            return new AccountSessionCreateParams.Components.Recipients.Features(this.extraParams);
×
4182
          }
4183

4184
          /**
4185
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
4186
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4187
           * map. See {@link AccountSessionCreateParams.Components.Recipients.Features#extraParams}
4188
           * for the field documentation.
4189
           */
4190
          public Builder putExtraParam(String key, Object value) {
4191
            if (this.extraParams == null) {
×
4192
              this.extraParams = new HashMap<>();
×
4193
            }
4194
            this.extraParams.put(key, value);
×
4195
            return this;
×
4196
          }
4197

4198
          /**
4199
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4200
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4201
           * map. See {@link AccountSessionCreateParams.Components.Recipients.Features#extraParams}
4202
           * for the field documentation.
4203
           */
4204
          public Builder putAllExtraParam(Map<String, Object> map) {
4205
            if (this.extraParams == null) {
×
4206
              this.extraParams = new HashMap<>();
×
4207
            }
4208
            this.extraParams.putAll(map);
×
4209
            return this;
×
4210
          }
4211
        }
4212
      }
4213
    }
4214

4215
    @Getter
4216
    public static class TaxRegistrations {
4217
      /** <strong>Required.</strong> Whether the embedded component is enabled. */
4218
      @SerializedName("enabled")
4219
      Boolean enabled;
4220

4221
      /**
4222
       * Map of extra parameters for custom features not available in this client library. The
4223
       * content in this map is not serialized under this field's {@code @SerializedName} value.
4224
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
4225
       * name in this param object. Effectively, this map is flattened to its parent instance.
4226
       */
4227
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4228
      Map<String, Object> extraParams;
4229

4230
      /** The list of features enabled in the embedded component. */
4231
      @SerializedName("features")
4232
      Features features;
4233

4234
      private TaxRegistrations(
4235
          Boolean enabled, Map<String, Object> extraParams, Features features) {
×
4236
        this.enabled = enabled;
×
4237
        this.extraParams = extraParams;
×
4238
        this.features = features;
×
4239
      }
×
4240

4241
      public static Builder builder() {
4242
        return new Builder();
×
4243
      }
4244

4245
      public static class Builder {
×
4246
        private Boolean enabled;
4247

4248
        private Map<String, Object> extraParams;
4249

4250
        private Features features;
4251

4252
        /** Finalize and obtain parameter instance from this builder. */
4253
        public AccountSessionCreateParams.Components.TaxRegistrations build() {
4254
          return new AccountSessionCreateParams.Components.TaxRegistrations(
×
4255
              this.enabled, this.extraParams, this.features);
4256
        }
4257

4258
        /** <strong>Required.</strong> Whether the embedded component is enabled. */
4259
        public Builder setEnabled(Boolean enabled) {
4260
          this.enabled = enabled;
×
4261
          return this;
×
4262
        }
4263

4264
        /**
4265
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
4266
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4267
         * map. See {@link AccountSessionCreateParams.Components.TaxRegistrations#extraParams} for
4268
         * the field documentation.
4269
         */
4270
        public Builder putExtraParam(String key, Object value) {
4271
          if (this.extraParams == null) {
×
4272
            this.extraParams = new HashMap<>();
×
4273
          }
4274
          this.extraParams.put(key, value);
×
4275
          return this;
×
4276
        }
4277

4278
        /**
4279
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4280
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4281
         * map. See {@link AccountSessionCreateParams.Components.TaxRegistrations#extraParams} for
4282
         * the field documentation.
4283
         */
4284
        public Builder putAllExtraParam(Map<String, Object> map) {
4285
          if (this.extraParams == null) {
×
4286
            this.extraParams = new HashMap<>();
×
4287
          }
4288
          this.extraParams.putAll(map);
×
4289
          return this;
×
4290
        }
4291

4292
        /** The list of features enabled in the embedded component. */
4293
        public Builder setFeatures(
4294
            AccountSessionCreateParams.Components.TaxRegistrations.Features features) {
4295
          this.features = features;
×
4296
          return this;
×
4297
        }
4298
      }
4299

4300
      @Getter
4301
      public static class Features {
4302
        /**
4303
         * Map of extra parameters for custom features not available in this client library. The
4304
         * content in this map is not serialized under this field's {@code @SerializedName} value.
4305
         * Instead, each key/value pair is serialized as if the key is a root-level field
4306
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
4307
         * instance.
4308
         */
4309
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4310
        Map<String, Object> extraParams;
4311

4312
        private Features(Map<String, Object> extraParams) {
×
4313
          this.extraParams = extraParams;
×
4314
        }
×
4315

4316
        public static Builder builder() {
4317
          return new Builder();
×
4318
        }
4319

4320
        public static class Builder {
×
4321
          private Map<String, Object> extraParams;
4322

4323
          /** Finalize and obtain parameter instance from this builder. */
4324
          public AccountSessionCreateParams.Components.TaxRegistrations.Features build() {
4325
            return new AccountSessionCreateParams.Components.TaxRegistrations.Features(
×
4326
                this.extraParams);
4327
          }
4328

4329
          /**
4330
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
4331
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4332
           * map. See {@link
4333
           * AccountSessionCreateParams.Components.TaxRegistrations.Features#extraParams} for the
4334
           * field documentation.
4335
           */
4336
          public Builder putExtraParam(String key, Object value) {
4337
            if (this.extraParams == null) {
×
4338
              this.extraParams = new HashMap<>();
×
4339
            }
4340
            this.extraParams.put(key, value);
×
4341
            return this;
×
4342
          }
4343

4344
          /**
4345
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4346
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4347
           * map. See {@link
4348
           * AccountSessionCreateParams.Components.TaxRegistrations.Features#extraParams} for the
4349
           * field documentation.
4350
           */
4351
          public Builder putAllExtraParam(Map<String, Object> map) {
4352
            if (this.extraParams == null) {
×
4353
              this.extraParams = new HashMap<>();
×
4354
            }
4355
            this.extraParams.putAll(map);
×
4356
            return this;
×
4357
          }
4358
        }
4359
      }
4360
    }
4361

4362
    @Getter
4363
    public static class TaxSettings {
4364
      /** <strong>Required.</strong> Whether the embedded component is enabled. */
4365
      @SerializedName("enabled")
4366
      Boolean enabled;
4367

4368
      /**
4369
       * Map of extra parameters for custom features not available in this client library. The
4370
       * content in this map is not serialized under this field's {@code @SerializedName} value.
4371
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
4372
       * name in this param object. Effectively, this map is flattened to its parent instance.
4373
       */
4374
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4375
      Map<String, Object> extraParams;
4376

4377
      /** The list of features enabled in the embedded component. */
4378
      @SerializedName("features")
4379
      Features features;
4380

4381
      private TaxSettings(Boolean enabled, Map<String, Object> extraParams, Features features) {
×
4382
        this.enabled = enabled;
×
4383
        this.extraParams = extraParams;
×
4384
        this.features = features;
×
4385
      }
×
4386

4387
      public static Builder builder() {
4388
        return new Builder();
×
4389
      }
4390

4391
      public static class Builder {
×
4392
        private Boolean enabled;
4393

4394
        private Map<String, Object> extraParams;
4395

4396
        private Features features;
4397

4398
        /** Finalize and obtain parameter instance from this builder. */
4399
        public AccountSessionCreateParams.Components.TaxSettings build() {
4400
          return new AccountSessionCreateParams.Components.TaxSettings(
×
4401
              this.enabled, this.extraParams, this.features);
4402
        }
4403

4404
        /** <strong>Required.</strong> Whether the embedded component is enabled. */
4405
        public Builder setEnabled(Boolean enabled) {
4406
          this.enabled = enabled;
×
4407
          return this;
×
4408
        }
4409

4410
        /**
4411
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
4412
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4413
         * map. See {@link AccountSessionCreateParams.Components.TaxSettings#extraParams} for the
4414
         * field documentation.
4415
         */
4416
        public Builder putExtraParam(String key, Object value) {
4417
          if (this.extraParams == null) {
×
4418
            this.extraParams = new HashMap<>();
×
4419
          }
4420
          this.extraParams.put(key, value);
×
4421
          return this;
×
4422
        }
4423

4424
        /**
4425
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4426
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4427
         * map. See {@link AccountSessionCreateParams.Components.TaxSettings#extraParams} for the
4428
         * field documentation.
4429
         */
4430
        public Builder putAllExtraParam(Map<String, Object> map) {
4431
          if (this.extraParams == null) {
×
4432
            this.extraParams = new HashMap<>();
×
4433
          }
4434
          this.extraParams.putAll(map);
×
4435
          return this;
×
4436
        }
4437

4438
        /** The list of features enabled in the embedded component. */
4439
        public Builder setFeatures(
4440
            AccountSessionCreateParams.Components.TaxSettings.Features features) {
4441
          this.features = features;
×
4442
          return this;
×
4443
        }
4444
      }
4445

4446
      @Getter
4447
      public static class Features {
4448
        /**
4449
         * Map of extra parameters for custom features not available in this client library. The
4450
         * content in this map is not serialized under this field's {@code @SerializedName} value.
4451
         * Instead, each key/value pair is serialized as if the key is a root-level field
4452
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
4453
         * instance.
4454
         */
4455
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4456
        Map<String, Object> extraParams;
4457

4458
        private Features(Map<String, Object> extraParams) {
×
4459
          this.extraParams = extraParams;
×
4460
        }
×
4461

4462
        public static Builder builder() {
4463
          return new Builder();
×
4464
        }
4465

4466
        public static class Builder {
×
4467
          private Map<String, Object> extraParams;
4468

4469
          /** Finalize and obtain parameter instance from this builder. */
4470
          public AccountSessionCreateParams.Components.TaxSettings.Features build() {
4471
            return new AccountSessionCreateParams.Components.TaxSettings.Features(this.extraParams);
×
4472
          }
4473

4474
          /**
4475
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
4476
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4477
           * map. See {@link AccountSessionCreateParams.Components.TaxSettings.Features#extraParams}
4478
           * for the field documentation.
4479
           */
4480
          public Builder putExtraParam(String key, Object value) {
4481
            if (this.extraParams == null) {
×
4482
              this.extraParams = new HashMap<>();
×
4483
            }
4484
            this.extraParams.put(key, value);
×
4485
            return this;
×
4486
          }
4487

4488
          /**
4489
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4490
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4491
           * map. See {@link AccountSessionCreateParams.Components.TaxSettings.Features#extraParams}
4492
           * for the field documentation.
4493
           */
4494
          public Builder putAllExtraParam(Map<String, Object> map) {
4495
            if (this.extraParams == null) {
×
4496
              this.extraParams = new HashMap<>();
×
4497
            }
4498
            this.extraParams.putAll(map);
×
4499
            return this;
×
4500
          }
4501
        }
4502
      }
4503
    }
4504
  }
4505
}
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