dub 0.27.1__py3-none-any.whl → 0.27.2__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.
@@ -81,6 +81,155 @@ class UpdateCommissionStatus(str, Enum):
81
81
  CANCELED = "canceled"
82
82
 
83
83
 
84
+ class UpdateCommissionPartnerTypedDict(TypedDict):
85
+ id: str
86
+ r"""The partner's unique ID on Dub."""
87
+ name: str
88
+ r"""The partner's full legal name."""
89
+ email: Nullable[str]
90
+ r"""The partner's email address. Should be a unique value across Dub."""
91
+ image: Nullable[str]
92
+ r"""The partner's avatar image."""
93
+ payouts_enabled_at: Nullable[str]
94
+ r"""The date when the partner enabled payouts."""
95
+ country: Nullable[str]
96
+ r"""The partner's country (required for tax purposes)."""
97
+
98
+
99
+ class UpdateCommissionPartner(BaseModel):
100
+ id: str
101
+ r"""The partner's unique ID on Dub."""
102
+
103
+ name: str
104
+ r"""The partner's full legal name."""
105
+
106
+ email: Nullable[str]
107
+ r"""The partner's email address. Should be a unique value across Dub."""
108
+
109
+ image: Nullable[str]
110
+ r"""The partner's avatar image."""
111
+
112
+ payouts_enabled_at: Annotated[
113
+ Nullable[str], pydantic.Field(alias="payoutsEnabledAt")
114
+ ]
115
+ r"""The date when the partner enabled payouts."""
116
+
117
+ country: Nullable[str]
118
+ r"""The partner's country (required for tax purposes)."""
119
+
120
+ @model_serializer(mode="wrap")
121
+ def serialize_model(self, handler):
122
+ optional_fields = []
123
+ nullable_fields = ["email", "image", "payoutsEnabledAt", "country"]
124
+ null_default_fields = []
125
+
126
+ serialized = handler(self)
127
+
128
+ m = {}
129
+
130
+ for n, f in type(self).model_fields.items():
131
+ k = f.alias or n
132
+ val = serialized.get(k)
133
+ serialized.pop(k, None)
134
+
135
+ optional_nullable = k in optional_fields and k in nullable_fields
136
+ is_set = (
137
+ self.__pydantic_fields_set__.intersection({n})
138
+ or k in null_default_fields
139
+ ) # pylint: disable=no-member
140
+
141
+ if val is not None and val != UNSET_SENTINEL:
142
+ m[k] = val
143
+ elif val != UNSET_SENTINEL and (
144
+ not k in optional_fields or (optional_nullable and is_set)
145
+ ):
146
+ m[k] = val
147
+
148
+ return m
149
+
150
+
151
+ class UpdateCommissionCustomerTypedDict(TypedDict):
152
+ id: str
153
+ r"""The unique ID of the customer. You may use either the customer's `id` on Dub (obtained via `/customers` endpoint) or their `externalId` (unique ID within your system, prefixed with `ext_`, e.g. `ext_123`)."""
154
+ external_id: str
155
+ r"""Unique identifier for the customer in the client's app."""
156
+ name: str
157
+ r"""Name of the customer."""
158
+ created_at: str
159
+ r"""The date the customer was created."""
160
+ email: NotRequired[Nullable[str]]
161
+ r"""Email of the customer."""
162
+ avatar: NotRequired[Nullable[str]]
163
+ r"""Avatar URL of the customer."""
164
+ country: NotRequired[Nullable[str]]
165
+ r"""Country of the customer."""
166
+ sales: NotRequired[Nullable[float]]
167
+ r"""Total number of sales for the customer."""
168
+ sale_amount: NotRequired[Nullable[float]]
169
+ r"""Total amount of sales for the customer."""
170
+
171
+
172
+ class UpdateCommissionCustomer(BaseModel):
173
+ id: str
174
+ r"""The unique ID of the customer. You may use either the customer's `id` on Dub (obtained via `/customers` endpoint) or their `externalId` (unique ID within your system, prefixed with `ext_`, e.g. `ext_123`)."""
175
+
176
+ external_id: Annotated[str, pydantic.Field(alias="externalId")]
177
+ r"""Unique identifier for the customer in the client's app."""
178
+
179
+ name: str
180
+ r"""Name of the customer."""
181
+
182
+ created_at: Annotated[str, pydantic.Field(alias="createdAt")]
183
+ r"""The date the customer was created."""
184
+
185
+ email: OptionalNullable[str] = UNSET
186
+ r"""Email of the customer."""
187
+
188
+ avatar: OptionalNullable[str] = UNSET
189
+ r"""Avatar URL of the customer."""
190
+
191
+ country: OptionalNullable[str] = UNSET
192
+ r"""Country of the customer."""
193
+
194
+ sales: OptionalNullable[float] = UNSET
195
+ r"""Total number of sales for the customer."""
196
+
197
+ sale_amount: Annotated[
198
+ OptionalNullable[float], pydantic.Field(alias="saleAmount")
199
+ ] = UNSET
200
+ r"""Total amount of sales for the customer."""
201
+
202
+ @model_serializer(mode="wrap")
203
+ def serialize_model(self, handler):
204
+ optional_fields = ["email", "avatar", "country", "sales", "saleAmount"]
205
+ nullable_fields = ["email", "avatar", "country", "sales", "saleAmount"]
206
+ null_default_fields = []
207
+
208
+ serialized = handler(self)
209
+
210
+ m = {}
211
+
212
+ for n, f in type(self).model_fields.items():
213
+ k = f.alias or n
214
+ val = serialized.get(k)
215
+ serialized.pop(k, None)
216
+
217
+ optional_nullable = k in optional_fields and k in nullable_fields
218
+ is_set = (
219
+ self.__pydantic_fields_set__.intersection({n})
220
+ or k in null_default_fields
221
+ ) # pylint: disable=no-member
222
+
223
+ if val is not None and val != UNSET_SENTINEL:
224
+ m[k] = val
225
+ elif val != UNSET_SENTINEL and (
226
+ not k in optional_fields or (optional_nullable and is_set)
227
+ ):
228
+ m[k] = val
229
+
230
+ return m
231
+
232
+
84
233
  class UpdateCommissionResponseBodyTypedDict(TypedDict):
