dub 0.33.0__py3-none-any.whl → 0.34.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 -0
- dub/basesdk.py +6 -0
- dub/commissions.py +4 -0
- dub/customers.py +8 -0
- dub/domains.py +12 -0
- dub/embed_tokens.py +2 -0
- dub/events.py +2 -0
- dub/folders.py +8 -0
- dub/links.py +20 -0
- dub/models/components/__init__.py +49 -149
- dub/models/components/leadcreatedevent.py +8 -8
- dub/models/components/linkclickedevent.py +12 -12
- dub/models/components/linkerrorschema.py +12 -12
- dub/models/components/linkschema.py +3 -3
- dub/models/components/linktagschema.py +3 -3
- dub/models/components/linktagschemaoutput.py +38 -0
- dub/models/components/linkwebhookevent.py +8 -10
- dub/models/components/partnerenrolledevent.py +4 -4
- dub/models/components/salecreatedevent.py +8 -8
- dub/models/operations/__init__.py +130 -22
- dub/models/operations/createpartner.py +4 -55
- dub/models/operations/createpartnerlink.py +0 -51
- dub/models/operations/createreferralsembedtoken.py +0 -51
- dub/models/operations/getcustomers.py +18 -0
- dub/models/operations/getlinkinfo.py +0 -2
- dub/models/operations/getlinks.py +2 -2
- dub/models/operations/getlinkscount.py +2 -2
- dub/models/operations/getqrcode.py +1 -1
- dub/models/operations/listdomains.py +1 -1
- dub/models/operations/listevents.py +2016 -21
- dub/models/operations/listpartners.py +4 -4
- dub/models/operations/retrieveanalytics.py +16 -5
- dub/models/operations/retrievelinks.py +2 -2
- dub/models/operations/tracklead.py +4 -4
- dub/models/operations/updatecustomer.py +23 -11
- dub/models/operations/updatelink.py +0 -2
- dub/models/operations/updateworkspace.py +3 -3
- dub/models/operations/upsertpartnerlink.py +0 -51
- dub/partners.py +22 -4
- dub/qr_codes.py +2 -0
- dub/tags.py +24 -12
- dub/track.py +4 -0
- dub/types/basemodel.py +41 -3
- dub/utils/__init__.py +0 -3
- dub/utils/enums.py +60 -0
- dub/utils/forms.py +21 -10
- dub/utils/queryparams.py +14 -2
- dub/utils/requestbodies.py +3 -3
- dub/utils/serializers.py +0 -20
- dub/workspaces.py +4 -0
- {dub-0.33.0.dist-info → dub-0.34.0.dist-info}/METADATA +14 -14
- {dub-0.33.0.dist-info → dub-0.34.0.dist-info}/RECORD +55 -58
- dub/models/components/clickevent.py +0 -557
- dub/models/components/continentcode.py +0 -16
- dub/models/components/leadevent.py +0 -681
- dub/models/components/saleevent.py +0 -780
- {dub-0.33.0.dist-info → dub-0.34.0.dist-info}/WHEEL +0 -0
- {dub-0.33.0.dist-info → dub-0.34.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -142,7 +142,7 @@ class ListPartnersStatus(str, Enum):
|
|
|
142
142
|
ARCHIVED = "archived"
|
|
143
143
|
|
|
144
144
|
|
|
145
|
-
class
|
|
145
|
+
class ListPartnersLinksTypedDict(TypedDict):
|
|
146
146
|
id: str
|
|
147
147
|
r"""The unique ID of the short link."""
|
|
148
148
|
domain: str
|
|
@@ -165,7 +165,7 @@ class ListPartnersLinkTypedDict(TypedDict):
|
|
|
165
165
|
r"""The total dollar value of sales (in cents) generated by the short link."""
|
|
166
166
|
|
|
167
167
|
|
|
168
|
-
class
|
|
168
|
+
class ListPartnersLinks(BaseModel):
|
|
169
169
|
id: str
|
|
170
170
|
r"""The unique ID of the short link."""
|
|
171
171
|
|
|
@@ -238,7 +238,7 @@ class ListPartnersResponseBodyTypedDict(TypedDict):
|
|
|
238
238
|
created_at: str
|
|
239
239
|
status: ListPartnersStatus
|
|
240
240
|
r"""The status of the partner's enrollment in the program."""
|
|
241
|
-
links: Nullable[List[
|
|
241
|
+
links: Nullable[List[ListPartnersLinksTypedDict]]
|
|
242
242
|
r"""The partner's referral links in this program."""
|
|
243
243
|
description: NotRequired[Nullable[str]]
|
|
244
244
|
r"""A brief description of the partner and their background."""
|
|
@@ -341,7 +341,7 @@ class ListPartnersResponseBody(BaseModel):
|
|
|
341
341
|
status: ListPartnersStatus
|
|
342
342
|
r"""The status of the partner's enrollment in the program."""
|
|
343
343
|
|
|
344
|
-
links: Nullable[List[
|
|
344
|
+
links: Nullable[List[ListPartnersLinks]]
|
|
345
345
|
r"""The partner's referral links in this program."""
|
|
346
346
|
|
|
347
347
|
description: OptionalNullable[str] = UNSET
|
|
@@ -16,7 +16,6 @@ from dub.models.components import (
|
|
|
16
16
|
analyticstoplinks as components_analyticstoplinks,
|
|
17
17
|
analyticstopurls as components_analyticstopurls,
|
|
18
18
|
analyticstriggers as components_analyticstriggers,
|
|
19
|
-
continentcode as components_continentcode,
|
|
20
19
|
)
|
|
21
20
|
from dub.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
|
22
21
|
from dub.utils import FieldMetadata, QueryParamMetadata
|
|
@@ -81,6 +80,18 @@ class Interval(str, Enum):
|
|
|
81
80
|
ALL = "all"
|
|
82
81
|
|
|
83
82
|
|
|
83
|
+
class Continent(str, Enum):
|
|
84
|
+
r"""The continent to retrieve analytics for."""
|
|
85
|
+
|
|
86
|
+
AF = "AF"
|
|
87
|
+
AN = "AN"
|
|
88
|
+
AS = "AS"
|
|
89
|
+
EU = "EU"
|
|
90
|
+
NA = "NA"
|
|
91
|
+
OC = "OC"
|
|
92
|
+
SA = "SA"
|
|
93
|
+
|
|
94
|
+
|
|
84
95
|
class Trigger(str, Enum):
|
|
85
96
|
r"""The trigger to retrieve analytics for. If undefined, returns all trigger types."""
|
|
86
97
|
|
|
@@ -144,7 +155,7 @@ class RetrieveAnalyticsRequestTypedDict(TypedDict):
|
|
|
144
155
|
r"""The city to retrieve analytics for."""
|
|
145
156
|
region: NotRequired[str]
|
|
146
157
|
r"""The ISO 3166-2 region code to retrieve analytics for."""
|
|
147
|
-
continent: NotRequired[
|
|
158
|
+
continent: NotRequired[Continent]
|
|
148
159
|
r"""The continent to retrieve analytics for."""
|
|
149
160
|
device: NotRequired[str]
|
|
150
161
|
r"""The device to retrieve analytics for."""
|
|
@@ -155,7 +166,7 @@ class RetrieveAnalyticsRequestTypedDict(TypedDict):
|
|
|
155
166
|
trigger: NotRequired[Trigger]
|
|
156
167
|
r"""The trigger to retrieve analytics for. If undefined, returns all trigger types."""
|
|
157
168
|
referer: NotRequired[str]
|
|
158
|
-
r"""The referer to retrieve analytics for."""
|
|
169
|
+
r"""The referer hostname to retrieve analytics for."""
|
|
159
170
|
referer_url: NotRequired[str]
|
|
160
171
|
r"""The full referer URL to retrieve analytics for."""
|
|
161
172
|
url: NotRequired[str]
|
|
@@ -301,7 +312,7 @@ class RetrieveAnalyticsRequest(BaseModel):
|
|
|
301
312
|
r"""The ISO 3166-2 region code to retrieve analytics for."""
|
|
302
313
|
|
|
303
314
|
continent: Annotated[
|
|
304
|
-
Optional[
|
|
315
|
+
Optional[Continent],
|
|
305
316
|
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
306
317
|
] = None
|
|
307
318
|
r"""The continent to retrieve analytics for."""
|
|
@@ -334,7 +345,7 @@ class RetrieveAnalyticsRequest(BaseModel):
|
|
|
334
345
|
Optional[str],
|
|
335
346
|
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
336
347
|
] = None
|
|
337
|
-
r"""The referer to retrieve analytics for."""
|
|
348
|
+
r"""The referer hostname to retrieve analytics for."""
|
|
338
349
|
|
|
339
350
|
referer_url: Annotated[
|
|
340
351
|
Optional[str],
|
|
@@ -62,7 +62,7 @@ class RetrieveLinksRequest(BaseModel):
|
|
|
62
62
|
return m
|
|
63
63
|
|
|
64
64
|
|
|
65
|
-
class
|
|
65
|
+
class RetrieveLinksResponseBodyTypedDict(TypedDict):
|
|
66
66
|
id: str
|
|
67
67
|
r"""The unique ID of the short link."""
|
|
68
68
|
domain: str
|
|
@@ -85,7 +85,7 @@ class LinkTypedDict(TypedDict):
|
|
|
85
85
|
r"""The total dollar value of sales (in cents) generated by the short link."""
|
|
86
86
|
|
|
87
87
|
|
|
88
|
-
class
|
|
88
|
+
class RetrieveLinksResponseBody(BaseModel):
|
|
89
89
|
id: str
|
|
90
90
|
r"""The unique ID of the short link."""
|
|
91
91
|
|
|
@@ -126,7 +126,7 @@ class Click(BaseModel):
|
|
|
126
126
|
id: str
|
|
127
127
|
|
|
128
128
|
|
|
129
|
-
class
|
|
129
|
+
class LinkTypedDict(TypedDict):
|
|
130
130
|
id: str
|
|
131
131
|
r"""The unique ID of the short link."""
|
|
132
132
|
domain: str
|
|
@@ -147,7 +147,7 @@ class TrackLeadLinkTypedDict(TypedDict):
|
|
|
147
147
|
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."""
|
|
148
148
|
|
|
149
149
|
|
|
150
|
-
class
|
|
150
|
+
class Link(BaseModel):
|
|
151
151
|
id: str
|
|
152
152
|
r"""The unique ID of the short link."""
|
|
153
153
|
|
|
@@ -257,7 +257,7 @@ class TrackLeadResponseBodyTypedDict(TypedDict):
|
|
|
257
257
|
r"""A lead was tracked."""
|
|
258
258
|
|
|
259
259
|
click: ClickTypedDict
|
|
260
|
-
link: Nullable[
|
|
260
|
+
link: Nullable[LinkTypedDict]
|
|
261
261
|
customer: CustomerTypedDict
|
|
262
262
|
|
|
263
263
|
|
|
@@ -266,7 +266,7 @@ class TrackLeadResponseBody(BaseModel):
|
|
|
266
266
|
|
|
267
267
|
click: Click
|
|
268
268
|
|
|
269
|
-
link: Nullable[
|
|
269
|
+
link: Nullable[Link]
|
|
270
270
|
|
|
271
271
|
customer: Customer
|
|
272
272
|
|
|
@@ -17,38 +17,50 @@ from typing_extensions import Annotated, NotRequired, TypedDict
|
|
|
17
17
|
|
|
18
18
|
class UpdateCustomerRequestBodyTypedDict(TypedDict):
|
|
19
19
|
email: NotRequired[Nullable[str]]
|
|
20
|
-
r"""
|
|
20
|
+
r"""The customer's email address."""
|
|
21
21
|
name: NotRequired[Nullable[str]]
|
|
22
|
-
r"""
|
|
22
|
+
r"""The customer's name. If not provided, the email address will be used, and if email is not provided, a random name will be generated."""
|
|
23
23
|
avatar: NotRequired[Nullable[str]]
|
|
24
|
-
r"""
|
|
24
|
+
r"""The customer's avatar URL. If not provided, a random avatar will be generated."""
|
|
25
25
|
external_id: NotRequired[str]
|
|
26
|
-
r"""
|
|
26
|
+
r"""The customer's unique identifier your database. This is useful for associating subsequent conversion events from Dub's API to your internal systems."""
|
|
27
27
|
stripe_customer_id: NotRequired[Nullable[str]]
|
|
28
|
-
r"""The customer's Stripe customer ID.
|
|
28
|
+
r"""The customer's Stripe customer ID. This is useful for attributing recurring sale events to the partner who referred the customer."""
|
|
29
|
+
country: NotRequired[str]
|
|
30
|
+
r"""The customer's country in ISO 3166-1 alpha-2 format. Updating this field will only affect the customer's country in Dub's system (and has no effect on existing conversion events)."""
|
|
29
31
|
|
|
30
32
|
|
|
31
33
|
class UpdateCustomerRequestBody(BaseModel):
|
|
32
34
|
email: OptionalNullable[str] = UNSET
|
|
33
|
-
r"""
|
|
35
|
+
r"""The customer's email address."""
|
|
34
36
|
|
|
35
37
|
name: OptionalNullable[str] = UNSET
|
|
36
|
-
r"""
|
|
38
|
+
r"""The customer's name. If not provided, the email address will be used, and if email is not provided, a random name will be generated."""
|
|
37
39
|
|
|
38
40
|
avatar: OptionalNullable[str] = UNSET
|
|
39
|
-
r"""
|
|
41
|
+
r"""The customer's avatar URL. If not provided, a random avatar will be generated."""
|
|
40
42
|
|
|
41
43
|
external_id: Annotated[Optional[str], pydantic.Field(alias="externalId")] = None
|
|
42
|
-
r"""
|
|
44
|
+
r"""The customer's unique identifier your database. This is useful for associating subsequent conversion events from Dub's API to your internal systems."""
|
|
43
45
|
|
|
44
46
|
stripe_customer_id: Annotated[
|
|
45
47
|
OptionalNullable[str], pydantic.Field(alias="stripeCustomerId")
|
|
46
48
|
] = UNSET
|
|
47
|
-
r"""The customer's Stripe customer ID.
|
|
49
|
+
r"""The customer's Stripe customer ID. This is useful for attributing recurring sale events to the partner who referred the customer."""
|
|
50
|
+
|
|
51
|
+
country: Optional[str] = None
|
|
52
|
+
r"""The customer's country in ISO 3166-1 alpha-2 format. Updating this field will only affect the customer's country in Dub's system (and has no effect on existing conversion events)."""
|
|
48
53
|
|
|
49
54
|
@model_serializer(mode="wrap")
|
|
50
55
|
def serialize_model(self, handler):
|
|
51
|
-
optional_fields = [
|
|
56
|
+
optional_fields = [
|
|
57
|
+
"email",
|
|
58
|
+
"name",
|
|
59
|
+
"avatar",
|
|
60
|
+
"externalId",
|
|
61
|
+
"stripeCustomerId",
|
|
62
|
+
"country",
|
|
63
|
+
]
|
|
52
64
|
nullable_fields = ["email", "name", "avatar", "stripeCustomerId"]
|
|
53
65
|
null_default_fields = []
|
|
54
66
|
|
|
@@ -89,7 +89,6 @@ class UpdateLinkRequestBodyTypedDict(TypedDict):
|
|
|
89
89
|
android: NotRequired[Nullable[str]]
|
|
90
90
|
r"""The Android destination URL for the short link for Android device targeting."""
|
|
91
91
|
geo: NotRequired[Nullable[Dict[str, str]]]
|
|
92
|
-
r"""Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. See https://d.to/geo for more information."""
|
|
93
92
|
do_index: NotRequired[bool]
|
|
94
93
|
r"""Allow search engines to index your short link. Defaults to `false` if not provided. Learn more: https://d.to/noindex"""
|
|
95
94
|
utm_source: NotRequired[Nullable[str]]
|
|
@@ -211,7 +210,6 @@ class UpdateLinkRequestBody(BaseModel):
|
|
|
211
210
|
r"""The Android destination URL for the short link for Android device targeting."""
|
|
212
211
|
|
|
213
212
|
geo: OptionalNullable[Dict[str, str]] = UNSET
|
|
214
|
-
r"""Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. See https://d.to/geo for more information."""
|
|
215
213
|
|
|
216
214
|
do_index: Annotated[Optional[bool], pydantic.Field(alias="doIndex")] = None
|
|
217
215
|
r"""Allow search engines to index your short link. Defaults to `false` if not provided. Learn more: https://d.to/noindex"""
|
|
@@ -5,14 +5,14 @@ from dub.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTIN
|
|
|
5
5
|
from dub.utils import FieldMetadata, PathParamMetadata, RequestMetadata
|
|
6
6
|
import pydantic
|
|
7
7
|
from pydantic import model_serializer
|
|
8
|
-
from typing import Optional
|
|
8
|
+
from typing import Any, Optional
|
|
9
9
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class UpdateWorkspaceRequestBodyTypedDict(TypedDict):
|
|
13
13
|
name: NotRequired[str]
|
|
14
14
|
slug: NotRequired[str]
|
|
15
|
-
logo: NotRequired[Nullable[
|
|
15
|
+
logo: NotRequired[Nullable[Any]]
|
|
16
16
|
conversion_enabled: NotRequired[bool]
|
|
17
17
|
|
|
18
18
|
|
|
@@ -21,7 +21,7 @@ class UpdateWorkspaceRequestBody(BaseModel):
|
|
|
21
21
|
|
|
22
22
|
slug: Optional[str] = None
|
|
23
23
|
|
|
24
|
-
logo: OptionalNullable[
|
|
24
|
+
logo: OptionalNullable[Any] = UNSET
|
|
25
25
|
|
|
26
26
|
conversion_enabled: Annotated[
|
|
27
27
|
Optional[bool], pydantic.Field(alias="conversionEnabled")
|
|
@@ -60,8 +60,6 @@ class UpsertPartnerLinkLinkPropsTypedDict(TypedDict):
|
|
|
60
60
|
r"""The unique IDs of the tags assigned to the short link."""
|
|
61
61
|
tag_names: NotRequired[UpsertPartnerLinkTagNamesTypedDict]
|
|
62
62
|
r"""The unique name of the tags assigned to the short link (case insensitive)."""
|
|
63
|
-
folder_id: NotRequired[Nullable[str]]
|
|
64
|
-
r"""The unique ID existing folder to assign the short link to."""
|
|
65
63
|
comments: NotRequired[Nullable[str]]
|
|
66
64
|
r"""The comments for the short link."""
|
|
67
65
|
expires_at: NotRequired[Nullable[str]]
|
|
@@ -88,18 +86,6 @@ class UpsertPartnerLinkLinkPropsTypedDict(TypedDict):
|
|
|
88
86
|
r"""The Android destination URL for the short link for Android device targeting."""
|
|
89
87
|
do_index: NotRequired[bool]
|
|
90
88
|
r"""Allow search engines to index your short link. Defaults to `false` if not provided. Learn more: https://d.to/noindex"""
|
|
91
|
-
utm_source: NotRequired[Nullable[str]]
|
|
92
|
-
r"""The UTM source of the short link. If set, this will populate or override the UTM source in the destination URL."""
|
|
93
|
-
utm_medium: NotRequired[Nullable[str]]
|
|
94
|
-
r"""The UTM medium of the short link. If set, this will populate or override the UTM medium in the destination URL."""
|
|
95
|
-
utm_campaign: NotRequired[Nullable[str]]
|
|
96
|
-
r"""The UTM campaign of the short link. If set, this will populate or override the UTM campaign in the destination URL."""
|
|
97
|
-
utm_term: NotRequired[Nullable[str]]
|
|
98
|
-
r"""The UTM term of the short link. If set, this will populate or override the UTM term in the destination URL."""
|
|
99
|
-
utm_content: NotRequired[Nullable[str]]
|
|
100
|
-
r"""The UTM content of the short link. If set, this will populate or override the UTM content in the destination URL."""
|
|
101
|
-
ref: NotRequired[Nullable[str]]
|
|
102
|
-
r"""The referral tag of the short link. If set, this will populate or override the `ref` query parameter in the destination URL."""
|
|
103
89
|
test_variants: NotRequired[Nullable[List[UpsertPartnerLinkTestVariantsTypedDict]]]
|
|
104
90
|
r"""An array of A/B test URLs and the percentage of traffic to send to each URL."""
|
|
105
91
|
test_started_at: NotRequired[Nullable[str]]
|
|
@@ -140,11 +126,6 @@ class UpsertPartnerLinkLinkProps(BaseModel):
|
|
|
140
126
|
] = None
|
|
141
127
|
r"""The unique name of the tags assigned to the short link (case insensitive)."""
|
|
142
128
|
|
|
143
|
-
folder_id: Annotated[OptionalNullable[str], pydantic.Field(alias="folderId")] = (
|
|
144
|
-
UNSET
|
|
145
|
-
)
|
|
146
|
-
r"""The unique ID existing folder to assign the short link to."""
|
|
147
|
-
|
|
148
129
|
comments: OptionalNullable[str] = UNSET
|
|
149
130
|
r"""The comments for the short link."""
|
|
150
131
|
|
|
@@ -188,24 +169,6 @@ class UpsertPartnerLinkLinkProps(BaseModel):
|
|
|
188
169
|
do_index: Annotated[Optional[bool], pydantic.Field(alias="doIndex")] = None
|
|
189
170
|
r"""Allow search engines to index your short link. Defaults to `false` if not provided. Learn more: https://d.to/noindex"""
|
|
190
171
|
|
|
191
|
-
utm_source: OptionalNullable[str] = UNSET
|
|
192
|
-
r"""The UTM source of the short link. If set, this will populate or override the UTM source in the destination URL."""
|
|
193
|
-
|
|
194
|
-
utm_medium: OptionalNullable[str] = UNSET
|
|
195
|
-
r"""The UTM medium of the short link. If set, this will populate or override the UTM medium in the destination URL."""
|
|
196
|
-
|
|
197
|
-
utm_campaign: OptionalNullable[str] = UNSET
|
|
198
|
-
r"""The UTM campaign of the short link. If set, this will populate or override the UTM campaign in the destination URL."""
|
|
199
|
-
|
|
200
|
-
utm_term: OptionalNullable[str] = UNSET
|
|
201
|
-
r"""The UTM term of the short link. If set, this will populate or override the UTM term in the destination URL."""
|
|
202
|
-
|
|
203
|
-
utm_content: OptionalNullable[str] = UNSET
|
|
204
|
-
r"""The UTM content of the short link. If set, this will populate or override the UTM content in the destination URL."""
|
|
205
|
-
|
|
206
|
-
ref: OptionalNullable[str] = UNSET
|
|
207
|
-
r"""The referral tag of the short link. If set, this will populate or override the `ref` query parameter in the destination URL."""
|
|
208
|
-
|
|
209
172
|
test_variants: Annotated[
|
|
210
173
|
OptionalNullable[List[UpsertPartnerLinkTestVariants]],
|
|
211
174
|
pydantic.Field(alias="testVariants"),
|
|
@@ -232,7 +195,6 @@ class UpsertPartnerLinkLinkProps(BaseModel):
|
|
|
232
195
|
"archived",
|
|
233
196
|
"tagIds",
|
|
234
197
|
"tagNames",
|
|
235
|
-
"folderId",
|
|
236
198
|
"comments",
|
|
237
199
|
"expiresAt",
|
|
238
200
|
"expiredUrl",
|
|
@@ -246,12 +208,6 @@ class UpsertPartnerLinkLinkProps(BaseModel):
|
|
|
246
208
|
"ios",
|
|
247
209
|
"android",
|
|
248
210
|
"doIndex",
|
|
249
|
-
"utm_source",
|
|
250
|
-
"utm_medium",
|
|
251
|
-
"utm_campaign",
|
|
252
|
-
"utm_term",
|
|
253
|
-
"utm_content",
|
|
254
|
-
"ref",
|
|
255
211
|
"testVariants",
|
|
256
212
|
"testStartedAt",
|
|
257
213
|
"testCompletedAt",
|
|
@@ -259,7 +215,6 @@ class UpsertPartnerLinkLinkProps(BaseModel):
|
|
|
259
215
|
nullable_fields = [
|
|
260
216
|
"externalId",
|
|
261
217
|
"tenantId",
|
|
262
|
-
"folderId",
|
|
263
218
|
"comments",
|
|
264
219
|
"expiresAt",
|
|
265
220
|
"expiredUrl",
|
|
@@ -270,12 +225,6 @@ class UpsertPartnerLinkLinkProps(BaseModel):
|
|
|
270
225
|
"video",
|
|
271
226
|
"ios",
|
|
272
227
|
"android",
|
|
273
|
-
"utm_source",
|
|
274
|
-
"utm_medium",
|
|
275
|
-
"utm_campaign",
|
|
276
|
-
"utm_term",
|
|
277
|
-
"utm_content",
|
|
278
|
-
"ref",
|
|
279
228
|
"testVariants",
|
|
280
229
|
"testStartedAt",
|
|
281
230
|
"testCompletedAt",
|
dub/partners.py
CHANGED
|
@@ -70,6 +70,7 @@ class Partners(BaseSDK):
|
|
|
70
70
|
"json",
|
|
71
71
|
Optional[operations.CreatePartnerRequestBody],
|
|
72
72
|
),
|
|
73
|
+
allow_empty_value=None,
|
|
73
74
|
timeout_ms=timeout_ms,
|
|
74
75
|
)
|
|
75
76
|
|
|
@@ -213,6 +214,7 @@ class Partners(BaseSDK):
|
|
|
213
214
|
"json",
|
|
214
215
|
Optional[operations.CreatePartnerRequestBody],
|
|
215
216
|
),
|
|
217
|
+
allow_empty_value=None,
|
|
216
218
|
timeout_ms=timeout_ms,
|
|
217
219
|
)
|
|
218
220
|
|
|
@@ -344,6 +346,7 @@ class Partners(BaseSDK):
|
|
|
344
346
|
accept_header_value="application/json",
|
|
345
347
|
http_headers=http_headers,
|
|
346
348
|
security=self.sdk_configuration.security,
|
|
349
|
+
allow_empty_value=None,
|
|
347
350
|
timeout_ms=timeout_ms,
|
|
348
351
|
)
|
|
349
352
|
|
|
@@ -475,6 +478,7 @@ class Partners(BaseSDK):
|
|
|
475
478
|
accept_header_value="application/json",
|
|
476
479
|
http_headers=http_headers,
|
|
477
480
|
security=self.sdk_configuration.security,
|
|
481
|
+
allow_empty_value=None,
|
|
478
482
|
timeout_ms=timeout_ms,
|
|
479
483
|
)
|
|
480
484
|
|
|
@@ -618,6 +622,7 @@ class Partners(BaseSDK):
|
|
|
618
622
|
"json",
|
|
619
623
|
Optional[operations.CreatePartnerLinkRequestBody],
|
|
620
624
|
),
|
|
625
|
+
allow_empty_value=None,
|
|
621
626
|
timeout_ms=timeout_ms,
|
|
622
627
|
)
|
|
623
628
|
|
|
@@ -759,6 +764,7 @@ class Partners(BaseSDK):
|
|
|
759
764
|
"json",
|
|
760
765
|
Optional[operations.CreatePartnerLinkRequestBody],
|
|
761
766
|
),
|
|
767
|
+
allow_empty_value=None,
|
|
762
768
|
timeout_ms=timeout_ms,
|
|
763
769
|
)
|
|
764
770
|
|
|
@@ -850,7 +856,7 @@ class Partners(BaseSDK):
|
|
|
850
856
|
server_url: Optional[str] = None,
|
|
851
857
|
timeout_ms: Optional[int] = None,
|
|
852
858
|
http_headers: Optional[Mapping[str, str]] = None,
|
|
853
|
-
) -> List[operations.
|
|
859
|
+
) -> List[operations.RetrieveLinksResponseBody]:
|
|
854
860
|
r"""Retrieve a partner's links.
|
|
855
861
|
|
|
856
862
|
Retrieve a partner's links by their partner ID or tenant ID.
|
|
@@ -888,6 +894,7 @@ class Partners(BaseSDK):
|
|
|
888
894
|
accept_header_value="application/json",
|
|
889
895
|
http_headers=http_headers,
|
|
890
896
|
security=self.sdk_configuration.security,
|
|
897
|
+
allow_empty_value=None,
|
|
891
898
|
timeout_ms=timeout_ms,
|
|
892
899
|
)
|
|
893
900
|
|
|
@@ -926,7 +933,9 @@ class Partners(BaseSDK):
|
|
|
926
933
|
|
|
927
934
|
response_data: Any = None
|
|
928
935
|
if utils.match_response(http_res, "200", "application/json"):
|
|
929
|
-
return unmarshal_json_response(
|
|
936
|
+
return unmarshal_json_response(
|
|
937
|
+
List[operations.RetrieveLinksResponseBody], http_res
|
|
938
|
+
)
|
|
930
939
|
if utils.match_response(http_res, "400", "application/json"):
|
|
931
940
|
response_data = unmarshal_json_response(errors.BadRequestData, http_res)
|
|
932
941
|
raise errors.BadRequest(response_data, http_res)
|
|
@@ -979,7 +988,7 @@ class Partners(BaseSDK):
|
|
|
979
988
|
server_url: Optional[str] = None,
|
|
980
989
|
timeout_ms: Optional[int] = None,
|
|
981
990
|
http_headers: Optional[Mapping[str, str]] = None,
|
|
982
|
-
) -> List[operations.
|
|
991
|
+
) -> List[operations.RetrieveLinksResponseBody]:
|
|
983
992
|
r"""Retrieve a partner's links.
|
|
984
993
|
|
|
985
994
|
Retrieve a partner's links by their partner ID or tenant ID.
|
|
@@ -1017,6 +1026,7 @@ class Partners(BaseSDK):
|
|
|
1017
1026
|
accept_header_value="application/json",
|
|
1018
1027
|
http_headers=http_headers,
|
|
1019
1028
|
security=self.sdk_configuration.security,
|
|
1029
|
+
allow_empty_value=None,
|
|
1020
1030
|
timeout_ms=timeout_ms,
|
|
1021
1031
|
)
|
|
1022
1032
|
|
|
@@ -1055,7 +1065,9 @@ class Partners(BaseSDK):
|
|
|
1055
1065
|
|
|
1056
1066
|
response_data: Any = None
|
|
1057
1067
|
if utils.match_response(http_res, "200", "application/json"):
|
|
1058
|
-
return unmarshal_json_response(
|
|
1068
|
+
return unmarshal_json_response(
|
|
1069
|
+
List[operations.RetrieveLinksResponseBody], http_res
|
|
1070
|
+
)
|
|
1059
1071
|
if utils.match_response(http_res, "400", "application/json"):
|
|
1060
1072
|
response_data = unmarshal_json_response(errors.BadRequestData, http_res)
|
|
1061
1073
|
raise errors.BadRequest(response_data, http_res)
|
|
@@ -1158,6 +1170,7 @@ class Partners(BaseSDK):
|
|
|
1158
1170
|
"json",
|
|
1159
1171
|
Optional[operations.UpsertPartnerLinkRequestBody],
|
|
1160
1172
|
),
|
|
1173
|
+
allow_empty_value=None,
|
|
1161
1174
|
timeout_ms=timeout_ms,
|
|
1162
1175
|
)
|
|
1163
1176
|
|
|
@@ -1299,6 +1312,7 @@ class Partners(BaseSDK):
|
|
|
1299
1312
|
"json",
|
|
1300
1313
|
Optional[operations.UpsertPartnerLinkRequestBody],
|
|
1301
1314
|
),
|
|
1315
|
+
allow_empty_value=None,
|
|
1302
1316
|
timeout_ms=timeout_ms,
|
|
1303
1317
|
)
|
|
1304
1318
|
|
|
@@ -1431,6 +1445,7 @@ class Partners(BaseSDK):
|
|
|
1431
1445
|
accept_header_value="application/json",
|
|
1432
1446
|
http_headers=http_headers,
|
|
1433
1447
|
security=self.sdk_configuration.security,
|
|
1448
|
+
allow_empty_value=None,
|
|
1434
1449
|
timeout_ms=timeout_ms,
|
|
1435
1450
|
)
|
|
1436
1451
|
|
|
@@ -1565,6 +1580,7 @@ class Partners(BaseSDK):
|
|
|
1565
1580
|
accept_header_value="application/json",
|
|
1566
1581
|
http_headers=http_headers,
|
|
1567
1582
|
security=self.sdk_configuration.security,
|
|
1583
|
+
allow_empty_value=None,
|
|
1568
1584
|
timeout_ms=timeout_ms,
|
|
1569
1585
|
)
|
|
1570
1586
|
|
|
@@ -1704,6 +1720,7 @@ class Partners(BaseSDK):
|
|
|
1704
1720
|
get_serialized_body=lambda: utils.serialize_request_body(
|
|
1705
1721
|
request, False, True, "json", Optional[operations.BanPartnerRequestBody]
|
|
1706
1722
|
),
|
|
1723
|
+
allow_empty_value=None,
|
|
1707
1724
|
timeout_ms=timeout_ms,
|
|
1708
1725
|
)
|
|
1709
1726
|
|
|
@@ -1841,6 +1858,7 @@ class Partners(BaseSDK):
|
|
|
1841
1858
|
get_serialized_body=lambda: utils.serialize_request_body(
|
|
1842
1859
|
request, False, True, "json", Optional[operations.BanPartnerRequestBody]
|
|
1843
1860
|
),
|
|
1861
|
+
allow_empty_value=None,
|
|
1844
1862
|
timeout_ms=timeout_ms,
|
|
1845
1863
|
)
|
|
1846
1864
|
|
dub/qr_codes.py
CHANGED
|
@@ -58,6 +58,7 @@ class QRCodes(BaseSDK):
|
|
|
58
58
|
accept_header_value="image/png",
|
|
59
59
|
http_headers=http_headers,
|
|
60
60
|
security=self.sdk_configuration.security,
|
|
61
|
+
allow_empty_value=None,
|
|
61
62
|
timeout_ms=timeout_ms,
|
|
62
63
|
)
|
|
63
64
|
|
|
@@ -187,6 +188,7 @@ class QRCodes(BaseSDK):
|
|
|
187
188
|
accept_header_value="image/png",
|
|
188
189
|
http_headers=http_headers,
|
|
189
190
|
security=self.sdk_configuration.security,
|
|
191
|
+
allow_empty_value=None,
|
|
190
192
|
timeout_ms=timeout_ms,
|
|
191
193
|
)
|
|
192
194
|
|