dub 0.27.1__py3-none-any.whl → 0.27.3__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 (38) hide show
  1. dub/_version.py +3 -3
  2. dub/models/components/__init__.py +41 -2
  3. dub/models/components/analyticstriggers.py +2 -0
  4. dub/models/components/clickevent.py +92 -47
  5. dub/models/components/commissioncreatedevent.py +281 -0
  6. dub/models/components/leadcreatedevent.py +66 -21
  7. dub/models/components/leadevent.py +126 -48
  8. dub/models/components/linkclickedevent.py +66 -21
  9. dub/models/components/linkschema.py +26 -20
  10. dub/models/components/linkwebhookevent.py +33 -21
  11. dub/models/components/partnerenrolledevent.py +207 -80
  12. dub/models/components/salecreatedevent.py +66 -21
  13. dub/models/components/saleevent.py +206 -122
  14. dub/models/components/webhookevent.py +6 -0
  15. dub/models/errors/__init__.py +3 -2
  16. dub/models/operations/__init__.py +71 -2
  17. dub/models/operations/bulkcreatelinks.py +25 -25
  18. dub/models/operations/bulkupdatelinks.py +25 -25
  19. dub/models/operations/createlink.py +25 -25
  20. dub/models/operations/createpartner.py +207 -80
  21. dub/models/operations/getlinks.py +2 -2
  22. dub/models/operations/getlinkscount.py +2 -2
  23. dub/models/operations/listcommissions.py +169 -8
  24. dub/models/operations/listevents.py +48 -20
  25. dub/models/operations/listpartners.py +516 -0
  26. dub/models/operations/retrieveanalytics.py +48 -20
  27. dub/models/operations/retrievelinks.py +6 -6
  28. dub/models/operations/tracksale.py +1 -0
  29. dub/models/operations/updatecommission.py +169 -8
  30. dub/models/operations/updatelink.py +25 -25
  31. dub/models/operations/upsertlink.py +25 -25
  32. dub/partners.py +262 -0
  33. dub/sdk.py +1 -1
  34. dub/utils/__init__.py +3 -2
  35. {dub-0.27.1.dist-info → dub-0.27.3.dist-info}/METADATA +3 -2
  36. {dub-0.27.1.dist-info → dub-0.27.3.dist-info}/RECORD +38 -36
  37. {dub-0.27.1.dist-info → dub-0.27.3.dist-info}/LICENSE +0 -0
  38. {dub-0.27.1.dist-info → dub-0.27.3.dist-info}/WHEEL +0 -0
@@ -2,6 +2,7 @@
2
2
 
3
3
  from typing import TYPE_CHECKING
4
4
  from importlib import import_module
5
+ import builtins
5
6
 
6
7
  if TYPE_CHECKING:
7
8
  from .bulkcreatelinks import (
@@ -72,6 +73,7 @@ if TYPE_CHECKING:
72
73
  TestVariantsTypedDict,
73
74
  )
74
75
  from .createpartner import (
76
+ BannedReason,
75
77
  Country,
76
78
  CreatePartnerLink,
77
79
  CreatePartnerLinkTypedDict,
@@ -216,6 +218,10 @@ if TYPE_CHECKING:
216
218
  )
217
219
  from .getworkspace import GetWorkspaceRequest, GetWorkspaceRequestTypedDict
218
220
  from .listcommissions import (
221
+ ListCommissionsCustomer,
222
+ ListCommissionsCustomerTypedDict,
223
+ ListCommissionsPartner,
224
+ ListCommissionsPartnerTypedDict,
219
225
  ListCommissionsQueryParamInterval,
220
226
  ListCommissionsQueryParamSortBy,
221
227
  ListCommissionsQueryParamSortOrder,
@@ -244,11 +250,25 @@ if TYPE_CHECKING:
244
250
  Order,
245
251
  QueryParamEvent,
246
252
  QueryParamInterval,
253
+ QueryParamSaleType,
247
254
  QueryParamSortBy,
248
255
  QueryParamSortOrder,
249
256
  QueryParamTrigger,
250
257
  )
