dub 0.26.8__tar.gz → 0.26.10__tar.gz

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 (141) hide show
  1. {dub-0.26.8 → dub-0.26.10}/PKG-INFO +1 -1
  2. {dub-0.26.8 → dub-0.26.10}/pyproject.toml +1 -1
  3. {dub-0.26.8 → dub-0.26.10}/src/dub/_version.py +3 -3
  4. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/__init__.py +2 -5
  5. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/bulkcreatelinks.py +6 -0
  6. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/createlink.py +6 -0
  7. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/createpartner.py +6 -0
  8. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/createpartnerlink.py +6 -0
  9. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/createreferralsembedtoken.py +6 -0
  10. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/listcommissions.py +5 -2
  11. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/listevents.py +4 -4
  12. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/retrieveanalytics.py +0 -14
  13. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/updatecommission.py +5 -2
  14. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/updatelink.py +0 -6
  15. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/upsertlink.py +6 -0
  16. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/upsertpartnerlink.py +6 -0
  17. {dub-0.26.8 → dub-0.26.10}/LICENSE +0 -0
  18. {dub-0.26.8 → dub-0.26.10}/README-PYPI.md +0 -0
  19. {dub-0.26.8 → dub-0.26.10}/py.typed +0 -0
  20. {dub-0.26.8 → dub-0.26.10}/src/dub/__init__.py +0 -0
  21. {dub-0.26.8 → dub-0.26.10}/src/dub/_hooks/__init__.py +0 -0
  22. {dub-0.26.8 → dub-0.26.10}/src/dub/_hooks/registration.py +0 -0
  23. {dub-0.26.8 → dub-0.26.10}/src/dub/_hooks/sdkhooks.py +0 -0
  24. {dub-0.26.8 → dub-0.26.10}/src/dub/_hooks/types.py +0 -0
  25. {dub-0.26.8 → dub-0.26.10}/src/dub/analytics.py +0 -0
  26. {dub-0.26.8 → dub-0.26.10}/src/dub/basesdk.py +0 -0
  27. {dub-0.26.8 → dub-0.26.10}/src/dub/commissions.py +0 -0
  28. {dub-0.26.8 → dub-0.26.10}/src/dub/customers.py +0 -0
  29. {dub-0.26.8 → dub-0.26.10}/src/dub/domains.py +0 -0
  30. {dub-0.26.8 → dub-0.26.10}/src/dub/embed_tokens.py +0 -0
  31. {dub-0.26.8 → dub-0.26.10}/src/dub/events.py +0 -0
  32. {dub-0.26.8 → dub-0.26.10}/src/dub/folders.py +0 -0
  33. {dub-0.26.8 → dub-0.26.10}/src/dub/httpclient.py +0 -0
  34. {dub-0.26.8 → dub-0.26.10}/src/dub/links.py +0 -0
  35. {dub-0.26.8 → dub-0.26.10}/src/dub/models/__init__.py +0 -0
  36. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/__init__.py +0 -0
  37. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/analyticsbrowsers.py +0 -0
  38. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/analyticscities.py +0 -0
  39. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/analyticscontinents.py +0 -0
  40. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/analyticscount.py +0 -0
  41. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/analyticscountries.py +0 -0
  42. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/analyticsdevices.py +0 -0
  43. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/analyticsos.py +0 -0
  44. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/analyticsreferers.py +0 -0
  45. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/analyticsrefererurls.py +0 -0
  46. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/analyticsregions.py +0 -0
  47. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/analyticstimeseries.py +0 -0
  48. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/analyticstoplinks.py +0 -0
  49. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/analyticstopurls.py +0 -0
  50. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/analyticstriggers.py +0 -0
  51. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/clickevent.py +0 -0
  52. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/continentcode.py +0 -0
  53. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/countrycode.py +0 -0
  54. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/domainschema.py +0 -0
  55. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/folderschema.py +0 -0
  56. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/leadcreatedevent.py +0 -0
  57. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/leadevent.py +0 -0
  58. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/linkclickedevent.py +0 -0
  59. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/linkerrorschema.py +0 -0
  60. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/linkgeotargeting.py +0 -0
  61. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/linkschema.py +0 -0
  62. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/linkwebhookevent.py +0 -0
  63. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/partneranalyticscount.py +0 -0
  64. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/partneranalyticstimeseries.py +0 -0
  65. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/partneranalyticstoplinks.py +0 -0
  66. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/partnerenrolledevent.py +0 -0
  67. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/salecreatedevent.py +0 -0
  68. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/saleevent.py +0 -0
  69. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/security.py +0 -0
  70. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/tagschema.py +0 -0
  71. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/webhookevent.py +0 -0
  72. {dub-0.26.8 → dub-0.26.10}/src/dub/models/components/workspaceschema.py +0 -0
  73. {dub-0.26.8 → dub-0.26.10}/src/dub/models/errors/__init__.py +0 -0
  74. {dub-0.26.8 → dub-0.26.10}/src/dub/models/errors/badrequest.py +0 -0
  75. {dub-0.26.8 → dub-0.26.10}/src/dub/models/errors/conflict.py +0 -0
  76. {dub-0.26.8 → dub-0.26.10}/src/dub/models/errors/forbidden.py +0 -0
  77. {dub-0.26.8 → dub-0.26.10}/src/dub/models/errors/internalservererror.py +0 -0
  78. {dub-0.26.8 → dub-0.26.10}/src/dub/models/errors/inviteexpired.py +0 -0
  79. {dub-0.26.8 → dub-0.26.10}/src/dub/models/errors/notfound.py +0 -0
  80. {dub-0.26.8 → dub-0.26.10}/src/dub/models/errors/ratelimitexceeded.py +0 -0
  81. {dub-0.26.8 → dub-0.26.10}/src/dub/models/errors/sdkerror.py +0 -0
  82. {dub-0.26.8 → dub-0.26.10}/src/dub/models/errors/unauthorized.py +0 -0
  83. {dub-0.26.8 → dub-0.26.10}/src/dub/models/errors/unprocessableentity.py +0 -0
  84. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/bulkdeletelinks.py +0 -0
  85. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/bulkupdatelinks.py +0 -0
  86. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/checkdomainstatus.py +0 -0
  87. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/createcustomer.py +0 -0
  88. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/createdomain.py +0 -0
  89. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/createfolder.py +0 -0
  90. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/createtag.py +0 -0
  91. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/deletecustomer.py +0 -0
  92. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/deletedomain.py +0 -0
  93. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/deletefolder.py +0 -0
  94. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/deletelink.py +0 -0
  95. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/deletetag.py +0 -0
  96. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/getcustomer.py +0 -0
  97. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/getcustomers.py +0 -0
  98. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/getlinkinfo.py +0 -0
  99. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/getlinks.py +0 -0
  100. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/getlinkscount.py +0 -0
  101. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/getqrcode.py +0 -0
  102. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/gettags.py +0 -0
  103. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/getworkspace.py +0 -0
  104. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/listdomains.py +0 -0
  105. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/listfolders.py +0 -0
  106. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/registerdomain.py +0 -0
  107. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/retrievelinks.py +0 -0
  108. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/retrievepartneranalytics.py +0 -0
  109. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/tracklead.py +0 -0
  110. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/tracksale.py +0 -0
  111. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/updatecustomer.py +0 -0
  112. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/updatedomain.py +0 -0
  113. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/updatefolder.py +0 -0
  114. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/updatetag.py +0 -0
  115. {dub-0.26.8 → dub-0.26.10}/src/dub/models/operations/updateworkspace.py +0 -0
  116. {dub-0.26.8 → dub-0.26.10}/src/dub/partners.py +0 -0
  117. {dub-0.26.8 → dub-0.26.10}/src/dub/py.typed +0 -0
  118. {dub-0.26.8 → dub-0.26.10}/src/dub/qr_codes.py +0 -0
  119. {dub-0.26.8 → dub-0.26.10}/src/dub/sdk.py +0 -0
  120. {dub-0.26.8 → dub-0.26.10}/src/dub/sdkconfiguration.py +0 -0
  121. {dub-0.26.8 → dub-0.26.10}/src/dub/tags.py +0 -0
  122. {dub-0.26.8 → dub-0.26.10}/src/dub/track.py +0 -0
  123. {dub-0.26.8 → dub-0.26.10}/src/dub/types/__init__.py +0 -0
  124. {dub-0.26.8 → dub-0.26.10}/src/dub/types/basemodel.py +0 -0
  125. {dub-0.26.8 → dub-0.26.10}/src/dub/utils/__init__.py +0 -0
  126. {dub-0.26.8 → dub-0.26.10}/src/dub/utils/annotations.py +0 -0
  127. {dub-0.26.8 → dub-0.26.10}/src/dub/utils/datetimes.py +0 -0
  128. {dub-0.26.8 → dub-0.26.10}/src/dub/utils/enums.py +0 -0
  129. {dub-0.26.8 → dub-0.26.10}/src/dub/utils/eventstreaming.py +0 -0
  130. {dub-0.26.8 → dub-0.26.10}/src/dub/utils/forms.py +0 -0
  131. {dub-0.26.8 → dub-0.26.10}/src/dub/utils/headers.py +0 -0
  132. {dub-0.26.8 → dub-0.26.10}/src/dub/utils/logger.py +0 -0
  133. {dub-0.26.8 → dub-0.26.10}/src/dub/utils/metadata.py +0 -0
  134. {dub-0.26.8 → dub-0.26.10}/src/dub/utils/queryparams.py +0 -0
  135. {dub-0.26.8 → dub-0.26.10}/src/dub/utils/requestbodies.py +0 -0
  136. {dub-0.26.8 → dub-0.26.10}/src/dub/utils/retries.py +0 -0
  137. {dub-0.26.8 → dub-0.26.10}/src/dub/utils/security.py +0 -0
  138. {dub-0.26.8 → dub-0.26.10}/src/dub/utils/serializers.py +0 -0
  139. {dub-0.26.8 → dub-0.26.10}/src/dub/utils/url.py +0 -0
  140. {dub-0.26.8 → dub-0.26.10}/src/dub/utils/values.py +0 -0
  141. {dub-0.26.8 → dub-0.26.10}/src/dub/workspaces.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: dub
