linq-python 0.41.2__py3-none-any.whl → 0.42.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- linq/_client.py +12 -12
- linq/_version.py +1 -1
- linq/resources/__init__.py +2 -2
- linq/types/__init__.py +13 -0
- linq/types/connection_created_webhook_event.py +212 -0
- linq/types/connection_revoked_webhook_event.py +212 -0
- linq/types/location_sharing_started_webhook_event.py +111 -0
- linq/types/location_sharing_stopped_webhook_event.py +109 -0
- linq/types/payment_authorized_webhook_event.py +212 -0
- linq/types/payment_canceled_webhook_event.py +212 -0
- linq/types/payment_declined_webhook_event.py +212 -0
- linq/types/payment_expired_webhook_event.py +212 -0
- linq/types/payment_succeeded_webhook_event.py +212 -0
- linq/types/unwrap_webhook_event.py +18 -0
- {linq_python-0.41.2.dist-info → linq_python-0.42.0.dist-info}/METADATA +1 -1
- {linq_python-0.41.2.dist-info → linq_python-0.42.0.dist-info}/RECORD +18 -9
- {linq_python-0.41.2.dist-info → linq_python-0.42.0.dist-info}/WHEEL +0 -0
- {linq_python-0.41.2.dist-info → linq_python-0.42.0.dist-info}/licenses/LICENSE +0 -0
linq/_client.py
CHANGED
|
@@ -1067,6 +1067,12 @@ class LinqAPIV3(SyncAPIClient):
|
|
|
1067
1067
|
|
|
1068
1068
|
return WebhookSubscriptionsResource(self)
|
|
1069
1069
|
|
|
1070
|
+
@cached_property
|
|
1071
|
+
def webhooks(self) -> WebhooksResource:
|
|
1072
|
+
from .resources.webhooks import WebhooksResource
|
|
1073
|
+
|
|
1074
|
+
return WebhooksResource(self)
|
|
1075
|
+
|
|
1070
1076
|
@cached_property
|
|
1071
1077
|
def capability(self) -> CapabilityResource:
|
|
1072
1078
|
"""
|
|
@@ -1076,12 +1082,6 @@ class LinqAPIV3(SyncAPIClient):
|
|
|
1076
1082
|
|
|
1077
1083
|
return CapabilityResource(self)
|
|
1078
1084
|
|
|
1079
|
-
@cached_property
|
|
1080
|
-
def webhooks(self) -> WebhooksResource:
|
|
1081
|
-
from .resources.webhooks import WebhooksResource
|
|
1082
|
-
|
|
1083
|
-
return WebhooksResource(self)
|
|
1084
|
-
|
|
1085
1085
|
@cached_property
|
|
1086
1086
|
def contact_card(self) -> ContactCardResource:
|
|
1087
1087
|
"""
|
|
@@ -2202,6 +2202,12 @@ class AsyncLinqAPIV3(AsyncAPIClient):
|
|
|
2202
2202
|
|
|
2203
2203
|
return AsyncWebhookSubscriptionsResource(self)
|
|
2204
2204
|
|
|
2205
|
+
@cached_property
|
|
2206
|
+
def webhooks(self) -> AsyncWebhooksResource:
|
|
2207
|
+
from .resources.webhooks import AsyncWebhooksResource
|
|
2208
|
+
|
|
2209
|
+
return AsyncWebhooksResource(self)
|
|
2210
|
+
|
|
2205
2211
|
@cached_property
|
|
2206
2212
|
def capability(self) -> AsyncCapabilityResource:
|
|
2207
2213
|
"""
|
|
@@ -2211,12 +2217,6 @@ class AsyncLinqAPIV3(AsyncAPIClient):
|
|
|
2211
2217
|
|
|
2212
2218
|
return AsyncCapabilityResource(self)
|
|
2213
2219
|
|
|
2214
|
-
@cached_property
|
|
2215
|
-
def webhooks(self) -> AsyncWebhooksResource:
|
|
2216
|
-
from .resources.webhooks import AsyncWebhooksResource
|
|
2217
|
-
|
|
2218
|
-
return AsyncWebhooksResource(self)
|
|
2219
|
-
|
|
2220
2220
|
@cached_property
|
|
2221
2221
|
def contact_card(self) -> AsyncContactCardResource:
|
|
2222
2222
|
"""
|
linq/_version.py
CHANGED
linq/resources/__init__.py
CHANGED
|
@@ -215,14 +215,14 @@ __all__ = [
|
|
|
215
215
|
"AsyncWebhookSubscriptionsResourceWithRawResponse",
|
|
216
216
|
"WebhookSubscriptionsResourceWithStreamingResponse",
|
|
217
217
|
"AsyncWebhookSubscriptionsResourceWithStreamingResponse",
|
|
218
|
+
"WebhooksResource",
|
|
219
|
+
"AsyncWebhooksResource",
|
|
218
220
|
"CapabilityResource",
|
|
219
221
|
"AsyncCapabilityResource",
|
|
220
222
|
"CapabilityResourceWithRawResponse",
|
|
221
223
|
"AsyncCapabilityResourceWithRawResponse",
|
|
222
224
|
"CapabilityResourceWithStreamingResponse",
|
|
223
225
|
"AsyncCapabilityResourceWithStreamingResponse",
|
|
224
|
-
"WebhooksResource",
|
|
225
|
-
"AsyncWebhooksResource",
|
|
226
226
|
"ContactCardResource",
|
|
227
227
|
"AsyncContactCardResource",
|
|
228
228
|
"ContactCardResourceWithRawResponse",
|
linq/types/__init__.py
CHANGED
|
@@ -94,19 +94,26 @@ from .reaction_added_webhook_event import ReactionAddedWebhookEvent as ReactionA
|
|
|
94
94
|
from .blocked_handle_block_response import BlockedHandleBlockResponse as BlockedHandleBlockResponse
|
|
95
95
|
from .blocked_handle_unblock_params import BlockedHandleUnblockParams as BlockedHandleUnblockParams
|
|
96
96
|
from .message_add_reaction_response import MessageAddReactionResponse as MessageAddReactionResponse
|
|
97
|
+
from .payment_expired_webhook_event import PaymentExpiredWebhookEvent as PaymentExpiredWebhookEvent
|
|
97
98
|
from .payment_request_create_params import PaymentRequestCreateParams as PaymentRequestCreateParams
|
|
98
99
|
from .payment_request_list_response import PaymentRequestListResponse as PaymentRequestListResponse
|
|
99
100
|
from .poll_vote_added_webhook_event import PollVoteAddedWebhookEvent as PollVoteAddedWebhookEvent
|
|
100
101
|
from .contact_card_retrieve_response import ContactCardRetrieveResponse as ContactCardRetrieveResponse
|
|
101
102
|
from .message_received_webhook_event import MessageReceivedWebhookEvent as MessageReceivedWebhookEvent
|
|
102
103
|
from .message_update_app_card_params import MessageUpdateAppCardParams as MessageUpdateAppCardParams
|
|
104
|
+
from .payment_canceled_webhook_event import PaymentCanceledWebhookEvent as PaymentCanceledWebhookEvent
|
|
105
|
+
from .payment_declined_webhook_event import PaymentDeclinedWebhookEvent as PaymentDeclinedWebhookEvent
|
|
103
106
|
from .reaction_removed_webhook_event import ReactionRemovedWebhookEvent as ReactionRemovedWebhookEvent
|
|
104
107
|
from .message_delivered_webhook_event import MessageDeliveredWebhookEvent as MessageDeliveredWebhookEvent
|
|
105
108
|
from .participant_added_webhook_event import ParticipantAddedWebhookEvent as ParticipantAddedWebhookEvent
|
|
106
109
|
from .payment_provider_connect_params import PaymentProviderConnectParams as PaymentProviderConnectParams
|
|
110
|
+
from .payment_succeeded_webhook_event import PaymentSucceededWebhookEvent as PaymentSucceededWebhookEvent
|
|
107
111
|
from .poll_vote_removed_webhook_event import PollVoteRemovedWebhookEvent as PollVoteRemovedWebhookEvent
|
|
108
112
|
from .available_number_retrieve_params import AvailableNumberRetrieveParams as AvailableNumberRetrieveParams
|
|
113
|
+
from .connection_created_webhook_event import ConnectionCreatedWebhookEvent as ConnectionCreatedWebhookEvent
|
|
114
|
+
from .connection_revoked_webhook_event import ConnectionRevokedWebhookEvent as ConnectionRevokedWebhookEvent
|
|
109
115
|
from .message_update_app_card_response import MessageUpdateAppCardResponse as MessageUpdateAppCardResponse
|
|
116
|
+
from .payment_authorized_webhook_event import PaymentAuthorizedWebhookEvent as PaymentAuthorizedWebhookEvent
|
|
110
117
|
from .capability_check_i_message_params import CapabilityCheckIMessageParams as CapabilityCheckIMessageParams
|
|
111
118
|
from .participant_removed_webhook_event import ParticipantRemovedWebhookEvent as ParticipantRemovedWebhookEvent
|
|
112
119
|
from .payment_provider_connect_response import PaymentProviderConnectResponse as PaymentProviderConnectResponse
|
|
@@ -123,6 +130,12 @@ from .chat_background_updated_webhook_event import (
|
|
|
123
130
|
)
|
|
124
131
|
from .chat_group_icon_updated_webhook_event import ChatGroupIconUpdatedWebhookEvent as ChatGroupIconUpdatedWebhookEvent
|
|
125
132
|
from .chat_group_name_updated_webhook_event import ChatGroupNameUpdatedWebhookEvent as ChatGroupNameUpdatedWebhookEvent
|
|
133
|
+
from .location_sharing_started_webhook_event import (
|
|
134
|
+
LocationSharingStartedWebhookEvent as LocationSharingStartedWebhookEvent,
|
|
135
|
+
)
|
|
136
|
+
from .location_sharing_stopped_webhook_event import (
|
|
137
|
+
LocationSharingStoppedWebhookEvent as LocationSharingStoppedWebhookEvent,
|
|
138
|
+
)
|
|
126
139
|
from .phone_number_status_updated_webhook_event import (
|
|
127
140
|
PhoneNumberStatusUpdatedWebhookEvent as PhoneNumberStatusUpdatedWebhookEvent,
|
|
128
141
|
)
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Dict, Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
from typing_extensions import Literal
|
|
6
|
+
|
|
7
|
+
from .._models import BaseModel
|
|
8
|
+
|
|
9
|
+
__all__ = ["ConnectionCreatedWebhookEvent", "Data", "DataDiscount", "DataNatural", "DataStripe"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class DataDiscount(BaseModel):
|
|
13
|
+
"""Subscription mode — the discount Stripe applied, read back
|
|
14
|
+
from the coupon.
|
|
15
|
+
|
|
16
|
+
Absent when none was applied.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
coupon: Optional[str] = None
|
|
20
|
+
|
|
21
|
+
label: Optional[str] = None
|
|
22
|
+
"""Name of the coupon/promo code displayed to customers."""
|
|
23
|
+
|
|
24
|
+
promotion_code: Optional[str] = None
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class DataNatural(BaseModel):
|
|
28
|
+
"""Natural-rail join keys, present when `rail: natural`."""
|
|
29
|
+
|
|
30
|
+
payment_request_id: Optional[str] = None
|
|
31
|
+
"""The Natural payment request (`prq_...`)."""
|
|
32
|
+
|
|
33
|
+
transaction_id: Optional[str] = None
|
|
34
|
+
"""The settled transaction (`txn_...`)."""
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class DataStripe(BaseModel):
|
|
38
|
+
"""
|
|
39
|
+
Ids of the Stripe objects on your connected account — join
|
|
40
|
+
keys into your own Stripe Dashboard/API. Manage a
|
|
41
|
+
subscription's post-checkout lifecycle with `subscription_id`.
|
|
42
|
+
"""
|
|
43
|
+
|
|
44
|
+
customer_id: Optional[str] = None
|
|
45
|
+
"""
|
|
46
|
+
The Customer the request is attached to (`cus_...`). Always set in subscription
|
|
47
|
+
mode; set in payment mode only when the request was created with a
|
|
48
|
+
`customer_id`.
|
|
49
|
+
"""
|
|
50
|
+
|
|
51
|
+
payment_intent_id: Optional[str] = None
|
|
52
|
+
"""The PaymentIntent collected at checkout (`pi_...`)."""
|
|
53
|
+
|
|
54
|
+
subscription_id: Optional[str] = None
|
|
55
|
+
"""Subscription mode — the Subscription (`sub_...`)."""
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class Data(BaseModel):
|
|
59
|
+
"""
|
|
60
|
+
The payment request, as returned by
|
|
61
|
+
`GET /v3/payment_requests/{paymentRequestId}`.
|
|
62
|
+
"""
|
|
63
|
+
|
|
64
|
+
id: str
|
|
65
|
+
"""The payment request id."""
|
|
66
|
+
|
|
67
|
+
amount: int
|
|
68
|
+
"""What was charged at checkout, in the currency's minor units.
|
|
69
|
+
|
|
70
|
+
In `subscription` mode this is the first invoice's total — all items after any
|
|
71
|
+
discounts are applied.
|
|
72
|
+
"""
|
|
73
|
+
|
|
74
|
+
checkout_url: str
|
|
75
|
+
"""
|
|
76
|
+
URL the recipient opens to pay
|
|
77
|
+
(`https://zero.linqapp.com/pay/{slug}?session=...`).
|
|
78
|
+
"""
|
|
79
|
+
|
|
80
|
+
created_at: datetime
|
|
81
|
+
|
|
82
|
+
currency: str
|
|
83
|
+
|
|
84
|
+
object: str
|
|
85
|
+
|
|
86
|
+
status: Literal["succeeded", "failed", "canceled", "expired"]
|
|
87
|
+
|
|
88
|
+
description: Optional[str] = None
|
|
89
|
+
|
|
90
|
+
discount: Optional[DataDiscount] = None
|
|
91
|
+
"""Subscription mode — the discount Stripe applied, read back from the coupon.
|
|
92
|
+
|
|
93
|
+
Absent when none was applied.
|
|
94
|
+
"""
|
|
95
|
+
|
|
96
|
+
interval: Optional[Literal["day", "week", "month", "year"]] = None
|
|
97
|
+
"""Subscription mode — how often the subscription renews."""
|
|
98
|
+
|
|
99
|
+
interval_count: Optional[int] = None
|
|
100
|
+
"""Subscription mode — intervals per renewal."""
|
|
101
|
+
|
|
102
|
+
metadata: Optional[Dict[str, str]] = None
|
|
103
|
+
|
|
104
|
+
mode: Optional[Literal["payment", "subscription"]] = None
|
|
105
|
+
"""Whether the request collected a one-time charge or started a subscription."""
|
|
106
|
+
|
|
107
|
+
natural: Optional[DataNatural] = None
|
|
108
|
+
"""Natural-rail join keys, present when `rail: natural`."""
|
|
109
|
+
|
|
110
|
+
price_id: Optional[str] = None
|
|
111
|
+
"""Subscription mode — the recurring price subscribed to."""
|
|
112
|
+
|
|
113
|
+
quantity: Optional[int] = None
|
|
114
|
+
"""Subscription mode — units of the price subscribed to."""
|
|
115
|
+
|
|
116
|
+
rail: Optional[Literal["stripe", "natural"]] = None
|
|
117
|
+
"""The rail this request settled on."""
|
|
118
|
+
|
|
119
|
+
stripe: Optional[DataStripe] = None
|
|
120
|
+
"""
|
|
121
|
+
Ids of the Stripe objects on your connected account — join keys into your own
|
|
122
|
+
Stripe Dashboard/API. Manage a subscription's post-checkout lifecycle with
|
|
123
|
+
`subscription_id`.
|
|
124
|
+
"""
|
|
125
|
+
|
|
126
|
+
trial_end: Optional[datetime] = None
|
|
127
|
+
"""Subscription mode — when the free trial ends and the first charge happens.
|
|
128
|
+
|
|
129
|
+
On a trial request, `payment.succeeded` means the payment method was collected
|
|
130
|
+
($0 moved).
|
|
131
|
+
"""
|
|
132
|
+
|
|
133
|
+
updated_at: Optional[datetime] = None
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
class ConnectionCreatedWebhookEvent(BaseModel):
|
|
137
|
+
api_version: str
|
|
138
|
+
"""API version for the webhook payload format"""
|
|
139
|
+
|
|
140
|
+
created_at: datetime
|
|
141
|
+
"""When the event was created"""
|
|
142
|
+
|
|
143
|
+
data: Data
|
|
144
|
+
"""
|
|
145
|
+
The payment request, as returned by
|
|
146
|
+
`GET /v3/payment_requests/{paymentRequestId}`.
|
|
147
|
+
"""
|
|
148
|
+
|
|
149
|
+
event_id: str
|
|
150
|
+
"""Unique identifier for this event (for deduplication)"""
|
|
151
|
+
|
|
152
|
+
event_type: Literal[
|
|
153
|
+
"payment.succeeded",
|
|
154
|
+
"payment.canceled",
|
|
155
|
+
"payment.expired",
|
|
156
|
+
"message.sent",
|
|
157
|
+
"message.received",
|
|
158
|
+
"message.read",
|
|
159
|
+
"message.delivered",
|
|
160
|
+
"message.failed",
|
|
161
|
+
"message.edited",
|
|
162
|
+
"reaction.added",
|
|
163
|
+
"reaction.removed",
|
|
164
|
+
"poll.received",
|
|
165
|
+
"poll.failed",
|
|
166
|
+
"poll.sent",
|
|
167
|
+
"poll.delivered",
|
|
168
|
+
"poll.read",
|
|
169
|
+
"poll.updated",
|
|
170
|
+
"poll.vote.added",
|
|
171
|
+
"poll.vote.removed",
|
|
172
|
+
"poll.reaction.added",
|
|
173
|
+
"participant.added",
|
|
174
|
+
"participant.removed",
|
|
175
|
+
"chat.created",
|
|
176
|
+
"chat.group_name_updated",
|
|
177
|
+
"chat.group_icon_updated",
|
|
178
|
+
"chat.group_name_update_failed",
|
|
179
|
+
"chat.group_icon_update_failed",
|
|
180
|
+
"chat.background_updated",
|
|
181
|
+
"chat.background_update_failed",
|
|
182
|
+
"chat.typing_indicator.started",
|
|
183
|
+
"chat.typing_indicator.stopped",
|
|
184
|
+
"phone_number.status_updated",
|
|
185
|
+
"contact_card.received",
|
|
186
|
+
"call.initiated",
|
|
187
|
+
"call.ringing",
|
|
188
|
+
"call.answered",
|
|
189
|
+
"call.ended",
|
|
190
|
+
"call.failed",
|
|
191
|
+
"call.declined",
|
|
192
|
+
"call.no_answer",
|
|
193
|
+
"location.sharing.started",
|
|
194
|
+
"location.sharing.stopped",
|
|
195
|
+
"payment.declined",
|
|
196
|
+
"payment.authorized",
|
|
197
|
+
"connection.created",
|
|
198
|
+
"connection.revoked",
|
|
199
|
+
]
|
|
200
|
+
|
|
201
|
+
partner_id: str
|
|
202
|
+
"""Partner identifier. Present on all webhooks for cross-referencing."""
|
|
203
|
+
|
|
204
|
+
trace_id: str
|
|
205
|
+
"""Trace ID for debugging and correlation across systems."""
|
|
206
|
+
|
|
207
|
+
webhook_version: str
|
|
208
|
+
"""
|
|
209
|
+
Date-based webhook payload version. Determined by the `?version=` query
|
|
210
|
+
parameter in your webhook subscription URL. If no version parameter is
|
|
211
|
+
specified, defaults based on subscription creation date.
|
|
212
|
+
"""
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Dict, Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
from typing_extensions import Literal
|
|
6
|
+
|
|
7
|
+
from .._models import BaseModel
|
|
8
|
+
|
|
9
|
+
__all__ = ["ConnectionRevokedWebhookEvent", "Data", "DataDiscount", "DataNatural", "DataStripe"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class DataDiscount(BaseModel):
|
|
13
|
+
"""Subscription mode — the discount Stripe applied, read back
|
|
14
|
+
from the coupon.
|
|
15
|
+
|
|
16
|
+
Absent when none was applied.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
coupon: Optional[str] = None
|
|
20
|
+
|
|
21
|
+
label: Optional[str] = None
|
|
22
|
+
"""Name of the coupon/promo code displayed to customers."""
|
|
23
|
+
|
|
24
|
+
promotion_code: Optional[str] = None
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class DataNatural(BaseModel):
|
|
28
|
+
"""Natural-rail join keys, present when `rail: natural`."""
|
|
29
|
+
|
|
30
|
+
payment_request_id: Optional[str] = None
|
|
31
|
+
"""The Natural payment request (`prq_...`)."""
|
|
32
|
+
|
|
33
|
+
transaction_id: Optional[str] = None
|
|
34
|
+
"""The settled transaction (`txn_...`)."""
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class DataStripe(BaseModel):
|
|
38
|
+
"""
|
|
39
|
+
Ids of the Stripe objects on your connected account — join
|
|
40
|
+
keys into your own Stripe Dashboard/API. Manage a
|
|
41
|
+
subscription's post-checkout lifecycle with `subscription_id`.
|
|
42
|
+
"""
|
|
43
|
+
|
|
44
|
+
customer_id: Optional[str] = None
|
|
45
|
+
"""
|
|
46
|
+
The Customer the request is attached to (`cus_...`). Always set in subscription
|
|
47
|
+
mode; set in payment mode only when the request was created with a
|
|
48
|
+
`customer_id`.
|
|
49
|
+
"""
|
|
50
|
+
|
|
51
|
+
payment_intent_id: Optional[str] = None
|
|
52
|
+
"""The PaymentIntent collected at checkout (`pi_...`)."""
|
|
53
|
+
|
|
54
|
+
subscription_id: Optional[str] = None
|
|
55
|
+
"""Subscription mode — the Subscription (`sub_...`)."""
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class Data(BaseModel):
|
|
59
|
+
"""
|
|
60
|
+
The payment request, as returned by
|
|
61
|
+
`GET /v3/payment_requests/{paymentRequestId}`.
|
|
62
|
+
"""
|
|
63
|
+
|
|
64
|
+
id: str
|
|
65
|
+
"""The payment request id."""
|
|
66
|
+
|
|
67
|
+
amount: int
|
|
68
|
+
"""What was charged at checkout, in the currency's minor units.
|
|
69
|
+
|
|
70
|
+
In `subscription` mode this is the first invoice's total — all items after any
|
|
71
|
+
discounts are applied.
|
|
72
|
+
"""
|
|
73
|
+
|
|
74
|
+
checkout_url: str
|
|
75
|
+
"""
|
|
76
|
+
URL the recipient opens to pay
|
|
77
|
+
(`https://zero.linqapp.com/pay/{slug}?session=...`).
|
|
78
|
+
"""
|
|
79
|
+
|
|
80
|
+
created_at: datetime
|
|
81
|
+
|
|
82
|
+
currency: str
|
|
83
|
+
|
|
84
|
+
object: str
|
|
85
|
+
|
|
86
|
+
status: Literal["succeeded", "failed", "canceled", "expired"]
|
|
87
|
+
|
|
88
|
+
description: Optional[str] = None
|
|
89
|
+
|
|
90
|
+
discount: Optional[DataDiscount] = None
|
|
91
|
+
"""Subscription mode — the discount Stripe applied, read back from the coupon.
|
|
92
|
+
|
|
93
|
+
Absent when none was applied.
|
|
94
|
+
"""
|
|
95
|
+
|
|
96
|
+
interval: Optional[Literal["day", "week", "month", "year"]] = None
|
|
97
|
+
"""Subscription mode — how often the subscription renews."""
|
|
98
|
+
|
|
99
|
+
interval_count: Optional[int] = None
|
|
100
|
+
"""Subscription mode — intervals per renewal."""
|
|
101
|
+
|
|
102
|
+
metadata: Optional[Dict[str, str]] = None
|
|
103
|
+
|
|
104
|
+
mode: Optional[Literal["payment", "subscription"]] = None
|
|
105
|
+
"""Whether the request collected a one-time charge or started a subscription."""
|
|
106
|
+
|
|
107
|
+
natural: Optional[DataNatural] = None
|
|
108
|
+
"""Natural-rail join keys, present when `rail: natural`."""
|
|
109
|
+
|
|
110
|
+
price_id: Optional[str] = None
|
|
111
|
+
"""Subscription mode — the recurring price subscribed to."""
|
|
112
|
+
|
|
113
|
+
quantity: Optional[int] = None
|
|
114
|
+
"""Subscription mode — units of the price subscribed to."""
|
|
115
|
+
|
|
116
|
+
rail: Optional[Literal["stripe", "natural"]] = None
|
|
117
|
+
"""The rail this request settled on."""
|
|
118
|
+
|
|
119
|
+
stripe: Optional[DataStripe] = None
|
|
120
|
+
"""
|
|
121
|
+
Ids of the Stripe objects on your connected account — join keys into your own
|
|
122
|
+
Stripe Dashboard/API. Manage a subscription's post-checkout lifecycle with
|
|
123
|
+
`subscription_id`.
|
|
124
|
+
"""
|
|
125
|
+
|
|
126
|
+
trial_end: Optional[datetime] = None
|
|
127
|
+
"""Subscription mode — when the free trial ends and the first charge happens.
|
|
128
|
+
|
|
129
|
+
On a trial request, `payment.succeeded` means the payment method was collected
|
|
130
|
+
($0 moved).
|
|
131
|
+
"""
|
|
132
|
+
|
|
133
|
+
updated_at: Optional[datetime] = None
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
class ConnectionRevokedWebhookEvent(BaseModel):
|
|
137
|
+
api_version: str
|
|
138
|
+
"""API version for the webhook payload format"""
|
|
139
|
+
|
|
140
|
+
created_at: datetime
|
|
141
|
+
"""When the event was created"""
|
|
142
|
+
|
|
143
|
+
data: Data
|
|
144
|
+
"""
|
|
145
|
+
The payment request, as returned by
|
|
146
|
+
`GET /v3/payment_requests/{paymentRequestId}`.
|
|
147
|
+
"""
|
|
148
|
+
|
|
149
|
+
event_id: str
|
|
150
|
+
"""Unique identifier for this event (for deduplication)"""
|
|
151
|
+
|
|
152
|
+
event_type: Literal[
|
|
153
|
+
"payment.succeeded",
|
|
154
|
+
"payment.canceled",
|
|
155
|
+
"payment.expired",
|
|
156
|
+
"message.sent",
|
|
157
|
+
"message.received",
|
|
158
|
+
"message.read",
|
|
159
|
+
"message.delivered",
|
|
160
|
+
"message.failed",
|
|
161
|
+
"message.edited",
|
|
162
|
+
"reaction.added",
|
|
163
|
+
"reaction.removed",
|
|
164
|
+
"poll.received",
|
|
165
|
+
"poll.failed",
|
|
166
|
+
"poll.sent",
|
|
167
|
+
"poll.delivered",
|
|
168
|
+
"poll.read",
|
|
169
|
+
"poll.updated",
|
|
170
|
+
"poll.vote.added",
|
|
171
|
+
"poll.vote.removed",
|
|
172
|
+
"poll.reaction.added",
|
|
173
|
+
"participant.added",
|
|
174
|
+
"participant.removed",
|
|
175
|
+
"chat.created",
|
|
176
|
+
"chat.group_name_updated",
|
|
177
|
+
"chat.group_icon_updated",
|
|
178
|
+
"chat.group_name_update_failed",
|
|
179
|
+
"chat.group_icon_update_failed",
|
|
180
|
+
"chat.background_updated",
|
|
181
|
+
"chat.background_update_failed",
|
|
182
|
+
"chat.typing_indicator.started",
|
|
183
|
+
"chat.typing_indicator.stopped",
|
|
184
|
+
"phone_number.status_updated",
|
|
185
|
+
"contact_card.received",
|
|
186
|
+
"call.initiated",
|
|
187
|
+
"call.ringing",
|
|
188
|
+
"call.answered",
|
|
189
|
+
"call.ended",
|
|
190
|
+
"call.failed",
|
|
191
|
+
"call.declined",
|
|
192
|
+
"call.no_answer",
|
|
193
|
+
"location.sharing.started",
|
|
194
|
+
"location.sharing.stopped",
|
|
195
|
+
"payment.declined",
|
|
196
|
+
"payment.authorized",
|
|
197
|
+
"connection.created",
|
|
198
|
+
"connection.revoked",
|
|
199
|
+
]
|
|
200
|
+
|
|
201
|
+
partner_id: str
|
|
202
|
+
"""Partner identifier. Present on all webhooks for cross-referencing."""
|
|
203
|
+
|
|
204
|
+
trace_id: str
|
|
205
|
+
"""Trace ID for debugging and correlation across systems."""
|
|
206
|
+
|
|
207
|
+
webhook_version: str
|
|
208
|
+
"""
|
|
209
|
+
Date-based webhook payload version. Determined by the `?version=` query
|
|
210
|
+
parameter in your webhook subscription URL. If no version parameter is
|
|
211
|
+
specified, defaults based on subscription creation date.
|
|
212
|
+
"""
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
from typing_extensions import Literal
|
|
6
|
+
|
|
7
|
+
from .._models import BaseModel
|
|
8
|
+
|
|
9
|
+
__all__ = ["LocationSharingStartedWebhookEvent", "Data"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class Data(BaseModel):
|
|
13
|
+
began_at: Optional[datetime] = None
|
|
14
|
+
"""When location sharing started.
|
|
15
|
+
|
|
16
|
+
Always present: falls back to when the share was first observed if the device
|
|
17
|
+
reported no start time.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
chat_id: Optional[str] = None
|
|
21
|
+
"""The chat this share was first sent to.
|
|
22
|
+
|
|
23
|
+
Location sharing is per-contact rather than per-chat, so the location may also
|
|
24
|
+
be visible in other chats with the same handle; this identifies where the share
|
|
25
|
+
originated and does not change if the contact later shares into another chat.
|
|
26
|
+
Null when the originating chat could not be determined.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
ends_at: Optional[datetime] = None
|
|
30
|
+
"""When location sharing will expire. Null when sharing indefinitely."""
|
|
31
|
+
|
|
32
|
+
shared_by: str
|
|
33
|
+
"""Phone number of the person sharing their location"""
|
|
34
|
+
|
|
35
|
+
shared_with: str
|
|
36
|
+
"""Your phone number receiving the location"""
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class LocationSharingStartedWebhookEvent(BaseModel):
|
|
40
|
+
api_version: str
|
|
41
|
+
"""API version for the webhook payload format"""
|
|
42
|
+
|
|
43
|
+
created_at: datetime
|
|
44
|
+
"""When the event was created"""
|
|
45
|
+
|
|
46
|
+
data: Data
|
|
47
|
+
|
|
48
|
+
event_id: str
|
|
49
|
+
"""Unique identifier for this event (for deduplication)"""
|
|
50
|
+
|
|
51
|
+
event_type: Literal[
|
|
52
|
+
"location.sharing.started",
|
|
53
|
+
"message.sent",
|
|
54
|
+
"message.received",
|
|
55
|
+
"message.read",
|
|
56
|
+
"message.delivered",
|
|
57
|
+
"message.failed",
|
|
58
|
+
"message.edited",
|
|
59
|
+
"reaction.added",
|
|
60
|
+
"reaction.removed",
|
|
61
|
+
"poll.received",
|
|
62
|
+
"poll.failed",
|
|
63
|
+
"poll.sent",
|
|
64
|
+
"poll.delivered",
|
|
65
|
+
"poll.read",
|
|
66
|
+
"poll.updated",
|
|
67
|
+
"poll.vote.added",
|
|
68
|
+
"poll.vote.removed",
|
|
69
|
+
"poll.reaction.added",
|
|
70
|
+
"participant.added",
|
|
71
|
+
"participant.removed",
|
|
72
|
+
"chat.created",
|
|
73
|
+
"chat.group_name_updated",
|
|
74
|
+
"chat.group_icon_updated",
|
|
75
|
+
"chat.group_name_update_failed",
|
|
76
|
+
"chat.group_icon_update_failed",
|
|
77
|
+
"chat.background_updated",
|
|
78
|
+
"chat.background_update_failed",
|
|
79
|
+
"chat.typing_indicator.started",
|
|
80
|
+
"chat.typing_indicator.stopped",
|
|
81
|
+
"phone_number.status_updated",
|
|
82
|
+
"contact_card.received",
|
|
83
|
+
"call.initiated",
|
|
84
|
+
"call.ringing",
|
|
85
|
+
"call.answered",
|
|
86
|
+
"call.ended",
|
|
87
|
+
"call.failed",
|
|
88
|
+
"call.declined",
|
|
89
|
+
"call.no_answer",
|
|
90
|
+
"location.sharing.stopped",
|
|
91
|
+
"payment.succeeded",
|
|
92
|
+
"payment.canceled",
|
|
93
|
+
"payment.expired",
|
|
94
|
+
"payment.declined",
|
|
95
|
+
"payment.authorized",
|
|
96
|
+
"connection.created",
|
|
97
|
+
"connection.revoked",
|
|
98
|
+
]
|
|
99
|
+
|
|
100
|
+
partner_id: str
|
|
101
|
+
"""Partner identifier. Present on all webhooks for cross-referencing."""
|
|
102
|
+
|
|
103
|
+
trace_id: str
|
|
104
|
+
"""Trace ID for debugging and correlation across systems."""
|
|
105
|
+
|
|
106
|
+
webhook_version: str
|
|
107
|
+
"""
|
|
108
|
+
Date-based webhook payload version. Determined by the `?version=` query
|
|
109
|
+
parameter in your webhook subscription URL. If no version parameter is
|
|
110
|
+
specified, defaults based on subscription creation date.
|
|
111
|
+
"""
|