251
258
  from .listfolders import ListFoldersRequest, ListFoldersRequestTypedDict
259
+ from .listpartners import (
260
+ ListPartnersBannedReason,
261
+ ListPartnersLink,
262
+ ListPartnersLinkTypedDict,
263
+ ListPartnersQueryParamSortBy,
264
+ ListPartnersQueryParamSortOrder,
265
+ ListPartnersQueryParamStatus,
266
+ ListPartnersRequest,
267
+ ListPartnersRequestTypedDict,
268
+ ListPartnersResponseBody,
269
+ ListPartnersResponseBodyTypedDict,
270
+ ListPartnersStatus,
271
+ )
252
272
  from .registerdomain import (
253
273
  RegisterDomainRequestBody,
254
274
  RegisterDomainRequestBodyTypedDict,
@@ -265,6 +285,7 @@ if TYPE_CHECKING:
265
285
  RetrieveAnalyticsRequestTypedDict,
266
286
  RetrieveAnalyticsResponseBody,
267
287
  RetrieveAnalyticsResponseBodyTypedDict,
288
+ SaleType,
268
289
  Trigger,
269
290
  )
270
291
  from .retrievelinks import (
@@ -305,6 +326,10 @@ if TYPE_CHECKING:
305
326
  )
306
327
  from .updatecommission import (
307
328
  Status,
329
+ UpdateCommissionCustomer,
330
+ UpdateCommissionCustomerTypedDict,
331
+ UpdateCommissionPartner,
332
+ UpdateCommissionPartnerTypedDict,
308
333
  UpdateCommissionRequest,
309
334
  UpdateCommissionRequestBody,
310
335
  UpdateCommissionRequestBodyTypedDict,
@@ -392,6 +417,7 @@ if TYPE_CHECKING:
392
417
 
393
418
  __all__ = [
394
419
  "AccessLevel",
420
+ "BannedReason",
395
421
  "BulkCreateLinksTagIds",
396
422
  "BulkCreateLinksTagIdsTypedDict",
397
423
  "BulkCreateLinksTagNames",
@@ -555,6 +581,10 @@ __all__ = [
555
581
  "LinkProps",
556
582
  "LinkPropsTypedDict",
557
583
  "LinkTypedDict",
584
+ "ListCommissionsCustomer",
585
+ "ListCommissionsCustomerTypedDict",
586
+ "ListCommissionsPartner",
587
+ "ListCommissionsPartnerTypedDict",
558
588
  "ListCommissionsQueryParamInterval",
559
589
  "ListCommissionsQueryParamSortBy",
560
590
  "ListCommissionsQueryParamSortOrder",
@@ -576,6 +606,17 @@ __all__ = [
576
606
  "ListEventsResponseBodyTypedDict",
577
607
  "ListFoldersRequest",
578
608
  "ListFoldersRequestTypedDict",
609
+ "ListPartnersBannedReason",
610
+ "ListPartnersLink",
611
+ "ListPartnersLinkTypedDict",
612
+ "ListPartnersQueryParamSortBy",
613
+ "ListPartnersQueryParamSortOrder",
614
+ "ListPartnersQueryParamStatus",
615
+ "ListPartnersRequest",
616
+ "ListPartnersRequestTypedDict",
617
+ "ListPartnersResponseBody",
618
+ "ListPartnersResponseBodyTypedDict",
619
+ "ListPartnersStatus",
579
620
  "Mode",
580
621
  "One",
581
622
  "Order",
@@ -585,6 +626,7 @@ __all__ = [
585
626
  "QueryParamEvent",
586
627
  "QueryParamGroupBy",
587
628
  "QueryParamInterval",
629
+ "QueryParamSaleType",
588
630
  "QueryParamSortBy",
589
631
  "QueryParamSortOrder",
590
632
  "QueryParamStatus",
@@ -616,6 +658,7 @@ __all__ = [
616
658
  "RetrievePartnerAnalyticsResponseBody",
617
659
  "RetrievePartnerAnalyticsResponseBodyTypedDict",
618
660
  "Sale",
661
+ "SaleType",
619
662
  "SaleTypedDict",
620
663
  "Sort",
621
664
  "SortBy",
@@ -641,6 +684,10 @@ __all__ = [
641
684
  "Trigger",
642
685
  "Two",
643
686
  "Type",
687
+ "UpdateCommissionCustomer",
688
+ "UpdateCommissionCustomerTypedDict",
689
+ "UpdateCommissionPartner",
690
+ "UpdateCommissionPartnerTypedDict",
644
691
  "UpdateCommissionRequest",
645
692
  "UpdateCommissionRequestBody",
646
693
  "UpdateCommissionRequestBodyTypedDict",
@@ -765,6 +812,7 @@ _dynamic_imports: dict[str, str] = {
765
812
  "TagNamesTypedDict": ".createlink",
766
813
  "TestVariants": ".createlink",
767
814
  "TestVariantsTypedDict": ".createlink",
815
+ "BannedReason": ".createpartner",
768
816
  "Country": ".createpartner",
769
817
  "CreatePartnerLink": ".createpartner",
770
818
  "CreatePartnerLinkTypedDict": ".createpartner",
@@ -889,6 +937,10 @@ _dynamic_imports: dict[str, str] = {
889
937
  "IdsTypedDict": ".gettags",
890
938
  "GetWorkspaceRequest": ".getworkspace",
891
939
  "GetWorkspaceRequestTypedDict": ".getworkspace",
940
+ "ListCommissionsCustomer": ".listcommissions",
941
+ "ListCommissionsCustomerTypedDict": ".listcommissions",
942
+ "ListCommissionsPartner": ".listcommissions",
943
+ "ListCommissionsPartnerTypedDict": ".listcommissions",
892
944
  "ListCommissionsQueryParamInterval": ".listcommissions",
893
945
  "ListCommissionsQueryParamSortBy": ".listcommissions",
894
946
  "ListCommissionsQueryParamSortOrder": ".listcommissions",
@@ -913,11 +965,23 @@ _dynamic_imports: dict[str, str] = {
913
965
  "Order": ".listevents",
914
966
  "QueryParamEvent": ".listevents",
915
967
  "QueryParamInterval": ".listevents",
968
+ "QueryParamSaleType": ".listevents",
916
969
  "QueryParamSortBy": ".listevents",
917
970
  "QueryParamSortOrder": ".listevents",
918
971
  "QueryParamTrigger": ".listevents",
919
972
  "ListFoldersRequest": ".listfolders",
920
973
  "ListFoldersRequestTypedDict": ".listfolders",
974
+ "ListPartnersBannedReason": ".listpartners",
975
+ "ListPartnersLink": ".listpartners",
976
+ "ListPartnersLinkTypedDict": ".listpartners",
977
+ "ListPartnersQueryParamSortBy": ".listpartners",
978
+ "ListPartnersQueryParamSortOrder": ".listpartners",
979
+ "ListPartnersQueryParamStatus": ".listpartners",
980
+ "ListPartnersRequest": ".listpartners",
981
+ "ListPartnersRequestTypedDict": ".listpartners",
982
+ "ListPartnersResponseBody": ".listpartners",
983
+ "ListPartnersResponseBodyTypedDict": ".listpartners",
984
+ "ListPartnersStatus": ".listpartners",
921
985
  "RegisterDomainRequestBody": ".registerdomain",
922
986
  "RegisterDomainRequestBodyTypedDict": ".registerdomain",
923
987
  "RegisterDomainResponseBody": ".registerdomain",
@@ -931,6 +995,7 @@ _dynamic_imports: dict[str, str] = {
931
995
  "RetrieveAnalyticsRequestTypedDict": ".retrieveanalytics",
932
996
  "RetrieveAnalyticsResponseBody": ".retrieveanalytics",
933
997
  "RetrieveAnalyticsResponseBodyTypedDict": ".retrieveanalytics",
998
+ "SaleType": ".retrieveanalytics",
934
999
  "Trigger": ".retrieveanalytics",
935
1000
  "Link": ".retrievelinks",
936
1001
  "LinkTypedDict": ".retrievelinks",
@@ -961,6 +1026,10 @@ _dynamic_imports: dict[str, str] = {
961
1026
  "TrackSaleResponseBody": ".tracksale",
962
1027
  "TrackSaleResponseBodyTypedDict": ".tracksale",
963
1028
  "Status": ".updatecommission",
1029
+ "UpdateCommissionCustomer": ".updatecommission",
1030
+ "UpdateCommissionCustomerTypedDict": ".updatecommission",
1031
+ "UpdateCommissionPartner": ".updatecommission",
1032
+ "UpdateCommissionPartnerTypedDict": ".updatecommission",
964
1033
  "UpdateCommissionRequest": ".updatecommission",
965
1034
  "UpdateCommissionRequestBody": ".updatecommission",
966
1035
  "UpdateCommissionRequestBodyTypedDict": ".updatecommission",
@@ -1053,5 +1122,5 @@ def __getattr__(attr_name: str) -> object:
1053
1122
 
1054
1123
 
1055
1124
  def __dir__():
1056
- lazy_attrs = list(_dynamic_imports.keys())
1057
- return sorted(lazy_attrs)
1125
+ lazy_attrs = builtins.list(_dynamic_imports.keys())
1126
+ return builtins.sorted(lazy_attrs)
@@ -69,10 +69,6 @@ class RequestBodyTypedDict(TypedDict):
69
69
  r"""Whether to track conversions for the short link. Defaults to `false` if not provided."""
70
70
  archived: NotRequired[bool]
71
71
  r"""Whether the short link is archived. Defaults to `false` if not provided."""
72
- public_stats: NotRequired[bool]
73
- r"""Deprecated: Use `dashboard` instead. Whether the short link's stats are publicly accessible. Defaults to `false` if not provided."""
74
- tag_id: NotRequired[Nullable[str]]
75
- r"""The unique ID of the tag assigned to the short link. This field is deprecated – use `tagIds` instead."""
76
72
  tag_ids: NotRequired[BulkCreateLinksTagIdsTypedDict]
77
73
  r"""The unique IDs of the tags assigned to the short link."""
78
74
  tag_names: NotRequired[BulkCreateLinksTagNamesTypedDict]
@@ -127,6 +123,10 @@ class RequestBodyTypedDict(TypedDict):
127
123
  r"""The date and time when the tests started."""
128
124
  test_completed_at: NotRequired[Nullable[str]]
129
125
  r"""The date and time when the tests were or will be completed."""
126
+ public_stats: NotRequired[bool]
127
+ r"""Deprecated: Use `dashboard` instead. Whether the short link's stats are publicly accessible. Defaults to `false` if not provided."""
128
+ tag_id: NotRequired[Nullable[str]]
129
+ r"""Deprecated: Use `tagIds` instead. The unique ID of the tag assigned to the short link."""
130
130
 
131
131
 
132
132
  class RequestBody(BaseModel):
@@ -173,24 +173,6 @@ class RequestBody(BaseModel):
173
173
  archived: Optional[bool] = None
174
174
  r"""Whether the short link is archived. Defaults to `false` if not provided."""
175
175
 
176
- public_stats: Annotated[
177
- Optional[bool],
178
- pydantic.Field(
179
- deprecated="warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible.",
180
- alias="publicStats",
181
- ),
182
- ] = None
183
- r"""Deprecated: Use `dashboard` instead. Whether the short link's stats are publicly accessible. Defaults to `false` if not provided."""
184
-
185
- tag_id: Annotated[
186
- OptionalNullable[str],
187
- pydantic.Field(
188
- deprecated="warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible.",
189
- alias="tagId",
190
- ),
191
- ] = UNSET
192
- r"""The unique ID of the tag assigned to the short link. This field is deprecated – use `tagIds` instead."""
193
-
194
176
  tag_ids: Annotated[
195
177
  Optional[BulkCreateLinksTagIds], pydantic.Field(alias="tagIds")
196
178
  ] = None
@@ -291,6 +273,24 @@ class RequestBody(BaseModel):
291
273
  ] = UNSET
292
274
  r"""The date and time when the tests were or will be completed."""
293
275
 
276
+ public_stats: Annotated[
277
+ Optional[bool],
278
+ pydantic.Field(
279
+ deprecated="warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible.",
280
+ alias="publicStats",
281
+ ),
282
+ ] = None
283
+ r"""Deprecated: Use `dashboard` instead. Whether the short link's stats are publicly accessible. Defaults to `false` if not provided."""
284
+
285
+ tag_id: Annotated[
286
+ OptionalNullable[str],
287
+ pydantic.Field(
288
+ deprecated="warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible.",
289
+ alias="tagId",
290
+ ),
291
+ ] = UNSET
292
+ r"""Deprecated: Use `tagIds` instead. The unique ID of the tag assigned to the short link."""
293
+
294
294
  @model_serializer(mode="wrap")
295
295
  def serialize_model(self, handler):
296
296
  optional_fields = [
@@ -304,8 +304,6 @@ class RequestBody(BaseModel):
304
304
  "prefix",
305
305
  "trackConversion",
306
306
  "archived",
307
- "publicStats",
308
- "tagId",
309
307
  "tagIds",
310
308
  "tagNames",
311
309
  "folderId",
@@ -333,13 +331,14 @@ class RequestBody(BaseModel):
333
331
  "testVariants",
334
332
  "testStartedAt",
335
333
  "testCompletedAt",
334
+ "publicStats",
335
+ "tagId",
336
336
  ]
337
337
  nullable_fields = [
338
338
  "externalId",
339
339
  "tenantId",
340
340
  "programId",
341
341
  "partnerId",
342
- "tagId",
343
342
  "folderId",
344
343
  "comments",
345
344
  "expiresAt",
@@ -362,6 +361,7 @@ class RequestBody(BaseModel):
362
361
  "testVariants",
363
362
  "testStartedAt",
364
363
  "testCompletedAt",
364
+ "tagId",
365
365
  ]
366
366
  null_default_fields = []
367
367
 
@@ -55,10 +55,6 @@ class DataTypedDict(TypedDict):
55
55
  r"""Whether to track conversions for the short link. Defaults to `false` if not provided."""
56
56
  archived: NotRequired[bool]
57
57
  r"""Whether the short link is archived. Defaults to `false` if not provided."""
58
- public_stats: NotRequired[bool]
59
- r"""Deprecated: Use `dashboard` instead. Whether the short link's stats are publicly accessible. Defaults to `false` if not provided."""
60
- tag_id: NotRequired[Nullable[str]]
61
- r"""The unique ID of the tag assigned to the short link. This field is deprecated – use `tagIds` instead."""
62
58
  tag_ids: NotRequired[BulkUpdateLinksTagIdsTypedDict]
63
59
  r"""The unique IDs of the tags assigned to the short link."""
64
60
  tag_names: NotRequired[BulkUpdateLinksTagNamesTypedDict]
@@ -113,6 +109,10 @@ class DataTypedDict(TypedDict):
113
109
  r"""The date and time when the tests started."""
114
110
  test_completed_at: NotRequired[Nullable[str]]
115
111
  r"""The date and time when the tests were or will be completed."""
112
+ public_stats: NotRequired[bool]
113
+ r"""Deprecated: Use `dashboard` instead. Whether the short link's stats are publicly accessible. Defaults to `false` if not provided."""
114
+ tag_id: NotRequired[Nullable[str]]
115
+ r"""Deprecated: Use `tagIds` instead. The unique ID of the tag assigned to the short link."""
116
116
 
117
117
 
118
118
  class Data(BaseModel):
@@ -142,24 +142,6 @@ class Data(BaseModel):
142
142
  archived: Optional[bool] = None
143
143
  r"""Whether the short link is archived. Defaults to `false` if not provided."""
144
144
 
145
- public_stats: Annotated[
146
- Optional[bool],
147
- pydantic.Field(
148
- deprecated="warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible.",
149
- alias="publicStats",
150
- ),
151
- ] = None
152
- r"""Deprecated: Use `dashboard` instead. Whether the short link's stats are publicly accessible. Defaults to `false` if not provided."""
153
-
154
- tag_id: Annotated[
155
- OptionalNullable[str],
156
- pydantic.Field(
157
- deprecated="warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible.",
158
- alias="tagId",
159
- ),
160
- ] = UNSET
161
- r"""The unique ID of the tag assigned to the short link. This field is deprecated – use `tagIds` instead."""
162
-
163
145
  tag_ids: Annotated[
164
146
  Optional[BulkUpdateLinksTagIds], pydantic.Field(alias="tagIds")
165
147
  ] = None
@@ -260,6 +242,24 @@ class Data(BaseModel):
260
242
  ] = UNSET
261
243
  r"""The date and time when the tests were or will be completed."""
262
244
 
245
+ public_stats: Annotated[
246
+ Optional[bool],
247
+ pydantic.Field(
248
+ deprecated="warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible.",
249
+ alias="publicStats",
250
+ ),
251
+ ] = None
252
+ r"""Deprecated: Use `dashboard` instead. Whether the short link's stats are publicly accessible. Defaults to `false` if not provided."""
253
+
254
+ tag_id: Annotated[
255
+ OptionalNullable[str],
256
+ pydantic.Field(
257
+ deprecated="warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible.",
258
+ alias="tagId",
259
+ ),
260
+ ] = UNSET
261
+ r"""Deprecated: Use `tagIds` instead. The unique ID of the tag assigned to the short link."""
262
+
263
263
  @model_serializer(mode="wrap")
264
264
  def serialize_model(self, handler):
265
265
  optional_fields = [
@@ -269,8 +269,6 @@ class Data(BaseModel):
269
269
  "partnerId",
270
270
  "trackConversion",
271
271
  "archived",
272
- "publicStats",
273
- "tagId",
274
272
  "tagIds",
275
273
  "tagNames",
276
274
  "folderId",
@@ -298,12 +296,13 @@ class Data(BaseModel):
298
296
  "testVariants",
299
297
  "testStartedAt",
300
298
  "testCompletedAt",
299
+ "publicStats",
300
+ "tagId",
301
301
  ]
302
302
  nullable_fields = [
303
303
  "tenantId",
304
304
  "programId",
305
305
  "partnerId",
306
- "tagId",
307
306
  "folderId",
308
307
  "comments",
309
308
  "expiresAt",
@@ -326,6 +325,7 @@ class Data(BaseModel):
326
325
  "testVariants",
327
326
  "testStartedAt",
328
327
  "testCompletedAt",
328
+ "tagId",
329
329
  ]
330
330
  null_default_fields = []
331
331
 
@@ -63,10 +63,6 @@ class CreateLinkRequestBodyTypedDict(TypedDict):
63
63
  r"""Whether to track conversions for the short link. Defaults to `false` if not provided."""
64
64
  archived: NotRequired[bool]
65
65
  r"""Whether the short link is archived. Defaults to `false` if not provided."""
66
- public_stats: NotRequired[bool]
67
- r"""Deprecated: Use `dashboard` instead. Whether the short link's stats are publicly accessible. Defaults to `false` if not provided."""
68
- tag_id: NotRequired[Nullable[str]]
69
- r"""The unique ID of the tag assigned to the short link. This field is deprecated – use `tagIds` instead."""
70
66
  tag_ids: NotRequired[TagIdsTypedDict]
71
67
  r"""The unique IDs of the tags assigned to the short link."""
72
68
  tag_names: NotRequired[TagNamesTypedDict]
@@ -121,6 +117,10 @@ class CreateLinkRequestBodyTypedDict(TypedDict):
121
117
  r"""The date and time when the tests started."""
122
118
  test_completed_at: NotRequired[Nullable[str]]
123
119
  r"""The date and time when the tests were or will be completed."""
120
+ public_stats: NotRequired[bool]
121
+ r"""Deprecated: Use `dashboard` instead. Whether the short link's stats are publicly accessible. Defaults to `false` if not provided."""
122
+ tag_id: NotRequired[Nullable[str]]
123
+ r"""Deprecated: Use `tagIds` instead. The unique ID of the tag assigned to the short link."""
124
124
 
125
125
 
126
126
  class CreateLinkRequestBody(BaseModel):
@@ -167,24 +167,6 @@ class CreateLinkRequestBody(BaseModel):
167
167
  archived: Optional[bool] = None
168
168
  r"""Whether the short link is archived. Defaults to `false` if not provided."""
169
169
 
170
- public_stats: Annotated[
171
- Optional[bool],
172
- pydantic.Field(
173
- deprecated="warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible.",
174
- alias="publicStats",
175
- ),
176
- ] = None
177
- r"""Deprecated: Use `dashboard` instead. Whether the short link's stats are publicly accessible. Defaults to `false` if not provided."""
178
-
179
- tag_id: Annotated[
180
- OptionalNullable[str],
181
- pydantic.Field(
182
- deprecated="warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible.",
183
- alias="tagId",
184
- ),
185
- ] = UNSET
186
- r"""The unique ID of the tag assigned to the short link. This field is deprecated – use `tagIds` instead."""
187
-
188
170
  tag_ids: Annotated[Optional[TagIds], pydantic.Field(alias="tagIds")] = None
189
171
  r"""The unique IDs of the tags assigned to the short link."""
190
172
 
@@ -280,6 +262,24 @@ class CreateLinkRequestBody(BaseModel):
280
262
  ] = UNSET
281
263
  r"""The date and time when the tests were or will be completed."""
282
264
 
265
+ public_stats: Annotated[
266
+ Optional[bool],
267
+ pydantic.Field(
268
+ deprecated="warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible.",
269
+ alias="publicStats",
270
+ ),
271
+ ] = None
272
+ r"""Deprecated: Use `dashboard` instead. Whether the short link's stats are publicly accessible. Defaults to `false` if not provided."""
273
+
274
+ tag_id: Annotated[
275
+ OptionalNullable[str],
276
+ pydantic.Field(
277
+ deprecated="warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible.",
278
+ alias="tagId",
279
+ ),
280
+ ] = UNSET
281
+ r"""Deprecated: Use `tagIds` instead. The unique ID of the tag assigned to the short link."""
282
+
283
283
  @model_serializer(mode="wrap")
284
284
  def serialize_model(self, handler):
285
285
  optional_fields = [
@@ -293,8 +293,6 @@ class CreateLinkRequestBody(BaseModel):
293
293
  "prefix",
294
294
  "trackConversion",
295
295
  "archived",
296
- "publicStats",
297
- "tagId",
298
296
  "tagIds",
299
297
  "tagNames",
300
298
  "folderId",
@@ -322,13 +320,14 @@ class CreateLinkRequestBody(BaseModel):
322
320
  "testVariants",
323
321
  "testStartedAt",
324
322
  "testCompletedAt",
323
+ "publicStats",
324
+ "tagId",
325
325
  ]
326
326
  nullable_fields = [
327
327
  "externalId",
328
328
  "tenantId",
329
329
  "programId",
330
330
  "partnerId",
331
- "tagId",
332
331
  "folderId",
333
332
  "comments",
334
333
  "expiresAt",
@@ -351,6 +350,7 @@ class CreateLinkRequestBody(BaseModel):
351
350
  "testVariants",
352
351
  "testStartedAt",
353
352
  "testCompletedAt",
353
+ "tagId",
354
354
  ]
355
355
  null_default_fields = []
356
356