3
- Version: 0.26.8
3
+ Version: 0.26.10
4
4
  Summary: Python Client SDK Generated by Speakeasy
5
5
  Author: Speakeasy
6
6
  Requires-Python: >=3.9.2
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "dub"
3
- version = "0.26.8"
3
+ version = "0.26.10"
4
4
  description = "Python Client SDK Generated by Speakeasy"
5
5
  authors = [{ name = "Speakeasy" },]
6
6
  readme = "README-PYPI.md"
@@ -3,10 +3,10 @@
3
3
  import importlib.metadata
4
4
 
5
5
  __title__: str = "dub"
6
- __version__: str = "0.26.8"
6
+ __version__: str = "0.26.10"
7
7
  __openapi_doc_version__: str = "0.0.1"
8
- __gen_version__: str = "2.630.6"
9
- __user_agent__: str = "speakeasy-sdk/python 0.26.8 2.630.6 0.0.1 dub"
8
+ __gen_version__: str = "2.634.1"
9
+ __user_agent__: str = "speakeasy-sdk/python 0.26.10 2.634.1 0.0.1 dub"
10
10
 
11
11
  try:
12
12
  if __package__ is not None:
@@ -235,7 +235,6 @@ if TYPE_CHECKING:
235
235
  ListDomainsResponseTypedDict,
