# -*- coding: utf-8 -*-
# File generated from our OpenAPI spec
from stripe._request_options import RequestOptions
from stripe._stripe_object import UntypedStripeObject
from typing import Dict, List
from typing_extensions import Literal, NotRequired, TypedDict
class ShippingRateCreateParams(RequestOptions):
delivery_estimate: NotRequired["ShippingRateCreateParamsDeliveryEstimate"]
"""
The estimated range for how long shipping will take, meant to be displayable to the customer. This will appear on CheckoutSessions.
"""
display_name: str
"""
The name of the shipping rate, meant to be displayable to the customer. This will appear on CheckoutSessions.
"""
expand: NotRequired[List[str]]
"""
Specifies which fields in the response should be expanded.
"""
fixed_amount: NotRequired["ShippingRateCreateParamsFixedAmount"]
"""
Describes a fixed amount to charge for shipping. Must be present if type is `fixed_amount`.
"""
metadata: NotRequired["Dict[str, str]|UntypedStripeObject[str]"]
"""
Set of [key-value pairs](https://docs.stripe.com/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`.
"""
tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]]
"""
Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`.
"""
tax_code: NotRequired[str]
"""
A [tax code](https://docs.stripe.com/tax/tax-categories) ID. The Shipping tax code is `txcd_92010001`.
"""
type: NotRequired[Literal["fixed_amount"]]
"""
The type of calculation to use on the shipping rate.
"""
class ShippingRateCreateParamsDeliveryEstimate(TypedDict):
maximum: NotRequired["ShippingRateCreateParamsDeliveryEstimateMaximum"]
"""
The upper bound of the estimated range. If empty, represents no upper bound i.e., infinite.
"""
minimum: NotRequired["ShippingRateCreateParamsDeliveryEstimateMinimum"]
"""
The lower bound of the estimated range. If empty, represents no lower bound.
"""
class ShippingRateCreateParamsDeliveryEstimateMaximum(TypedDict):
unit: Literal["business_day", "day", "hour", "month", "week"]
"""
A unit of time.
"""
value: int
"""
Must be greater than 0.
"""
class ShippingRateCreateParamsDeliveryEstimateMinimum(TypedDict):
unit: Literal["business_day", "day", "hour", "month", "week"]
"""
A unit of time.
"""
value: int
"""
Must be greater than 0.
"""
class ShippingRateCreateParamsFixedAmount(TypedDict):
amount: int
"""
A non-negative integer in cents representing how much to charge.
"""
currency: str
"""
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).
"""
currency_options: NotRequired[
"Dict[str, ShippingRateCreateParamsFixedAmountCurrencyOptions]|UntypedStripeObject[ShippingRateCreateParamsFixedAmountCurrencyOptions]"
]
"""
Shipping rates defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies).
"""
class ShippingRateCreateParamsFixedAmountCurrencyOptions(TypedDict):
amount: int
"""
A non-negative integer in cents representing how much to charge.
"""
tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]]
"""
Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`.
"""