-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathSubscriptions.py
More file actions
49 lines (33 loc) · 1.58 KB
/
Subscriptions.py
File metadata and controls
49 lines (33 loc) · 1.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
from typing import TypedDict, Optional, Literal, List
from method.resource import MethodResponse, Resource
from method.configuration import Configuration
AccountSubscriptionTypesLiterals = Literal[
'transaction',
'update',
'update.snapshot'
]
class AccountSubscription(TypedDict):
id: str
name: AccountSubscriptionTypesLiterals
status: Literal['active']
latest_transaction_id: str
created_at: str
updated_at: str
AccountSubscriptionsResponse = TypedDict('AccountSubscriptionsResponse', {
'transaction': Optional[AccountSubscription],
'update': Optional[AccountSubscription],
'update.snapshot': Optional[AccountSubscription]
})
class AccountSubscriptionCreateOpts(TypedDict):
enroll: AccountSubscriptionTypesLiterals
class AccountSubscriptionsResource(Resource):
def __init__(self, config: Configuration):
super(AccountSubscriptionsResource, self).__init__(config.add_path('subscriptions'))
def create(self, sub_name: AccountSubscriptionCreateOpts) -> MethodResponse[AccountSubscription]:
return super(AccountSubscriptionsResource, self)._create({ 'enroll': sub_name })
def list(self) -> MethodResponse[List[AccountSubscription]]:
return super(AccountSubscriptionsResource, self)._get()
def retrieve(self, sub_id: str) -> MethodResponse[AccountSubscriptionsResponse]:
return super(AccountSubscriptionsResource, self)._get_with_id(sub_id)
def delete(self, sub_id: str) -> MethodResponse[AccountSubscription]:
return super(AccountSubscriptionsResource, self)._delete(sub_id)