dub 0.31.0__py3-none-any.whl → 0.33.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.
- dub/_version.py +3 -3
- dub/analytics.py +6 -6
- dub/commissions.py +12 -12
- dub/customers.py +24 -321
- dub/domains.py +34 -38
- dub/embed_tokens.py +6 -6
- dub/events.py +6 -6
- dub/folders.py +24 -28
- dub/links.py +58 -74
- dub/models/components/__init__.py +38 -6
- dub/models/components/analyticstopurls.py +2 -2
- dub/models/components/clickevent.py +10 -9
- dub/models/components/commissioncreatedevent.py +5 -2
- dub/models/components/folderschema.py +6 -1
- dub/models/components/leadcreatedevent.py +15 -11
- dub/models/components/leadevent.py +10 -9
- dub/models/components/linkclickedevent.py +10 -9
- dub/models/components/linkschema.py +9 -3
- dub/models/components/{tagschema.py → linktagschema.py} +2 -2
- dub/models/components/linkwebhookevent.py +10 -9
- dub/models/components/partnerapplicationsubmittedevent.py +269 -0
- dub/models/components/partnerenrolledevent.py +93 -29
- dub/models/components/salecreatedevent.py +15 -11
- dub/models/components/saleevent.py +10 -9
- dub/models/components/webhookevent.py +6 -0
- dub/models/components/workspaceschema.py +11 -0
- dub/models/errors/badrequest.py +1 -1
- dub/models/errors/conflict.py +1 -1
- dub/models/errors/duberror.py +1 -1
- dub/models/errors/forbidden.py +1 -1
- dub/models/errors/internalservererror.py +1 -1
- dub/models/errors/inviteexpired.py +1 -1
- dub/models/errors/no_response_error.py +1 -1
- dub/models/errors/notfound.py +1 -1
- dub/models/errors/ratelimitexceeded.py +1 -1
- dub/models/errors/responsevalidationerror.py +1 -1
- dub/models/errors/sdkerror.py +1 -1
- dub/models/errors/unauthorized.py +1 -1
- dub/models/errors/unprocessableentity.py +1 -1
- dub/models/operations/__init__.py +17 -35
- dub/models/operations/banpartner.py +83 -0
- dub/models/operations/bulkcreatelinks.py +2 -2
- dub/models/operations/createfolder.py +8 -3
- dub/models/operations/createlink.py +2 -2
- dub/models/operations/createpartner.py +93 -29
- dub/models/operations/listcommissions.py +13 -2
- dub/models/operations/listevents.py +10 -0
- dub/models/operations/listpartners.py +107 -47
- dub/models/operations/retrieveanalytics.py +16 -1
- dub/models/operations/retrievelinks.py +42 -7
- dub/models/operations/retrievepartneranalytics.py +51 -11
- dub/models/operations/tracklead.py +2 -2
- dub/models/operations/updatecommission.py +7 -2
- dub/models/operations/updatefolder.py +8 -3
- dub/models/operations/updatelink.py +2 -2
- dub/models/operations/upsertlink.py +2 -2
- dub/partners.py +310 -36
- dub/qr_codes.py +4 -4
- dub/tags.py +24 -32
- dub/track.py +12 -20
- dub/utils/retries.py +69 -5
- dub/utils/unmarshal_json_response.py +15 -1
- dub/workspaces.py +12 -20
- {dub-0.31.0.dist-info → dub-0.33.0.dist-info}/METADATA +2 -21
- {dub-0.31.0.dist-info → dub-0.33.0.dist-info}/RECORD +67 -66
- dub/models/operations/createcustomer.py +0 -382
- {dub-0.31.0.dist-info → dub-0.33.0.dist-info}/WHEEL +0 -0
- {dub-0.31.0.dist-info → dub-0.33.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
|
-
from .
|
|
4
|
+
from .linktagschema import LinkTagSchema, LinkTagSchemaTypedDict
|
|
5
5
|
from dub.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
|
6
6
|
from enum import Enum
|
|
7
7
|
import pydantic
|
|
@@ -125,6 +125,7 @@ class LinkTypedDict(TypedDict):
|
|
|
125
125
|
archived: bool
|
|
126
126
|
expires_at: str
|
|
127
127
|
expired_url: Nullable[str]
|
|
128
|
+
disabled_at: str
|
|
128
129
|
password: Nullable[str]
|
|
129
130
|
r"""The password required to access the destination URL of the short link."""
|
|
130
131
|
proxy: bool
|
|
@@ -145,7 +146,7 @@ class LinkTypedDict(TypedDict):
|
|
|
145
146
|
geo: Nullable[Dict[str, str]]
|
|
146
147
|
r"""Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. See https://d.to/geo for more information."""
|
|
147
148
|
public_stats: bool
|
|
148
|
-
tags: Nullable[List[
|
|
149
|
+
tags: Nullable[List[LinkTagSchemaTypedDict]]
|
|
149
150
|
r"""The tags assigned to the short link."""
|
|
150
151
|
folder_id: Nullable[str]
|
|
151
152
|
r"""The unique ID of the folder assigned to the short link."""
|
|
@@ -167,8 +168,8 @@ class LinkTypedDict(TypedDict):
|
|
|
167
168
|
r"""The UTM term of the short link."""
|
|
168
169
|
utm_content: Nullable[str]
|
|
169
170
|
r"""The UTM content of the short link."""
|
|
170
|
-
test_started_at:
|
|
171
|
-
test_completed_at:
|
|
171
|
+
test_started_at: str
|
|
172
|
+
test_completed_at: str
|
|
172
173
|
user_id: Nullable[str]
|
|
173
174
|
workspace_id: str
|
|
174
175
|
r"""The workspace ID of the short link."""
|
|
@@ -225,6 +226,8 @@ class Link(BaseModel):
|
|
|
225
226
|
|
|
226
227
|
expired_url: Annotated[Nullable[str], pydantic.Field(alias="expiredUrl")]
|
|
227
228
|
|
|
229
|
+
disabled_at: Annotated[str, pydantic.Field(alias="disabledAt")]
|
|
230
|
+
|
|
228
231
|
password: Nullable[str]
|
|
229
232
|
r"""The password required to access the destination URL of the short link."""
|
|
230
233
|
|
|
@@ -257,7 +260,7 @@ class Link(BaseModel):
|
|
|
257
260
|
|
|
258
261
|
public_stats: Annotated[bool, pydantic.Field(alias="publicStats")]
|
|
259
262
|
|
|
260
|
-
tags: Nullable[List[
|
|
263
|
+
tags: Nullable[List[LinkTagSchema]]
|
|
261
264
|
r"""The tags assigned to the short link."""
|
|
262
265
|
|
|
263
266
|
folder_id: Annotated[Nullable[str], pydantic.Field(alias="folderId")]
|
|
@@ -290,9 +293,9 @@ class Link(BaseModel):
|
|
|
290
293
|
utm_content: Nullable[str]
|
|
291
294
|
r"""The UTM content of the short link."""
|
|
292
295
|
|
|
293
|
-
test_started_at: Annotated[
|
|
296
|
+
test_started_at: Annotated[str, pydantic.Field(alias="testStartedAt")]
|
|
294
297
|
|
|
295
|
-
test_completed_at: Annotated[
|
|
298
|
+
test_completed_at: Annotated[str, pydantic.Field(alias="testCompletedAt")]
|
|
296
299
|
|
|
297
300
|
user_id: Annotated[Nullable[str], pydantic.Field(alias="userId")]
|
|
298
301
|
|
|
@@ -377,8 +380,6 @@ class Link(BaseModel):
|
|
|
377
380
|
"utm_term",
|
|
378
381
|
"utm_content",
|
|
379
382
|
"testVariants",
|
|
380
|
-
"testStartedAt",
|
|
381
|
-
"testCompletedAt",
|
|
382
383
|
"userId",
|
|
383
384
|
"tagId",
|
|
384
385
|
]
|
|
@@ -49,6 +49,7 @@ class CommissionCreatedEventPartnerTypedDict(TypedDict):
|
|
|
49
49
|
total_sales: float
|
|
50
50
|
total_sale_amount: float
|
|
51
51
|
total_commissions: float
|
|
52
|
+
group_id: NotRequired[Nullable[str]]
|
|
52
53
|
|
|
53
54
|
|
|
54
55
|
class CommissionCreatedEventPartner(BaseModel):
|
|
@@ -84,10 +85,12 @@ class CommissionCreatedEventPartner(BaseModel):
|
|
|
84
85
|
|
|
85
86
|
total_commissions: Annotated[float, pydantic.Field(alias="totalCommissions")]
|
|
86
87
|
|
|
88
|
+
group_id: Annotated[OptionalNullable[str], pydantic.Field(alias="groupId")] = UNSET
|
|
89
|
+
|
|
87
90
|
@model_serializer(mode="wrap")
|
|
88
91
|
def serialize_model(self, handler):
|
|
89
|
-
optional_fields = []
|
|
90
|
-
nullable_fields = ["email", "image", "payoutsEnabledAt", "country"]
|
|
92
|
+
optional_fields = ["groupId"]
|
|
93
|
+
nullable_fields = ["email", "image", "payoutsEnabledAt", "country", "groupId"]
|
|
91
94
|
null_default_fields = []
|
|
92
95
|
|
|
93
96
|
serialized = handler(self)
|
|
@@ -25,6 +25,8 @@ class FolderSchemaTypedDict(TypedDict):
|
|
|
25
25
|
r"""The unique ID of the folder."""
|
|
26
26
|
name: str
|
|
27
27
|
r"""The name of the folder."""
|
|
28
|
+
description: Nullable[str]
|
|
29
|
+
r"""The description of the folder."""
|
|
28
30
|
type: Type
|
|
29
31
|
created_at: str
|
|
30
32
|
r"""The date the folder was created."""
|
|
@@ -41,6 +43,9 @@ class FolderSchema(BaseModel):
|
|
|
41
43
|
name: str
|
|
42
44
|
r"""The name of the folder."""
|
|
43
45
|
|
|
46
|
+
description: Nullable[str]
|
|
47
|
+
r"""The description of the folder."""
|
|
48
|
+
|
|
44
49
|
type: Type
|
|
45
50
|
|
|
46
51
|
created_at: Annotated[str, pydantic.Field(alias="createdAt")]
|
|
@@ -57,7 +62,7 @@ class FolderSchema(BaseModel):
|
|
|
57
62
|
@model_serializer(mode="wrap")
|
|
58
63
|
def serialize_model(self, handler):
|
|
59
64
|
optional_fields = ["accessLevel"]
|
|
60
|
-
nullable_fields = ["accessLevel"]
|
|
65
|
+
nullable_fields = ["description", "accessLevel"]
|
|
61
66
|
null_default_fields = ["accessLevel"]
|
|
62
67
|
|
|
63
68
|
serialized = handler(self)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
|
-
from .
|
|
4
|
+
from .linktagschema import LinkTagSchema, LinkTagSchemaTypedDict
|
|
5
5
|
from dub.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
|
6
6
|
from enum import Enum
|
|
7
7
|
import pydantic
|
|
@@ -207,6 +207,7 @@ class LeadCreatedEventLinkTypedDict(TypedDict):
|
|
|
207
207
|
archived: bool
|
|
208
208
|
expires_at: str
|
|
209
209
|
expired_url: Nullable[str]
|
|
210
|
+
disabled_at: str
|
|
210
211
|
password: Nullable[str]
|
|
211
212
|
r"""The password required to access the destination URL of the short link."""
|
|
212
213
|
proxy: bool
|
|
@@ -227,7 +228,7 @@ class LeadCreatedEventLinkTypedDict(TypedDict):
|
|
|
227
228
|
geo: Nullable[Dict[str, str]]
|
|
228
229
|
r"""Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. See https://d.to/geo for more information."""
|
|
229
230
|
public_stats: bool
|
|
230
|
-
tags: Nullable[List[
|
|
231
|
+
tags: Nullable[List[LinkTagSchemaTypedDict]]
|
|
231
232
|
r"""The tags assigned to the short link."""
|
|
232
233
|
folder_id: Nullable[str]
|
|
233
234
|
r"""The unique ID of the folder assigned to the short link."""
|
|
@@ -249,8 +250,8 @@ class LeadCreatedEventLinkTypedDict(TypedDict):
|
|
|
249
250
|
r"""The UTM term of the short link."""
|
|
250
251
|
utm_content: Nullable[str]
|
|
251
252
|
r"""The UTM content of the short link."""
|
|
252
|
-
test_started_at:
|
|
253
|
-
test_completed_at:
|
|
253
|
+
test_started_at: str
|
|
254
|
+
test_completed_at: str
|
|
254
255
|
user_id: Nullable[str]
|
|
255
256
|
workspace_id: str
|
|
256
257
|
r"""The workspace ID of the short link."""
|
|
@@ -307,6 +308,8 @@ class LeadCreatedEventLink(BaseModel):
|
|
|
307
308
|
|
|
308
309
|
expired_url: Annotated[Nullable[str], pydantic.Field(alias="expiredUrl")]
|
|
309
310
|
|
|
311
|
+
disabled_at: Annotated[str, pydantic.Field(alias="disabledAt")]
|
|
312
|
+
|
|
310
313
|
password: Nullable[str]
|
|
311
314
|
r"""The password required to access the destination URL of the short link."""
|
|
312
315
|
|
|
@@ -339,7 +342,7 @@ class LeadCreatedEventLink(BaseModel):
|
|
|
339
342
|
|
|
340
343
|
public_stats: Annotated[bool, pydantic.Field(alias="publicStats")]
|
|
341
344
|
|
|
342
|
-
tags: Nullable[List[
|
|
345
|
+
tags: Nullable[List[LinkTagSchema]]
|
|
343
346
|
r"""The tags assigned to the short link."""
|
|
344
347
|
|
|
345
348
|
folder_id: Annotated[Nullable[str], pydantic.Field(alias="folderId")]
|
|
@@ -372,9 +375,9 @@ class LeadCreatedEventLink(BaseModel):
|
|
|
372
375
|
utm_content: Nullable[str]
|
|
373
376
|
r"""The UTM content of the short link."""
|
|
374
377
|
|
|
375
|
-
test_started_at: Annotated[
|
|
378
|
+
test_started_at: Annotated[str, pydantic.Field(alias="testStartedAt")]
|
|
376
379
|
|
|
377
|
-
test_completed_at: Annotated[
|
|
380
|
+
test_completed_at: Annotated[str, pydantic.Field(alias="testCompletedAt")]
|
|
378
381
|
|
|
379
382
|
user_id: Annotated[Nullable[str], pydantic.Field(alias="userId")]
|
|
380
383
|
|
|
@@ -459,8 +462,6 @@ class LeadCreatedEventLink(BaseModel):
|
|
|
459
462
|
"utm_term",
|
|
460
463
|
"utm_content",
|
|
461
464
|
"testVariants",
|
|
462
|
-
"testStartedAt",
|
|
463
|
-
"testCompletedAt",
|
|
464
465
|
"userId",
|
|
465
466
|
"tagId",
|
|
466
467
|
]
|
|
@@ -510,6 +511,7 @@ class PartnerTypedDict(TypedDict):
|
|
|
510
511
|
total_sales: float
|
|
511
512
|
total_sale_amount: float
|
|
512
513
|
total_commissions: float
|
|
514
|
+
group_id: NotRequired[Nullable[str]]
|
|
513
515
|
|
|
514
516
|
|
|
515
517
|
class Partner(BaseModel):
|
|
@@ -545,10 +547,12 @@ class Partner(BaseModel):
|
|
|
545
547
|
|
|
546
548
|
total_commissions: Annotated[float, pydantic.Field(alias="totalCommissions")]
|
|
547
549
|
|
|
550
|
+
group_id: Annotated[OptionalNullable[str], pydantic.Field(alias="groupId")] = UNSET
|
|
551
|
+
|
|
548
552
|
@model_serializer(mode="wrap")
|
|
549
553
|
def serialize_model(self, handler):
|
|
550
|
-
optional_fields = []
|
|
551
|
-
nullable_fields = ["email", "image", "payoutsEnabledAt", "country"]
|
|
554
|
+
optional_fields = ["groupId"]
|
|
555
|
+
nullable_fields = ["email", "image", "payoutsEnabledAt", "country", "groupId"]
|
|
552
556
|
null_default_fields = []
|
|
553
557
|
|
|
554
558
|
serialized = handler(self)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
|
-
from .
|
|
4
|
+
from .linktagschema import LinkTagSchema, LinkTagSchemaTypedDict
|
|
5
5
|
from dub.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
|
6
6
|
from enum import Enum
|
|
7
7
|
import pydantic
|
|
@@ -125,6 +125,7 @@ class LeadEventLinkTypedDict(TypedDict):
|
|
|
125
125
|
archived: bool
|
|
126
126
|
expires_at: str
|
|
127
127
|
expired_url: Nullable[str]
|
|
128
|
+
disabled_at: str
|
|
128
129
|
password: Nullable[str]
|
|
129
130
|
r"""The password required to access the destination URL of the short link."""
|
|
130
131
|
proxy: bool
|
|
@@ -145,7 +146,7 @@ class LeadEventLinkTypedDict(TypedDict):
|
|
|
145
146
|
geo: Nullable[Dict[str, str]]
|
|
146
147
|
r"""Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. See https://d.to/geo for more information."""
|
|
147
148
|
public_stats: bool
|
|
148
|
-
tags: Nullable[List[
|
|
149
|
+
tags: Nullable[List[LinkTagSchemaTypedDict]]
|
|
149
150
|
r"""The tags assigned to the short link."""
|
|
150
151
|
folder_id: Nullable[str]
|
|
151
152
|
r"""The unique ID of the folder assigned to the short link."""
|
|
@@ -167,8 +168,8 @@ class LeadEventLinkTypedDict(TypedDict):
|
|
|
167
168
|
r"""The UTM term of the short link."""
|
|
168
169
|
utm_content: Nullable[str]
|
|
169
170
|
r"""The UTM content of the short link."""
|
|
170
|
-
test_started_at:
|
|
171
|
-
test_completed_at:
|
|
171
|
+
test_started_at: str
|
|
172
|
+
test_completed_at: str
|
|
172
173
|
user_id: Nullable[str]
|
|
173
174
|
workspace_id: str
|
|
174
175
|
r"""The workspace ID of the short link."""
|
|
@@ -225,6 +226,8 @@ class LeadEventLink(BaseModel):
|
|
|
225
226
|
|
|
226
227
|
expired_url: Annotated[Nullable[str], pydantic.Field(alias="expiredUrl")]
|
|
227
228
|
|
|
229
|
+
disabled_at: Annotated[str, pydantic.Field(alias="disabledAt")]
|
|
230
|
+
|
|
228
231
|
password: Nullable[str]
|
|
229
232
|
r"""The password required to access the destination URL of the short link."""
|
|
230
233
|
|
|
@@ -257,7 +260,7 @@ class LeadEventLink(BaseModel):
|
|
|
257
260
|
|
|
258
261
|
public_stats: Annotated[bool, pydantic.Field(alias="publicStats")]
|
|
259
262
|
|
|
260
|
-
tags: Nullable[List[
|
|
263
|
+
tags: Nullable[List[LinkTagSchema]]
|
|
261
264
|
r"""The tags assigned to the short link."""
|
|
262
265
|
|
|
263
266
|
folder_id: Annotated[Nullable[str], pydantic.Field(alias="folderId")]
|
|
@@ -290,9 +293,9 @@ class LeadEventLink(BaseModel):
|
|
|
290
293
|
utm_content: Nullable[str]
|
|
291
294
|
r"""The UTM content of the short link."""
|
|
292
295
|
|
|
293
|
-
test_started_at: Annotated[
|
|
296
|
+
test_started_at: Annotated[str, pydantic.Field(alias="testStartedAt")]
|
|
294
297
|
|
|
295
|
-
test_completed_at: Annotated[
|
|
298
|
+
test_completed_at: Annotated[str, pydantic.Field(alias="testCompletedAt")]
|
|
296
299
|
|
|
297
300
|
user_id: Annotated[Nullable[str], pydantic.Field(alias="userId")]
|
|
298
301
|
|
|
@@ -377,8 +380,6 @@ class LeadEventLink(BaseModel):
|
|
|
377
380
|
"utm_term",
|
|
378
381
|
"utm_content",
|
|
379
382
|
"testVariants",
|
|
380
|
-
"testStartedAt",
|
|
381
|
-
"testCompletedAt",
|
|
382
383
|
"userId",
|
|
383
384
|
"tagId",
|
|
384
385
|
]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
|
-
from .
|
|
4
|
+
from .linktagschema import LinkTagSchema, LinkTagSchemaTypedDict
|
|
5
5
|
from dub.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
|
6
6
|
from enum import Enum
|
|
7
7
|
import pydantic
|
|
@@ -125,6 +125,7 @@ class LinkClickedEventLinkTypedDict(TypedDict):
|
|
|
125
125
|
archived: bool
|
|
126
126
|
expires_at: str
|
|
127
127
|
expired_url: Nullable[str]
|
|
128
|
+
disabled_at: str
|
|
128
129
|
password: Nullable[str]
|
|
129
130
|
r"""The password required to access the destination URL of the short link."""
|
|
130
131
|
proxy: bool
|
|
@@ -145,7 +146,7 @@ class LinkClickedEventLinkTypedDict(TypedDict):
|
|
|
145
146
|
geo: Nullable[Dict[str, str]]
|
|
146
147
|
r"""Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. See https://d.to/geo for more information."""
|
|
147
148
|
public_stats: bool
|
|
148
|
-
tags: Nullable[List[
|
|
149
|
+
tags: Nullable[List[LinkTagSchemaTypedDict]]
|
|
149
150
|
r"""The tags assigned to the short link."""
|
|
150
151
|
folder_id: Nullable[str]
|
|
151
152
|
r"""The unique ID of the folder assigned to the short link."""
|
|
@@ -167,8 +168,8 @@ class LinkClickedEventLinkTypedDict(TypedDict):
|
|
|
167
168
|
r"""The UTM term of the short link."""
|
|
168
169
|
utm_content: Nullable[str]
|
|
169
170
|
r"""The UTM content of the short link."""
|
|
170
|
-
test_started_at:
|
|
171
|
-
test_completed_at:
|
|
171
|
+
test_started_at: str
|
|
172
|
+
test_completed_at: str
|
|
172
173
|
user_id: Nullable[str]
|
|
173
174
|
workspace_id: str
|
|
174
175
|
r"""The workspace ID of the short link."""
|
|
@@ -225,6 +226,8 @@ class LinkClickedEventLink(BaseModel):
|
|
|
225
226
|
|
|
226
227
|
expired_url: Annotated[Nullable[str], pydantic.Field(alias="expiredUrl")]
|
|
227
228
|
|
|
229
|
+
disabled_at: Annotated[str, pydantic.Field(alias="disabledAt")]
|
|
230
|
+
|
|
228
231
|
password: Nullable[str]
|
|
229
232
|
r"""The password required to access the destination URL of the short link."""
|
|
230
233
|
|
|
@@ -257,7 +260,7 @@ class LinkClickedEventLink(BaseModel):
|
|
|
257
260
|
|
|
258
261
|
public_stats: Annotated[bool, pydantic.Field(alias="publicStats")]
|
|
259
262
|
|
|
260
|
-
tags: Nullable[List[
|
|
263
|
+
tags: Nullable[List[LinkTagSchema]]
|
|
261
264
|
r"""The tags assigned to the short link."""
|
|
262
265
|
|
|
263
266
|
folder_id: Annotated[Nullable[str], pydantic.Field(alias="folderId")]
|
|
@@ -290,9 +293,9 @@ class LinkClickedEventLink(BaseModel):
|
|
|
290
293
|
utm_content: Nullable[str]
|
|
291
294
|
r"""The UTM content of the short link."""
|
|
292
295
|
|
|
293
|
-
test_started_at: Annotated[
|
|
296
|
+
test_started_at: Annotated[str, pydantic.Field(alias="testStartedAt")]
|
|
294
297
|
|
|
295
|
-
test_completed_at: Annotated[
|
|
298
|
+
test_completed_at: Annotated[str, pydantic.Field(alias="testCompletedAt")]
|
|
296
299
|
|
|
297
300
|
user_id: Annotated[Nullable[str], pydantic.Field(alias="userId")]
|
|
298
301
|
|
|
@@ -377,8 +380,6 @@ class LinkClickedEventLink(BaseModel):
|
|
|
377
380
|
"utm_term",
|
|
378
381
|
"utm_content",
|
|
379
382
|
"testVariants",
|
|
380
|
-
"testStartedAt",
|
|
381
|
-
"testCompletedAt",
|
|
382
383
|
"userId",
|
|
383
384
|
"tagId",
|
|
384
385
|
]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
|
-
from .
|
|
4
|
+
from .linktagschema import LinkTagSchema, LinkTagSchemaTypedDict
|
|
5
5
|
from dub.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
|
6
6
|
import pydantic
|
|
7
7
|
from pydantic import model_serializer
|
|
@@ -45,6 +45,8 @@ class LinkSchemaTypedDict(TypedDict):
|
|
|
45
45
|
r"""The date and time when the short link will expire in ISO-8601 format."""
|
|
46
46
|
expired_url: Nullable[str]
|
|
47
47
|
r"""The URL to redirect to when the short link has expired."""
|
|
48
|
+
disabled_at: Nullable[str]
|
|
49
|
+
r"""The date and time when the short link was disabled. When a short link is disabled, it will redirect to its domain's not found URL, and its stats will be excluded from your overall stats."""
|
|
48
50
|
password: Nullable[str]
|
|
49
51
|
r"""The password required to access the destination URL of the short link."""
|
|
50
52
|
title: Nullable[str]
|
|
@@ -61,7 +63,7 @@ class LinkSchemaTypedDict(TypedDict):
|
|
|
61
63
|
r"""The Android destination URL for the short link for Android device targeting."""
|
|
62
64
|
geo: Nullable[Dict[str, str]]
|
|
63
65
|
r"""Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. See https://d.to/geo for more information."""
|
|
64
|
-
tags: Nullable[List[
|
|
66
|
+
tags: Nullable[List[LinkTagSchemaTypedDict]]
|
|
65
67
|
r"""The tags assigned to the short link."""
|
|
66
68
|
folder_id: Nullable[str]
|
|
67
69
|
r"""The unique ID of the folder assigned to the short link."""
|
|
@@ -158,6 +160,9 @@ class LinkSchema(BaseModel):
|
|
|
158
160
|
expired_url: Annotated[Nullable[str], pydantic.Field(alias="expiredUrl")]
|
|
159
161
|
r"""The URL to redirect to when the short link has expired."""
|
|
160
162
|
|
|
163
|
+
disabled_at: Annotated[Nullable[str], pydantic.Field(alias="disabledAt")]
|
|
164
|
+
r"""The date and time when the short link was disabled. When a short link is disabled, it will redirect to its domain's not found URL, and its stats will be excluded from your overall stats."""
|
|
165
|
+
|
|
161
166
|
password: Nullable[str]
|
|
162
167
|
r"""The password required to access the destination URL of the short link."""
|
|
163
168
|
|
|
@@ -182,7 +187,7 @@ class LinkSchema(BaseModel):
|
|
|
182
187
|
geo: Nullable[Dict[str, str]]
|
|
183
188
|
r"""Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. See https://d.to/geo for more information."""
|
|
184
189
|
|
|
185
|
-
tags: Nullable[List[
|
|
190
|
+
tags: Nullable[List[LinkTagSchema]]
|
|
186
191
|
r"""The tags assigned to the short link."""
|
|
187
192
|
|
|
188
193
|
folder_id: Annotated[Nullable[str], pydantic.Field(alias="folderId")]
|
|
@@ -323,6 +328,7 @@ class LinkSchema(BaseModel):
|
|
|
323
328
|
"partnerId",
|
|
324
329
|
"expiresAt",
|
|
325
330
|
"expiredUrl",
|
|
331
|
+
"disabledAt",
|
|
326
332
|
"password",
|
|
327
333
|
"title",
|
|
328
334
|
"description",
|
|
@@ -18,7 +18,7 @@ class Color(str, Enum):
|
|
|
18
18
|
PINK = "pink"
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
class
|
|
21
|
+
class LinkTagSchemaTypedDict(TypedDict):
|
|
22
22
|
id: str
|
|
23
23
|
r"""The unique ID of the tag."""
|
|
24
24
|
name: str
|
|
@@ -27,7 +27,7 @@ class TagSchemaTypedDict(TypedDict):
|
|
|
27
27
|
r"""The color of the tag."""
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
class
|
|
30
|
+
class LinkTagSchema(BaseModel):
|
|
31
31
|
id: str
|
|
32
32
|
r"""The unique ID of the tag."""
|
|
33
33
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
|
-
from .
|
|
4
|
+
from .linktagschema import LinkTagSchema, LinkTagSchemaTypedDict
|
|
5
5
|
from dub.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
|
6
6
|
from enum import Enum
|
|
7
7
|
import pydantic
|
|
@@ -61,6 +61,7 @@ class LinkWebhookEventLinkTypedDict(TypedDict):
|
|
|
61
61
|
archived: bool
|
|
62
62
|
expires_at: str
|
|
63
63
|
expired_url: Nullable[str]
|
|
64
|
+
disabled_at: str
|
|
64
65
|
password: Nullable[str]
|
|
65
66
|
r"""The password required to access the destination URL of the short link."""
|
|
66
67
|
proxy: bool
|
|
@@ -81,7 +82,7 @@ class LinkWebhookEventLinkTypedDict(TypedDict):
|
|
|
81
82
|
geo: Nullable[Dict[str, str]]
|
|
82
83
|
r"""Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. See https://d.to/geo for more information."""
|
|
83
84
|
public_stats: bool
|
|
84
|
-
tags: Nullable[List[
|
|
85
|
+
tags: Nullable[List[LinkTagSchemaTypedDict]]
|
|
85
86
|
r"""The tags assigned to the short link."""
|
|
86
87
|
folder_id: Nullable[str]
|
|
87
88
|
r"""The unique ID of the folder assigned to the short link."""
|
|
@@ -103,8 +104,8 @@ class LinkWebhookEventLinkTypedDict(TypedDict):
|
|
|
103
104
|
r"""The UTM term of the short link."""
|
|
104
105
|
utm_content: Nullable[str]
|
|
105
106
|
r"""The UTM content of the short link."""
|
|
106
|
-
test_started_at:
|
|
107
|
-
test_completed_at:
|
|
107
|
+
test_started_at: str
|
|
108
|
+
test_completed_at: str
|
|
108
109
|
user_id: Nullable[str]
|
|
109
110
|
workspace_id: str
|
|
110
111
|
r"""The workspace ID of the short link."""
|
|
@@ -161,6 +162,8 @@ class LinkWebhookEventLink(BaseModel):
|
|
|
161
162
|
|
|
162
163
|
expired_url: Annotated[Nullable[str], pydantic.Field(alias="expiredUrl")]
|
|
163
164
|
|
|
165
|
+
disabled_at: Annotated[str, pydantic.Field(alias="disabledAt")]
|
|
166
|
+
|
|
164
167
|
password: Nullable[str]
|
|
165
168
|
r"""The password required to access the destination URL of the short link."""
|
|
166
169
|
|
|
@@ -193,7 +196,7 @@ class LinkWebhookEventLink(BaseModel):
|
|
|
193
196
|
|
|
194
197
|
public_stats: Annotated[bool, pydantic.Field(alias="publicStats")]
|
|
195
198
|
|
|
196
|
-
tags: Nullable[List[
|
|
199
|
+
tags: Nullable[List[LinkTagSchema]]
|
|
197
200
|
r"""The tags assigned to the short link."""
|
|
198
201
|
|
|
199
202
|
folder_id: Annotated[Nullable[str], pydantic.Field(alias="folderId")]
|
|
@@ -226,9 +229,9 @@ class LinkWebhookEventLink(BaseModel):
|
|
|
226
229
|
utm_content: Nullable[str]
|
|
227
230
|
r"""The UTM content of the short link."""
|
|
228
231
|
|
|
229
|
-
test_started_at: Annotated[
|
|
232
|
+
test_started_at: Annotated[str, pydantic.Field(alias="testStartedAt")]
|
|
230
233
|
|
|
231
|
-
test_completed_at: Annotated[
|
|
234
|
+
test_completed_at: Annotated[str, pydantic.Field(alias="testCompletedAt")]
|
|
232
235
|
|
|
233
236
|
user_id: Annotated[Nullable[str], pydantic.Field(alias="userId")]
|
|
234
237
|
|
|
@@ -313,8 +316,6 @@ class LinkWebhookEventLink(BaseModel):
|
|
|
313
316
|
"utm_term",
|
|
314
317
|
"utm_content",
|
|
315
318
|
"testVariants",
|
|
316
|
-
"testStartedAt",
|
|
317
|
-
"testCompletedAt",
|
|
318
319
|
"userId",
|
|
319
320
|
"tagId",
|
|
320
321
|
]
|