dub 0.31.0__py3-none-any.whl → 0.32.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 +2 -2
- dub/commissions.py +4 -4
- dub/customers.py +10 -10
- dub/domains.py +12 -12
- dub/embed_tokens.py +2 -2
- dub/events.py +2 -2
- dub/folders.py +8 -8
- dub/links.py +20 -20
- dub/models/components/__init__.py +6 -6
- dub/models/components/clickevent.py +3 -3
- dub/models/components/commissioncreatedevent.py +5 -2
- dub/models/components/folderschema.py +6 -1
- dub/models/components/leadcreatedevent.py +8 -5
- dub/models/components/leadevent.py +3 -3
- dub/models/components/linkclickedevent.py +3 -3
- dub/models/components/linkschema.py +3 -3
- dub/models/components/{tagschema.py → linktagschema.py} +2 -2
- dub/models/components/linkwebhookevent.py +3 -3
- dub/models/components/partnerenrolledevent.py +33 -29
- dub/models/components/salecreatedevent.py +8 -5
- dub/models/components/saleevent.py +3 -3
- dub/models/components/workspaceschema.py +5 -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/bulkcreatelinks.py +2 -2
- dub/models/operations/createfolder.py +8 -3
- dub/models/operations/createlink.py +2 -2
- dub/models/operations/createpartner.py +33 -29
- dub/models/operations/listpartners.py +41 -48
- dub/models/operations/retrieveanalytics.py +4 -1
- dub/models/operations/tracklead.py +2 -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 +12 -12
- dub/qr_codes.py +2 -2
- dub/tags.py +20 -20
- dub/track.py +4 -4
- dub/workspaces.py +4 -4
- {dub-0.31.0.dist-info → dub-0.32.0.dist-info}/METADATA +1 -2
- {dub-0.31.0.dist-info → dub-0.32.0.dist-info}/RECORD +55 -55
- {dub-0.31.0.dist-info → dub-0.32.0.dist-info}/WHEEL +0 -0
- {dub-0.31.0.dist-info → dub-0.32.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -509,7 +509,7 @@ class CreatePartnerResponseBodyTypedDict(TypedDict):
|
|
|
509
509
|
group_id: NotRequired[Nullable[str]]
|
|
510
510
|
r"""The partner's group ID on Dub."""
|
|
511
511
|
total_commissions: NotRequired[float]
|
|
512
|
-
r"""The total commissions paid to the partner for their referrals
|
|
512
|
+
r"""The total commissions paid to the partner for their referrals"""
|
|
513
513
|
click_reward_id: NotRequired[Nullable[str]]
|
|
514
514
|
lead_reward_id: NotRequired[Nullable[str]]
|
|
515
515
|
sale_reward_id: NotRequired[Nullable[str]]
|
|
@@ -520,18 +520,18 @@ class CreatePartnerResponseBodyTypedDict(TypedDict):
|
|
|
520
520
|
r"""If the partner was banned from the program, this is the date of the ban."""
|
|
521
521
|
banned_reason: NotRequired[Nullable[BannedReason]]
|
|
522
522
|
r"""If the partner was banned from the program, this is the reason for the ban."""
|
|
523
|
-
|
|
524
|
-
r"""The total number of clicks on the partner's links
|
|
525
|
-
|
|
526
|
-
r"""The total number of leads generated by the partner's links
|
|
527
|
-
|
|
528
|
-
r"""The total number of leads that converted to paying customers
|
|
529
|
-
|
|
530
|
-
r"""The total number of sales generated by the partner's links (includes recurring sales)
|
|
531
|
-
|
|
532
|
-
r"""The total amount of sales (in cents) generated by the partner's links
|
|
523
|
+
total_clicks: NotRequired[float]
|
|
524
|
+
r"""The total number of clicks on the partner's links"""
|
|
525
|
+
total_leads: NotRequired[float]
|
|
526
|
+
r"""The total number of leads generated by the partner's links"""
|
|
527
|
+
total_conversions: NotRequired[float]
|
|
528
|
+
r"""The total number of leads that converted to paying customers"""
|
|
529
|
+
total_sales: NotRequired[float]
|
|
530
|
+
r"""The total number of sales generated by the partner's links (includes recurring sales)"""
|
|
531
|
+
total_sale_amount: NotRequired[float]
|
|
532
|
+
r"""The total amount of sales (in cents) generated by the partner's links"""
|
|
533
533
|
net_revenue: NotRequired[float]
|
|
534
|
-
r"""The total net revenue generated by the partner
|
|
534
|
+
r"""The total net revenue generated by the partner"""
|
|
535
535
|
website: NotRequired[Nullable[str]]
|
|
536
536
|
r"""The partner's website URL (including the https protocol)."""
|
|
537
537
|
youtube: NotRequired[Nullable[str]]
|
|
@@ -604,7 +604,7 @@ class CreatePartnerResponseBody(BaseModel):
|
|
|
604
604
|
total_commissions: Annotated[
|
|
605
605
|
Optional[float], pydantic.Field(alias="totalCommissions")
|
|
606
606
|
] = 0
|
|
607
|
-
r"""The total commissions paid to the partner for their referrals
|
|
607
|
+
r"""The total commissions paid to the partner for their referrals"""
|
|
608
608
|
|
|
609
609
|
click_reward_id: Annotated[
|
|
610
610
|
OptionalNullable[str], pydantic.Field(alias="clickRewardId")
|
|
@@ -637,23 +637,27 @@ class CreatePartnerResponseBody(BaseModel):
|
|
|
637
637
|
] = UNSET
|
|
638
638
|
r"""If the partner was banned from the program, this is the reason for the ban."""
|
|
639
639
|
|
|
640
|
-
|
|
641
|
-
r"""The total number of clicks on the partner's links
|
|
640
|
+
total_clicks: Annotated[Optional[float], pydantic.Field(alias="totalClicks")] = 0
|
|
641
|
+
r"""The total number of clicks on the partner's links"""
|
|
642
642
|
|
|
643
|
-
|
|
644
|
-
r"""The total number of leads generated by the partner's links
|
|
643
|
+
total_leads: Annotated[Optional[float], pydantic.Field(alias="totalLeads")] = 0
|
|
644
|
+
r"""The total number of leads generated by the partner's links"""
|
|
645
645
|
|
|
646
|
-
|
|
647
|
-
|
|
646
|
+
total_conversions: Annotated[
|
|
647
|
+
Optional[float], pydantic.Field(alias="totalConversions")
|
|
648
|
+
] = 0
|
|
649
|
+
r"""The total number of leads that converted to paying customers"""
|
|
648
650
|
|
|
649
|
-
|
|
650
|
-
r"""The total number of sales generated by the partner's links (includes recurring sales)
|
|
651
|
+
total_sales: Annotated[Optional[float], pydantic.Field(alias="totalSales")] = 0
|
|
652
|
+
r"""The total number of sales generated by the partner's links (includes recurring sales)"""
|
|
651
653
|
|
|
652
|
-
|
|
653
|
-
|
|
654
|
+
total_sale_amount: Annotated[
|
|
655
|
+
Optional[float], pydantic.Field(alias="totalSaleAmount")
|
|
656
|
+
] = 0
|
|
657
|
+
r"""The total amount of sales (in cents) generated by the partner's links"""
|
|
654
658
|
|
|
655
659
|
net_revenue: Annotated[Optional[float], pydantic.Field(alias="netRevenue")] = 0
|
|
656
|
-
r"""The total net revenue generated by the partner
|
|
660
|
+
r"""The total net revenue generated by the partner"""
|
|
657
661
|
|
|
658
662
|
website: OptionalNullable[str] = UNSET
|
|
659
663
|
r"""The partner's website URL (including the https protocol)."""
|
|
@@ -686,11 +690,11 @@ class CreatePartnerResponseBody(BaseModel):
|
|
|
686
690
|
"applicationId",
|
|
687
691
|
"bannedAt",
|
|
688
692
|
"bannedReason",
|
|
689
|
-
"
|
|
690
|
-
"
|
|
691
|
-
"
|
|
692
|
-
"
|
|
693
|
-
"
|
|
693
|
+
"totalClicks",
|
|
694
|
+
"totalLeads",
|
|
695
|
+
"totalConversions",
|
|
696
|
+
"totalSales",
|
|
697
|
+
"totalSaleAmount",
|
|
694
698
|
"netRevenue",
|
|
695
699
|
"website",
|
|
696
700
|
"youtube",
|
|
@@ -24,16 +24,14 @@ class ListPartnersQueryParamStatus(str, Enum):
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
class ListPartnersQueryParamSortBy(str, Enum):
|
|
27
|
-
r"""The field to sort the partners by. The default is `
|
|
27
|
+
r"""The field to sort the partners by. The default is `totalSaleAmount`."""
|
|
28
28
|
|
|
29
29
|
CREATED_AT = "createdAt"
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
SALE_AMOUNT = "saleAmount"
|
|
30
|
+
TOTAL_CLICKS = "totalClicks"
|
|
31
|
+
TOTAL_LEADS = "totalLeads"
|
|
32
|
+
TOTAL_CONVERSIONS = "totalConversions"
|
|
33
|
+
TOTAL_SALE_AMOUNT = "totalSaleAmount"
|
|
35
34
|
TOTAL_COMMISSIONS = "totalCommissions"
|
|
36
|
-
NET_REVENUE = "netRevenue"
|
|
37
35
|
|
|
38
36
|
|
|
39
37
|
class ListPartnersQueryParamSortOrder(str, Enum):
|
|
@@ -49,7 +47,7 @@ class ListPartnersRequestTypedDict(TypedDict):
|
|
|
49
47
|
country: NotRequired[str]
|
|
50
48
|
r"""A filter on the list based on the partner's `country` field."""
|
|
51
49
|
sort_by: NotRequired[ListPartnersQueryParamSortBy]
|
|
52
|
-
r"""The field to sort the partners by. The default is `
|
|
50
|
+
r"""The field to sort the partners by. The default is `totalSaleAmount`."""
|
|
53
51
|
sort_order: NotRequired[ListPartnersQueryParamSortOrder]
|
|
54
52
|
r"""The sort order. The default is `desc`."""
|
|
55
53
|
email: NotRequired[str]
|
|
@@ -58,8 +56,6 @@ class ListPartnersRequestTypedDict(TypedDict):
|
|
|
58
56
|
r"""Filter the partner list based on the partner's `tenantId`. The value must be a string. Takes precedence over `email` and `search`."""
|
|
59
57
|
search: NotRequired[str]
|
|
60
58
|
r"""A search query to filter partners by ID, name, email, or link."""
|
|
61
|
-
include_expanded_fields: NotRequired[bool]
|
|
62
|
-
r"""Whether to include stats fields on the partner (`clicks`, `leads`, `conversions`, `sales`, `saleAmount`, `commissions`, `netRevenue`). If false, those fields will be returned as 0."""
|
|
63
59
|
page: NotRequired[float]
|
|
64
60
|
r"""The page number for pagination."""
|
|
65
61
|
page_size: NotRequired[float]
|
|
@@ -83,8 +79,8 @@ class ListPartnersRequest(BaseModel):
|
|
|
83
79
|
Optional[ListPartnersQueryParamSortBy],
|
|
84
80
|
pydantic.Field(alias="sortBy"),
|
|
85
81
|
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
86
|
-
] = ListPartnersQueryParamSortBy.
|
|
87
|
-
r"""The field to sort the partners by. The default is `
|
|
82
|
+
] = ListPartnersQueryParamSortBy.TOTAL_SALE_AMOUNT
|
|
83
|
+
r"""The field to sort the partners by. The default is `totalSaleAmount`."""
|
|
88
84
|
|
|
89
85
|
sort_order: Annotated[
|
|
90
86
|
Optional[ListPartnersQueryParamSortOrder],
|
|
@@ -112,13 +108,6 @@ class ListPartnersRequest(BaseModel):
|
|
|
112
108
|
] = None
|
|
113
109
|
r"""A search query to filter partners by ID, name, email, or link."""
|
|
114
110
|
|
|
115
|
-
include_expanded_fields: Annotated[
|
|
116
|
-
Optional[bool],
|
|
117
|
-
pydantic.Field(alias="includeExpandedFields"),
|
|
118
|
-
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
119
|
-
] = None
|
|
120
|
-
r"""Whether to include stats fields on the partner (`clicks`, `leads`, `conversions`, `sales`, `saleAmount`, `commissions`, `netRevenue`). If false, those fields will be returned as 0."""
|
|
121
|
-
|
|
122
111
|
page: Annotated[
|
|
123
112
|
Optional[float],
|
|
124
113
|
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
@@ -247,7 +236,7 @@ class ListPartnersResponseBodyTypedDict(TypedDict):
|
|
|
247
236
|
group_id: NotRequired[Nullable[str]]
|
|
248
237
|
r"""The partner's group ID on Dub."""
|
|
249
238
|
total_commissions: NotRequired[float]
|
|
250
|
-
r"""The total commissions paid to the partner for their referrals
|
|
239
|
+
r"""The total commissions paid to the partner for their referrals"""
|
|
251
240
|
click_reward_id: NotRequired[Nullable[str]]
|
|
252
241
|
lead_reward_id: NotRequired[Nullable[str]]
|
|
253
242
|
sale_reward_id: NotRequired[Nullable[str]]
|
|
@@ -258,18 +247,18 @@ class ListPartnersResponseBodyTypedDict(TypedDict):
|
|
|
258
247
|
r"""If the partner was banned from the program, this is the date of the ban."""
|
|
259
248
|
banned_reason: NotRequired[Nullable[ListPartnersBannedReason]]
|
|
260
249
|
r"""If the partner was banned from the program, this is the reason for the ban."""
|
|
261
|
-
|
|
262
|
-
r"""The total number of clicks on the partner's links
|
|
263
|
-
|
|
264
|
-
r"""The total number of leads generated by the partner's links
|
|
265
|
-
|
|
266
|
-
r"""The total number of leads that converted to paying customers
|
|
267
|
-
|
|
268
|
-
r"""The total number of sales generated by the partner's links (includes recurring sales)
|
|
269
|
-
|
|
270
|
-
r"""The total amount of sales (in cents) generated by the partner's links
|
|
250
|
+
total_clicks: NotRequired[float]
|
|
251
|
+
r"""The total number of clicks on the partner's links"""
|
|
252
|
+
total_leads: NotRequired[float]
|
|
253
|
+
r"""The total number of leads generated by the partner's links"""
|
|
254
|
+
total_conversions: NotRequired[float]
|
|
255
|
+
r"""The total number of leads that converted to paying customers"""
|
|
256
|
+
total_sales: NotRequired[float]
|
|
257
|
+
r"""The total number of sales generated by the partner's links (includes recurring sales)"""
|
|
258
|
+
total_sale_amount: NotRequired[float]
|
|
259
|
+
r"""The total amount of sales (in cents) generated by the partner's links"""
|
|
271
260
|
net_revenue: NotRequired[float]
|
|
272
|
-
r"""The total net revenue generated by the partner
|
|
261
|
+
r"""The total net revenue generated by the partner"""
|
|
273
262
|
website: NotRequired[Nullable[str]]
|
|
274
263
|
r"""The partner's website URL (including the https protocol)."""
|
|
275
264
|
youtube: NotRequired[Nullable[str]]
|
|
@@ -340,7 +329,7 @@ class ListPartnersResponseBody(BaseModel):
|
|
|
340
329
|
total_commissions: Annotated[
|
|
341
330
|
Optional[float], pydantic.Field(alias="totalCommissions")
|
|
342
331
|
] = 0
|
|
343
|
-
r"""The total commissions paid to the partner for their referrals
|
|
332
|
+
r"""The total commissions paid to the partner for their referrals"""
|
|
344
333
|
|
|
345
334
|
click_reward_id: Annotated[
|
|
346
335
|
OptionalNullable[str], pydantic.Field(alias="clickRewardId")
|
|
@@ -373,23 +362,27 @@ class ListPartnersResponseBody(BaseModel):
|
|
|
373
362
|
] = UNSET
|
|
374
363
|
r"""If the partner was banned from the program, this is the reason for the ban."""
|
|
375
364
|
|
|
376
|
-
|
|
377
|
-
r"""The total number of clicks on the partner's links
|
|
365
|
+
total_clicks: Annotated[Optional[float], pydantic.Field(alias="totalClicks")] = 0
|
|
366
|
+
r"""The total number of clicks on the partner's links"""
|
|
378
367
|
|
|
379
|
-
|
|
380
|
-
r"""The total number of leads generated by the partner's links
|
|
368
|
+
total_leads: Annotated[Optional[float], pydantic.Field(alias="totalLeads")] = 0
|
|
369
|
+
r"""The total number of leads generated by the partner's links"""
|
|
381
370
|
|
|
382
|
-
|
|
383
|
-
|
|
371
|
+
total_conversions: Annotated[
|
|
372
|
+
Optional[float], pydantic.Field(alias="totalConversions")
|
|
373
|
+
] = 0
|
|
374
|
+
r"""The total number of leads that converted to paying customers"""
|
|
384
375
|
|
|
385
|
-
|
|
386
|
-
r"""The total number of sales generated by the partner's links (includes recurring sales)
|
|
376
|
+
total_sales: Annotated[Optional[float], pydantic.Field(alias="totalSales")] = 0
|
|
377
|
+
r"""The total number of sales generated by the partner's links (includes recurring sales)"""
|
|
387
378
|
|
|
388
|
-
|
|
389
|
-
|
|
379
|
+
total_sale_amount: Annotated[
|
|
380
|
+
Optional[float], pydantic.Field(alias="totalSaleAmount")
|
|
381
|
+
] = 0
|
|
382
|
+
r"""The total amount of sales (in cents) generated by the partner's links"""
|
|
390
383
|
|
|
391
384
|
net_revenue: Annotated[Optional[float], pydantic.Field(alias="netRevenue")] = 0
|
|
392
|
-
r"""The total net revenue generated by the partner
|
|
385
|
+
r"""The total net revenue generated by the partner"""
|
|
393
386
|
|
|
394
387
|
website: OptionalNullable[str] = UNSET
|
|
395
388
|
r"""The partner's website URL (including the https protocol)."""
|
|
@@ -422,11 +415,11 @@ class ListPartnersResponseBody(BaseModel):
|
|
|
422
415
|
"applicationId",
|
|
423
416
|
"bannedAt",
|
|
424
417
|
"bannedReason",
|
|
425
|
-
"
|
|
426
|
-
"
|
|
427
|
-
"
|
|
428
|
-
"
|
|
429
|
-
"
|
|
418
|
+
"totalClicks",
|
|
419
|
+
"totalLeads",
|
|
420
|
+
"totalConversions",
|
|
421
|
+
"totalSales",
|
|
422
|
+
"totalSaleAmount",
|
|
430
423
|
"netRevenue",
|
|
431
424
|
"website",
|
|
432
425
|
"youtube",
|
|
@@ -52,9 +52,12 @@ class QueryParamGroupBy(str, Enum):
|
|
|
52
52
|
TRIGGERS = "triggers"
|
|
53
53
|
REFERERS = "referers"
|
|
54
54
|
REFERER_URLS = "referer_urls"
|
|
55
|
-
|
|
55
|
+
TOP_FOLDERS = "top_folders"
|
|
56
|
+
TOP_LINK_TAGS = "top_link_tags"
|
|
57
|
+
TOP_DOMAINS = "top_domains"
|
|
56
58
|
TOP_LINKS = "top_links"
|
|
57
59
|
TOP_URLS = "top_urls"
|
|
60
|
+
TOP_PARTNERS = "top_partners"
|
|
58
61
|
UTM_SOURCES = "utm_sources"
|
|
59
62
|
UTM_MEDIUMS = "utm_mediums"
|
|
60
63
|
UTM_CAMPAIGNS = "utm_campaigns"
|
|
@@ -19,7 +19,7 @@ class Mode(str, Enum):
|
|
|
19
19
|
|
|
20
20
|
class TrackLeadRequestBodyTypedDict(TypedDict):
|
|
21
21
|
click_id: str
|
|
22
|
-
r"""The unique ID of the click that the lead conversion event is attributed to. You can read this value from `dub_id` cookie. If an empty string is provided, Dub will try to find an existing customer with the provided `customerExternalId` and use the `clickId` from the customer if found."""
|
|
22
|
+
r"""The unique ID of the click that the lead conversion event is attributed to. You can read this value from `dub_id` cookie. [For deferred lead tracking]: If an empty string is provided, Dub will try to find an existing customer with the provided `customerExternalId` and use the `clickId` from the customer if found."""
|
|
23
23
|
event_name: str
|
|
24
24
|
r"""The name of the lead event to track. Can also be used as a unique identifier to associate a given lead event for a customer for a subsequent sale event (via the `leadEventName` prop in `/track/sale`)."""
|
|
25
25
|
customer_external_id: str
|
|
@@ -40,7 +40,7 @@ class TrackLeadRequestBodyTypedDict(TypedDict):
|
|
|
40
40
|
|
|
41
41
|
class TrackLeadRequestBody(BaseModel):
|
|
42
42
|
click_id: Annotated[str, pydantic.Field(alias="clickId")]
|
|
43
|
-
r"""The unique ID of the click that the lead conversion event is attributed to. You can read this value from `dub_id` cookie. If an empty string is provided, Dub will try to find an existing customer with the provided `customerExternalId` and use the `clickId` from the customer if found."""
|
|
43
|
+
r"""The unique ID of the click that the lead conversion event is attributed to. You can read this value from `dub_id` cookie. [For deferred lead tracking]: If an empty string is provided, Dub will try to find an existing customer with the provided `customerExternalId` and use the `clickId` from the customer if found."""
|
|
44
44
|
|
|
45
45
|
event_name: Annotated[str, pydantic.Field(alias="eventName")]
|
|
46
46
|
r"""The name of the lead event to track. Can also be used as a unique identifier to associate a given lead event for a customer for a subsequent sale event (via the `leadEventName` prop in `/track/sale`)."""
|
|
@@ -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 dub.types import BaseModel, Nullable, OptionalNullable, UNSET_SENTINEL
|
|
4
|
+
from dub.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
|
5
5
|
from dub.utils import FieldMetadata, PathParamMetadata, RequestMetadata
|
|
6
6
|
from enum import Enum
|
|
7
7
|
import pydantic
|
|
@@ -20,6 +20,8 @@ class UpdateFolderAccessLevel(str, Enum):
|
|
|
20
20
|
class UpdateFolderRequestBodyTypedDict(TypedDict):
|
|
21
21
|
name: NotRequired[str]
|
|
22
22
|
r"""The name of the folder."""
|
|
23
|
+
description: NotRequired[Nullable[str]]
|
|
24
|
+
r"""The description of the folder."""
|
|
23
25
|
access_level: NotRequired[Nullable[UpdateFolderAccessLevel]]
|
|
24
26
|
r"""The access level of the folder within the workspace."""
|
|
25
27
|
|
|
@@ -28,6 +30,9 @@ class UpdateFolderRequestBody(BaseModel):
|
|
|
28
30
|
name: Optional[str] = None
|
|
29
31
|
r"""The name of the folder."""
|
|
30
32
|
|
|
33
|
+
description: OptionalNullable[str] = UNSET
|
|
34
|
+
r"""The description of the folder."""
|
|
35
|
+
|
|
31
36
|
access_level: Annotated[
|
|
32
37
|
OptionalNullable[UpdateFolderAccessLevel], pydantic.Field(alias="accessLevel")
|
|
33
38
|
] = None
|
|
@@ -35,8 +40,8 @@ class UpdateFolderRequestBody(BaseModel):
|
|
|
35
40
|
|
|
36
41
|
@model_serializer(mode="wrap")
|
|
37
42
|
def serialize_model(self, handler):
|
|
38
|
-
optional_fields = ["name", "accessLevel"]
|
|
39
|
-
nullable_fields = ["accessLevel"]
|
|
43
|
+
optional_fields = ["name", "description", "accessLevel"]
|
|
44
|
+
nullable_fields = ["description", "accessLevel"]
|
|
40
45
|
null_default_fields = ["accessLevel"]
|
|
41
46
|
|
|
42
47
|
serialized = handler(self)
|
|
@@ -44,7 +44,7 @@ class UpdateLinkRequestBodyTypedDict(TypedDict):
|
|
|
44
44
|
url: NotRequired[str]
|
|
45
45
|
r"""The destination URL of the short link."""
|
|
46
46
|
domain: NotRequired[str]
|
|
47
|
-
r"""The domain of the short link. If not provided, the primary domain for the workspace will be used (or `dub.sh` if the workspace has no domains)."""
|
|
47
|
+
r"""The domain of the short link (without protocol). If not provided, the primary domain for the workspace will be used (or `dub.sh` if the workspace has no domains)."""
|
|
48
48
|
key: NotRequired[str]
|
|
49
49
|
r"""The short link slug. If not provided, a random 7-character slug will be generated."""
|
|
50
50
|
external_id: NotRequired[Nullable[str]]
|
|
@@ -123,7 +123,7 @@ class UpdateLinkRequestBody(BaseModel):
|
|
|
123
123
|
r"""The destination URL of the short link."""
|
|
124
124
|
|
|
125
125
|
domain: Optional[str] = None
|
|
126
|
-
r"""The domain of the short link. If not provided, the primary domain for the workspace will be used (or `dub.sh` if the workspace has no domains)."""
|
|
126
|
+
r"""The domain of the short link (without protocol). If not provided, the primary domain for the workspace will be used (or `dub.sh` if the workspace has no domains)."""
|
|
127
127
|
|
|
128
128
|
key: Optional[str] = None
|
|
129
129
|
r"""The short link slug. If not provided, a random 7-character slug will be generated."""
|
|
@@ -43,7 +43,7 @@ class UpsertLinkRequestBodyTypedDict(TypedDict):
|
|
|
43
43
|
url: str
|
|
44
44
|
r"""The destination URL of the short link."""
|
|
45
45
|
domain: NotRequired[str]
|
|
46
|
-
r"""The domain of the short link. If not provided, the primary domain for the workspace will be used (or `dub.sh` if the workspace has no domains)."""
|
|
46
|
+
r"""The domain of the short link (without protocol). If not provided, the primary domain for the workspace will be used (or `dub.sh` if the workspace has no domains)."""
|
|
47
47
|
key: NotRequired[str]
|
|
48
48
|
r"""The short link slug. If not provided, a random 7-character slug will be generated."""
|
|
49
49
|
key_length: NotRequired[float]
|
|
@@ -127,7 +127,7 @@ class UpsertLinkRequestBody(BaseModel):
|
|
|
127
127
|
r"""The destination URL of the short link."""
|
|
128
128
|
|
|
129
129
|
domain: Optional[str] = None
|
|
130
|
-
r"""The domain of the short link. If not provided, the primary domain for the workspace will be used (or `dub.sh` if the workspace has no domains)."""
|
|
130
|
+
r"""The domain of the short link (without protocol). If not provided, the primary domain for the workspace will be used (or `dub.sh` if the workspace has no domains)."""
|
|
131
131
|
|
|
132
132
|
key: Optional[str] = None
|
|
133
133
|
r"""The short link slug. If not provided, a random 7-character slug will be generated."""
|
dub/partners.py
CHANGED
|
@@ -86,7 +86,7 @@ class Partners(BaseSDK):
|
|
|
86
86
|
config=self.sdk_configuration,
|
|
87
87
|
base_url=base_url or "",
|
|
88
88
|
operation_id="createPartner",
|
|
89
|
-
oauth2_scopes=
|
|
89
|
+
oauth2_scopes=None,
|
|
90
90
|
security_source=self.sdk_configuration.security,
|
|
91
91
|
),
|
|
92
92
|
request=req,
|
|
@@ -229,7 +229,7 @@ class Partners(BaseSDK):
|
|
|
229
229
|
config=self.sdk_configuration,
|
|
230
230
|
base_url=base_url or "",
|
|
231
231
|
operation_id="createPartner",
|
|
232
|
-
oauth2_scopes=
|
|
232
|
+
oauth2_scopes=None,
|
|
233
233
|
security_source=self.sdk_configuration.security,
|
|
234
234
|
),
|
|
235
235
|
request=req,
|
|
@@ -360,7 +360,7 @@ class Partners(BaseSDK):
|
|
|
360
360
|
config=self.sdk_configuration,
|
|
361
361
|
base_url=base_url or "",
|
|
362
362
|
operation_id="listPartners",
|
|
363
|
-
oauth2_scopes=
|
|
363
|
+
oauth2_scopes=None,
|
|
364
364
|
security_source=self.sdk_configuration.security,
|
|
365
365
|
),
|
|
366
366
|
request=req,
|
|
@@ -491,7 +491,7 @@ class Partners(BaseSDK):
|
|
|
491
491
|
config=self.sdk_configuration,
|
|
492
492
|
base_url=base_url or "",
|
|
493
493
|
operation_id="listPartners",
|
|
494
|
-
oauth2_scopes=
|
|
494
|
+
oauth2_scopes=None,
|
|
495
495
|
security_source=self.sdk_configuration.security,
|
|
496
496
|
),
|
|
497
497
|
request=req,
|
|
@@ -634,7 +634,7 @@ class Partners(BaseSDK):
|
|
|
634
634
|
config=self.sdk_configuration,
|
|
635
635
|
base_url=base_url or "",
|
|
636
636
|
operation_id="createPartnerLink",
|
|
637
|
-
oauth2_scopes=
|
|
637
|
+
oauth2_scopes=None,
|
|
638
638
|
security_source=self.sdk_configuration.security,
|
|
639
639
|
),
|
|
640
640
|
request=req,
|
|
@@ -775,7 +775,7 @@ class Partners(BaseSDK):
|
|
|
775
775
|
config=self.sdk_configuration,
|
|
776
776
|
base_url=base_url or "",
|
|
777
777
|
operation_id="createPartnerLink",
|
|
778
|
-
oauth2_scopes=
|
|
778
|
+
oauth2_scopes=None,
|
|
779
779
|
security_source=self.sdk_configuration.security,
|
|
780
780
|
),
|
|
781
781
|
request=req,
|
|
@@ -904,7 +904,7 @@ class Partners(BaseSDK):
|
|
|
904
904
|
config=self.sdk_configuration,
|
|
905
905
|
base_url=base_url or "",
|
|
906
906
|
operation_id="retrieveLinks",
|
|
907
|
-
oauth2_scopes=
|
|
907
|
+
oauth2_scopes=None,
|
|
908
908
|
security_source=self.sdk_configuration.security,
|
|
909
909
|
),
|
|
910
910
|
request=req,
|
|
@@ -1033,7 +1033,7 @@ class Partners(BaseSDK):
|
|
|
1033
1033
|
config=self.sdk_configuration,
|
|
1034
1034
|
base_url=base_url or "",
|
|
1035
1035
|
operation_id="retrieveLinks",
|
|
1036
|
-
oauth2_scopes=
|
|
1036
|
+
oauth2_scopes=None,
|
|
1037
1037
|
security_source=self.sdk_configuration.security,
|
|
1038
1038
|
),
|
|
1039
1039
|
request=req,
|
|
@@ -1174,7 +1174,7 @@ class Partners(BaseSDK):
|
|
|
1174
1174
|
config=self.sdk_configuration,
|
|
1175
1175
|
base_url=base_url or "",
|
|
1176
1176
|
operation_id="upsertPartnerLink",
|
|
1177
|
-
oauth2_scopes=
|
|
1177
|
+
oauth2_scopes=None,
|
|
1178
1178
|
security_source=self.sdk_configuration.security,
|
|
1179
1179
|
),
|
|
1180
1180
|
request=req,
|
|
@@ -1315,7 +1315,7 @@ class Partners(BaseSDK):
|
|
|
1315
1315
|
config=self.sdk_configuration,
|
|
1316
1316
|
base_url=base_url or "",
|
|
1317
1317
|
operation_id="upsertPartnerLink",
|
|
1318
|
-
oauth2_scopes=
|
|
1318
|
+
oauth2_scopes=None,
|
|
1319
1319
|
security_source=self.sdk_configuration.security,
|
|
1320
1320
|
),
|
|
1321
1321
|
request=req,
|
|
@@ -1447,7 +1447,7 @@ class Partners(BaseSDK):
|
|
|
1447
1447
|
config=self.sdk_configuration,
|
|
1448
1448
|
base_url=base_url or "",
|
|
1449
1449
|
operation_id="retrievePartnerAnalytics",
|
|
1450
|
-
oauth2_scopes=
|
|
1450
|
+
oauth2_scopes=None,
|
|
1451
1451
|
security_source=self.sdk_configuration.security,
|
|
1452
1452
|
),
|
|
1453
1453
|
request=req,
|
|
@@ -1581,7 +1581,7 @@ class Partners(BaseSDK):
|
|
|
1581
1581
|
config=self.sdk_configuration,
|
|
1582
1582
|
base_url=base_url or "",
|
|
1583
1583
|
operation_id="retrievePartnerAnalytics",
|
|
1584
|
-
oauth2_scopes=
|
|
1584
|
+
oauth2_scopes=None,
|
|
1585
1585
|
security_source=self.sdk_configuration.security,
|
|
1586
1586
|
),
|
|
1587
1587
|
request=req,
|
dub/qr_codes.py
CHANGED
|
@@ -74,7 +74,7 @@ class QRCodes(BaseSDK):
|
|
|
74
74
|
config=self.sdk_configuration,
|
|
75
75
|
base_url=base_url or "",
|
|
76
76
|
operation_id="getQRCode",
|
|
77
|
-
oauth2_scopes=
|
|
77
|
+
oauth2_scopes=None,
|
|
78
78
|
security_source=self.sdk_configuration.security,
|
|
79
79
|
),
|
|
80
80
|
request=req,
|
|
@@ -203,7 +203,7 @@ class QRCodes(BaseSDK):
|
|
|
203
203
|
config=self.sdk_configuration,
|
|
204
204
|
base_url=base_url or "",
|
|
205
205
|
operation_id="getQRCode",
|
|
206
|
-
oauth2_scopes=
|
|
206
|
+
oauth2_scopes=None,
|
|
207
207
|
security_source=self.sdk_configuration.security,
|
|
208
208
|
),
|
|
209
209
|
request=req,
|