2018-12-17 20:34:13 +01:00
|
|
|
# NOTE: When editing stubs, we recommend using `tools/run-mypy --no-daemon`,
|
|
|
|
# because the mypy daemon's caching system has some bugs around editing stubs
|
|
|
|
#
|
|
|
|
# See https://zulip.readthedocs.io/en/latest/testing/mypy.html#mypy-stubs-for-third-party-modules
|
|
|
|
# for notes on how we manage mypy stubs.
|
|
|
|
|
2018-07-24 15:16:50 +02:00
|
|
|
import stripe.error as error
|
|
|
|
import stripe.util as util
|
2018-10-29 07:36:50 +01:00
|
|
|
import stripe.api_requestor as api_requestor
|
2018-08-03 12:38:16 +02:00
|
|
|
from stripe.api_resources.list_object import SubscriptionListObject
|
2018-07-24 15:16:50 +02:00
|
|
|
|
2018-08-31 20:09:36 +02:00
|
|
|
from typing import Optional, Any, Dict, List, Union
|
2018-07-24 15:16:50 +02:00
|
|
|
|
|
|
|
api_key: Optional[str]
|
|
|
|
|
|
|
|
class Customer:
|
2018-09-08 00:49:54 +02:00
|
|
|
default_source: Union[Card, Source]
|
2018-07-24 15:16:50 +02:00
|
|
|
created: int
|
|
|
|
id: str
|
2018-08-14 03:33:31 +02:00
|
|
|
source: str
|
2018-11-28 09:07:21 +01:00
|
|
|
sources: List[Union[Card, Source]]
|
2018-08-03 12:38:16 +02:00
|
|
|
subscriptions: SubscriptionListObject
|
2018-08-23 07:45:19 +02:00
|
|
|
coupon: str
|
2018-08-31 20:09:36 +02:00
|
|
|
account_balance: int
|
2018-09-06 15:14:54 +02:00
|
|
|
email: str
|
2018-10-17 08:23:13 +02:00
|
|
|
description: str
|
2018-11-16 17:08:09 +01:00
|
|
|
discount: Optional[Discount]
|
2018-10-17 08:23:13 +02:00
|
|
|
metadata: Dict[str, str]
|
2018-07-24 15:16:50 +02:00
|
|
|
|
|
|
|
@staticmethod
|
2018-09-01 02:49:02 +02:00
|
|
|
def retrieve(customer_id: str=..., expand: Optional[List[str]]=...) -> Customer:
|
2018-07-24 15:16:50 +02:00
|
|
|
...
|
2018-07-26 15:45:51 +02:00
|
|
|
|
2018-07-24 15:16:50 +02:00
|
|
|
@staticmethod
|
2018-09-01 02:49:02 +02:00
|
|
|
def create(description: str=..., email: str=..., metadata: Dict[str, Any]=...,
|
|
|
|
source: Optional[str]=..., coupon: Optional[str]=...) -> Customer:
|
2018-07-24 15:16:50 +02:00
|
|
|
...
|
|
|
|
|
2018-08-14 03:33:31 +02:00
|
|
|
@staticmethod
|
2018-10-18 19:56:17 +02:00
|
|
|
def save(customer: Customer) -> Customer:
|
2018-08-14 03:33:31 +02:00
|
|
|
...
|
|
|
|
|
2018-11-16 17:08:09 +01:00
|
|
|
@staticmethod
|
|
|
|
def delete_discount(customer: Customer) -> None:
|
|
|
|
...
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
def list(limit: Optional[int]=...) -> List[Customer]:
|
|
|
|
...
|
|
|
|
|
|
|
|
|
2018-07-24 15:16:50 +02:00
|
|
|
class Invoice:
|
2018-09-08 00:49:54 +02:00
|
|
|
auto_advance: bool
|
2018-07-24 15:16:50 +02:00
|
|
|
amount_due: int
|
2018-09-08 00:49:54 +02:00
|
|
|
billing: str
|
|
|
|
billing_reason: str
|
|
|
|
default_source: Source
|
|
|
|
status: str
|
2018-08-31 20:09:36 +02:00
|
|
|
total: int
|
2018-07-26 15:45:51 +02:00
|
|
|
|
2018-07-24 15:16:50 +02:00
|
|
|
@staticmethod
|
2018-08-31 20:09:36 +02:00
|
|
|
def upcoming(customer: str=..., subscription: str=...,
|
|
|
|
subscription_items: List[Dict[str, Union[str, int]]]=...) -> Invoice:
|
2018-07-24 15:16:50 +02:00
|
|
|
...
|
|
|
|
|
2018-09-08 00:49:54 +02:00
|
|
|
@staticmethod
|
|
|
|
def list(customer: str=..., limit: Optional[int]=...) -> List[Invoice]:
|
|
|
|
...
|
|
|
|
|
2018-07-24 15:16:50 +02:00
|
|
|
class Subscription:
|
|
|
|
created: int
|
|
|
|
status: str
|
2018-07-26 15:45:51 +02:00
|
|
|
canceled_at: int
|
2018-07-26 16:10:07 +02:00
|
|
|
cancel_at_period_end: bool
|
2018-09-08 00:49:54 +02:00
|
|
|
days_until_due: Optional[int]
|
2018-07-03 21:49:55 +02:00
|
|
|
proration_date: int
|
|
|
|
quantity: int
|
2018-07-26 15:45:51 +02:00
|
|
|
|
2018-07-24 15:16:50 +02:00
|
|
|
@staticmethod
|
2018-09-08 00:49:54 +02:00
|
|
|
def create(customer: str=..., billing: str=..., days_until_due: Optional[int]=...,
|
|
|
|
items: List[Dict[str, Any]]=...,
|
2018-09-01 02:49:02 +02:00
|
|
|
prorate: bool=..., tax_percent: float=...) -> Subscription:
|
2018-07-24 15:16:50 +02:00
|
|
|
...
|
|
|
|
|
2018-11-18 03:52:45 +01:00
|
|
|
@staticmethod
|
|
|
|
def save(subscription: Subscription, idempotency_key: str=...) -> Subscription:
|
|
|
|
...
|
|
|
|
|
2018-09-08 00:49:54 +02:00
|
|
|
@staticmethod
|
|
|
|
def delete(subscription: Subscription) -> Subscription:
|
|
|
|
...
|
|
|
|
|
2018-11-25 16:58:04 +01:00
|
|
|
@staticmethod
|
|
|
|
def retrieve(subscription_id: str) -> Subscription:
|
|
|
|
...
|
|
|
|
|
2018-09-08 00:49:54 +02:00
|
|
|
class Source:
|
|
|
|
id: str
|
|
|
|
object: str
|
|
|
|
type: str
|
|
|
|
|
2018-07-24 15:16:50 +02:00
|
|
|
class Card:
|
2018-10-17 08:23:13 +02:00
|
|
|
id: str
|
2018-07-24 15:16:50 +02:00
|
|
|
last4: str
|
2018-09-08 00:49:54 +02:00
|
|
|
object: str
|
2018-07-24 15:16:50 +02:00
|
|
|
|
|
|
|
class Plan:
|
|
|
|
id: str
|
2018-07-26 15:45:51 +02:00
|
|
|
|
2018-07-24 15:16:50 +02:00
|
|
|
@staticmethod
|
2018-09-01 02:49:02 +02:00
|
|
|
def create(currency: str=..., interval: str=..., product: str=..., amount: int=...,
|
|
|
|
billing_scheme: str=..., nickname: str=..., usage_type: str=...) -> Plan:
|
2018-07-24 15:16:50 +02:00
|
|
|
...
|
|
|
|
|
|
|
|
class Product:
|
|
|
|
id: str
|
|
|
|
|
|
|
|
@staticmethod
|
2018-09-01 02:49:02 +02:00
|
|
|
def create(name: str=..., type: str=..., statement_descriptor: str=..., unit_label: str=...) -> Product:
|
2018-07-24 15:16:50 +02:00
|
|
|
...
|
2018-08-23 07:45:19 +02:00
|
|
|
|
2018-11-16 17:08:09 +01:00
|
|
|
class Discount:
|
|
|
|
coupon: Coupon
|
|
|
|
|
2018-08-23 07:45:19 +02:00
|
|
|
class Coupon:
|
|
|
|
id: str
|
2018-11-16 17:08:09 +01:00
|
|
|
percent_off: int
|
2018-08-23 07:45:19 +02:00
|
|
|
|
|
|
|
@staticmethod
|
2018-09-01 02:49:02 +02:00
|
|
|
def create(duration: str=..., name: str=..., percent_off: int=...) -> Coupon:
|
2018-08-23 07:45:19 +02:00
|
|
|
...
|
2018-10-17 08:23:13 +02:00
|
|
|
|
|
|
|
class Token:
|
|
|
|
id: str
|
|
|
|
@staticmethod
|
|
|
|
def create(card: Dict[str, Any]) -> Token:
|
|
|
|
...
|
2018-11-23 12:37:01 +01:00
|
|
|
|
|
|
|
class Charge:
|
|
|
|
amount: int
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
def list(customer: Optional[str]) -> List[Charge]:
|
|
|
|
...
|
2018-11-25 19:54:54 +01:00
|
|
|
|
|
|
|
class InvoiceItem:
|
|
|
|
@staticmethod
|
|
|
|
def create(amount: int, currency: str, customer: Customer, subscription: Subscription) -> Subscription:
|
|
|
|
...
|