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.
Files changed (55) hide show
  1. dub/_version.py +3 -3
  2. dub/analytics.py +2 -2
  3. dub/commissions.py +4 -4
  4. dub/customers.py +10 -10
  5. dub/domains.py +12 -12
  6. dub/embed_tokens.py +2 -2
  7. dub/events.py +2 -2
  8. dub/folders.py +8 -8
  9. dub/links.py +20 -20
  10. dub/models/components/__init__.py +6 -6
  11. dub/models/components/clickevent.py +3 -3
  12. dub/models/components/commissioncreatedevent.py +5 -2
  13. dub/models/components/folderschema.py +6 -1
  14. dub/models/components/leadcreatedevent.py +8 -5
  15. dub/models/components/leadevent.py +3 -3
  16. dub/models/components/linkclickedevent.py +3 -3
  17. dub/models/components/linkschema.py +3 -3
  18. dub/models/components/{tagschema.py → linktagschema.py} +2 -2
  19. dub/models/components/linkwebhookevent.py +3 -3
  20. dub/models/components/partnerenrolledevent.py +33 -29
  21. dub/models/components/salecreatedevent.py +8 -5
  22. dub/models/components/saleevent.py +3 -3
  23. dub/models/components/workspaceschema.py +5 -0
  24. dub/models/errors/badrequest.py +1 -1
  25. dub/models/errors/conflict.py +1 -1
  26. dub/models/errors/duberror.py +1 -1
  27. dub/models/errors/forbidden.py +1 -1
  28. dub/models/errors/internalservererror.py +1 -1
  29. dub/models/errors/inviteexpired.py +1 -1
  30. dub/models/errors/no_response_error.py +1 -1
  31. dub/models/errors/notfound.py +1 -1
  32. dub/models/errors/ratelimitexceeded.py +1 -1
  33. dub/models/errors/responsevalidationerror.py +1 -1
  34. dub/models/errors/sdkerror.py +1 -1
  35. dub/models/errors/unauthorized.py +1 -1
  36. dub/models/errors/unprocessableentity.py +1 -1
  37. dub/models/operations/bulkcreatelinks.py +2 -2
  38. dub/models/operations/createfolder.py +8 -3
  39. dub/models/operations/createlink.py +2 -2
  40. dub/models/operations/createpartner.py +33 -29
  41. dub/models/operations/listpartners.py +41 -48
  42. dub/models/operations/retrieveanalytics.py +4 -1
  43. dub/models/operations/tracklead.py +2 -2
  44. dub/models/operations/updatefolder.py +8 -3
  45. dub/models/operations/updatelink.py +2 -2
  46. dub/models/operations/upsertlink.py +2 -2
  47. dub/partners.py +12 -12
  48. dub/qr_codes.py +2 -2
  49. dub/tags.py +20 -20
  50. dub/track.py +4 -4
  51. dub/workspaces.py +4 -4
  52. {dub-0.31.0.dist-info → dub-0.32.0.dist-info}/METADATA +1 -2
  53. {dub-0.31.0.dist-info → dub-0.32.0.dist-info}/RECORD +55 -55
  54. {dub-0.31.0.dist-info → dub-0.32.0.dist-info}/WHEEL +0 -0
  55. {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. Defaults to 0 if `includeExpandedFields` is false."""
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
- clicks: NotRequired[float]
524
- r"""The total number of clicks on the partner's links. Defaults to 0 if `includeExpandedFields` is false."""
525
- leads: NotRequired[float]
526
- r"""The total number of leads generated by the partner's links. Defaults to 0 if `includeExpandedFields` is false."""
527
- conversions: NotRequired[float]
528
- r"""The total number of leads that converted to paying customers. Defaults to 0 if `includeExpandedFields` is false."""
529
- sales: NotRequired[float]
530
- r"""The total number of sales generated by the partner's links (includes recurring sales). Defaults to 0 if `includeExpandedFields` is false."""
531
- sale_amount: NotRequired[float]
532
- r"""The total amount of sales (in cents) generated by the partner's links. Defaults to 0 if `includeExpandedFields` is false."""
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. Defaults to 0 if `includeExpandedFields` is false."""
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. Defaults to 0 if `includeExpandedFields` is false."""
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
- clicks: Optional[float] = 0
641
- r"""The total number of clicks on the partner's links. Defaults to 0 if `includeExpandedFields` is false."""
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
- leads: Optional[float] = 0
644
- r"""The total number of leads generated by the partner's links. Defaults to 0 if `includeExpandedFields` is false."""
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
- conversions: Optional[float] = 0
647
- r"""The total number of leads that converted to paying customers. Defaults to 0 if `includeExpandedFields` is false."""
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
- sales: Optional[float] = 0
650
- r"""The total number of sales generated by the partner's links (includes recurring sales). Defaults to 0 if `includeExpandedFields` is false."""
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
- sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0
653
- r"""The total amount of sales (in cents) generated by the partner's links. Defaults to 0 if `includeExpandedFields` is false."""
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. Defaults to 0 if `includeExpandedFields` is false."""
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
- "clicks",
690
- "leads",
691
- "conversions",
692
- "sales",
693
- "saleAmount",
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 `saleAmount`."""
27
+ r"""The field to sort the partners by. The default is `totalSaleAmount`."""
28
28
 
29
29
  CREATED_AT = "createdAt"
30
- CLICKS = "clicks"
31
- LEADS = "leads"
32
- CONVERSIONS = "conversions"
33
- SALES = "sales"
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 `saleAmount`."""
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.SALE_AMOUNT
87
- r"""The field to sort the partners by. The default is `saleAmount`."""
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. Defaults to 0 if `includeExpandedFields` is false."""
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
- clicks: NotRequired[float]
262
- r"""The total number of clicks on the partner's links. Defaults to 0 if `includeExpandedFields` is false."""
263
- leads: NotRequired[float]
264
- r"""The total number of leads generated by the partner's links. Defaults to 0 if `includeExpandedFields` is false."""
265
- conversions: NotRequired[float]
266
- r"""The total number of leads that converted to paying customers. Defaults to 0 if `includeExpandedFields` is false."""
267
- sales: NotRequired[float]
268
- r"""The total number of sales generated by the partner's links (includes recurring sales). Defaults to 0 if `includeExpandedFields` is false."""
269
- sale_amount: NotRequired[float]
270
- r"""The total amount of sales (in cents) generated by the partner's links. Defaults to 0 if `includeExpandedFields` is false."""
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. Defaults to 0 if `includeExpandedFields` is false."""
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. Defaults to 0 if `includeExpandedFields` is false."""
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
- clicks: Optional[float] = 0
377
- r"""The total number of clicks on the partner's links. Defaults to 0 if `includeExpandedFields` is false."""
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
- leads: Optional[float] = 0
380
- r"""The total number of leads generated by the partner's links. Defaults to 0 if `includeExpandedFields` is false."""
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
- conversions: Optional[float] = 0
383
- r"""The total number of leads that converted to paying customers. Defaults to 0 if `includeExpandedFields` is false."""
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
- sales: Optional[float] = 0
386
- r"""The total number of sales generated by the partner's links (includes recurring sales). Defaults to 0 if `includeExpandedFields` is false."""
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
- sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0
389
- r"""The total amount of sales (in cents) generated by the partner's links. Defaults to 0 if `includeExpandedFields` is false."""
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. Defaults to 0 if `includeExpandedFields` is false."""
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
- "clicks",
426
- "leads",
427
- "conversions",
428
- "sales",
429
- "saleAmount",
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
- TOP_PARTNERS = "top_partners"
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,