236
236
  )
237
237
  from .listevents import (
238
- ListEventsQueryParamSortBy,
239
238
  ListEventsQueryParamTagIds,
240
239
  ListEventsQueryParamTagIdsTypedDict,
241
240
  ListEventsRequest,
@@ -245,6 +244,7 @@ if TYPE_CHECKING:
245
244
  Order,
246
245
  QueryParamEvent,
247
246
  QueryParamInterval,
247
+ QueryParamSortBy,
248
248
  QueryParamSortOrder,
249
249
  QueryParamTrigger,
250
250
  )
@@ -259,7 +259,6 @@ if TYPE_CHECKING:
259
259
  Event,
260
260
  Interval,
261
261
  QueryParamGroupBy,
262
- QueryParamSortBy,
263
262
  RetrieveAnalyticsQueryParamTagIds,
264
263
  RetrieveAnalyticsQueryParamTagIdsTypedDict,
265
264
  RetrieveAnalyticsRequest,
@@ -569,7 +568,6 @@ __all__ = [
569
568
  "ListDomainsRequestTypedDict",
570
569
  "ListDomainsResponse",
571
570
  "ListDomainsResponseTypedDict",
572
- "ListEventsQueryParamSortBy",
573
571
  "ListEventsQueryParamTagIds",
574
572
  "ListEventsQueryParamTagIdsTypedDict",
575
573
  "ListEventsRequest",
@@ -906,7 +904,6 @@ _dynamic_imports: dict[str, str] = {
906
904
  "ListDomainsRequestTypedDict": ".listdomains",
907
905
  "ListDomainsResponse": ".listdomains",
908
906
  "ListDomainsResponseTypedDict": ".listdomains",
909
- "ListEventsQueryParamSortBy": ".listevents",
910
907
  "ListEventsQueryParamTagIds": ".listevents",
911
908
  "ListEventsQueryParamTagIdsTypedDict": ".listevents",
912
909
  "ListEventsRequest": ".listevents",
@@ -916,6 +913,7 @@ _dynamic_imports: dict[str, str] = {
916
913
  "Order": ".listevents",
917
914
  "QueryParamEvent": ".listevents",
918
915
  "QueryParamInterval": ".listevents",
916
+ "QueryParamSortBy": ".listevents",
919
917
  "QueryParamSortOrder": ".listevents",
920
918
  "QueryParamTrigger": ".listevents",
921
919
  "ListFoldersRequest": ".listfolders",
@@ -927,7 +925,6 @@ _dynamic_imports: dict[str, str] = {
927
925
  "Event": ".retrieveanalytics",
928
926
  "Interval": ".retrieveanalytics",
929
927
  "QueryParamGroupBy": ".retrieveanalytics",
930
- "QueryParamSortBy": ".retrieveanalytics",
931
928
  "RetrieveAnalyticsQueryParamTagIds": ".retrieveanalytics",
932
929
  "RetrieveAnalyticsQueryParamTagIdsTypedDict": ".retrieveanalytics",
933
930
  "RetrieveAnalyticsRequest": ".retrieveanalytics",
@@ -53,6 +53,8 @@ class RequestBodyTypedDict(TypedDict):
53
53
  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)."""
54
54
  key: NotRequired[str]
55
55
  r"""The short link slug. If not provided, a random 7-character slug will be generated."""
56
+ key_length: NotRequired[float]
57
+ r"""The length of the short link slug. Defaults to 7 if not provided. When used with `prefix`, the total length of the key will be `prefix.length + keyLength`."""
56
58
  external_id: NotRequired[Nullable[str]]
57
59
  r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace."""
58
60
  tenant_id: NotRequired[Nullable[str]]
@@ -137,6 +139,9 @@ class RequestBody(BaseModel):
137
139
  key: Optional[str] = None
138
140
  r"""The short link slug. If not provided, a random 7-character slug will be generated."""
139
141
 
142
+ key_length: Annotated[Optional[float], pydantic.Field(alias="keyLength")] = None
143
+ r"""The length of the short link slug. Defaults to 7 if not provided. When used with `prefix`, the total length of the key will be `prefix.length + keyLength`."""
144
+
140
145
  external_id: Annotated[
141
146
  OptionalNullable[str], pydantic.Field(alias="externalId")
142
147
  ] = UNSET
@@ -291,6 +296,7 @@ class RequestBody(BaseModel):
291
296
  optional_fields = [
292
297
  "domain",
293
298
  "key",
299
+ "keyLength",
294
300
  "externalId",
295
301
  "tenantId",
296
302
  "programId",
@@ -47,6 +47,8 @@ class CreateLinkRequestBodyTypedDict(TypedDict):
47
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)."""
48
48
  key: NotRequired[str]
49
49
  r"""The short link slug. If not provided, a random 7-character slug will be generated."""
50
+ key_length: NotRequired[float]
51
+ r"""The length of the short link slug. Defaults to 7 if not provided. When used with `prefix`, the total length of the key will be `prefix.length + keyLength`."""
50
52
  external_id: NotRequired[Nullable[str]]
51
53
  r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace."""
52
54
  tenant_id: NotRequired[Nullable[str]]
@@ -131,6 +133,9 @@ class CreateLinkRequestBody(BaseModel):
131
133
  key: Optional[str] = None
132
134
  r"""The short link slug. If not provided, a random 7-character slug will be generated."""
133
135
 
136
+ key_length: Annotated[Optional[float], pydantic.Field(alias="keyLength")] = None
137
+ r"""The length of the short link slug. Defaults to 7 if not provided. When used with `prefix`, the total length of the key will be `prefix.length + keyLength`."""
138
+
134
139
  external_id: Annotated[
135
140
  OptionalNullable[str], pydantic.Field(alias="externalId")
136
141
  ] = UNSET
@@ -280,6 +285,7 @@ class CreateLinkRequestBody(BaseModel):
280
285
  optional_fields = [
281
286
  "domain",
282
287
  "key",
288
+ "keyLength",
283
289
  "externalId",
284
290
  "tenantId",
285
291
  "programId",
@@ -298,6 +298,8 @@ class CreatePartnerTestVariants(BaseModel):
298
298
  class LinkPropsTypedDict(TypedDict):
299
299
  r"""Additional properties that you can pass to the partner's short link. Will be used to override the default link properties for this partner."""
300
300
 
301
+ key_length: NotRequired[float]
302
+ r"""The length of the short link slug. Defaults to 7 if not provided. When used with `prefix`, the total length of the key will be `prefix.length + keyLength`."""
301
303
  external_id: NotRequired[Nullable[str]]
302
304
  r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace."""
303
305
  tenant_id: NotRequired[Nullable[str]]
@@ -361,6 +363,9 @@ class LinkPropsTypedDict(TypedDict):
361
363
  class LinkProps(BaseModel):
362
364
  r"""Additional properties that you can pass to the partner's short link. Will be used to override the default link properties for this partner."""
363
365
 
366
+ key_length: Annotated[Optional[float], pydantic.Field(alias="keyLength")] = None
367
+ r"""The length of the short link slug. Defaults to 7 if not provided. When used with `prefix`, the total length of the key will be `prefix.length + keyLength`."""
368
+
364
369
  external_id: Annotated[
365
370
  OptionalNullable[str], pydantic.Field(alias="externalId")
366
371
  ] = UNSET
@@ -472,6 +477,7 @@ class LinkProps(BaseModel):
472
477
  @model_serializer(mode="wrap")
473
478
  def serialize_model(self, handler):
474
479
  optional_fields = [
480
+ "keyLength",
475
481
  "externalId",
476
482
  "tenantId",
477
483
  "prefix",
@@ -46,6 +46,8 @@ class CreatePartnerLinkTestVariants(BaseModel):
46
46
  class CreatePartnerLinkLinkPropsTypedDict(TypedDict):
47
47
  r"""Additional properties that you can pass to the partner's short link. Will be used to override the default link properties for this partner."""
48
48
 
49
+ key_length: NotRequired[float]
50
+ r"""The length of the short link slug. Defaults to 7 if not provided. When used with `prefix`, the total length of the key will be `prefix.length + keyLength`."""
49
51
  external_id: NotRequired[Nullable[str]]
50
52
  r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace."""
51
53
  tenant_id: NotRequired[Nullable[str]]
@@ -109,6 +111,9 @@ class CreatePartnerLinkLinkPropsTypedDict(TypedDict):
109
111
  class CreatePartnerLinkLinkProps(BaseModel):
110
112
  r"""Additional properties that you can pass to the partner's short link. Will be used to override the default link properties for this partner."""
111
113
 
114
+ key_length: Annotated[Optional[float], pydantic.Field(alias="keyLength")] = None
115
+ r"""The length of the short link slug. Defaults to 7 if not provided. When used with `prefix`, the total length of the key will be `prefix.length + keyLength`."""
116
+
112
117
  external_id: Annotated[
113
118
  OptionalNullable[str], pydantic.Field(alias="externalId")
114
119
  ] = UNSET
@@ -220,6 +225,7 @@ class CreatePartnerLinkLinkProps(BaseModel):
220
225
  @model_serializer(mode="wrap")
221
226
  def serialize_model(self, handler):
222
227
  optional_fields = [
228
+ "keyLength",
223
229
  "externalId",
224
230
  "tenantId",
225
231
  "prefix",
@@ -302,6 +302,8 @@ class CreateReferralsEmbedTokenTestVariants(BaseModel):
302
302
  class CreateReferralsEmbedTokenLinkPropsTypedDict(TypedDict):
303
303
  r"""Additional properties that you can pass to the partner's short link. Will be used to override the default link properties for this partner."""
304
304
 
305
+ key_length: NotRequired[float]
306
+ r"""The length of the short link slug. Defaults to 7 if not provided. When used with `prefix`, the total length of the key will be `prefix.length + keyLength`."""
305
307
  external_id: NotRequired[Nullable[str]]
306
308
  r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace."""
307
309
  tenant_id: NotRequired[Nullable[str]]
@@ -367,6 +369,9 @@ class CreateReferralsEmbedTokenLinkPropsTypedDict(TypedDict):
367
369
  class CreateReferralsEmbedTokenLinkProps(BaseModel):
368
370
  r"""Additional properties that you can pass to the partner's short link. Will be used to override the default link properties for this partner."""
369
371
 
372
+ key_length: Annotated[Optional[float], pydantic.Field(alias="keyLength")] = None
373
+ r"""The length of the short link slug. Defaults to 7 if not provided. When used with `prefix`, the total length of the key will be `prefix.length + keyLength`."""
374
+
370
375
  external_id: Annotated[
371
376
  OptionalNullable[str], pydantic.Field(alias="externalId")
372
377
  ] = UNSET
@@ -478,6 +483,7 @@ class CreateReferralsEmbedTokenLinkProps(BaseModel):
478
483
  @model_serializer(mode="wrap")
479
484
  def serialize_model(self, handler):
480
485
  optional_fields = [
486
+ "keyLength",
481
487
  "externalId",
482
488
  "tenantId",
483
489
  "prefix",
@@ -199,6 +199,7 @@ class ListCommissionsResponseBodyTypedDict(TypedDict):
199
199
  updated_at: str
200
200
  type: NotRequired[ListCommissionsType]
201
201
  invoice_id: NotRequired[Nullable[str]]
202
+ description: NotRequired[Nullable[str]]
202
203
 
203
204
 
204
205
  class ListCommissionsResponseBody(BaseModel):
@@ -223,10 +224,12 @@ class ListCommissionsResponseBody(BaseModel):
223
224
  UNSET
224
225
  )
225
226
 
227
+ description: OptionalNullable[str] = UNSET
228
+
226
229
  @model_serializer(mode="wrap")
227
230
  def serialize_model(self, handler):
228
- optional_fields = ["type", "invoiceId"]
229
- nullable_fields = ["invoiceId"]
231
+ optional_fields = ["type", "invoiceId", "description"]
232
+ nullable_fields = ["invoiceId", "description"]
230
233
  null_default_fields = []
231
234
 
232
235
  serialized = handler(self)
@@ -71,7 +71,7 @@ class QueryParamSortOrder(str, Enum):
71
71
  DESC = "desc"
72
72
 
73
73
 
74
- class ListEventsQueryParamSortBy(str, Enum):
74
+ class QueryParamSortBy(str, Enum):
75
75
  r"""The field to sort the events by. The default is `timestamp`."""
76
76
 
77
77
  TIMESTAMP = "timestamp"
@@ -160,7 +160,7 @@ class ListEventsRequestTypedDict(TypedDict):
160
160
  limit: NotRequired[float]
161
161
  sort_order: NotRequired[QueryParamSortOrder]
162
162
  r"""The sort order. The default is `desc`."""
163
- sort_by: NotRequired[ListEventsQueryParamSortBy]
163
+ sort_by: NotRequired[QueryParamSortBy]
164
164
  r"""The field to sort the events by. The default is `timestamp`."""
165
165
  order: NotRequired[Order]
166
166
  r"""DEPRECATED. Use `sortOrder` instead."""
@@ -399,10 +399,10 @@ class ListEventsRequest(BaseModel):
399
399
  r"""The sort order. The default is `desc`."""
400
400
 
401
401
  sort_by: Annotated[
402
- Optional[ListEventsQueryParamSortBy],
402
+ Optional[QueryParamSortBy],
403
403
  pydantic.Field(alias="sortBy"),
404
404
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
405
- ] = ListEventsQueryParamSortBy.TIMESTAMP
405
+ ] = QueryParamSortBy.TIMESTAMP
406
406
  r"""The field to sort the events by. The default is `timestamp`."""
407
407
 
408
408
  order: Annotated[
@@ -96,12 +96,6 @@ RetrieveAnalyticsQueryParamTagIds = TypeAliasType(
96
96
  r"""The tag IDs to retrieve analytics for."""
97
97
 
98
98
 
99
- class QueryParamSortBy(str, Enum):
100
- CLICKS = "clicks"
101
- LEADS = "leads"
102
- SALES = "sales"
103
-
104
-
105
99
  class RetrieveAnalyticsRequestTypedDict(TypedDict):
106
100
  event: NotRequired[Event]
107
101
  r"""The type of event to retrieve analytics for. Defaults to `clicks`."""
@@ -163,7 +157,6 @@ class RetrieveAnalyticsRequestTypedDict(TypedDict):
163
157
  r"""Deprecated. Use the `trigger` field instead. Filter for QR code scans. If true, filter for QR codes only. If false, filter for links only. If undefined, return both."""
164
158
  root: NotRequired[bool]
165
159
  r"""Filter for root domains. If true, filter for domains only. If false, filter for links only. If undefined, return both."""
166
- sort_by: NotRequired[QueryParamSortBy]
167
160
  utm_source: NotRequired[Nullable[str]]
168
161
  r"""The UTM source of the short link."""
169
162
  utm_medium: NotRequired[Nullable[str]]
@@ -368,12 +361,6 @@ class RetrieveAnalyticsRequest(BaseModel):
368
361
  ] = None
369
362
  r"""Filter for root domains. If true, filter for domains only. If false, filter for links only. If undefined, return both."""
370
363
 
371
- sort_by: Annotated[
372
- Optional[QueryParamSortBy],
373
- pydantic.Field(alias="sortBy"),
374
- FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
375
- ] = None
376
-
377
364
  utm_source: Annotated[
378
365
  OptionalNullable[str],
379
366
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
@@ -437,7 +424,6 @@ class RetrieveAnalyticsRequest(BaseModel):
437
424
  "folderId",
438
425
  "qr",
439
426
  "root",
440
- "sortBy",
441
427
  "utm_source",
442
428
  "utm_medium",
443
429
  "utm_campaign",
@@ -94,6 +94,7 @@ class UpdateCommissionResponseBodyTypedDict(TypedDict):
94
94
  updated_at: str
95
95
  type: NotRequired[UpdateCommissionType]
96
96
  invoice_id: NotRequired[Nullable[str]]
97
+ description: NotRequired[Nullable[str]]
97
98
 
98
99
 
99
100
  class UpdateCommissionResponseBody(BaseModel):
@@ -120,10 +121,12 @@ class UpdateCommissionResponseBody(BaseModel):
120
121
  UNSET
121
122
  )
122
123
 
124
+ description: OptionalNullable[str] = UNSET
125
+
123
126
  @model_serializer(mode="wrap")
124
127
  def serialize_model(self, handler):
125
- optional_fields = ["type", "invoiceId"]
126
- nullable_fields = ["invoiceId"]
128
+ optional_fields = ["type", "invoiceId", "description"]
129
+ nullable_fields = ["invoiceId", "description"]
127
130
  null_default_fields = []
128
131
 
129
132
  serialized = handler(self)
@@ -56,8 +56,6 @@ class UpdateLinkRequestBodyTypedDict(TypedDict):
56
56
  r"""The ID of the program the short link is associated with."""
57
57
  partner_id: NotRequired[Nullable[str]]
58
58
  r"""The ID of the partner the short link is associated with."""
59
- prefix: NotRequired[str]
60
- r"""The prefix of the short link slug for randomly-generated keys (e.g. if prefix is `/c/`, generated keys will be in the `/c/:key` format). Will be ignored if `key` is provided."""
61
59
  track_conversion: NotRequired[bool]
62
60
  r"""Whether to track conversions for the short link. Defaults to `false` if not provided."""
63
61
  archived: NotRequired[bool]
@@ -151,9 +149,6 @@ class UpdateLinkRequestBody(BaseModel):
151
149
  )
152
150
  r"""The ID of the partner the short link is associated with."""
153
151
 
154
- prefix: Optional[str] = None
155
- r"""The prefix of the short link slug for randomly-generated keys (e.g. if prefix is `/c/`, generated keys will be in the `/c/:key` format). Will be ignored if `key` is provided."""
156
-
157
152
  track_conversion: Annotated[
158
153
  Optional[bool], pydantic.Field(alias="trackConversion")
159
154
  ] = None
@@ -289,7 +284,6 @@ class UpdateLinkRequestBody(BaseModel):
289
284
  "tenantId",
290
285
  "programId",
291
286
  "partnerId",
292
- "prefix",
293
287
  "trackConversion",
294
288
  "archived",
295
289
  "publicStats",
@@ -47,6 +47,8 @@ class UpsertLinkRequestBodyTypedDict(TypedDict):
47
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)."""
48
48
  key: NotRequired[str]
49
49
  r"""The short link slug. If not provided, a random 7-character slug will be generated."""
50
+ key_length: NotRequired[float]
51
+ r"""The length of the short link slug. Defaults to 7 if not provided. When used with `prefix`, the total length of the key will be `prefix.length + keyLength`."""
50
52
  external_id: NotRequired[Nullable[str]]
51
53
  r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace."""
52
54
  tenant_id: NotRequired[Nullable[str]]
@@ -131,6 +133,9 @@ class UpsertLinkRequestBody(BaseModel):
131
133
  key: Optional[str] = None
132
134
  r"""The short link slug. If not provided, a random 7-character slug will be generated."""
133
135
 
136
+ key_length: Annotated[Optional[float], pydantic.Field(alias="keyLength")] = None
137
+ r"""The length of the short link slug. Defaults to 7 if not provided. When used with `prefix`, the total length of the key will be `prefix.length + keyLength`."""
138
+
134
139
  external_id: Annotated[
135
140
  OptionalNullable[str], pydantic.Field(alias="externalId")
136
141
  ] = UNSET
@@ -285,6 +290,7 @@ class UpsertLinkRequestBody(BaseModel):
285
290
  optional_fields = [
286
291
  "domain",
287
292
  "key",
293
+ "keyLength",
288
294
  "externalId",
289
295
  "tenantId",
290
296
  "programId",
@@ -46,6 +46,8 @@ class UpsertPartnerLinkTestVariants(BaseModel):
46
46
  class UpsertPartnerLinkLinkPropsTypedDict(TypedDict):
47
47
  r"""Additional properties that you can pass to the partner's short link. Will be used to override the default link properties for this partner."""
48
48
 
49
+ key_length: NotRequired[float]
50
+ r"""The length of the short link slug. Defaults to 7 if not provided. When used with `prefix`, the total length of the key will be `prefix.length + keyLength`."""
49
51
  external_id: NotRequired[Nullable[str]]
50
52
  r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace."""
51
53
  tenant_id: NotRequired[Nullable[str]]
@@ -109,6 +111,9 @@ class UpsertPartnerLinkLinkPropsTypedDict(TypedDict):
109
111
  class UpsertPartnerLinkLinkProps(BaseModel):
110
112
  r"""Additional properties that you can pass to the partner's short link. Will be used to override the default link properties for this partner."""
111
113
 
114
+ key_length: Annotated[Optional[float], pydantic.Field(alias="keyLength")] = None
115
+ r"""The length of the short link slug. Defaults to 7 if not provided. When used with `prefix`, the total length of the key will be `prefix.length + keyLength`."""
116
+
112
117
  external_id: Annotated[
113
118
  OptionalNullable[str], pydantic.Field(alias="externalId")
114
119
  ] = UNSET
@@ -220,6 +225,7 @@ class UpsertPartnerLinkLinkProps(BaseModel):
220
225
  @model_serializer(mode="wrap")
221
226
  def serialize_model(self, handler):
222
227
  optional_fields = [
228
+ "keyLength",
223
229
  "externalId",
224
230
  "tenantId",
225
231
  "prefix",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes