Repository: stripe/stripe-node
Pull request #1073 (2020-11-18 23:19:53)

More consistent namespacing for shared types
r? @ctrudeau-stripe 
cc @stripe/api-libraries 
## Summary

Some types that represent common structures that appear in many places throughout the Stripe API, such as `Address` or `Metadata` are defined in `types/shared.d.ts`, so that their definitions aren't repeated everywhere. However when these types are referenced from other types, currently they are **not** namespaced with `Stripe`, e.g. `Account` has `metadata: Metadata`, not `metadata: Stripe.Metadata`. This is inconsistent with how the other types in the library are referenced, e.g. `Account` has `individual: Stripe.Person`, not just `individual: Person`.

This PR corrects that, and makes the referenced to shared types consistent with all the other references. This should have no affect. The references all refer to the same types, they are just more specific (and I have added some lines to typescript-test specifically to exercise the shared types).


Patch:
diff --git a/types/2020-08-27/Accounts.d.ts b/types/2020-08-27/Accounts.d.ts
index 4a43c0e1..c29da758 100644
--- a/types/2020-08-27/Accounts.d.ts
+++ b/types/2020-08-27/Accounts.d.ts
@@ -76,7 +76,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata?: Metadata;
+      metadata?: Stripe.Metadata;
 
       /**
        * Whether Stripe can send payouts to this account.
@@ -118,7 +118,7 @@ declare module 'stripe' {
         /**
          * A publicly available mailing address for sending support issues to.
          */
-        support_address: Address | null;
+        support_address: Stripe.Address | null;
 
         /**
          * A publicly available email address for sending support issues to.
@@ -285,7 +285,7 @@ declare module 'stripe' {
       }
 
       interface Company {
-        address?: Address;
+        address?: Stripe.Address;
 
         /**
          * The Kana variation of the company's primary address (Japan only).
@@ -831,7 +831,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * Options for customizing how the account functions within Stripe.
@@ -1173,12 +1173,12 @@ declare module 'stripe' {
         /**
          * The Kana variation of the company's primary address (Japan only).
          */
-        address_kana?: JapanAddressParam;
+        address_kana?: Stripe.JapanAddressParam;
 
         /**
          * The Kanji variation of the company's primary address (Japan only).
          */
-        address_kanji?: JapanAddressParam;
+        address_kanji?: Stripe.JapanAddressParam;
 
         /**
          * Whether the company's directors have been provided. Set this Boolean to `true` after creating all the company's directors with [the Persons API](https://stripe.com/docs/api/persons) for accounts with a `relationship.director` requirement. This value is not automatically set to `true` after creating directors, so it needs to be updated to indicate all directors have been provided.
@@ -1327,12 +1327,12 @@ declare module 'stripe' {
         /**
          * The Kana variation of the the individual's primary address (Japan only).
          */
-        address_kana?: JapanAddressParam;
+        address_kana?: Stripe.JapanAddressParam;
 
         /**
          * The Kanji variation of the the individual's primary address (Japan only).
          */
-        address_kanji?: JapanAddressParam;
+        address_kanji?: Stripe.JapanAddressParam;
 
         /**
          * The individual's date of birth.
@@ -1392,7 +1392,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: Stripe.Emptyable<MetadataParam>;
+        metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
         /**
          * The individual's phone number.
@@ -1744,7 +1744,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * Options for customizing how the account functions within Stripe.
@@ -2081,12 +2081,12 @@ declare module 'stripe' {
         /**
          * The Kana variation of the company's primary address (Japan only).
          */
-        address_kana?: JapanAddressParam;
+        address_kana?: Stripe.JapanAddressParam;
 
         /**
          * The Kanji variation of the company's primary address (Japan only).
          */
-        address_kanji?: JapanAddressParam;
+        address_kanji?: Stripe.JapanAddressParam;
 
         /**
          * Whether the company's directors have been provided. Set this Boolean to `true` after creating all the company's directors with [the Persons API](https://stripe.com/docs/api/persons) for accounts with a `relationship.director` requirement. This value is not automatically set to `true` after creating directors, so it needs to be updated to indicate all directors have been provided.
@@ -2235,12 +2235,12 @@ declare module 'stripe' {
         /**
          * The Kana variation of the the individual's primary address (Japan only).
          */
-        address_kana?: JapanAddressParam;
+        address_kana?: Stripe.JapanAddressParam;
 
         /**
          * The Kanji variation of the the individual's primary address (Japan only).
          */
-        address_kanji?: JapanAddressParam;
+        address_kanji?: Stripe.JapanAddressParam;
 
         /**
          * The individual's date of birth.
@@ -2300,7 +2300,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: Stripe.Emptyable<MetadataParam>;
+        metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
         /**
          * The individual's phone number.
@@ -2581,7 +2581,7 @@ declare module 'stripe' {
     }
 
     interface AccountListParams extends PaginationParams {
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * Specifies which fields in the response should be expanded.
diff --git a/types/2020-08-27/AlipayAccounts.d.ts b/types/2020-08-27/AlipayAccounts.d.ts
index da386699..f52e5ea1 100644
--- a/types/2020-08-27/AlipayAccounts.d.ts
+++ b/types/2020-08-27/AlipayAccounts.d.ts
@@ -23,7 +23,7 @@ declare module 'stripe' {
       /**
        * The ID of the customer associated with this Alipay Account.
        */
-      customer?: string | Stripe.Customer | Stripe.DeletedCustomer | null;
+      customer?: string | Stripe.Customer | DeletedCustomer | null;
 
       deleted?: void;
 
@@ -40,7 +40,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata?: Metadata;
+      metadata?: Stripe.Metadata;
 
       /**
        * If the Alipay account object is not reusable, the exact amount that you can create a charge for.
diff --git a/types/2020-08-27/ApplicationFees.d.ts b/types/2020-08-27/ApplicationFees.d.ts
index 6bdba8c4..5d02e1a3 100644
--- a/types/2020-08-27/ApplicationFees.d.ts
+++ b/types/2020-08-27/ApplicationFees.d.ts
@@ -89,7 +89,7 @@ declare module 'stripe' {
        */
       charge?: string;
 
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * Specifies which fields in the response should be expanded.
diff --git a/types/2020-08-27/BalanceTransactions.d.ts b/types/2020-08-27/BalanceTransactions.d.ts
index 3f2ffe19..463054fa 100644
--- a/types/2020-08-27/BalanceTransactions.d.ts
+++ b/types/2020-08-27/BalanceTransactions.d.ts
@@ -170,9 +170,9 @@ declare module 'stripe' {
     }
 
     interface BalanceTransactionListParams extends PaginationParams {
-      available_on?: RangeQueryParam | number;
+      available_on?: Stripe.RangeQueryParam | number;
 
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * Only return transactions in a certain currency. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
diff --git a/types/2020-08-27/BankAccounts.d.ts b/types/2020-08-27/BankAccounts.d.ts
index ae09ae96..22a60fe2 100644
--- a/types/2020-08-27/BankAccounts.d.ts
+++ b/types/2020-08-27/BankAccounts.d.ts
@@ -55,7 +55,7 @@ declare module 'stripe' {
       /**
        * The ID of the customer that the bank account is associated with.
        */
-      customer?: string | Stripe.Customer | Stripe.DeletedCustomer | null;
+      customer?: string | Stripe.Customer | DeletedCustomer | null;
 
       /**
        * Whether this bank account is the default external account for its currency.
@@ -77,7 +77,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata?: Metadata | null;
+      metadata?: Stripe.Metadata | null;
 
       /**
        * The routing transit number for the bank account.
diff --git a/types/2020-08-27/BitcoinReceivers.d.ts b/types/2020-08-27/BitcoinReceivers.d.ts
index cca1c3d5..5b682ce7 100644
--- a/types/2020-08-27/BitcoinReceivers.d.ts
+++ b/types/2020-08-27/BitcoinReceivers.d.ts
@@ -90,7 +90,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata | null;
+      metadata: Stripe.Metadata | null;
 
       /**
        * The ID of the payment created from the receiver, if any. Hidden when viewing the receiver with a publishable key.
diff --git a/types/2020-08-27/Cards.d.ts b/types/2020-08-27/Cards.d.ts
index 27f11368..f97a47c4 100644
--- a/types/2020-08-27/Cards.d.ts
+++ b/types/2020-08-27/Cards.d.ts
@@ -83,7 +83,7 @@ declare module 'stripe' {
       /**
        * The customer that this card belongs to. This attribute will not be in the card object if the card belongs to an account or recipient instead.
        */
-      customer?: string | Stripe.Customer | Stripe.DeletedCustomer | null;
+      customer?: string | Stripe.Customer | DeletedCustomer | null;
 
       /**
        * If a CVC was provided, results of the check: `pass`, `fail`, `unavailable`, or `unchecked`. A result of unchecked indicates that CVC was provided but hasn't been checked yet. Checks are typically performed when attaching a card to a Customer object, or when creating a charge. For more details, see [Check if a card is valid without a charge](https://support.stripe.com/questions/check-if-a-card-is-valid-without-a-charge).
@@ -145,7 +145,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata | null;
+      metadata: Stripe.Metadata | null;
 
       /**
        * Cardholder name.
diff --git a/types/2020-08-27/Charges.d.ts b/types/2020-08-27/Charges.d.ts
index 9eb68288..d36bf507 100644
--- a/types/2020-08-27/Charges.d.ts
+++ b/types/2020-08-27/Charges.d.ts
@@ -82,7 +82,7 @@ declare module 'stripe' {
       /**
        * ID of the customer this charge is for if one exists.
        */
-      customer: string | Stripe.Customer | Stripe.DeletedCustomer | null;
+      customer: string | Stripe.Customer | DeletedCustomer | null;
 
       /**
        * An arbitrary string attached to the object. Often useful for displaying to users.
@@ -134,7 +134,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata;
+      metadata: Stripe.Metadata;
 
       /**
        * The account (if any) the charge was made on behalf of without triggering an automatic transfer. See the [Connect documentation](https://stripe.com/docs/connect/charges-transfers) for details.
@@ -209,7 +209,7 @@ declare module 'stripe' {
       /**
        * This is a legacy field that will be removed in the future. It contains the Source, Card, or BankAccount object used for the charge. For details about the payment method used for this charge, refer to `payment_method` or `payment_method_details` instead.
        */
-      source: CustomerSource | null;
+      source: Stripe.CustomerSource | null;
 
       /**
        * The transfer ID which created this charge. Only present if the charge came from another Stripe account. [See the Connect documentation](https://stripe.com/docs/connect/destination-charges) for details.
@@ -264,7 +264,7 @@ declare module 'stripe' {
         /**
          * Billing address.
          */
-        address: Address | null;
+        address: Stripe.Address | null;
 
         /**
          * Email address.
@@ -842,7 +842,7 @@ declare module 'stripe' {
               /**
                * Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
                */
-              billing_address: Address | null;
+              billing_address: Stripe.Address | null;
 
               /**
                * Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
@@ -857,7 +857,7 @@ declare module 'stripe' {
               /**
                * Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
                */
-              shipping_address: Address | null;
+              shipping_address: Stripe.Address | null;
             }
 
             interface SamsungPay {}
@@ -874,7 +874,7 @@ declare module 'stripe' {
               /**
                * Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
                */
-              billing_address: Address | null;
+              billing_address: Stripe.Address | null;
 
               /**
                * Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
@@ -889,7 +889,7 @@ declare module 'stripe' {
               /**
                * Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
                */
-              shipping_address: Address | null;
+              shipping_address: Stripe.Address | null;
             }
           }
         }
@@ -1479,7 +1479,7 @@ declare module 'stripe' {
       }
 
       interface Shipping {
-        address?: Address;
+        address?: Stripe.Address;
 
         /**
          * The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
@@ -1558,7 +1558,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * The Stripe account ID for which these funds are intended. Automatically set if you use the `destination` parameter. For details, see [Creating Separate Charges and Transfers](https://stripe.com/docs/connect/charges-transfers#on-behalf-of).
@@ -1618,7 +1618,7 @@ declare module 'stripe' {
         /**
          * Shipping address.
          */
-        address: AddressParam;
+        address: Stripe.AddressParam;
 
         /**
          * The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
@@ -1685,7 +1685,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * This is the email address that the receipt for this charge will be sent to. If this field is updated, then a new email receipt will be sent to the updated address.
@@ -1719,7 +1719,7 @@ declare module 'stripe' {
         /**
          * Shipping address.
          */
-        address: AddressParam;
+        address: Stripe.AddressParam;
 
         /**
          * The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
@@ -1744,7 +1744,7 @@ declare module 'stripe' {
     }
 
     interface ChargeListParams extends PaginationParams {
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * Only return charges for the customer specified by this customer ID.
diff --git a/types/2020-08-27/Checkout/Sessions.d.ts b/types/2020-08-27/Checkout/Sessions.d.ts
index 0fc9a0eb..17814b15 100644
--- a/types/2020-08-27/Checkout/Sessions.d.ts
+++ b/types/2020-08-27/Checkout/Sessions.d.ts
@@ -61,7 +61,7 @@ declare module 'stripe' {
          * during the session unless an existing customer was provided when
          * the session was created.
          */
-        customer: string | Stripe.Customer | Stripe.DeletedCustomer | null;
+        customer: string | Stripe.Customer | DeletedCustomer | null;
 
         /**
          * If provided, this value will be used when the Customer object is created.
@@ -90,7 +90,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
          */
-        metadata: Metadata | null;
+        metadata: Stripe.Metadata | null;
 
         /**
          * The mode of the Checkout Session.
@@ -200,7 +200,7 @@ declare module 'stripe' {
         type PaymentStatus = 'no_payment_required' | 'paid' | 'unpaid';
 
         interface Shipping {
-          address?: Address;
+          address?: Stripe.Address;
 
           /**
            * The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
@@ -625,7 +625,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: MetadataParam;
+        metadata?: Stripe.MetadataParam;
 
         /**
          * The mode of the Checkout Session. Required when using prices or `setup` mode. Pass `subscription` if Checkout session includes at least one recurring item.
@@ -773,7 +773,7 @@ declare module 'stripe' {
               /**
                * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
                */
-              metadata?: MetadataParam;
+              metadata?: Stripe.MetadataParam;
 
               /**
                * The product's name, meant to be displayable to the customer. Whenever this product is sold via a subscription, name will show up on associated invoice line item descriptions.
@@ -862,7 +862,7 @@ declare module 'stripe' {
           /**
            * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
            */
-          metadata?: MetadataParam;
+          metadata?: Stripe.MetadataParam;
 
           /**
            * The Stripe account ID for which these funds are intended. For details,
@@ -929,7 +929,7 @@ declare module 'stripe' {
             /**
              * Shipping address.
              */
-            address: AddressParam;
+            address: Stripe.AddressParam;
 
             /**
              * The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
@@ -991,7 +991,7 @@ declare module 'stripe' {
           /**
            * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
            */
-          metadata?: MetadataParam;
+          metadata?: Stripe.MetadataParam;
 
           /**
            * The Stripe account for which the setup is intended.
@@ -1276,7 +1276,7 @@ declare module 'stripe' {
           /**
            * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
            */
-          metadata?: MetadataParam;
+          metadata?: Stripe.MetadataParam;
 
           /**
            * Unix timestamp representing the end of the trial period the customer
diff --git a/types/2020-08-27/Coupons.d.ts b/types/2020-08-27/Coupons.d.ts
index 8038f345..b53f7b95 100644
--- a/types/2020-08-27/Coupons.d.ts
+++ b/types/2020-08-27/Coupons.d.ts
@@ -57,7 +57,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata | null;
+      metadata: Stripe.Metadata | null;
 
       /**
        * Name of the coupon displayed to customers on for instance invoices or receipts.
@@ -160,7 +160,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * Name of the coupon displayed to customers on, for instance invoices, or receipts. By default the `id` is shown if `name` is not set.
@@ -205,7 +205,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * Name of the coupon displayed to customers on, for instance invoices, or receipts. By default the `id` is shown if `name` is not set.
@@ -217,7 +217,7 @@ declare module 'stripe' {
       /**
        * A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options.
        */
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * Specifies which fields in the response should be expanded.
diff --git a/types/2020-08-27/CreditNoteLineItems.d.ts b/types/2020-08-27/CreditNoteLineItems.d.ts
index 00b26166..57a4da6a 100644
--- a/types/2020-08-27/CreditNoteLineItems.d.ts
+++ b/types/2020-08-27/CreditNoteLineItems.d.ts
@@ -86,7 +86,7 @@ declare module 'stripe' {
         /**
          * The discount that was applied to get this discount amount.
          */
-        discount: string | Stripe.Discount | Stripe.DeletedDiscount;
+        discount: string | Stripe.Discount | DeletedDiscount;
       }
 
       interface TaxAmount {
@@ -150,7 +150,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: MetadataParam;
+      metadata?: Stripe.MetadataParam;
 
       /**
        * The integer amount in %s representing the amount that is credited outside of Stripe.
diff --git a/types/2020-08-27/CreditNotes.d.ts b/types/2020-08-27/CreditNotes.d.ts
index a83aedae..9bfef484 100644
--- a/types/2020-08-27/CreditNotes.d.ts
+++ b/types/2020-08-27/CreditNotes.d.ts
@@ -33,7 +33,7 @@ declare module 'stripe' {
       /**
        * ID of the customer.
        */
-      customer: string | Stripe.Customer | Stripe.DeletedCustomer;
+      customer: string | Stripe.Customer | DeletedCustomer;
 
       /**
        * Customer balance transaction related to this credit note.
@@ -76,7 +76,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata | null;
+      metadata: Stripe.Metadata | null;
 
       /**
        * A unique number that identifies this particular credit note and appears on the PDF of the credit note and its associated invoice.
@@ -144,7 +144,7 @@ declare module 'stripe' {
         /**
          * The discount that was applied to get this discount amount.
          */
-        discount: string | Stripe.Discount | Stripe.DeletedDiscount;
+        discount: string | Stripe.Discount | DeletedDiscount;
       }
 
       type Reason =
@@ -209,7 +209,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: MetadataParam;
+      metadata?: Stripe.MetadataParam;
 
       /**
        * The integer amount in %s representing the amount that is credited outside of Stripe.
@@ -307,7 +307,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: MetadataParam;
+      metadata?: Stripe.MetadataParam;
     }
 
     interface CreditNoteListParams extends PaginationParams {
@@ -361,7 +361,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: MetadataParam;
+      metadata?: Stripe.MetadataParam;
 
       /**
        * The integer amount in %s representing the amount that is credited outside of Stripe.
diff --git a/types/2020-08-27/CustomerBalanceTransactions.d.ts b/types/2020-08-27/CustomerBalanceTransactions.d.ts
index 86630a41..3797fb31 100644
--- a/types/2020-08-27/CustomerBalanceTransactions.d.ts
+++ b/types/2020-08-27/CustomerBalanceTransactions.d.ts
@@ -63,7 +63,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata | null;
+      metadata: Stripe.Metadata | null;
 
       /**
        * Transaction type: `adjustment`, `applied_to_invoice`, `credit_note`, `initial`, `invoice_too_large`, `invoice_too_small`, `unspent_receiver_credit`, or `unapplied_from_invoice`. See the [Customer Balance page](https://stripe.com/docs/billing/customer/balance#types) to learn more about transaction types.
@@ -108,7 +108,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
     }
 
     interface CustomerBalanceTransactionRetrieveParams {
@@ -132,7 +132,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
     }
 
     interface CustomerBalanceTransactionListParams extends PaginationParams {
diff --git a/types/2020-08-27/CustomerSources.d.ts b/types/2020-08-27/CustomerSources.d.ts
index 71003268..4dc84b60 100644
--- a/types/2020-08-27/CustomerSources.d.ts
+++ b/types/2020-08-27/CustomerSources.d.ts
@@ -15,7 +15,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: MetadataParam;
+      metadata?: Stripe.MetadataParam;
     }
 
     interface CustomerSourceRetrieveParams {
@@ -84,7 +84,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * Cardholder name.
diff --git a/types/2020-08-27/Customers.d.ts b/types/2020-08-27/Customers.d.ts
index e43ddf8d..2eb1e9ce 100644
--- a/types/2020-08-27/Customers.d.ts
+++ b/types/2020-08-27/Customers.d.ts
@@ -18,7 +18,7 @@ declare module 'stripe' {
       /**
        * The customer's address.
        */
-      address: Address | null;
+      address: Stripe.Address | null;
 
       /**
        * Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice. The balance does not refer to any unpaid invoices; it solely takes into account amounts that have yet to be successfully applied to any invoice. This balance is only taken into account as invoices are finalized.
@@ -40,7 +40,7 @@ declare module 'stripe' {
        *
        * If you are using payment methods created via the PaymentMethods API, see the [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) field instead.
        */
-      default_source: string | CustomerSource | null;
+      default_source: string | Stripe.CustomerSource | null;
 
       deleted?: void;
 
@@ -79,7 +79,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata;
+      metadata: Stripe.Metadata;
 
       /**
        * The customer's full name or business name.
@@ -109,7 +109,7 @@ declare module 'stripe' {
       /**
        * The customer's payment sources, if any.
        */
-      sources?: ApiList<CustomerSource>;
+      sources?: ApiList<Stripe.CustomerSource>;
 
       /**
        * The customer's current subscriptions, if any.
@@ -160,7 +160,7 @@ declare module 'stripe' {
       }
 
       interface Shipping {
-        address?: Address;
+        address?: Stripe.Address;
 
         /**
          * The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
@@ -210,7 +210,7 @@ declare module 'stripe' {
       /**
        * The customer's address.
        */
-      address?: Stripe.Emptyable<AddressParam>;
+      address?: Stripe.Emptyable<Stripe.AddressParam>;
 
       /**
        * An integer amount in %s that represents the customer's current balance, which affect the customer's future invoices. A negative amount represents a credit that decreases the amount due on an invoice; a positive amount increases the amount due on an invoice.
@@ -247,7 +247,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * The customer's full name or business name.
@@ -330,7 +330,7 @@ declare module 'stripe' {
         /**
          * Customer shipping address.
          */
-        address: AddressParam;
+        address: Stripe.AddressParam;
 
         /**
          * Customer name.
@@ -405,7 +405,7 @@ declare module 'stripe' {
       /**
        * The customer's address.
        */
-      address?: Stripe.Emptyable<AddressParam>;
+      address?: Stripe.Emptyable<Stripe.AddressParam>;
 
       /**
        * An integer amount in %s that represents the customer's current balance, which affect the customer's future invoices. A negative amount represents a credit that decreases the amount due on an invoice; a positive amount increases the amount due on an invoice.
@@ -451,7 +451,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * The customer's full name or business name.
@@ -532,7 +532,7 @@ declare module 'stripe' {
         /**
          * Customer shipping address.
          */
-        address: AddressParam;
+        address: Stripe.AddressParam;
 
         /**
          * Customer name.
@@ -549,7 +549,7 @@ declare module 'stripe' {
     }
 
     interface CustomerListParams extends PaginationParams {
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * A case-sensitive filter on the list based on the customer's `email` field. The value must be a string.
diff --git a/types/2020-08-27/Discounts.d.ts b/types/2020-08-27/Discounts.d.ts
index 2034aa2e..330e84ef 100644
--- a/types/2020-08-27/Discounts.d.ts
+++ b/types/2020-08-27/Discounts.d.ts
@@ -30,7 +30,7 @@ declare module 'stripe' {
       /**
        * The ID of the customer associated with this discount.
        */
-      customer: string | Stripe.Customer | Stripe.DeletedCustomer | null;
+      customer: string | Stripe.Customer | DeletedCustomer | null;
 
       deleted?: void;
 
@@ -94,7 +94,7 @@ declare module 'stripe' {
       /**
        * The ID of the customer associated with this discount.
        */
-      customer: string | Stripe.Customer | Stripe.DeletedCustomer | null;
+      customer: string | Stripe.Customer | DeletedCustomer | null;
 
       /**
        * Always true for a deleted object
diff --git a/types/2020-08-27/Disputes.d.ts b/types/2020-08-27/Disputes.d.ts
index ea98d456..67f40fa1 100644
--- a/types/2020-08-27/Disputes.d.ts
+++ b/types/2020-08-27/Disputes.d.ts
@@ -57,7 +57,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata;
+      metadata: Stripe.Metadata;
 
       /**
        * Network-dependent reason code for the dispute.
@@ -272,7 +272,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * Whether to immediately submit evidence to the bank. If `false`, evidence is staged on the dispute. Staged evidence is visible in the API and Dashboard, and can be submitted to the bank by making another request with this attribute set to `true` (the default).
@@ -425,7 +425,7 @@ declare module 'stripe' {
        */
       charge?: string;
 
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * Specifies which fields in the response should be expanded.
diff --git a/types/2020-08-27/Events.d.ts b/types/2020-08-27/Events.d.ts
index 7aad5f31..23b4e78a 100644
--- a/types/2020-08-27/Events.d.ts
+++ b/types/2020-08-27/Events.d.ts
@@ -93,7 +93,7 @@ declare module 'stripe' {
     }
 
     interface EventListParams extends PaginationParams {
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * Filter events by whether all webhooks were successfully delivered. If false, events which are still pending or have failed all delivery attempts to a webhook endpoint will be returned.
diff --git a/types/2020-08-27/ExternalAccounts.d.ts b/types/2020-08-27/ExternalAccounts.d.ts
index 6647a2d7..9b6ad6e8 100644
--- a/types/2020-08-27/ExternalAccounts.d.ts
+++ b/types/2020-08-27/ExternalAccounts.d.ts
@@ -20,7 +20,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: MetadataParam;
+      metadata?: Stripe.MetadataParam;
     }
 
     interface ExternalAccountRetrieveParams {
@@ -96,7 +96,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * Cardholder name.
diff --git a/types/2020-08-27/FeeRefunds.d.ts b/types/2020-08-27/FeeRefunds.d.ts
index 9dcc2b39..754b9e87 100644
--- a/types/2020-08-27/FeeRefunds.d.ts
+++ b/types/2020-08-27/FeeRefunds.d.ts
@@ -43,7 +43,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata | null;
+      metadata: Stripe.Metadata | null;
     }
 
     interface FeeRefundCreateParams {
@@ -60,7 +60,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: MetadataParam;
+      metadata?: Stripe.MetadataParam;
     }
 
     interface FeeRefundRetrieveParams {
@@ -79,7 +79,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
     }
 
     interface FeeRefundListParams extends PaginationParams {
diff --git a/types/2020-08-27/FileLinks.d.ts b/types/2020-08-27/FileLinks.d.ts
index 25e2ee5b..a18e3b65 100644
--- a/types/2020-08-27/FileLinks.d.ts
+++ b/types/2020-08-27/FileLinks.d.ts
@@ -43,7 +43,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata;
+      metadata: Stripe.Metadata;
 
       /**
        * The publicly accessible URL to download the file.
@@ -70,7 +70,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
     }
 
     interface FileLinkRetrieveParams {
@@ -94,11 +94,11 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
     }
 
     interface FileLinkListParams extends PaginationParams {
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * Specifies which fields in the response should be expanded.
diff --git a/types/2020-08-27/Files.d.ts b/types/2020-08-27/Files.d.ts
index fb2fe96a..11793267 100644
--- a/types/2020-08-27/Files.d.ts
+++ b/types/2020-08-27/Files.d.ts
@@ -83,7 +83,7 @@ declare module 'stripe' {
     }
 
     interface FileListParams extends PaginationParams {
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * Specifies which fields in the response should be expanded.
diff --git a/types/2020-08-27/InvoiceItems.d.ts b/types/2020-08-27/InvoiceItems.d.ts
index d44b4d9d..88dc205b 100644
--- a/types/2020-08-27/InvoiceItems.d.ts
+++ b/types/2020-08-27/InvoiceItems.d.ts
@@ -28,7 +28,7 @@ declare module 'stripe' {
       /**
        * The ID of the customer who will be billed when this invoice item is billed.
        */
-      customer: string | Stripe.Customer | Stripe.DeletedCustomer;
+      customer: string | Stripe.Customer | DeletedCustomer;
 
       /**
        * Time at which the object was created. Measured in seconds since the Unix epoch.
@@ -65,7 +65,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata | null;
+      metadata: Stripe.Metadata | null;
 
       period: InvoiceItem.Period;
 
@@ -193,7 +193,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * The period associated with this invoice item.
@@ -320,7 +320,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * The period associated with this invoice item.
@@ -407,7 +407,7 @@ declare module 'stripe' {
     }
 
     interface InvoiceItemListParams extends PaginationParams {
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * The identifier of the customer whose invoice items to return. If none is provided, all invoice items will be returned.
diff --git a/types/2020-08-27/InvoiceLineItems.d.ts b/types/2020-08-27/InvoiceLineItems.d.ts
index 0d938f5c..4c62ec4a 100644
--- a/types/2020-08-27/InvoiceLineItems.d.ts
+++ b/types/2020-08-27/InvoiceLineItems.d.ts
@@ -58,7 +58,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Note that for line items with `type=subscription` this will reflect the metadata of the subscription that caused the line item to be created.
        */
-      metadata: Metadata;
+      metadata: Stripe.Metadata;
 
       period: InvoiceLineItem.Period;
 
@@ -118,7 +118,7 @@ declare module 'stripe' {
         /**
          * The discount that was applied to get this discount amount.
          */
-        discount: string | Stripe.Discount | Stripe.DeletedDiscount;
+        discount: string | Stripe.Discount | DeletedDiscount;
       }
 
       interface Period {
@@ -309,7 +309,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: Stripe.Emptyable<MetadataParam>;
+        metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
         /**
          * The period associated with this invoice item.
@@ -420,7 +420,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: Stripe.Emptyable<MetadataParam>;
+        metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
         /**
          * Plan ID for this item, as a string.
diff --git a/types/2020-08-27/Invoices.d.ts b/types/2020-08-27/Invoices.d.ts
index cc7ab28b..ac9a284e 100644
--- a/types/2020-08-27/Invoices.d.ts
+++ b/types/2020-08-27/Invoices.d.ts
@@ -93,12 +93,12 @@ declare module 'stripe' {
       /**
        * The ID of the customer who will be billed.
        */
-      customer: string | Stripe.Customer | Stripe.DeletedCustomer;
+      customer: string | Stripe.Customer | DeletedCustomer;
 
       /**
        * The customer's address. Until the invoice is finalized, this field will equal `customer.address`. Once the invoice is finalized, this field will no longer be updated.
        */
-      customer_address: Address | null;
+      customer_address: Stripe.Address | null;
 
       /**
        * The customer's email. Until the invoice is finalized, this field will equal `customer.email`. Once the invoice is finalized, this field will no longer be updated.
@@ -138,7 +138,7 @@ declare module 'stripe' {
       /**
        * ID of the default payment source for the invoice. It must belong to the customer associated with the invoice and be in a chargeable state. If not set, defaults to the subscription's default source, if any, or to the customer's default source.
        */
-      default_source: string | CustomerSource | null;
+      default_source: string | Stripe.CustomerSource | null;
 
       /**
        * The tax rates applied to this invoice, if any.
@@ -160,9 +160,7 @@ declare module 'stripe' {
       /**
        * The discounts applied to the invoice. Line item discounts are applied before invoice discounts. Use `expand[]=discounts` to expand each discount.
        */
-      discounts: Array<
-        string | Stripe.Discount | Stripe.DeletedDiscount
-      > | null;
+      discounts: Array<string | Stripe.Discount | DeletedDiscount> | null;
 
       /**
        * The date on which payment for this invoice is due. This value will be `null` for invoices where `collection_method=charge_automatically`.
@@ -207,7 +205,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata | null;
+      metadata: Stripe.Metadata | null;
 
       /**
        * The time at which payment will next be attempted. This value will be `null` for invoices where `collection_method=send_invoice`.
@@ -333,7 +331,7 @@ declare module 'stripe' {
       type CollectionMethod = 'charge_automatically' | 'send_invoice';
 
       interface CustomerShipping {
-        address?: Address;
+        address?: Stripe.Address;
 
         /**
          * The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
@@ -505,7 +503,7 @@ declare module 'stripe' {
          */
         setup_intent?: Stripe.SetupIntent;
 
-        source?: CustomerSource;
+        source?: Stripe.CustomerSource;
 
         /**
          * The type of error returned. One of `api_connection_error`, `api_error`, `authentication_error`, `card_error`, `idempotency_error`, `invalid_request_error`, or `rate_limit_error`
@@ -589,7 +587,7 @@ declare module 'stripe' {
         /**
          * The discount that was applied to get this discount amount.
          */
-        discount: string | Stripe.Discount | Stripe.DeletedDiscount;
+        discount: string | Stripe.Discount | DeletedDiscount;
       }
 
       interface TotalTaxAmount {
@@ -716,7 +714,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * Extra information about a charge for the customer's credit card statement. It must contain at least one letter. If not specified and this invoice is part of a subscription, the default `statement_descriptor` will be set to the first subscription item's product's `statement_descriptor`.
@@ -850,7 +848,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * Extra information about a charge for the customer's credit card statement. It must contain at least one letter. If not specified and this invoice is part of a subscription, the default `statement_descriptor` will be set to the first subscription item's product's `statement_descriptor`.
@@ -909,14 +907,14 @@ declare module 'stripe' {
        */
       collection_method?: InvoiceListParams.CollectionMethod;
 
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * Only return invoices for the customer specified by this customer ID.
        */
       customer?: string;
 
-      due_date?: RangeQueryParam | number;
+      due_date?: Stripe.RangeQueryParam | number;
 
       /**
        * Specifies which fields in the response should be expanded.
@@ -1144,7 +1142,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: Stripe.Emptyable<MetadataParam>;
+        metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
         /**
          * The period associated with this invoice item.
@@ -1255,7 +1253,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: Stripe.Emptyable<MetadataParam>;
+        metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
         /**
          * Plan ID for this item, as a string.
diff --git a/types/2020-08-27/Issuing/Authorizations.d.ts b/types/2020-08-27/Issuing/Authorizations.d.ts
index d930c45e..f5aea83a 100644
--- a/types/2020-08-27/Issuing/Authorizations.d.ts
+++ b/types/2020-08-27/Issuing/Authorizations.d.ts
@@ -81,7 +81,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
          */
-        metadata: Metadata;
+        metadata: Stripe.Metadata;
 
         /**
          * The pending authorization request. This field will only be non-null during an `issuing_authorization.request` webhook.
@@ -321,7 +321,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: Stripe.Emptyable<MetadataParam>;
+        metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
       }
 
       interface AuthorizationListParams extends PaginationParams {
@@ -338,7 +338,7 @@ declare module 'stripe' {
         /**
          * Only return authorizations that were created during the given date interval.
          */
-        created?: RangeQueryParam | number;
+        created?: Stripe.RangeQueryParam | number;
 
         /**
          * Specifies which fields in the response should be expanded.
@@ -369,7 +369,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: Stripe.Emptyable<MetadataParam>;
+        metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
       }
 
       interface AuthorizationDeclineParams {
@@ -381,7 +381,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: Stripe.Emptyable<MetadataParam>;
+        metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
       }
 
       class AuthorizationsResource {
diff --git a/types/2020-08-27/Issuing/Cardholders.d.ts b/types/2020-08-27/Issuing/Cardholders.d.ts
index 56ecbd33..05cf234e 100644
--- a/types/2020-08-27/Issuing/Cardholders.d.ts
+++ b/types/2020-08-27/Issuing/Cardholders.d.ts
@@ -46,7 +46,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
          */
-        metadata: Metadata;
+        metadata: Stripe.Metadata;
 
         /**
          * The cardholder's name. This will be printed on cards issued to them.
@@ -78,7 +78,7 @@ declare module 'stripe' {
 
       namespace Cardholder {
         interface Billing {
-          address: Address;
+          address: Stripe.Address;
         }
 
         interface Company {
@@ -1140,7 +1140,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: MetadataParam;
+        metadata?: Stripe.MetadataParam;
 
         /**
          * The cardholder's phone number. This will be transformed to [E.164](https://en.wikipedia.org/wiki/E.164) if it is not provided in that format already.
@@ -2231,7 +2231,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: MetadataParam;
+        metadata?: Stripe.MetadataParam;
 
         /**
          * The cardholder's phone number.
@@ -3288,7 +3288,7 @@ declare module 'stripe' {
         /**
          * Only return cardholders that were created during the given date interval.
          */
-        created?: RangeQueryParam | number;
+        created?: Stripe.RangeQueryParam | number;
 
         /**
          * Only return cardholders that have the given email address.
diff --git a/types/2020-08-27/Issuing/Cards.d.ts b/types/2020-08-27/Issuing/Cards.d.ts
index b0146484..836a2077 100644
--- a/types/2020-08-27/Issuing/Cards.d.ts
+++ b/types/2020-08-27/Issuing/Cards.d.ts
@@ -71,7 +71,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
          */
-        metadata: Metadata;
+        metadata: Stripe.Metadata;
 
         /**
          * The full unredacted card number. For security reasons, this is only available for virtual cards, and will be omitted unless you explicitly request it with [the `expand` parameter](https://stripe.com/docs/api/expanding_objects). Additionally, it's only available via the ["Retrieve a card" endpoint](https://stripe.com/docs/api/issuing/cards/retrieve), not via "List all cards" or any other endpoint.
@@ -117,7 +117,7 @@ declare module 'stripe' {
         type ReplacementReason = 'damaged' | 'expired' | 'lost' | 'stolen';
 
         interface Shipping {
-          address: Address;
+          address: Stripe.Address;
 
           /**
            * The delivery company that shipped a card.
@@ -1126,7 +1126,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: MetadataParam;
+        metadata?: Stripe.MetadataParam;
 
         /**
          * The card this is meant to be a replacement for (if any).
@@ -2159,7 +2159,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: Stripe.Emptyable<MetadataParam>;
+        metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
         /**
          * Rules that control spending for this card. Refer to our [documentation](https://stripe.com/docs/issuing/controls/spending-controls) for more details.
@@ -3103,7 +3103,7 @@ declare module 'stripe' {
         /**
          * Only return cards that were issued during the given date interval.
          */
-        created?: RangeQueryParam | number;
+        created?: Stripe.RangeQueryParam | number;
 
         /**
          * Only return cards that have the given expiration month.
diff --git a/types/2020-08-27/Issuing/Disputes.d.ts b/types/2020-08-27/Issuing/Disputes.d.ts
index 97975a0a..7a23cd02 100644
--- a/types/2020-08-27/Issuing/Disputes.d.ts
+++ b/types/2020-08-27/Issuing/Disputes.d.ts
@@ -46,7 +46,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
          */
-        metadata?: Metadata;
+        metadata?: Stripe.Metadata;
 
         /**
          * Current status of the dispute.
@@ -336,7 +336,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: MetadataParam;
+        metadata?: Stripe.MetadataParam;
       }
 
       namespace DisputeCreateParams {
@@ -643,7 +643,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: Stripe.Emptyable<MetadataParam>;
+        metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
       }
 
       namespace DisputeUpdateParams {
@@ -933,7 +933,7 @@ declare module 'stripe' {
         /**
          * Select Issuing disputes that were created during the given date interval.
          */
-        created?: RangeQueryParam | number;
+        created?: Stripe.RangeQueryParam | number;
 
         /**
          * Specifies which fields in the response should be expanded.
@@ -964,7 +964,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: Stripe.Emptyable<MetadataParam>;
+        metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
       }
 
       class DisputesResource {
diff --git a/types/2020-08-27/Issuing/Transactions.d.ts b/types/2020-08-27/Issuing/Transactions.d.ts
index 32f3d221..3a0ce1ad 100644
--- a/types/2020-08-27/Issuing/Transactions.d.ts
+++ b/types/2020-08-27/Issuing/Transactions.d.ts
@@ -81,7 +81,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
          */
-        metadata: Metadata;
+        metadata: Stripe.Metadata;
 
         /**
          * Additional purchase information that is optionally provided by the merchant.
@@ -304,7 +304,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: Stripe.Emptyable<MetadataParam>;
+        metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
       }
 
       interface TransactionListParams extends PaginationParams {
@@ -321,7 +321,7 @@ declare module 'stripe' {
         /**
          * Only return transactions that were created during the given date interval.
          */
-        created?: RangeQueryParam | number;
+        created?: Stripe.RangeQueryParam | number;
 
         /**
          * Specifies which fields in the response should be expanded.
diff --git a/types/2020-08-27/OrderReturns.d.ts b/types/2020-08-27/OrderReturns.d.ts
index 9a4e5882..d593e074 100644
--- a/types/2020-08-27/OrderReturns.d.ts
+++ b/types/2020-08-27/OrderReturns.d.ts
@@ -62,7 +62,7 @@ declare module 'stripe' {
       /**
        * Date this return was created.
        */
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * Specifies which fields in the response should be expanded.
diff --git a/types/2020-08-27/Orders.d.ts b/types/2020-08-27/Orders.d.ts
index e3088cd1..d296a6e3 100644
--- a/types/2020-08-27/Orders.d.ts
+++ b/types/2020-08-27/Orders.d.ts
@@ -53,7 +53,7 @@ declare module 'stripe' {
       /**
        * The customer used for the order.
        */
-      customer: string | Stripe.Customer | Stripe.DeletedCustomer | null;
+      customer: string | Stripe.Customer | DeletedCustomer | null;
 
       /**
        * The email address of the customer placing the order.
@@ -78,7 +78,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata | null;
+      metadata: Stripe.Metadata | null;
 
       /**
        * A list of returns that have taken place for this order.
@@ -123,7 +123,7 @@ declare module 'stripe' {
 
     namespace Order {
       interface Shipping {
-        address?: Address;
+        address?: Stripe.Address;
 
         /**
          * The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
@@ -254,7 +254,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: MetadataParam;
+      metadata?: Stripe.MetadataParam;
 
       /**
        * Shipping address for the order. Required if any of the SKUs are for products that have `shippable` set to true.
@@ -291,7 +291,7 @@ declare module 'stripe' {
         /**
          * Customer shipping address.
          */
-        address: AddressParam;
+        address: Stripe.AddressParam;
 
         /**
          * Customer name.
@@ -326,7 +326,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * The shipping method to select for fulfilling this order. If specified, must be one of the `id`s of a shipping method in the `shipping_methods` array. If specified, will overwrite the existing selected shipping method, updating `items` as necessary.
@@ -364,7 +364,7 @@ declare module 'stripe' {
       /**
        * Date this order was created.
        */
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * Only return orders for the given customer.
@@ -402,22 +402,22 @@ declare module 'stripe' {
         /**
          * Date this order was canceled.
          */
-        canceled?: RangeQueryParam | number;
+        canceled?: Stripe.RangeQueryParam | number;
 
         /**
          * Date this order was fulfilled.
          */
-        fulfilled?: RangeQueryParam | number;
+        fulfilled?: Stripe.RangeQueryParam | number;
 
         /**
          * Date this order was paid.
          */
-        paid?: RangeQueryParam | number;
+        paid?: Stripe.RangeQueryParam | number;
 
         /**
          * Date this order was returned.
          */
-        returned?: RangeQueryParam | number;
+        returned?: Stripe.RangeQueryParam | number;
       }
     }
 
@@ -445,7 +445,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: MetadataParam;
+      metadata?: Stripe.MetadataParam;
 
       /**
        * A [Token](https://stripe.com/docs/api#tokens)'s or a [Source](https://stripe.com/docs/api#sources)'s ID, as returned by [Elements](https://stripe.com/docs/elements). If no customer was attached to the order at creation, either `source` or `customer` is required. Otherwise, the specified source will be charged intead of the customer attached to the order.
diff --git a/types/2020-08-27/PaymentIntents.d.ts b/types/2020-08-27/PaymentIntents.d.ts
index 1f3051a0..86bb1cd7 100644
--- a/types/2020-08-27/PaymentIntents.d.ts
+++ b/types/2020-08-27/PaymentIntents.d.ts
@@ -88,7 +88,7 @@ declare module 'stripe' {
        *
        * If present in combination with [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage), this PaymentIntent's payment method will be attached to the Customer after the PaymentIntent has been confirmed and any required actions from the user are complete.
        */
-      customer: string | Stripe.Customer | Stripe.DeletedCustomer | null;
+      customer: string | Stripe.Customer | DeletedCustomer | null;
 
       /**
        * An arbitrary string attached to the object. Often useful for displaying to users.
@@ -113,7 +113,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. For more information, see the [documentation](https://stripe.com/docs/payments/payment-intents/creating-payment-intents#storing-information-in-metadata).
        */
-      metadata: Metadata;
+      metadata: Stripe.Metadata;
 
       /**
        * If present, this property tells you what actions you need to take in order for your customer to fulfill a payment using the provided source.
@@ -169,11 +169,11 @@ declare module 'stripe' {
        */
       source:
         | string
-        | CustomerSource
-        | Stripe.DeletedAlipayAccount
-        | Stripe.DeletedBankAccount
-        | Stripe.DeletedBitcoinReceiver
-        | Stripe.DeletedCard
+        | Stripe.CustomerSource
+        | DeletedAlipayAccount
+        | DeletedBankAccount
+        | DeletedBitcoinReceiver
+        | DeletedCard
         | null;
 
       /**
@@ -302,7 +302,7 @@ declare module 'stripe' {
          */
         setup_intent?: Stripe.SetupIntent;
 
-        source?: CustomerSource;
+        source?: Stripe.CustomerSource;
 
         /**
          * The type of error returned. One of `api_connection_error`, `api_error`, `authentication_error`, `card_error`, `idempotency_error`, `invalid_request_error`, or `rate_limit_error`
@@ -543,7 +543,7 @@ declare module 'stripe' {
       type SetupFutureUsage = 'off_session' | 'on_session';
 
       interface Shipping {
-        address?: Address;
+        address?: Stripe.Address;
 
         /**
          * The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
@@ -655,7 +655,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: MetadataParam;
+      metadata?: Stripe.MetadataParam;
 
       /**
        * Set to `true` to indicate that the customer is not in your checkout flow during this payment attempt, and therefore is unable to authenticate. This parameter is intended for scenarios where you collect card details and [charge them later](https://stripe.com/docs/payments/cards/charging-saved-cards). This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm).
@@ -857,7 +857,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: MetadataParam;
+        metadata?: Stripe.MetadataParam;
 
         /**
          * If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method.
@@ -1273,7 +1273,7 @@ declare module 'stripe' {
         /**
          * Shipping address.
          */
-        address: AddressParam;
+        address: Stripe.AddressParam;
 
         /**
          * The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
@@ -1368,7 +1368,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * ID of the payment method (a PaymentMethod, Card, or [compatible Source](https://stripe.com/docs/payments/payment-methods#compatibility) object) to attach to this PaymentIntent.
@@ -1496,7 +1496,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: MetadataParam;
+        metadata?: Stripe.MetadataParam;
 
         /**
          * If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method.
@@ -1912,7 +1912,7 @@ declare module 'stripe' {
         /**
          * Shipping address.
          */
-        address: AddressParam;
+        address: Stripe.AddressParam;
 
         /**
          * The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
@@ -1947,7 +1947,7 @@ declare module 'stripe' {
       /**
        * A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options.
        */
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * Only return PaymentIntents for the customer specified by this customer ID.
@@ -2249,7 +2249,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: MetadataParam;
+        metadata?: Stripe.MetadataParam;
 
         /**
          * If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method.
@@ -2665,7 +2665,7 @@ declare module 'stripe' {
         /**
          * Shipping address.
          */
-        address: AddressParam;
+        address: Stripe.AddressParam;
 
         /**
          * The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
diff --git a/types/2020-08-27/PaymentMethods.d.ts b/types/2020-08-27/PaymentMethods.d.ts
index 238e6afd..8100543c 100644
--- a/types/2020-08-27/PaymentMethods.d.ts
+++ b/types/2020-08-27/PaymentMethods.d.ts
@@ -59,7 +59,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata | null;
+      metadata: Stripe.Metadata | null;
 
       oxxo?: PaymentMethod.Oxxo;
 
@@ -118,7 +118,7 @@ declare module 'stripe' {
         /**
          * Billing address.
          */
-        address: Address | null;
+        address: Stripe.Address | null;
 
         /**
          * Email address.
@@ -280,7 +280,7 @@ declare module 'stripe' {
             /**
              * Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
              */
-            billing_address: Address | null;
+            billing_address: Stripe.Address | null;
 
             /**
              * Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
@@ -295,7 +295,7 @@ declare module 'stripe' {
             /**
              * Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
              */
-            shipping_address: Address | null;
+            shipping_address: Stripe.Address | null;
           }
 
           interface SamsungPay {}
@@ -312,7 +312,7 @@ declare module 'stripe' {
             /**
              * Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
              */
-            billing_address: Address | null;
+            billing_address: Stripe.Address | null;
 
             /**
              * Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
@@ -327,7 +327,7 @@ declare module 'stripe' {
             /**
              * Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
              */
-            shipping_address: Address | null;
+            shipping_address: Stripe.Address | null;
           }
         }
       }
@@ -604,7 +604,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: MetadataParam;
+      metadata?: Stripe.MetadataParam;
 
       /**
        * If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method.
@@ -921,7 +921,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * This is a legacy parameter that will be removed in the future. It is a hash that does not accept any keys.
diff --git a/types/2020-08-27/Payouts.d.ts b/types/2020-08-27/Payouts.d.ts
index 8f31da2b..2925ac0d 100644
--- a/types/2020-08-27/Payouts.d.ts
+++ b/types/2020-08-27/Payouts.d.ts
@@ -56,9 +56,9 @@ declare module 'stripe' {
       destination:
         | string
         | Stripe.BankAccount
-        | Stripe.DeletedBankAccount
+        | DeletedBankAccount
         | Stripe.Card
-        | Stripe.DeletedCard
+        | DeletedCard
         | null;
 
       /**
@@ -84,7 +84,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata | null;
+      metadata: Stripe.Metadata | null;
 
       /**
        * The method used to send this payout, which can be `standard` or `instant`. `instant` is only supported for payouts to debit cards. (See [Instant payouts for marketplaces](https://stripe.com/blog/instant-payouts-for-marketplaces) for more information.)
@@ -155,7 +155,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: MetadataParam;
+      metadata?: Stripe.MetadataParam;
 
       /**
        * The method used to send this payout, which can be `standard` or `instant`. `instant` is only supported for payouts to debit cards. (See [Instant payouts for marketplaces for more information](https://stripe.com/blog/instant-payouts-for-marketplaces).)
@@ -195,13 +195,13 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
     }
 
     interface PayoutListParams extends PaginationParams {
-      arrival_date?: RangeQueryParam | number;
+      arrival_date?: Stripe.RangeQueryParam | number;
 
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * The ID of an external account - only return payouts sent to this external account.
@@ -235,7 +235,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: MetadataParam;
+      metadata?: Stripe.MetadataParam;
     }
 
     class PayoutsResource {
diff --git a/types/2020-08-27/Persons.d.ts b/types/2020-08-27/Persons.d.ts
index ead4fdab..f0a0a83d 100644
--- a/types/2020-08-27/Persons.d.ts
+++ b/types/2020-08-27/Persons.d.ts
@@ -20,7 +20,7 @@ declare module 'stripe' {
        */
       account: string;
 
-      address?: Address;
+      address?: Stripe.Address;
 
       /**
        * The Kana variation of the person's address (Japan only).
@@ -94,7 +94,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata?: Metadata;
+      metadata?: Stripe.Metadata;
 
       /**
        * The person's phone number.
@@ -439,12 +439,12 @@ declare module 'stripe' {
       /**
        * The Kana variation of the person's address (Japan only).
        */
-      address_kana?: JapanAddressParam;
+      address_kana?: Stripe.JapanAddressParam;
 
       /**
        * The Kanji variation of the person's address (Japan only).
        */
-      address_kanji?: JapanAddressParam;
+      address_kanji?: Stripe.JapanAddressParam;
 
       /**
        * The person's date of birth.
@@ -509,7 +509,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * A [person token](https://stripe.com/docs/connect/account-tokens), used to securely provide details to the person.
@@ -679,12 +679,12 @@ declare module 'stripe' {
       /**
        * The Kana variation of the person's address (Japan only).
        */
-      address_kana?: JapanAddressParam;
+      address_kana?: Stripe.JapanAddressParam;
 
       /**
        * The Kanji variation of the person's address (Japan only).
        */
-      address_kanji?: JapanAddressParam;
+      address_kanji?: Stripe.JapanAddressParam;
 
       /**
        * The person's date of birth.
@@ -749,7 +749,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * A [person token](https://stripe.com/docs/connect/account-tokens), used to securely provide details to the person.
diff --git a/types/2020-08-27/Plans.d.ts b/types/2020-08-27/Plans.d.ts
index 0673eef5..e6e490d1 100644
--- a/types/2020-08-27/Plans.d.ts
+++ b/types/2020-08-27/Plans.d.ts
@@ -70,7 +70,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata | null;
+      metadata: Stripe.Metadata | null;
 
       /**
        * A brief description of the plan, hidden from customers.
@@ -80,7 +80,7 @@ declare module 'stripe' {
       /**
        * The product whose pricing this plan determines.
        */
-      product: string | Stripe.Product | Stripe.DeletedProduct | null;
+      product: string | Stripe.Product | DeletedProduct | null;
 
       /**
        * Each element represents a pricing tier. This parameter requires `billing_scheme` to be set to `tiered`. See also the documentation for `billing_scheme`.
@@ -237,7 +237,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * A brief description of the plan, hidden from customers.
@@ -293,7 +293,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: MetadataParam;
+        metadata?: Stripe.MetadataParam;
 
         /**
          * The product's name, meant to be displayable to the customer. Whenever this product is sold via a subscription, name will show up on associated invoice line item descriptions.
@@ -382,7 +382,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * A brief description of the plan, hidden from customers.
@@ -409,7 +409,7 @@ declare module 'stripe' {
       /**
        * A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options.
        */
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * Specifies which fields in the response should be expanded.
diff --git a/types/2020-08-27/Prices.d.ts b/types/2020-08-27/Prices.d.ts
index fbd03372..938dfd1a 100644
--- a/types/2020-08-27/Prices.d.ts
+++ b/types/2020-08-27/Prices.d.ts
@@ -50,7 +50,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata;
+      metadata: Stripe.Metadata;
 
       /**
        * A brief description of the plan, hidden from customers.
@@ -60,7 +60,7 @@ declare module 'stripe' {
       /**
        * The ID of the product this price is associated with.
        */
-      product: string | Stripe.Product | Stripe.DeletedProduct;
+      product: string | Stripe.Product | DeletedProduct;
 
       /**
        * The recurring components of a price such as `interval` and `usage_type`.
@@ -237,7 +237,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: MetadataParam;
+      metadata?: Stripe.MetadataParam;
 
       /**
        * A brief description of the price, hidden from customers.
@@ -307,7 +307,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: MetadataParam;
+        metadata?: Stripe.MetadataParam;
 
         /**
          * The product's name, meant to be displayable to the customer. Whenever this product is sold via a subscription, name will show up on associated invoice line item descriptions.
@@ -438,7 +438,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * A brief description of the price, hidden from customers.
@@ -474,7 +474,7 @@ declare module 'stripe' {
       /**
        * A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options.
        */
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * Only return prices for the given currency.
diff --git a/types/2020-08-27/Products.d.ts b/types/2020-08-27/Products.d.ts
index 0f4a074c..cb04e258 100644
--- a/types/2020-08-27/Products.d.ts
+++ b/types/2020-08-27/Products.d.ts
@@ -60,7 +60,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata;
+      metadata: Stripe.Metadata;
 
       /**
        * The product's name, meant to be displayable to the customer. Whenever this product is sold via a subscription, name will show up on associated invoice line item descriptions.
@@ -198,7 +198,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: MetadataParam;
+      metadata?: Stripe.MetadataParam;
 
       /**
        * The dimensions of this product for shipping purposes. A SKU associated with this product can override this value by having its own `package_dimensions`. May only be set if type=`good`.
@@ -306,7 +306,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * The product's name, meant to be displayable to the customer. Whenever this product is sold via a subscription, name will show up on associated invoice line item descriptions.
@@ -377,7 +377,7 @@ declare module 'stripe' {
       /**
        * Only return products that were created during the given date interval.
        */
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * Specifies which fields in the response should be expanded.
diff --git a/types/2020-08-27/PromotionCodes.d.ts b/types/2020-08-27/PromotionCodes.d.ts
index 278febe9..a2f84517 100644
--- a/types/2020-08-27/PromotionCodes.d.ts
+++ b/types/2020-08-27/PromotionCodes.d.ts
@@ -40,7 +40,7 @@ declare module 'stripe' {
       /**
        * The customer that this promotion code can be used by.
        */
-      customer: string | Stripe.Customer | Stripe.DeletedCustomer | null;
+      customer: string | Stripe.Customer | DeletedCustomer | null;
 
       /**
        * Date at which the promotion code can no longer be redeemed.
@@ -60,7 +60,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata | null;
+      metadata: Stripe.Metadata | null;
 
       restrictions: PromotionCode.Restrictions;
 
@@ -128,7 +128,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: MetadataParam;
+      metadata?: Stripe.MetadataParam;
 
       /**
        * Settings that restrict the redemption of the promotion code.
@@ -176,7 +176,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
     }
 
     interface PromotionCodeListParams extends PaginationParams {
@@ -198,7 +198,7 @@ declare module 'stripe' {
       /**
        * A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options.
        */
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * Only return promotion codes that are restricted to this customer.
diff --git a/types/2020-08-27/Radar/ValueListItems.d.ts b/types/2020-08-27/Radar/ValueListItems.d.ts
index 123de8c6..22f50c26 100644
--- a/types/2020-08-27/Radar/ValueListItems.d.ts
+++ b/types/2020-08-27/Radar/ValueListItems.d.ts
@@ -94,7 +94,7 @@ declare module 'stripe' {
          */
         value_list: string;
 
-        created?: RangeQueryParam | number;
+        created?: Stripe.RangeQueryParam | number;
 
         /**
          * Specifies which fields in the response should be expanded.
diff --git a/types/2020-08-27/Radar/ValueLists.d.ts b/types/2020-08-27/Radar/ValueLists.d.ts
index bf60ccde..72c08d0d 100644
--- a/types/2020-08-27/Radar/ValueLists.d.ts
+++ b/types/2020-08-27/Radar/ValueLists.d.ts
@@ -51,7 +51,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
          */
-        metadata: Metadata;
+        metadata: Stripe.Metadata;
 
         /**
          * The name of the value list.
@@ -114,7 +114,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: MetadataParam;
+        metadata?: Stripe.MetadataParam;
       }
 
       namespace ValueListCreateParams {
@@ -149,7 +149,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: MetadataParam;
+        metadata?: Stripe.MetadataParam;
 
         /**
          * The human-readable name of the value list.
@@ -168,7 +168,7 @@ declare module 'stripe' {
          */
         contains?: string;
 
-        created?: RangeQueryParam | number;
+        created?: Stripe.RangeQueryParam | number;
 
         /**
          * Specifies which fields in the response should be expanded.
diff --git a/types/2020-08-27/Recipients.d.ts b/types/2020-08-27/Recipients.d.ts
index 7734ba44..b4372a62 100644
--- a/types/2020-08-27/Recipients.d.ts
+++ b/types/2020-08-27/Recipients.d.ts
@@ -49,7 +49,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata;
+      metadata: Stripe.Metadata;
 
       /**
        * The ID of the [Custom account](https://stripe.com/docs/connect/custom-accounts) this recipient was migrated to. If set, the recipient can no longer be updated, nor can transfers be made to it: use the Custom account instead.
diff --git a/types/2020-08-27/Refunds.d.ts b/types/2020-08-27/Refunds.d.ts
index 6f9d5e75..5bb56ebf 100644
--- a/types/2020-08-27/Refunds.d.ts
+++ b/types/2020-08-27/Refunds.d.ts
@@ -58,7 +58,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata | null;
+      metadata: Stripe.Metadata | null;
 
       /**
        * ID of the PaymentIntent that was refunded.
@@ -104,7 +104,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       payment_intent?: string;
 
@@ -142,7 +142,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
     }
 
     interface RefundListParams extends PaginationParams {
@@ -158,7 +158,7 @@ declare module 'stripe' {
        */
       charge?: string;
 
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * Specifies which fields in the response should be expanded.
diff --git a/types/2020-08-27/Reporting/ReportRuns.d.ts b/types/2020-08-27/Reporting/ReportRuns.d.ts
index 950383d7..bd280cdb 100644
--- a/types/2020-08-27/Reporting/ReportRuns.d.ts
+++ b/types/2020-08-27/Reporting/ReportRuns.d.ts
@@ -806,7 +806,7 @@ declare module 'stripe' {
       }
 
       interface ReportRunListParams extends PaginationParams {
-        created?: RangeQueryParam | number;
+        created?: Stripe.RangeQueryParam | number;
 
         /**
          * Specifies which fields in the response should be expanded.
diff --git a/types/2020-08-27/Reviews.d.ts b/types/2020-08-27/Reviews.d.ts
index fe8209b1..677ce8d1 100644
--- a/types/2020-08-27/Reviews.d.ts
+++ b/types/2020-08-27/Reviews.d.ts
@@ -143,7 +143,7 @@ declare module 'stripe' {
     }
 
     interface ReviewListParams extends PaginationParams {
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * Specifies which fields in the response should be expanded.
diff --git a/types/2020-08-27/SKUs.d.ts b/types/2020-08-27/SKUs.d.ts
index 914320a1..0d9d429d 100644
--- a/types/2020-08-27/SKUs.d.ts
+++ b/types/2020-08-27/SKUs.d.ts
@@ -54,7 +54,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata;
+      metadata: Stripe.Metadata;
 
       /**
        * The dimensions of this SKU for shipping purposes.
@@ -167,7 +167,7 @@ declare module 'stripe' {
       /**
        * A dictionary of attributes and values for the attributes defined by the product. If, for example, a product's attributes are `["size", "gender"]`, a valid SKU has the following dictionary of attributes: `{"size": "Medium", "gender": "Unisex"}`.
        */
-      attributes?: Metadata;
+      attributes?: Stripe.Metadata;
 
       /**
        * Specifies which fields in the response should be expanded.
@@ -187,7 +187,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: MetadataParam;
+      metadata?: Stripe.MetadataParam;
 
       /**
        * The dimensions of this SKU for shipping purposes.
@@ -258,7 +258,7 @@ declare module 'stripe' {
       /**
        * A dictionary of attributes and values for the attributes defined by the product. When specified, `attributes` will partially update the existing attributes dictionary on the product, with the postcondition that a value must be present for each attribute key on the product.
        */
-      attributes?: Metadata;
+      attributes?: Stripe.Metadata;
 
       /**
        * Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
@@ -283,7 +283,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * The dimensions of this SKU for shipping purposes.
@@ -357,7 +357,7 @@ declare module 'stripe' {
       /**
        * Only return SKUs that have the specified key-value pairs in this partially constructed dictionary. Can be specified only if `product` is also supplied. For instance, if the associated product has attributes `["color", "size"]`, passing in `attributes[color]=red` returns all the SKUs for this product that have `color` set to `red`.
        */
-      attributes?: Metadata;
+      attributes?: Stripe.Metadata;
 
       /**
        * Specifies which fields in the response should be expanded.
diff --git a/types/2020-08-27/SetupAttempts.d.ts b/types/2020-08-27/SetupAttempts.d.ts
index e4521f39..5a4a300a 100644
--- a/types/2020-08-27/SetupAttempts.d.ts
+++ b/types/2020-08-27/SetupAttempts.d.ts
@@ -28,7 +28,7 @@ declare module 'stripe' {
       /**
        * The value of [customer](https://stripe.com/docs/api/setup_intents/object#setup_intent_object-customer) on the SetupIntent at the time of this confirmation.
        */
-      customer: string | Stripe.Customer | Stripe.DeletedCustomer | null;
+      customer: string | Stripe.Customer | DeletedCustomer | null;
 
       /**
        * Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
@@ -386,7 +386,7 @@ declare module 'stripe' {
          */
         setup_intent?: Stripe.SetupIntent;
 
-        source?: CustomerSource;
+        source?: Stripe.CustomerSource;
 
         /**
          * The type of error returned. One of `api_connection_error`, `api_error`, `authentication_error`, `card_error`, `idempotency_error`, `invalid_request_error`, or `rate_limit_error`
@@ -418,7 +418,7 @@ declare module 'stripe' {
        * can be a string with an integer Unix timestamp, or it can be a
        * dictionary with a number of different query options.
        */
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * Specifies which fields in the response should be expanded.
diff --git a/types/2020-08-27/SetupIntents.d.ts b/types/2020-08-27/SetupIntents.d.ts
index f9af1c52..afe178ac 100644
--- a/types/2020-08-27/SetupIntents.d.ts
+++ b/types/2020-08-27/SetupIntents.d.ts
@@ -42,7 +42,7 @@ declare module 'stripe' {
        *
        * If present, the SetupIntent's payment method will be attached to the Customer on successful setup. Payment methods attached to other Customers cannot be used with this SetupIntent.
        */
-      customer: string | Stripe.Customer | Stripe.DeletedCustomer | null;
+      customer: string | Stripe.Customer | DeletedCustomer | null;
 
       /**
        * An arbitrary string attached to the object. Often useful for displaying to users.
@@ -72,7 +72,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata | null;
+      metadata: Stripe.Metadata | null;
 
       /**
        * If present, this property tells you what actions you need to take in order for your customer to continue payment setup.
@@ -209,7 +209,7 @@ declare module 'stripe' {
          */
         setup_intent?: Stripe.SetupIntent;
 
-        source?: CustomerSource;
+        source?: Stripe.CustomerSource;
 
         /**
          * The type of error returned. One of `api_connection_error`, `api_error`, `authentication_error`, `card_error`, `idempotency_error`, `invalid_request_error`, or `rate_limit_error`
@@ -319,7 +319,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: MetadataParam;
+      metadata?: Stripe.MetadataParam;
 
       /**
        * The Stripe account ID for which this SetupIntent is created.
@@ -489,7 +489,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this SetupIntent.
@@ -547,7 +547,7 @@ declare module 'stripe' {
       /**
        * A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options.
        */
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * Only return SetupIntents for the customer specified by this customer ID.
diff --git a/types/2020-08-27/Sources.d.ts b/types/2020-08-27/Sources.d.ts
index 2d8adcaa..7abe6c33 100644
--- a/types/2020-08-27/Sources.d.ts
+++ b/types/2020-08-27/Sources.d.ts
@@ -79,7 +79,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata | null;
+      metadata: Stripe.Metadata | null;
 
       multibanco?: Source.Multibanco;
 
@@ -420,7 +420,7 @@ declare module 'stripe' {
         /**
          * Owner's address.
          */
-        address: Address | null;
+        address: Stripe.Address | null;
 
         /**
          * Owner's email address.
@@ -440,7 +440,7 @@ declare module 'stripe' {
         /**
          * Verified owner's address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
          */
-        verified_address: Address | null;
+        verified_address: Stripe.Address | null;
 
         /**
          * Verified owner's email address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
@@ -630,7 +630,7 @@ declare module 'stripe' {
         }
 
         interface Shipping {
-          address?: Address;
+          address?: Stripe.Address;
 
           /**
            * The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
@@ -757,7 +757,7 @@ declare module 'stripe' {
        */
       mandate?: SourceCreateParams.Mandate;
 
-      metadata?: MetadataParam;
+      metadata?: Stripe.MetadataParam;
 
       /**
        * The source to share.
@@ -1025,7 +1025,7 @@ declare module 'stripe' {
           /**
            * Shipping address.
            */
-          address: AddressParam;
+          address: Stripe.AddressParam;
 
           /**
            * The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
@@ -1083,7 +1083,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * Information about the owner of the payment instrument that may be used or required by particular source types.
@@ -1299,7 +1299,7 @@ declare module 'stripe' {
           /**
            * Shipping address.
            */
-          address: AddressParam;
+          address: Stripe.AddressParam;
 
           /**
            * The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
diff --git a/types/2020-08-27/SubscriptionItems.d.ts b/types/2020-08-27/SubscriptionItems.d.ts
index 2dae8e36..e205438d 100644
--- a/types/2020-08-27/SubscriptionItems.d.ts
+++ b/types/2020-08-27/SubscriptionItems.d.ts
@@ -30,7 +30,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata;
+      metadata: Stripe.Metadata;
 
       /**
        * You can now model subscriptions more flexibly using the [Prices API](https://stripe.com/docs/api#prices). It replaces the Plans API and is backwards compatible to simplify your migration.
@@ -120,7 +120,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: MetadataParam;
+      metadata?: Stripe.MetadataParam;
 
       /**
        * Use `allow_incomplete` to transition the subscription to `status=past_due` if a payment is required but cannot be paid. This allows you to manage scenarios where additional user actions are needed to pay a subscription's invoice. For example, SCA regulation may require 3DS authentication to complete payment. See the [SCA Migration Guide](https://stripe.com/docs/billing/migration/strong-customer-authentication) for Billing to learn more. This is the default behavior.
@@ -255,7 +255,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * Indicates if a customer is on or off-session while an invoice payment is attempted.
diff --git a/types/2020-08-27/SubscriptionSchedules.d.ts b/types/2020-08-27/SubscriptionSchedules.d.ts
index c2bf3e60..1076edff 100644
--- a/types/2020-08-27/SubscriptionSchedules.d.ts
+++ b/types/2020-08-27/SubscriptionSchedules.d.ts
@@ -38,7 +38,7 @@ declare module 'stripe' {
       /**
        * ID of the customer who owns the subscription schedule.
        */
-      customer: string | Stripe.Customer | Stripe.DeletedCustomer;
+      customer: string | Stripe.Customer | DeletedCustomer;
 
       default_settings: SubscriptionSchedule.DefaultSettings;
 
@@ -55,7 +55,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata | null;
+      metadata: Stripe.Metadata | null;
 
       /**
        * Configuration for the subscription schedule's phases.
@@ -196,7 +196,7 @@ declare module 'stripe' {
         /**
          * ID of the coupon to use during this phase of the subscription schedule.
          */
-        coupon: string | Stripe.Coupon | Stripe.DeletedCoupon | null;
+        coupon: string | Stripe.Coupon | DeletedCoupon | null;
 
         /**
          * ID of the default payment method for the subscription schedule. It must belong to the customer associated with the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings.
@@ -249,7 +249,7 @@ declare module 'stripe' {
           /**
            * ID of the price used to generate the invoice item.
            */
-          price: string | Stripe.Price | Stripe.DeletedPrice;
+          price: string | Stripe.Price | DeletedPrice;
 
           /**
            * The quantity of the invoice item.
@@ -294,12 +294,12 @@ declare module 'stripe' {
           /**
            * ID of the plan to which the customer should be subscribed.
            */
-          plan: string | Stripe.Plan | Stripe.DeletedPlan;
+          plan: string | Stripe.Plan | DeletedPlan;
 
           /**
            * ID of the price to which the customer should be subscribed.
            */
-          price: string | Stripe.Price | Stripe.DeletedPrice;
+          price: string | Stripe.Price | DeletedPrice;
 
           /**
            * Quantity of the plan to which the customer should be subscribed.
@@ -376,7 +376,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * List representing phases of the subscription schedule. Each phase can be customized to have different durations, plans, and coupons. If there are multiple phases, the `end_date` of one phase will always equal the `start_date` of the next phase.
@@ -746,7 +746,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * List representing phases of the subscription schedule. Each phase can be customized to have different durations, plans, and coupons. If there are multiple phases, the `end_date` of one phase will always equal the `start_date` of the next phase. Note that past phases can be omitted.
@@ -1101,17 +1101,17 @@ declare module 'stripe' {
       /**
        * Only return subscription schedules that were created canceled the given date interval.
        */
-      canceled_at?: RangeQueryParam | number;
+      canceled_at?: Stripe.RangeQueryParam | number;
 
       /**
        * Only return subscription schedules that completed during the given date interval.
        */
-      completed_at?: RangeQueryParam | number;
+      completed_at?: Stripe.RangeQueryParam | number;
 
       /**
        * Only return subscription schedules that were created during the given date interval.
        */
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * Only return subscription schedules for the given customer.
@@ -1126,7 +1126,7 @@ declare module 'stripe' {
       /**
        * Only return subscription schedules that were released during the given date interval.
        */
-      released_at?: RangeQueryParam | number;
+      released_at?: Stripe.RangeQueryParam | number;
 
       /**
        * Only return subscription schedules that have not started yet.
diff --git a/types/2020-08-27/Subscriptions.d.ts b/types/2020-08-27/Subscriptions.d.ts
index 375d42e0..46c8edf8 100644
--- a/types/2020-08-27/Subscriptions.d.ts
+++ b/types/2020-08-27/Subscriptions.d.ts
@@ -68,7 +68,7 @@ declare module 'stripe' {
       /**
        * ID of the customer who owns the subscription.
        */
-      customer: string | Stripe.Customer | Stripe.DeletedCustomer;
+      customer: string | Stripe.Customer | DeletedCustomer;
 
       /**
        * Number of days a customer has to pay invoices generated by this subscription. This value will be `null` for subscriptions where `collection_method=charge_automatically`.
@@ -83,7 +83,7 @@ declare module 'stripe' {
       /**
        * ID of the default payment source for the subscription. It must belong to the customer associated with the subscription and be in a chargeable state. If `default_payment_method` is also set, `default_payment_method` will take precedence. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source).
        */
-      default_source: string | CustomerSource | null;
+      default_source: string | Stripe.CustomerSource | null;
 
       /**
        * The tax rates that will apply to any subscription item that does not have `tax_rates` set. Invoices created will have their `default_tax_rates` populated from the subscription.
@@ -118,7 +118,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata;
+      metadata: Stripe.Metadata;
 
       /**
        * Specifies the approximate timestamp on which any pending invoice items will be billed according to the schedule provided at `pending_invoice_item_interval`.
@@ -366,7 +366,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * Indicates if a customer is on or off-session while an invoice payment is attempted.
@@ -492,7 +492,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: MetadataParam;
+        metadata?: Stripe.MetadataParam;
 
         /**
          * Plan ID for this item, as a string.
@@ -693,7 +693,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * Indicates if a customer is on or off-session while an invoice payment is attempted.
@@ -845,7 +845,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: Stripe.Emptyable<MetadataParam>;
+        metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
         /**
          * Plan ID for this item, as a string.
@@ -985,11 +985,11 @@ declare module 'stripe' {
        */
       collection_method?: SubscriptionListParams.CollectionMethod;
 
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
-      current_period_end?: RangeQueryParam | number;
+      current_period_end?: Stripe.RangeQueryParam | number;
 
-      current_period_start?: RangeQueryParam | number;
+      current_period_start?: Stripe.RangeQueryParam | number;
 
       /**
        * The ID of the customer whose subscriptions will be retrieved.
diff --git a/types/2020-08-27/TaxRates.d.ts b/types/2020-08-27/TaxRates.d.ts
index 03b83e9c..b1fa1f2a 100644
--- a/types/2020-08-27/TaxRates.d.ts
+++ b/types/2020-08-27/TaxRates.d.ts
@@ -53,7 +53,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata | null;
+      metadata: Stripe.Metadata | null;
 
       /**
        * This represents the tax rate percent out of 100.
@@ -100,7 +100,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: MetadataParam;
+      metadata?: Stripe.MetadataParam;
     }
 
     interface TaxRateRetrieveParams {
@@ -139,7 +139,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
     }
 
     interface TaxRateListParams extends PaginationParams {
@@ -151,7 +151,7 @@ declare module 'stripe' {
       /**
        * Optional range for filtering created date.
        */
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * Specifies which fields in the response should be expanded.
diff --git a/types/2020-08-27/Terminal/Locations.d.ts b/types/2020-08-27/Terminal/Locations.d.ts
index 7501fd03..c6344be0 100644
--- a/types/2020-08-27/Terminal/Locations.d.ts
+++ b/types/2020-08-27/Terminal/Locations.d.ts
@@ -16,7 +16,7 @@ declare module 'stripe' {
          */
         object: 'terminal.location';
 
-        address: Address;
+        address: Stripe.Address;
 
         deleted?: void;
 
@@ -33,7 +33,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
          */
-        metadata: Metadata;
+        metadata: Stripe.Metadata;
       }
 
       /**
@@ -75,7 +75,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: Stripe.Emptyable<MetadataParam>;
+        metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
       }
 
       namespace LocationCreateParams {
@@ -138,7 +138,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: Stripe.Emptyable<MetadataParam>;
+        metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
       }
 
       namespace LocationUpdateParams {
diff --git a/types/2020-08-27/Terminal/Readers.d.ts b/types/2020-08-27/Terminal/Readers.d.ts
index a0c6136b..ef9ecc2e 100644
--- a/types/2020-08-27/Terminal/Readers.d.ts
+++ b/types/2020-08-27/Terminal/Readers.d.ts
@@ -51,7 +51,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
          */
-        metadata: Metadata;
+        metadata: Stripe.Metadata;
 
         /**
          * Serial number of the reader.
@@ -112,7 +112,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: Stripe.Emptyable<MetadataParam>;
+        metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
       }
 
       interface ReaderRetrieveParams {
@@ -136,7 +136,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: Stripe.Emptyable<MetadataParam>;
+        metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
       }
 
       interface ReaderListParams extends PaginationParams {
diff --git a/types/2020-08-27/Tokens.d.ts b/types/2020-08-27/Tokens.d.ts
index 02160dc1..c146bd78 100644
--- a/types/2020-08-27/Tokens.d.ts
+++ b/types/2020-08-27/Tokens.d.ts
@@ -139,12 +139,12 @@ declare module 'stripe' {
           /**
            * The Kana variation of the company's primary address (Japan only).
            */
-          address_kana?: JapanAddressParam;
+          address_kana?: Stripe.JapanAddressParam;
 
           /**
            * The Kanji variation of the company's primary address (Japan only).
            */
-          address_kanji?: JapanAddressParam;
+          address_kanji?: Stripe.JapanAddressParam;
 
           /**
            * Whether the company's directors have been provided. Set this Boolean to `true` after creating all the company's directors with [the Persons API](https://stripe.com/docs/api/persons) for accounts with a `relationship.director` requirement. This value is not automatically set to `true` after creating directors, so it needs to be updated to indicate all directors have been provided.
@@ -293,12 +293,12 @@ declare module 'stripe' {
           /**
            * The Kana variation of the the individual's primary address (Japan only).
            */
-          address_kana?: JapanAddressParam;
+          address_kana?: Stripe.JapanAddressParam;
 
           /**
            * The Kanji variation of the the individual's primary address (Japan only).
            */
-          address_kanji?: JapanAddressParam;
+          address_kanji?: Stripe.JapanAddressParam;
 
           /**
            * The individual's date of birth.
@@ -358,7 +358,7 @@ declare module 'stripe' {
           /**
            * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
            */
-          metadata?: Stripe.Emptyable<MetadataParam>;
+          metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
           /**
            * The individual's phone number.
@@ -551,12 +551,12 @@ declare module 'stripe' {
         /**
          * The Kana variation of the person's address (Japan only).
          */
-        address_kana?: JapanAddressParam;
+        address_kana?: Stripe.JapanAddressParam;
 
         /**
          * The Kanji variation of the person's address (Japan only).
          */
-        address_kanji?: JapanAddressParam;
+        address_kanji?: Stripe.JapanAddressParam;
 
         /**
          * The person's date of birth.
@@ -616,7 +616,7 @@ declare module 'stripe' {
         /**
          * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: Stripe.Emptyable<MetadataParam>;
+        metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
         /**
          * The person's phone number.
diff --git a/types/2020-08-27/Topups.d.ts b/types/2020-08-27/Topups.d.ts
index 37a35b63..edecfad2 100644
--- a/types/2020-08-27/Topups.d.ts
+++ b/types/2020-08-27/Topups.d.ts
@@ -63,7 +63,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata;
+      metadata: Stripe.Metadata;
 
       /**
        * `Source` objects allow you to accept a variety of payment methods. They
@@ -124,7 +124,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * The ID of a source to transfer funds from. For most users, this should be left unspecified which will use the bank account that was set up in the dashboard for the specified currency. In test mode, this can be a test bank token (see [Testing Top-ups](https://stripe.com/docs/connect/testing#testing-top-ups)).
@@ -163,19 +163,19 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
     }
 
     interface TopupListParams extends PaginationParams {
       /**
        * A positive integer representing how much to transfer.
        */
-      amount?: RangeQueryParam | number;
+      amount?: Stripe.RangeQueryParam | number;
 
       /**
        * A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options.
        */
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * Specifies which fields in the response should be expanded.
diff --git a/types/2020-08-27/TransferReversals.d.ts b/types/2020-08-27/TransferReversals.d.ts
index 63505a67..c75b3bc4 100644
--- a/types/2020-08-27/TransferReversals.d.ts
+++ b/types/2020-08-27/TransferReversals.d.ts
@@ -43,7 +43,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata | null;
+      metadata: Stripe.Metadata | null;
 
       /**
        * ID of the refund responsible for the transfer reversal.
@@ -75,7 +75,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * Boolean indicating whether the application fee should be refunded when reversing this transfer. If a full transfer reversal is given, the full application fee will be refunded. Otherwise, the application fee will be refunded with an amount proportional to the amount of the transfer reversed.
@@ -99,7 +99,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
     }
 
     interface TransferReversalListParams extends PaginationParams {
diff --git a/types/2020-08-27/Transfers.d.ts b/types/2020-08-27/Transfers.d.ts
index 812e94c8..37e880b4 100644
--- a/types/2020-08-27/Transfers.d.ts
+++ b/types/2020-08-27/Transfers.d.ts
@@ -63,7 +63,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata;
+      metadata: Stripe.Metadata;
 
       /**
        * A list of reversals that have been applied to the transfer.
@@ -120,7 +120,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: MetadataParam;
+      metadata?: Stripe.MetadataParam;
 
       /**
        * You can use this parameter to transfer funds from a charge before they are added to your available balance. A pending balance will transfer immediately but the funds will not become available until the original charge becomes available. [See the Connect documentation](https://stripe.com/docs/connect/charges-transfers#transfer-availability) for details.
@@ -163,11 +163,11 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
     }
 
     interface TransferListParams extends PaginationParams {
-      created?: RangeQueryParam | number;
+      created?: Stripe.RangeQueryParam | number;
 
       /**
        * Only return transfers for the destination specified by this account ID.
diff --git a/types/2020-08-27/WebhookEndpoints.d.ts b/types/2020-08-27/WebhookEndpoints.d.ts
index 52dc131d..9fad39ca 100644
--- a/types/2020-08-27/WebhookEndpoints.d.ts
+++ b/types/2020-08-27/WebhookEndpoints.d.ts
@@ -50,7 +50,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
-      metadata: Metadata;
+      metadata: Stripe.Metadata;
 
       /**
        * The endpoint's secret, used to generate [webhook signatures](https://stripe.com/docs/webhooks/signatures). Only returned at creation.
@@ -122,7 +122,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
     }
 
     namespace WebhookEndpointCreateParams {
@@ -423,7 +423,7 @@ declare module 'stripe' {
       /**
        * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
-      metadata?: Stripe.Emptyable<MetadataParam>;
+      metadata?: Stripe.Emptyable<Stripe.MetadataParam>;
 
       /**
        * The URL of the webhook endpoint.


Test patch:
diff --git a/types/test/typescriptTest.ts b/types/test/typescriptTest.ts
index 8d4d2949..d93e3bde 100644
--- a/types/test/typescriptTest.ts
+++ b/types/test/typescriptTest.ts
@@ -52,6 +52,11 @@ stripe.setHost('host', 'port', 'protocol');
   };
   const customer: Stripe.Customer = await stripe.customers.create(params, opts);
 
+  const address: Stripe.Address | null = customer.address;
+
+  if (!address) return;
+  const city: string | null = address.city;
+
   // Check no opts:
   await stripe.customers.create(params);