85
234
  r"""The updated commission."""
86
235
 
@@ -90,11 +239,16 @@ class UpdateCommissionResponseBodyTypedDict(TypedDict):
90
239
  earnings: float
91
240
  currency: str
92
241
  status: UpdateCommissionStatus
242
+ invoice_id: Nullable[str]
243
+ description: Nullable[str]
244
+ quantity: float
93
245
  created_at: str
94
246
  updated_at: str
247
+ partner: UpdateCommissionPartnerTypedDict
95
248
  type: NotRequired[UpdateCommissionType]
96
- invoice_id: NotRequired[Nullable[str]]
97
- description: NotRequired[Nullable[str]]
249
+ user_id: NotRequired[Nullable[str]]
250
+ r"""The user who created the manual commission."""
251
+ customer: NotRequired[Nullable[UpdateCommissionCustomerTypedDict]]
98
252
 
99
253
 
100
254
  class UpdateCommissionResponseBody(BaseModel):
@@ -111,22 +265,29 @@ class UpdateCommissionResponseBody(BaseModel):
111
265
 
112
266
  status: UpdateCommissionStatus
113
267
 
268
+ invoice_id: Annotated[Nullable[str], pydantic.Field(alias="invoiceId")]
269
+
270
+ description: Nullable[str]
271
+
272
+ quantity: float
273
+
114
274
  created_at: Annotated[str, pydantic.Field(alias="createdAt")]
115
275
 
116
276
  updated_at: Annotated[str, pydantic.Field(alias="updatedAt")]
117
277
 
278
+ partner: UpdateCommissionPartner
279
+
118
280
  type: Optional[UpdateCommissionType] = None
119
281
 
120
- invoice_id: Annotated[OptionalNullable[str], pydantic.Field(alias="invoiceId")] = (
121
- UNSET
122
- )
282
+ user_id: Annotated[OptionalNullable[str], pydantic.Field(alias="userId")] = UNSET
283
+ r"""The user who created the manual commission."""
123
284
 
124
- description: OptionalNullable[str] = UNSET
285
+ customer: OptionalNullable[UpdateCommissionCustomer] = UNSET
125
286
 
126
287
  @model_serializer(mode="wrap")
127
288
  def serialize_model(self, handler):
128
- optional_fields = ["type", "invoiceId", "description"]
129
- nullable_fields = ["invoiceId", "description"]
289
+ optional_fields = ["type", "userId", "customer"]
290
+ nullable_fields = ["invoiceId", "description", "userId", "customer"]
130
291
  null_default_fields = []
131
292
 
132
293
  serialized = handler(self)
dub/partners.py CHANGED
@@ -296,6 +296,268 @@ class Partners(BaseSDK):
296
296
 
297
297
  raise errors.SDKError("Unexpected response received", http_res)
298
298
 
299
+ def list(
300
+ self,
301
+ *,
302
+ request: Union[
303
+ operations.ListPartnersRequest, operations.ListPartnersRequestTypedDict
304
+ ],
305
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
306
+ server_url: Optional[str] = None,
307
+ timeout_ms: Optional[int] = None,
308
+ http_headers: Optional[Mapping[str, str]] = None,
309
+ ) -> Optional[List[operations.ListPartnersResponseBody]]:
310
+ r"""List all partners
311
+
312
+ List all partners for a partner program.
313
+
314
+ :param request: The request object to send.
315
+ :param retries: Override the default retry configuration for this method
316
+ :param server_url: Override the default server URL for this method
317
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
318
+ :param http_headers: Additional headers to set or replace on requests.
319
+ """
320
+ base_url = None
321
+ url_variables = None
322
+ if timeout_ms is None:
323
+ timeout_ms = self.sdk_configuration.timeout_ms
324
+
325
+ if server_url is not None:
326
+ base_url = server_url
327
+ else:
328
+ base_url = self._get_url(base_url, url_variables)
329
+
330
+ if not isinstance(request, BaseModel):
331
+ request = utils.unmarshal(request, operations.ListPartnersRequest)
332
+ request = cast(operations.ListPartnersRequest, request)
333
+
334
+ req = self._build_request(
335
+ method="GET",
336
+ path="/partners",
337
+ base_url=base_url,
338
+ url_variables=url_variables,
339
+ request=request,
340
+ request_body_required=False,
341
+ request_has_path_params=False,
342
+ request_has_query_params=True,
343
+ user_agent_header="user-agent",
344
+ accept_header_value="application/json",
345
+ http_headers=http_headers,
346
+ security=self.sdk_configuration.security,
347
+ timeout_ms=timeout_ms,
348
+ )
349
+
350
+ if retries == UNSET:
351
+ if self.sdk_configuration.retry_config is not UNSET:
352
+ retries = self.sdk_configuration.retry_config
353
+
354
+ retry_config = None
355
+ if isinstance(retries, utils.RetryConfig):
356
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
357
+
358
+ http_res = self.do_request(
359
+ hook_ctx=HookContext(
360
+ config=self.sdk_configuration,
361
+ base_url=base_url or "",
362
+ operation_id="listPartners",
363
+ oauth2_scopes=[],
364
+ security_source=self.sdk_configuration.security,
365
+ ),
366
+ request=req,
367
+ error_status_codes=[
368
+ "400",
369
+ "401",
370
+ "403",
371
+ "404",
372
+ "409",
373
+ "410",
374
+ "422",
375
+ "429",
376
+ "4XX",
377
+ "500",
378
+ "5XX",
379
+ ],
380
+ retry_config=retry_config,
381
+ )
382
+
383
+ response_data: Any = None
384
+ if utils.match_response(http_res, "200", "application/json"):
385
+ return unmarshal_json_response(
386
+ Optional[List[operations.ListPartnersResponseBody]], http_res
387
+ )
388
+ if utils.match_response(http_res, "400", "application/json"):
389
+ response_data = unmarshal_json_response(errors.BadRequestData, http_res)
390
+ raise errors.BadRequest(response_data, http_res)
391
+ if utils.match_response(http_res, "401", "application/json"):
392
+ response_data = unmarshal_json_response(errors.UnauthorizedData, http_res)
393
+ raise errors.Unauthorized(response_data, http_res)
394
+ if utils.match_response(http_res, "403", "application/json"):
395
+ response_data = unmarshal_json_response(errors.ForbiddenData, http_res)
396
+ raise errors.Forbidden(response_data, http_res)
397
+ if utils.match_response(http_res, "404", "application/json"):
398
+ response_data = unmarshal_json_response(errors.NotFoundData, http_res)
399
+ raise errors.NotFound(response_data, http_res)
400
+ if utils.match_response(http_res, "409", "application/json"):
401
+ response_data = unmarshal_json_response(errors.ConflictData, http_res)
402
+ raise errors.Conflict(response_data, http_res)
403
+ if utils.match_response(http_res, "410", "application/json"):
404
+ response_data = unmarshal_json_response(errors.InviteExpiredData, http_res)
405
+ raise errors.InviteExpired(response_data, http_res)
406
+ if utils.match_response(http_res, "422", "application/json"):
407
+ response_data = unmarshal_json_response(
408
+ errors.UnprocessableEntityData, http_res
409
+ )
410
+ raise errors.UnprocessableEntity(response_data, http_res)
411
+ if utils.match_response(http_res, "429", "application/json"):
412
+ response_data = unmarshal_json_response(
413
+ errors.RateLimitExceededData, http_res
414
+ )
415
+ raise errors.RateLimitExceeded(response_data, http_res)
416
+ if utils.match_response(http_res, "500", "application/json"):
417
+ response_data = unmarshal_json_response(
418
+ errors.InternalServerErrorData, http_res
419
+ )
420
+ raise errors.InternalServerError(response_data, http_res)
421
+ if utils.match_response(http_res, "4XX", "*"):
422
+ http_res_text = utils.stream_to_text(http_res)
423
+ raise errors.SDKError("API error occurred", http_res, http_res_text)
424
+ if utils.match_response(http_res, "5XX", "*"):
425
+ http_res_text = utils.stream_to_text(http_res)
426
+ raise errors.SDKError("API error occurred", http_res, http_res_text)
427
+
428
+ raise errors.SDKError("Unexpected response received", http_res)
429
+
430
+ async def list_async(
431
+ self,
432
+ *,
433
+ request: Union[
434
+ operations.ListPartnersRequest, operations.ListPartnersRequestTypedDict
435
+ ],
436
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
437
+ server_url: Optional[str] = None,
438
+ timeout_ms: Optional[int] = None,
439
+ http_headers: Optional[Mapping[str, str]] = None,
440
+ ) -> Optional[List[operations.ListPartnersResponseBody]]:
441
+ r"""List all partners
442
+
443
+ List all partners for a partner program.
444
+
445
+ :param request: The request object to send.
446
+ :param retries: Override the default retry configuration for this method
447
+ :param server_url: Override the default server URL for this method
448
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
449
+ :param http_headers: Additional headers to set or replace on requests.
450
+ """
451
+ base_url = None
452
+ url_variables = None
453
+ if timeout_ms is None:
454
+ timeout_ms = self.sdk_configuration.timeout_ms
455
+
456
+ if server_url is not None:
457
+ base_url = server_url
458
+ else:
459
+ base_url = self._get_url(base_url, url_variables)
460
+
461
+ if not isinstance(request, BaseModel):
462
+ request = utils.unmarshal(request, operations.ListPartnersRequest)
463
+ request = cast(operations.ListPartnersRequest, request)
464
+
465
+ req = self._build_request_async(
466
+ method="GET",
467
+ path="/partners",
468
+ base_url=base_url,
469
+ url_variables=url_variables,
470
+ request=request,
471
+ request_body_required=False,
472
+ request_has_path_params=False,
473
+ request_has_query_params=True,
474
+ user_agent_header="user-agent",
475
+ accept_header_value="application/json",
476
+ http_headers=http_headers,
477
+ security=self.sdk_configuration.security,
478
+ timeout_ms=timeout_ms,
479
+ )
480
+
481
+ if retries == UNSET:
482
+ if self.sdk_configuration.retry_config is not UNSET:
483
+ retries = self.sdk_configuration.retry_config
484
+
485
+ retry_config = None
486
+ if isinstance(retries, utils.RetryConfig):
487
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
488
+
489
+ http_res = await self.do_request_async(
490
+ hook_ctx=HookContext(
491
+ config=self.sdk_configuration,
492
+ base_url=base_url or "",
493
+ operation_id="listPartners",
494
+ oauth2_scopes=[],
495
+ security_source=self.sdk_configuration.security,
496
+ ),
497
+ request=req,
498
+ error_status_codes=[
499
+ "400",
500
+ "401",
501
+ "403",
502
+ "404",
503
+ "409",
504
+ "410",
505
+ "422",
506
+ "429",
507
+ "4XX",
508
+ "500",
509
+ "5XX",
510
+ ],
511
+ retry_config=retry_config,
512
+ )
513
+
514
+ response_data: Any = None
515
+ if utils.match_response(http_res, "200", "application/json"):
516
+ return unmarshal_json_response(
517
+ Optional[List[operations.ListPartnersResponseBody]], http_res
518
+ )
519
+ if utils.match_response(http_res, "400", "application/json"):
520
+ response_data = unmarshal_json_response(errors.BadRequestData, http_res)
521
+ raise errors.BadRequest(response_data, http_res)
522
+ if utils.match_response(http_res, "401", "application/json"):
523
+ response_data = unmarshal_json_response(errors.UnauthorizedData, http_res)
524
+ raise errors.Unauthorized(response_data, http_res)
525
+ if utils.match_response(http_res, "403", "application/json"):
526
+ response_data = unmarshal_json_response(errors.ForbiddenData, http_res)
527
+ raise errors.Forbidden(response_data, http_res)
528
+ if utils.match_response(http_res, "404", "application/json"):
529
+ response_data = unmarshal_json_response(errors.NotFoundData, http_res)
530
+ raise errors.NotFound(response_data, http_res)
531
+ if utils.match_response(http_res, "409", "application/json"):
532
+ response_data = unmarshal_json_response(errors.ConflictData, http_res)
533
+ raise errors.Conflict(response_data, http_res)
534
+ if utils.match_response(http_res, "410", "application/json"):
535
+ response_data = unmarshal_json_response(errors.InviteExpiredData, http_res)
536
+ raise errors.InviteExpired(response_data, http_res)
537
+ if utils.match_response(http_res, "422", "application/json"):
538
+ response_data = unmarshal_json_response(
539
+ errors.UnprocessableEntityData, http_res
540
+ )
541
+ raise errors.UnprocessableEntity(response_data, http_res)
542
+ if utils.match_response(http_res, "429", "application/json"):
543
+ response_data = unmarshal_json_response(
544
+ errors.RateLimitExceededData, http_res
545
+ )
546
+ raise errors.RateLimitExceeded(response_data, http_res)
547
+ if utils.match_response(http_res, "500", "application/json"):
548
+ response_data = unmarshal_json_response(
549
+ errors.InternalServerErrorData, http_res
550
+ )
551
+ raise errors.InternalServerError(response_data, http_res)
552
+ if utils.match_response(http_res, "4XX", "*"):
553
+ http_res_text = await utils.stream_to_text_async(http_res)
554
+ raise errors.SDKError("API error occurred", http_res, http_res_text)
555
+ if utils.match_response(http_res, "5XX", "*"):
556
+ http_res_text = await utils.stream_to_text_async(http_res)
557
+ raise errors.SDKError("API error occurred", http_res, http_res_text)
558
+
559
+ raise errors.SDKError("Unexpected response received", http_res)
560
+
299
561
  def create_link(
300
562
  self,
301
563
  *,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: dub
3
- Version: 0.27.1
3
+ Version: 0.27.2
4
4
  Summary: Python Client SDK Generated by Speakeasy
5
5
  Author: Speakeasy
6
6
  Requires-Python: >=3.9.2
@@ -331,6 +331,7 @@ asyncio.run(main())
331
331
  ### [partners](https://github.com/dubinc/dub-python/blob/master/docs/sdks/partners/README.md)
332
332
 
333
333
  * [create](https://github.com/dubinc/dub-python/blob/master/docs/sdks/partners/README.md#create) - Create a partner
334
+ * [list](https://github.com/dubinc/dub-python/blob/master/docs/sdks/partners/README.md#list) - List all partners
334
335
  * [create_link](https://github.com/dubinc/dub-python/blob/master/docs/sdks/partners/README.md#create_link) - Create a link for a partner
335
336
  * [retrieve_links](https://github.com/dubinc/dub-python/blob/master/docs/sdks/partners/README.md#retrieve_links) - Retrieve a partner's links.
336
337
  * [upsert_link](https://github.com/dubinc/dub-python/blob/master/docs/sdks/partners/README.md#upsert_link) - Upsert a link for a partner
@@ -3,7 +3,7 @@ dub/_hooks/__init__.py,sha256=9_7W5jAYw8rcO8Kfc-Ty-lB82BHfksAJJpVFb_UeU1c,146
3
3
  dub/_hooks/registration.py,sha256=tT-1Cjp5ax1DL-84HBNWPy4wAwgP-0aI4-asLfnkIlw,625
4
4
  dub/_hooks/sdkhooks.py,sha256=2rLEjSz1xFGWabNs1voFn0lXSCqkS38bdKVFdnBJufE,2553
5
5
  dub/_hooks/types.py,sha256=5vcNbFBNpCxqI7ZebiBtut7T_Gz2i36L5MjTqGvxV7Y,3035
6
- dub/_version.py,sha256=0VceBGaq_3K8CWbOD87M7pGqJIoIcD2E149T1rosPvY,450
6
+ dub/_version.py,sha256=dOWWouDFksY-1l1WoLN-dUOcamc5Ip3q3Gj8smTxWqg,450
7
7
  dub/analytics.py,sha256=D4s6aPCiCVxwbG2bIvanBiaDtYZgN1xMwu5DOnuRrVg,12342
8
8
  dub/basesdk.py,sha256=6hqUvjS1s4AdIw3STtyBxJwgjqRYCK3ieGqPJVpjBh8,11813
9
9
  dub/commissions.py,sha256=OzDAs372f4VszeKJNkR4pR7q5SNI4JiCwz-bzny0YMc,24346
@@ -15,7 +15,7 @@ dub/folders.py,sha256=6hlJheqGnEu8noq3A-iahury-TxtLJ3e_YiIPr8NDl8,47602
15
15
  dub/httpclient.py,sha256=Eu73urOAiZQtdUIyOUnPccxCiBbWEKrXG-JrRG3SLM4,3946
16
16
  dub/links.py,sha256=vnP7Uu41PtsOr2mqzROSNxQB3InnOoxq4_zNw3_q5L8,121880
17
17
  dub/models/__init__.py,sha256=wIW9sbvSKlrGyoPY4mXvHqw-_Inpl6zqpN6U6j-w6SU,83
18
- dub/models/components/__init__.py,sha256=3j1H3UR5EvQBfyoP05DWcG6n6HQqUj6gXCtepj9IGFk,20735
18
+ dub/models/components/__init__.py,sha256=oTq9259pixzV1fqpX9nVVKJnuzvN6q5avPBSVc2U6_Y,22314
19
19
  dub/models/components/analyticsbrowsers.py,sha256=f6qMrkPFf38u3_PIovvdIc0hsX1YpYEaPxNwbXzkoeY,1172
20
20
  dub/models/components/analyticscities.py,sha256=zef22QucFtrOCkPDrpvpNlrbX465_0dFHyZ5va_LRRI,1666
21
21
  dub/models/components/analyticscontinents.py,sha256=D_SQTm1Xp_pOt7qZTLJVo2B3RQUP8k3MQmsYRQYbjlI,1616
@@ -29,8 +29,9 @@ dub/models/components/analyticsregions.py,sha256=--tqwuWSWUYswV_OkQFAbI1PIFala7t
29
29
  dub/models/components/analyticstimeseries.py,sha256=ZEZpE6oX0FPeiy5snz-kwYhXE9pwGBwzXY0Rq3u9XPI,1186
30
30
  dub/models/components/analyticstoplinks.py,sha256=RvhyKQcmDT47F-4sPojhhDgvFYRZCA5k257JrndHSp8,3649
31
31
  dub/models/components/analyticstopurls.py,sha256=WN4oF32SSXUlFPpWvx7jKype0SfdBsX1BvrkaKjClRM,1122
32
- dub/models/components/analyticstriggers.py,sha256=diQ_m3dJDa576H3oxEfkoy2xs1OdB3f5lrwn7vbsOVI,1432
32
+ dub/models/components/analyticstriggers.py,sha256=reWQ1cQDNgPc_cDhGrMv5EplFviiyWZ0nYTvU7bm3C0,1484
33
33
  dub/models/components/clickevent.py,sha256=umzsHdZcvkdaQ2TdbsbpY4a4rMgjvfnxEPk66cCIZ_Y,41254
34
+ dub/models/components/commissioncreatedevent.py,sha256=BOhnoO1CFd40suVoEsKlFsZUTRbmVTdEOy6Oq-jmqjo,8573
34
35
  dub/models/components/continentcode.py,sha256=YFw3_x0w7CxCQijsbfiiOoS9FbNATeHyGLcw-LEsXYw,315
35
36
  dub/models/components/countrycode.py,sha256=NcNDmnQ0TiXuO9JBZQ4tscUIVXld5dyuNcTCa2rtzUA,3796
36
37
  dub/models/components/domainschema.py,sha256=MBaPJhQDSQtMTQYVsV8khaQGpY5BXa6IpwYP7qaWnzQ,5328
@@ -45,12 +46,12 @@ dub/models/components/linkwebhookevent.py,sha256=MRKTT3SoAo_M6TbZuWj_tTAH-3Wo5w9
45
46
  dub/models/components/partneranalyticscount.py,sha256=hJOuFVUTFOuXWviLxExwXDZVgPLBcgmqt8VxeHv7JAw,1035
46
47
  dub/models/components/partneranalyticstimeseries.py,sha256=Bh431YfEd8v6TD9o9DPCAwGCDo5Rrf1xR1pccm7q5aw,1268
47
48
  dub/models/components/partneranalyticstoplinks.py,sha256=xy1F1vueaBX93Gj2AYqqa7jbEueJy-FAVD5GdnjPva8,3755
48
- dub/models/components/partnerenrolledevent.py,sha256=O1TDMZc1qT-FFg_BBM457xbkxAsv2lMd1CclNvxtjbQ,10718
49
+ dub/models/components/partnerenrolledevent.py,sha256=fPA1vyaeWbg8eEjRWjPANKEl6RBrmB4RKIBOHhATVy4,15825
49
50
  dub/models/components/salecreatedevent.py,sha256=MXY73Oek_E-g3q1MrYjnjM4k-RCboHm08aLu9gkSmd4,41970
50
- dub/models/components/saleevent.py,sha256=3Ae2N35PpuFDpXDaWW2rXHRRURer7XyVHqtPpMDrk3o,47802
51
+ dub/models/components/saleevent.py,sha256=A2t1-O5vLlEXnOVGY6tKwA55oOIF1YUX_B6ei3pMoBo,47832
51
52
  dub/models/components/security.py,sha256=be_cng1n5ULto_xGGPBKH1ZE5LrtmBTg6kX2uPJqJOw,599
52
53
  dub/models/components/tagschema.py,sha256=9aymPZgSYT_OUsr4AtHAt4GLej9v89yuS5X1YSZ72sE,759
53
- dub/models/components/webhookevent.py,sha256=oDE16DmD_gDcnzqXSDKsSSXzItXdl_O4qY_rjxPo3EE,1090
54
+ dub/models/components/webhookevent.py,sha256=12SgBns1nVcb0Efs8JR9JO8vmvK25bXMROCT-s0Ue5c,1268
54
55
  dub/models/components/workspaceschema.py,sha256=sF5cVYWBXZ-dnPPDJbKDz74lVwPJxGrSiL6fK7M-1XU,10934
55
56
  dub/models/errors/__init__.py,sha256=4gkoLx40NaI80l_RqU_PhSyo5b8DRtO9fORjlJ0kHNM,6046
56
57
  dub/models/errors/badrequest.py,sha256=G5UFXCXOZy5raqCb_UpY409hSNT0V8lCiQxZs5iCri8,1646
@@ -66,7 +67,7 @@ dub/models/errors/responsevalidationerror.py,sha256=SRWiFq2Ip-M7luHULq3POe4JSWzO
66
67
  dub/models/errors/sdkerror.py,sha256=iWxT-KvUgOlqID84qtbl7jG88f3xF9bxVCnMrtshtA0,1216
67
68
  dub/models/errors/unauthorized.py,sha256=gTybq5vCh3nFKAnERxwMwETlQZ3T3SR01RKooIreVdo,1710
68
69
  dub/models/errors/unprocessableentity.py,sha256=EkqNdp5lZQHA8hJgNdA3gviqMmyjcFx02cTxl3yhyrs,1693
69
- dub/models/operations/__init__.py,sha256=qQXnwHCbeVw_tQxL3vIkJrD5QPLwPwdLhX94nFQxjYc,39411
70
+ dub/models/operations/__init__.py,sha256=UsmphF6yO3XTsIs4JRIXL4cEU6LNwGOjbubtOE4vBC0,42023
70
71
  dub/models/operations/bulkcreatelinks.py,sha256=aY5XyysI5g-6owMgXx_i1rFN4DPM8S7N1y0MzAJgvzU,17896
71
72
  dub/models/operations/bulkdeletelinks.py,sha256=u_hEFC9TZ1UnGGgLhQ-Mf3HNDO98Ur49MtdBnNVIRsE,1151
72
73
  dub/models/operations/bulkupdatelinks.py,sha256=qo5t0RnwzxpdQnz5IivH9plgjMaJAX0i7gXJHmCck_M,15972
@@ -75,7 +76,7 @@ dub/models/operations/createcustomer.py,sha256=Fvp70GKEVqqAckvFO7h0dkjcNnFQUY7C3
75
76
  dub/models/operations/createdomain.py,sha256=dHRvCzE6knsndN4FTFjfijHVmTi8NXKpURz8cM_C-bk,3900
76
77
  dub/models/operations/createfolder.py,sha256=j9z0CIsc22VsWAwlCGNwxo6a3VsetD6t4T2LdCELYGE,1884
77
78
  dub/models/operations/createlink.py,sha256=Fy934a9A1vWA_GLI-FQ7FQDlMskV-EElvtvFQKd_vmU,17263
78
- dub/models/operations/createpartner.py,sha256=wsxEBFoASBvGAs6Z-3yKbHJZKVVD4WXAxHqtCdAdR_g,31529
79
+ dub/models/operations/createpartner.py,sha256=jj8VwajBFCDYox2O1Rk8HTQW1eM9WbYXD6KQCrcSTc4,36636
79
80
  dub/models/operations/createpartnerlink.py,sha256=rOlnyEQdBk2jb5T3ryzvboWney3cRXIG9rCxuwQO58I,17091
80
81
  dub/models/operations/createreferralsembedtoken.py,sha256=5FrDNmx68MyArVnQ0-s3MoySTo5DdMk7yUwWfLiUC_0,22792
81
82
  dub/models/operations/createtag.py,sha256=XUKuFcLoenYk1oxdeou-gI_s3A4YxtIJKgRiXtLfOpQ,1497
@@ -92,17 +93,18 @@ dub/models/operations/getlinkscount.py,sha256=KvD0gh-Imn1WmiiRAIYUXHBoNNGEnmfBQX
92
93
  dub/models/operations/getqrcode.py,sha256=ynCPJc8vy_QEt5FP8OU2s-u6UIt1BhmFSNZC-XPmO4I,3848
93
94
  dub/models/operations/gettags.py,sha256=c9p_JrHFnTDJURyR5iiKFKpXFHlzJDt3R5X1U-anyYg,2664
94
95
  dub/models/operations/getworkspace.py,sha256=V4-NfsEg3M1BTeoE13sDyazefb2_kI4yFxnzgvHPv4s,625
95
- dub/models/operations/listcommissions.py,sha256=9gFR2iunDb08rhNYNYKY4KjlyZeaUN6t-OQWoXM_qyQ,8161
96
+ dub/models/operations/listcommissions.py,sha256=dAazZ_vEaQRmaF6YbQyprCtKySG3-DMWPP8EwMOAOCE,13576
96
97
  dub/models/operations/listdomains.py,sha256=gbQrJyBIvTGKSeqJo0Jb08iE44Xu39NS9zbfetx4p-s,1936
97
- dub/models/operations/listevents.py,sha256=fNiTbrtsHuyVwAf7uoD_w2ESfMwTaEdoS4TII84mOXs,18109
98
+ dub/models/operations/listevents.py,sha256=4OgIqqibUD0u0COwd2S0YzZNLGujndeCiszAjHrPp2Y,18894
98
99
  dub/models/operations/listfolders.py,sha256=5FGf62ZTjquVXjq5axlzQgYGfEnrEwDn8QLlgGH_7jQ,1209
100
+ dub/models/operations/listpartners.py,sha256=FdhVmtUCp8ja9tvLTtl5l5KqPG1eec9wj3D0m8YBtRY,19708
99
101
  dub/models/operations/registerdomain.py,sha256=fjozn1tFU-cNarHdAqN_flQoGAE498ob-f4A2bIAiOc,2058
100
- dub/models/operations/retrieveanalytics.py,sha256=7K4UqTSIlo1PCdVqEnp-e7FrjFgJJVZ2LPPxemD5_ew,19377
102
+ dub/models/operations/retrieveanalytics.py,sha256=UJFwNJuvGxMJjmjJkukiSwZPKCKhS31NA3dZ3gSsORc,20132
101
103
  dub/models/operations/retrievelinks.py,sha256=22oIJQnrwI3euUnSWJR21LjfADLTkrpou9o558gTLc8,2801
102
104
  dub/models/operations/retrievepartneranalytics.py,sha256=9aldT3YxBAwQtNPu0Mat5Uxrmz6zMGnri5cqaxUDHdk,4968
103
105
  dub/models/operations/tracklead.py,sha256=_c1iIlWtZCJjwg6Hbfiphj4rFVCThFE2UnRuXsDEYKE,6881
104
- dub/models/operations/tracksale.py,sha256=LGbWJC-F5AZ3Njcc1qKqXv99KmSYtU1l1Zq1ydLhvx8,8991
105
- dub/models/operations/updatecommission.py,sha256=vA5tD32Xq1-3QObjxrg1fIUwZaxJK1tJOaRc6GJMEbI,5596
106
+ dub/models/operations/tracksale.py,sha256=GDt1G0nAeelTlI7QxP3iCVmBYa9PMhLbJRChCLgvOeE,9021
107
+ dub/models/operations/updatecommission.py,sha256=N_okp7jc6jqI4CnGRvTEKTw-QPb5DEwGVGfKmOSRQrY,11019
106
108
  dub/models/operations/updatecustomer.py,sha256=1IqNatrmNmDVtMH-47uR1NXq4Zr_ASc4Wvt1yssl_gk,13554
107
109
  dub/models/operations/updatedomain.py,sha256=rexCga7uNxgBZLPiCMcaudc2cQGB0E_qX2HI0DgG_3M,4519
108
110
  dub/models/operations/updatefolder.py,sha256=dNvSPY67g58SWynB8ic5rcgT-h7THRmyxuzuFdO42GQ,2581
@@ -111,7 +113,7 @@ dub/models/operations/updatetag.py,sha256=0nGAU6if5BsetDArXCIn8YvlDgG17N1Cp8q1o9
111
113
  dub/models/operations/updateworkspace.py,sha256=qdlmA-Rz8_fC3iQs7bzmcn0qL9Lu3a04ziEIYfX3Ugo,2690
112
114
  dub/models/operations/upsertlink.py,sha256=V5vzhu4GwEszHVmq6U7ZookZW7ty7xIH0zWIzgTZUHA,17386
113
115
  dub/models/operations/upsertpartnerlink.py,sha256=Z0xtZHGzePne4wM2XaouR8f_pJrHA6avCmczxEo-9p0,17091
114
- dub/partners.py,sha256=GwcqBB_hfun-6f-vI9ofPqVdm12JSbKGAReYKXSUZuY,61103
116
+ dub/partners.py,sha256=y-lObDvW0e7UMFkmF2bjrikimU0zb1Lf2U-KSANCvnU,72639
115
117
  dub/py.typed,sha256=zrp19r0G21lr2yRiMC0f8MFkQFGj9wMpSbboePMg8KM,59
116
118
  dub/qr_codes.py,sha256=r1kxjwW54UDxdVZ74l5U1bxbkvMcrSC9nlPUHDZYBsI,11572
117
119
  dub/sdk.py,sha256=HpmndHemBNHJc01BpabuqN_CCCwRbgy_Jltb9ndB8nI,7597
@@ -138,7 +140,7 @@ dub/utils/unmarshal_json_response.py,sha256=FcgE-IWPMAHWDdw6QEZeLeD5G_rflScZbT10
138
140
  dub/utils/url.py,sha256=BgGPgcTA6MRK4bF8fjP2dUopN3NzEzxWMXPBVg8NQUA,5254
139
141
  dub/utils/values.py,sha256=CcaCXEa3xHhkUDROyXZocN8f0bdITftv9Y0P9lTf0YM,3517
140
142
  dub/workspaces.py,sha256=qqg3JuPFsC14D9OqUeMxYvXHOoIJOJ9To1faAG7x8kM,24373
141
- dub-0.27.1.dist-info/LICENSE,sha256=kc_aZ6YHHcdSsRy-mGsT0Ehji0ZgR_zevXiUt05V2KY,1079
142
- dub-0.27.1.dist-info/METADATA,sha256=RjtRXq_uXq1eG8BYdDvkxzjzrnMh0V6iJgjsq1ut_uQ,30362
143
- dub-0.27.1.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
144
- dub-0.27.1.dist-info/RECORD,,
143
+ dub-0.27.2.dist-info/LICENSE,sha256=kc_aZ6YHHcdSsRy-mGsT0Ehji0ZgR_zevXiUt05V2KY,1079
144
+ dub-0.27.2.dist-info/METADATA,sha256=B8iwjj3kL29vI1WAc52I8hG9-7IgR2AVBfitFHzCAew,30475
145
+ dub-0.27.2.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
146
+ dub-0.27.2.dist-info/RECORD,,
File without changes
File without changes