moovio_sdk 0.17.2__py3-none-any.whl → 0.17.4__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.
Potentially problematic release.
This version of moovio_sdk might be problematic. Click here for more details.
- moovio_sdk/_version.py +2 -2
- moovio_sdk/models/components/__init__.py +78 -0
- moovio_sdk/models/components/amountdecimalvalidationerror.py +18 -0
- moovio_sdk/models/components/assignproductimage.py +16 -0
- moovio_sdk/models/components/assignproductimagevalidationerror.py +15 -0
- moovio_sdk/models/components/createproductoption.py +46 -0
- moovio_sdk/models/components/createproductoptiongroup.py +52 -0
- moovio_sdk/models/components/product.py +77 -0
- moovio_sdk/models/components/productimagemetadata.py +27 -0
- moovio_sdk/models/components/productoption.py +50 -0
- moovio_sdk/models/components/productoptiongroup.py +56 -0
- moovio_sdk/models/components/productoptiongroupvalidationerror.py +31 -0
- moovio_sdk/models/components/productoptionvalidationerror.py +34 -0
- moovio_sdk/models/components/productrequest.py +57 -0
- moovio_sdk/models/errors/__init__.py +8 -0
- moovio_sdk/models/errors/productrequestvalidationerror.py +58 -0
- moovio_sdk/models/operations/__init__.py +100 -0
- moovio_sdk/models/operations/createproduct.py +78 -0
- moovio_sdk/models/operations/disableproduct.py +67 -0
- moovio_sdk/models/operations/getproduct.py +71 -0
- moovio_sdk/models/operations/listproducts.py +81 -0
- moovio_sdk/models/operations/updateproduct.py +85 -0
- moovio_sdk/products.py +1232 -0
- moovio_sdk/sdk.py +3 -0
- {moovio_sdk-0.17.2.dist-info → moovio_sdk-0.17.4.dist-info}/METADATA +56 -45
- {moovio_sdk-0.17.2.dist-info → moovio_sdk-0.17.4.dist-info}/RECORD +27 -8
- {moovio_sdk-0.17.2.dist-info → moovio_sdk-0.17.4.dist-info}/WHEEL +0 -0
moovio_sdk/_version.py
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
import importlib.metadata
|
|
4
4
|
|
|
5
5
|
__title__: str = "moovio_sdk"
|
|
6
|
-
__version__: str = "0.17.
|
|
6
|
+
__version__: str = "0.17.4"
|
|
7
7
|
__openapi_doc_version__: str = "latest"
|
|
8
8
|
__gen_version__: str = "2.723.11"
|
|
9
|
-
__user_agent__: str = "speakeasy-sdk/python 0.17.
|
|
9
|
+
__user_agent__: str = "speakeasy-sdk/python 0.17.4 2.723.11 latest moovio_sdk"
|
|
10
10
|
|
|
11
11
|
try:
|
|
12
12
|
if __package__ is not None:
|
|
@@ -69,6 +69,10 @@ if TYPE_CHECKING:
|
|
|
69
69
|
from .adjustment import Adjustment, AdjustmentTypedDict
|
|
70
70
|
from .amount import Amount, AmountTypedDict
|
|
71
71
|
from .amountdecimal import AmountDecimal, AmountDecimalTypedDict
|
|
72
|
+
from .amountdecimalvalidationerror import (
|
|
73
|
+
AmountDecimalValidationError,
|
|
74
|
+
AmountDecimalValidationErrorTypedDict,
|
|
75
|
+
)
|
|
72
76
|
from .amountupdate import AmountUpdate, AmountUpdateTypedDict
|
|
73
77
|
from .amountvalidationerror import (
|
|
74
78
|
AmountValidationError,
|
|
@@ -87,6 +91,11 @@ if TYPE_CHECKING:
|
|
|
87
91
|
)
|
|
88
92
|
from .applepayresponse import ApplePayResponse, ApplePayResponseTypedDict
|
|
89
93
|
from .applicationscope import ApplicationScope
|
|
94
|
+
from .assignproductimage import AssignProductImage, AssignProductImageTypedDict
|
|
95
|
+
from .assignproductimagevalidationerror import (
|
|
96
|
+
AssignProductImageValidationError,
|
|
97
|
+
AssignProductImageValidationErrorTypedDict,
|
|
98
|
+
)
|
|
90
99
|
from .asynccreatedrefund import AsyncCreatedRefund, AsyncCreatedRefundTypedDict
|
|
91
100
|
from .asynctransfer import AsyncTransfer, AsyncTransferTypedDict
|
|
92
101
|
from .authorizeduser import AuthorizedUser, AuthorizedUserTypedDict
|
|
@@ -330,6 +339,11 @@ if TYPE_CHECKING:
|
|
|
330
339
|
CreateIndividualProfileTypedDict,
|
|
331
340
|
)
|
|
332
341
|
from .createpaymentlink import CreatePaymentLink, CreatePaymentLinkTypedDict
|
|
342
|
+
from .createproductoption import CreateProductOption, CreateProductOptionTypedDict
|
|
343
|
+
from .createproductoptiongroup import (
|
|
344
|
+
CreateProductOptionGroup,
|
|
345
|
+
CreateProductOptionGroupTypedDict,
|
|
346
|
+
)
|
|
333
347
|
from .createprofile import CreateProfile, CreateProfileTypedDict
|
|
334
348
|
from .createprofileerror import CreateProfileError, CreateProfileErrorTypedDict
|
|
335
349
|
from .createrefund import CreateRefund, CreateRefundTypedDict
|
|
@@ -745,6 +759,22 @@ if TYPE_CHECKING:
|
|
|
745
759
|
from .plaidpayload import PlaidPayload, PlaidPayloadTypedDict
|
|
746
760
|
from .platformfees import PlatformFees, PlatformFeesTypedDict
|
|
747
761
|
from .primaryregulator import PrimaryRegulator
|
|
762
|
+
from .product import Product, ProductTypedDict
|
|
763
|
+
from .productimagemetadata import (
|
|
764
|
+
ProductImageMetadata,
|
|
765
|
+
ProductImageMetadataTypedDict,
|
|
766
|
+
)
|
|
767
|
+
from .productoption import ProductOption, ProductOptionTypedDict
|
|
768
|
+
from .productoptiongroup import ProductOptionGroup, ProductOptionGroupTypedDict
|
|
769
|
+
from .productoptiongroupvalidationerror import (
|
|
770
|
+
ProductOptionGroupValidationError,
|
|
771
|
+
ProductOptionGroupValidationErrorTypedDict,
|
|
772
|
+
)
|
|
773
|
+
from .productoptionvalidationerror import (
|
|
774
|
+
ProductOptionValidationError,
|
|
775
|
+
ProductOptionValidationErrorTypedDict,
|
|
776
|
+
)
|
|
777
|
+
from .productrequest import ProductRequest, ProductRequestTypedDict
|
|
748
778
|
from .profile import Profile, ProfileTypedDict
|
|
749
779
|
from .pullfromcardpaymentmethod import (
|
|
750
780
|
PullFromCardPaymentMethod,
|
|
@@ -1197,6 +1227,8 @@ __all__ = [
|
|
|
1197
1227
|
"Amount",
|
|
1198
1228
|
"AmountDecimal",
|
|
1199
1229
|
"AmountDecimalTypedDict",
|
|
1230
|
+
"AmountDecimalValidationError",
|
|
1231
|
+
"AmountDecimalValidationErrorTypedDict",
|
|
1200
1232
|
"AmountTypedDict",
|
|
1201
1233
|
"AmountUpdate",
|
|
1202
1234
|
"AmountUpdateTypedDict",
|
|
@@ -1214,6 +1246,10 @@ __all__ = [
|
|
|
1214
1246
|
"ApplePayResponse",
|
|
1215
1247
|
"ApplePayResponseTypedDict",
|
|
1216
1248
|
"ApplicationScope",
|
|
1249
|
+
"AssignProductImage",
|
|
1250
|
+
"AssignProductImageTypedDict",
|
|
1251
|
+
"AssignProductImageValidationError",
|
|
1252
|
+
"AssignProductImageValidationErrorTypedDict",
|
|
1217
1253
|
"AsyncCreatedRefund",
|
|
1218
1254
|
"AsyncCreatedRefundTypedDict",
|
|
1219
1255
|
"AsyncTransfer",
|
|
@@ -1409,6 +1445,10 @@ __all__ = [
|
|
|
1409
1445
|
"CreateIndividualProfileTypedDict",
|
|
1410
1446
|
"CreatePaymentLink",
|
|
1411
1447
|
"CreatePaymentLinkTypedDict",
|
|
1448
|
+
"CreateProductOption",
|
|
1449
|
+
"CreateProductOptionGroup",
|
|
1450
|
+
"CreateProductOptionGroupTypedDict",
|
|
1451
|
+
"CreateProductOptionTypedDict",
|
|
1412
1452
|
"CreateProfile",
|
|
1413
1453
|
"CreateProfileError",
|
|
1414
1454
|
"CreateProfileErrorTypedDict",
|
|
@@ -1762,6 +1802,20 @@ __all__ = [
|
|
|
1762
1802
|
"PlatformFees",
|
|
1763
1803
|
"PlatformFeesTypedDict",
|
|
1764
1804
|
"PrimaryRegulator",
|
|
1805
|
+
"Product",
|
|
1806
|
+
"ProductImageMetadata",
|
|
1807
|
+
"ProductImageMetadataTypedDict",
|
|
1808
|
+
"ProductOption",
|
|
1809
|
+
"ProductOptionGroup",
|
|
1810
|
+
"ProductOptionGroupTypedDict",
|
|
1811
|
+
"ProductOptionGroupValidationError",
|
|
1812
|
+
"ProductOptionGroupValidationErrorTypedDict",
|
|
1813
|
+
"ProductOptionTypedDict",
|
|
1814
|
+
"ProductOptionValidationError",
|
|
1815
|
+
"ProductOptionValidationErrorTypedDict",
|
|
1816
|
+
"ProductRequest",
|
|
1817
|
+
"ProductRequestTypedDict",
|
|
1818
|
+
"ProductTypedDict",
|
|
1765
1819
|
"Profile",
|
|
1766
1820
|
"ProfileTypedDict",
|
|
1767
1821
|
"PullFromCardPaymentMethod",
|
|
@@ -2153,6 +2207,8 @@ _dynamic_imports: dict[str, str] = {
|
|
|
2153
2207
|
"AmountTypedDict": ".amount",
|
|
2154
2208
|
"AmountDecimal": ".amountdecimal",
|
|
2155
2209
|
"AmountDecimalTypedDict": ".amountdecimal",
|
|
2210
|
+
"AmountDecimalValidationError": ".amountdecimalvalidationerror",
|
|
2211
|
+
"AmountDecimalValidationErrorTypedDict": ".amountdecimalvalidationerror",
|
|
2156
2212
|
"AmountUpdate": ".amountupdate",
|
|
2157
2213
|
"AmountUpdateTypedDict": ".amountupdate",
|
|
2158
2214
|
"AmountValidationError": ".amountvalidationerror",
|
|
@@ -2169,6 +2225,10 @@ _dynamic_imports: dict[str, str] = {
|
|
|
2169
2225
|
"ApplePayResponse": ".applepayresponse",
|
|
2170
2226
|
"ApplePayResponseTypedDict": ".applepayresponse",
|
|
2171
2227
|
"ApplicationScope": ".applicationscope",
|
|
2228
|
+
"AssignProductImage": ".assignproductimage",
|
|
2229
|
+
"AssignProductImageTypedDict": ".assignproductimage",
|
|
2230
|
+
"AssignProductImageValidationError": ".assignproductimagevalidationerror",
|
|
2231
|
+
"AssignProductImageValidationErrorTypedDict": ".assignproductimagevalidationerror",
|
|
2172
2232
|
"AsyncCreatedRefund": ".asynccreatedrefund",
|
|
2173
2233
|
"AsyncCreatedRefundTypedDict": ".asynccreatedrefund",
|
|
2174
2234
|
"AsyncTransfer": ".asynctransfer",
|
|
@@ -2368,6 +2428,10 @@ _dynamic_imports: dict[str, str] = {
|
|
|
2368
2428
|
"CreateIndividualProfileTypedDict": ".createindividualprofile",
|
|
2369
2429
|
"CreatePaymentLink": ".createpaymentlink",
|
|
2370
2430
|
"CreatePaymentLinkTypedDict": ".createpaymentlink",
|
|
2431
|
+
"CreateProductOption": ".createproductoption",
|
|
2432
|
+
"CreateProductOptionTypedDict": ".createproductoption",
|
|
2433
|
+
"CreateProductOptionGroup": ".createproductoptiongroup",
|
|
2434
|
+
"CreateProductOptionGroupTypedDict": ".createproductoptiongroup",
|
|
2371
2435
|
"CreateProfile": ".createprofile",
|
|
2372
2436
|
"CreateProfileTypedDict": ".createprofile",
|
|
2373
2437
|
"CreateProfileError": ".createprofileerror",
|
|
@@ -2722,6 +2786,20 @@ _dynamic_imports: dict[str, str] = {
|
|
|
2722
2786
|
"PlatformFees": ".platformfees",
|
|
2723
2787
|
"PlatformFeesTypedDict": ".platformfees",
|
|
2724
2788
|
"PrimaryRegulator": ".primaryregulator",
|
|
2789
|
+
"Product": ".product",
|
|
2790
|
+
"ProductTypedDict": ".product",
|
|
2791
|
+
"ProductImageMetadata": ".productimagemetadata",
|
|
2792
|
+
"ProductImageMetadataTypedDict": ".productimagemetadata",
|
|
2793
|
+
"ProductOption": ".productoption",
|
|
2794
|
+
"ProductOptionTypedDict": ".productoption",
|
|
2795
|
+
"ProductOptionGroup": ".productoptiongroup",
|
|
2796
|
+
"ProductOptionGroupTypedDict": ".productoptiongroup",
|
|
2797
|
+
"ProductOptionGroupValidationError": ".productoptiongroupvalidationerror",
|
|
2798
|
+
"ProductOptionGroupValidationErrorTypedDict": ".productoptiongroupvalidationerror",
|
|
2799
|
+
"ProductOptionValidationError": ".productoptionvalidationerror",
|
|
2800
|
+
"ProductOptionValidationErrorTypedDict": ".productoptionvalidationerror",
|
|
2801
|
+
"ProductRequest": ".productrequest",
|
|
2802
|
+
"ProductRequestTypedDict": ".productrequest",
|
|
2725
2803
|
"Profile": ".profile",
|
|
2726
2804
|
"ProfileTypedDict": ".profile",
|
|
2727
2805
|
"PullFromCardPaymentMethod": ".pullfromcardpaymentmethod",
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from moovio_sdk.types import BaseModel
|
|
5
|
+
import pydantic
|
|
6
|
+
from typing import Optional
|
|
7
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class AmountDecimalValidationErrorTypedDict(TypedDict):
|
|
11
|
+
currency: NotRequired[str]
|
|
12
|
+
value_decimal: NotRequired[str]
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class AmountDecimalValidationError(BaseModel):
|
|
16
|
+
currency: Optional[str] = None
|
|
17
|
+
|
|
18
|
+
value_decimal: Annotated[Optional[str], pydantic.Field(alias="valueDecimal")] = None
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from moovio_sdk.types import BaseModel
|
|
5
|
+
import pydantic
|
|
6
|
+
from typing_extensions import Annotated, TypedDict
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class AssignProductImageTypedDict(TypedDict):
|
|
10
|
+
image_id: str
|
|
11
|
+
r"""Unique identifier for a product or product option image resource."""
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class AssignProductImage(BaseModel):
|
|
15
|
+
image_id: Annotated[str, pydantic.Field(alias="imageID")]
|
|
16
|
+
r"""Unique identifier for a product or product option image resource."""
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from moovio_sdk.types import BaseModel
|
|
5
|
+
import pydantic
|
|
6
|
+
from typing import Optional
|
|
7
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class AssignProductImageValidationErrorTypedDict(TypedDict):
|
|
11
|
+
image_id: NotRequired[str]
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class AssignProductImageValidationError(BaseModel):
|
|
15
|
+
image_id: Annotated[Optional[str], pydantic.Field(alias="imageID")] = None
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from .amountdecimal import AmountDecimal, AmountDecimalTypedDict
|
|
5
|
+
from .assignproductimage import AssignProductImage, AssignProductImageTypedDict
|
|
6
|
+
from moovio_sdk.types import BaseModel
|
|
7
|
+
import pydantic
|
|
8
|
+
from typing import List, Optional
|
|
9
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class CreateProductOptionTypedDict(TypedDict):
|
|
13
|
+
name: str
|
|
14
|
+
r"""The display name of a product option."""
|
|
15
|
+
description: NotRequired[str]
|
|
16
|
+
r"""A detailed description of the option.
|
|
17
|
+
|
|
18
|
+
- Must be valid UTF-8 text
|
|
19
|
+
- Supports Markdown for formatting
|
|
20
|
+
- HTML is not permitted and will be rejected
|
|
21
|
+
"""
|
|
22
|
+
price_modifier: NotRequired[AmountDecimalTypedDict]
|
|
23
|
+
r"""The adjustment applied to a product's base price by this option. Can be negative, positive, or zero."""
|
|
24
|
+
images: NotRequired[List[AssignProductImageTypedDict]]
|
|
25
|
+
r"""Assign previously uploaded images to a product or option."""
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class CreateProductOption(BaseModel):
|
|
29
|
+
name: str
|
|
30
|
+
r"""The display name of a product option."""
|
|
31
|
+
|
|
32
|
+
description: Optional[str] = None
|
|
33
|
+
r"""A detailed description of the option.
|
|
34
|
+
|
|
35
|
+
- Must be valid UTF-8 text
|
|
36
|
+
- Supports Markdown for formatting
|
|
37
|
+
- HTML is not permitted and will be rejected
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
price_modifier: Annotated[
|
|
41
|
+
Optional[AmountDecimal], pydantic.Field(alias="priceModifier")
|
|
42
|
+
] = None
|
|
43
|
+
r"""The adjustment applied to a product's base price by this option. Can be negative, positive, or zero."""
|
|
44
|
+
|
|
45
|
+
images: Optional[List[AssignProductImage]] = None
|
|
46
|
+
r"""Assign previously uploaded images to a product or option."""
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from .createproductoption import CreateProductOption, CreateProductOptionTypedDict
|
|
5
|
+
from moovio_sdk.types import BaseModel
|
|
6
|
+
import pydantic
|
|
7
|
+
from typing import List, Optional
|
|
8
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class CreateProductOptionGroupTypedDict(TypedDict):
|
|
12
|
+
name: str
|
|
13
|
+
min_select: int
|
|
14
|
+
r"""The minimum number of options that must be selected from this group.
|
|
15
|
+
|
|
16
|
+
A value of 0 indicates that no selection from this group is required.
|
|
17
|
+
"""
|
|
18
|
+
max_select: int
|
|
19
|
+
r"""The maximum number of options that can be selected from this group."""
|
|
20
|
+
options: List[CreateProductOptionTypedDict]
|
|
21
|
+
r"""The options available within this group."""
|
|
22
|
+
description: NotRequired[str]
|
|
23
|
+
r"""A detailed description of the option group.
|
|
24
|
+
|
|
25
|
+
- Must be valid UTF-8 text
|
|
26
|
+
- Supports Markdown for formatting
|
|
27
|
+
- HTML is not permitted and will be rejected
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class CreateProductOptionGroup(BaseModel):
|
|
32
|
+
name: str
|
|
33
|
+
|
|
34
|
+
min_select: Annotated[int, pydantic.Field(alias="minSelect")]
|
|
35
|
+
r"""The minimum number of options that must be selected from this group.
|
|
36
|
+
|
|
37
|
+
A value of 0 indicates that no selection from this group is required.
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
max_select: Annotated[int, pydantic.Field(alias="maxSelect")]
|
|
41
|
+
r"""The maximum number of options that can be selected from this group."""
|
|
42
|
+
|
|
43
|
+
options: List[CreateProductOption]
|
|
44
|
+
r"""The options available within this group."""
|
|
45
|
+
|
|
46
|
+
description: Optional[str] = None
|
|
47
|
+
r"""A detailed description of the option group.
|
|
48
|
+
|
|
49
|
+
- Must be valid UTF-8 text
|
|
50
|
+
- Supports Markdown for formatting
|
|
51
|
+
- HTML is not permitted and will be rejected
|
|
52
|
+
"""
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from .amountdecimal import AmountDecimal, AmountDecimalTypedDict
|
|
5
|
+
from .productimagemetadata import ProductImageMetadata, ProductImageMetadataTypedDict
|
|
6
|
+
from .productoptiongroup import ProductOptionGroup, ProductOptionGroupTypedDict
|
|
7
|
+
from datetime import datetime
|
|
8
|
+
from moovio_sdk.types import BaseModel
|
|
9
|
+
import pydantic
|
|
10
|
+
from typing import List, Optional
|
|
11
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class ProductTypedDict(TypedDict):
|
|
15
|
+
r"""A product available for purchase, which may have optional configuration options."""
|
|
16
|
+
|
|
17
|
+
product_id: str
|
|
18
|
+
r"""Unique identifier for a product."""
|
|
19
|
+
title: str
|
|
20
|
+
base_price: AmountDecimalTypedDict
|
|
21
|
+
r"""A product's starting price, before applying modifiers."""
|
|
22
|
+
created_on: datetime
|
|
23
|
+
r"""The date and time when the product was added."""
|
|
24
|
+
updated_on: datetime
|
|
25
|
+
r"""The date and time when the product was last updated."""
|
|
26
|
+
description: NotRequired[str]
|
|
27
|
+
r"""A detailed description of the product.
|
|
28
|
+
|
|
29
|
+
- Must be valid UTF-8 text
|
|
30
|
+
- Supports Markdown for formatting
|
|
31
|
+
- HTML is not permitted and will be rejected
|
|
32
|
+
"""
|
|
33
|
+
option_groups: NotRequired[List[ProductOptionGroupTypedDict]]
|
|
34
|
+
r"""Optional configuration options for a product, such as size or color."""
|
|
35
|
+
images: NotRequired[List[ProductImageMetadataTypedDict]]
|
|
36
|
+
r"""Optional images associated with the product."""
|
|
37
|
+
disabled_on: NotRequired[datetime]
|
|
38
|
+
r"""The date and time when the product was disabled."""
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class Product(BaseModel):
|
|
42
|
+
r"""A product available for purchase, which may have optional configuration options."""
|
|
43
|
+
|
|
44
|
+
product_id: Annotated[str, pydantic.Field(alias="productID")]
|
|
45
|
+
r"""Unique identifier for a product."""
|
|
46
|
+
|
|
47
|
+
title: str
|
|
48
|
+
|
|
49
|
+
base_price: Annotated[AmountDecimal, pydantic.Field(alias="basePrice")]
|
|
50
|
+
r"""A product's starting price, before applying modifiers."""
|
|
51
|
+
|
|
52
|
+
created_on: Annotated[datetime, pydantic.Field(alias="createdOn")]
|
|
53
|
+
r"""The date and time when the product was added."""
|
|
54
|
+
|
|
55
|
+
updated_on: Annotated[datetime, pydantic.Field(alias="updatedOn")]
|
|
56
|
+
r"""The date and time when the product was last updated."""
|
|
57
|
+
|
|
58
|
+
description: Optional[str] = None
|
|
59
|
+
r"""A detailed description of the product.
|
|
60
|
+
|
|
61
|
+
- Must be valid UTF-8 text
|
|
62
|
+
- Supports Markdown for formatting
|
|
63
|
+
- HTML is not permitted and will be rejected
|
|
64
|
+
"""
|
|
65
|
+
|
|
66
|
+
option_groups: Annotated[
|
|
67
|
+
Optional[List[ProductOptionGroup]], pydantic.Field(alias="optionGroups")
|
|
68
|
+
] = None
|
|
69
|
+
r"""Optional configuration options for a product, such as size or color."""
|
|
70
|
+
|
|
71
|
+
images: Optional[List[ProductImageMetadata]] = None
|
|
72
|
+
r"""Optional images associated with the product."""
|
|
73
|
+
|
|
74
|
+
disabled_on: Annotated[Optional[datetime], pydantic.Field(alias="disabledOn")] = (
|
|
75
|
+
None
|
|
76
|
+
)
|
|
77
|
+
r"""The date and time when the product was disabled."""
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from moovio_sdk.types import BaseModel
|
|
5
|
+
import pydantic
|
|
6
|
+
from typing import Optional
|
|
7
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ProductImageMetadataTypedDict(TypedDict):
|
|
11
|
+
image_id: str
|
|
12
|
+
r"""Unique identifier for a product or product option image resource."""
|
|
13
|
+
link: str
|
|
14
|
+
r"""The image's public URL."""
|
|
15
|
+
alt_text: NotRequired[str]
|
|
16
|
+
r"""Alternative text for the image."""
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class ProductImageMetadata(BaseModel):
|
|
20
|
+
image_id: Annotated[str, pydantic.Field(alias="imageID")]
|
|
21
|
+
r"""Unique identifier for a product or product option image resource."""
|
|
22
|
+
|
|
23
|
+
link: str
|
|
24
|
+
r"""The image's public URL."""
|
|
25
|
+
|
|
26
|
+
alt_text: Annotated[Optional[str], pydantic.Field(alias="altText")] = None
|
|
27
|
+
r"""Alternative text for the image."""
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from .amountdecimal import AmountDecimal, AmountDecimalTypedDict
|
|
5
|
+
from .productimagemetadata import ProductImageMetadata, ProductImageMetadataTypedDict
|
|
6
|
+
from moovio_sdk.types import BaseModel
|
|
7
|
+
import pydantic
|
|
8
|
+
from typing import List, Optional
|
|
9
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ProductOptionTypedDict(TypedDict):
|
|
13
|
+
r"""Represents a single product option within a group."""
|
|
14
|
+
|
|
15
|
+
name: str
|
|
16
|
+
r"""The display name of a product option."""
|
|
17
|
+
description: NotRequired[str]
|
|
18
|
+
r"""A detailed description of the option.
|
|
19
|
+
|
|
20
|
+
- Must be valid UTF-8 text
|
|
21
|
+
- Supports Markdown for formatting
|
|
22
|
+
- HTML is not permitted and will be rejected
|
|
23
|
+
"""
|
|
24
|
+
price_modifier: NotRequired[AmountDecimalTypedDict]
|
|
25
|
+
r"""The adjustment applied to a product's base price by this option. Can be negative, positive, or zero."""
|
|
26
|
+
images: NotRequired[List[ProductImageMetadataTypedDict]]
|
|
27
|
+
r"""The images associated with this option."""
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class ProductOption(BaseModel):
|
|
31
|
+
r"""Represents a single product option within a group."""
|
|
32
|
+
|
|
33
|
+
name: str
|
|
34
|
+
r"""The display name of a product option."""
|
|
35
|
+
|
|
36
|
+
description: Optional[str] = None
|
|
37
|
+
r"""A detailed description of the option.
|
|
38
|
+
|
|
39
|
+
- Must be valid UTF-8 text
|
|
40
|
+
- Supports Markdown for formatting
|
|
41
|
+
- HTML is not permitted and will be rejected
|
|
42
|
+
"""
|
|
43
|
+
|
|
44
|
+
price_modifier: Annotated[
|
|
45
|
+
Optional[AmountDecimal], pydantic.Field(alias="priceModifier")
|
|
46
|
+
] = None
|
|
47
|
+
r"""The adjustment applied to a product's base price by this option. Can be negative, positive, or zero."""
|
|
48
|
+
|
|
49
|
+
images: Optional[List[ProductImageMetadata]] = None
|
|
50
|
+
r"""The images associated with this option."""
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from .productoption import ProductOption, ProductOptionTypedDict
|
|
5
|
+
from moovio_sdk.types import BaseModel
|
|
6
|
+
import pydantic
|
|
7
|
+
from typing import List, Optional
|
|
8
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ProductOptionGroupTypedDict(TypedDict):
|
|
12
|
+
r"""Represents a group of product configuration options, such as size or color."""
|
|
13
|
+
|
|
14
|
+
name: str
|
|
15
|
+
min_select: int
|
|
16
|
+
r"""The minimum number of options that must be selected from this group.
|
|
17
|
+
|
|
18
|
+
A value of 0 indicates that no selection from this group is required.
|
|
19
|
+
"""
|
|
20
|
+
max_select: int
|
|
21
|
+
r"""The maximum number of options that can be selected from this group."""
|
|
22
|
+
options: List[ProductOptionTypedDict]
|
|
23
|
+
r"""The options available within this group."""
|
|
24
|
+
description: NotRequired[str]
|
|
25
|
+
r"""A detailed description of the option group.
|
|
26
|
+
|
|
27
|
+
- Must be valid UTF-8 text
|
|
28
|
+
- Supports Markdown for formatting
|
|
29
|
+
- HTML is not permitted and will be rejected
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class ProductOptionGroup(BaseModel):
|
|
34
|
+
r"""Represents a group of product configuration options, such as size or color."""
|
|
35
|
+
|
|
36
|
+
name: str
|
|
37
|
+
|
|
38
|
+
min_select: Annotated[int, pydantic.Field(alias="minSelect")]
|
|
39
|
+
r"""The minimum number of options that must be selected from this group.
|
|
40
|
+
|
|
41
|
+
A value of 0 indicates that no selection from this group is required.
|
|
42
|
+
"""
|
|
43
|
+
|
|
44
|
+
max_select: Annotated[int, pydantic.Field(alias="maxSelect")]
|
|
45
|
+
r"""The maximum number of options that can be selected from this group."""
|
|
46
|
+
|
|
47
|
+
options: List[ProductOption]
|
|
48
|
+
r"""The options available within this group."""
|
|
49
|
+
|
|
50
|
+
description: Optional[str] = None
|
|
51
|
+
r"""A detailed description of the option group.
|
|
52
|
+
|
|
53
|
+
- Must be valid UTF-8 text
|
|
54
|
+
- Supports Markdown for formatting
|
|
55
|
+
- HTML is not permitted and will be rejected
|
|
56
|
+
"""
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from .productoptionvalidationerror import (
|
|
5
|
+
ProductOptionValidationError,
|
|
6
|
+
ProductOptionValidationErrorTypedDict,
|
|
7
|
+
)
|
|
8
|
+
from moovio_sdk.types import BaseModel
|
|
9
|
+
import pydantic
|
|
10
|
+
from typing import Dict, Optional
|
|
11
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class ProductOptionGroupValidationErrorTypedDict(TypedDict):
|
|
15
|
+
name: NotRequired[str]
|
|
16
|
+
description: NotRequired[str]
|
|
17
|
+
min_select: NotRequired[str]
|
|
18
|
+
max_select: NotRequired[str]
|
|
19
|
+
options: NotRequired[Dict[str, ProductOptionValidationErrorTypedDict]]
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class ProductOptionGroupValidationError(BaseModel):
|
|
23
|
+
name: Optional[str] = None
|
|
24
|
+
|
|
25
|
+
description: Optional[str] = None
|
|
26
|
+
|
|
27
|
+
min_select: Annotated[Optional[str], pydantic.Field(alias="minSelect")] = None
|
|
28
|
+
|
|
29
|
+
max_select: Annotated[Optional[str], pydantic.Field(alias="maxSelect")] = None
|
|
30
|
+
|
|
31
|
+
options: Optional[Dict[str, ProductOptionValidationError]] = None
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from .amountdecimalvalidationerror import (
|
|
5
|
+
AmountDecimalValidationError,
|
|
6
|
+
AmountDecimalValidationErrorTypedDict,
|
|
7
|
+
)
|
|
8
|
+
from .assignproductimagevalidationerror import (
|
|
9
|
+
AssignProductImageValidationError,
|
|
10
|
+
AssignProductImageValidationErrorTypedDict,
|
|
11
|
+
)
|
|
12
|
+
from moovio_sdk.types import BaseModel
|
|
13
|
+
import pydantic
|
|
14
|
+
from typing import Dict, Optional
|
|
15
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class ProductOptionValidationErrorTypedDict(TypedDict):
|
|
19
|
+
name: NotRequired[str]
|
|
20
|
+
description: NotRequired[str]
|
|
21
|
+
price_modifier: NotRequired[AmountDecimalValidationErrorTypedDict]
|
|
22
|
+
images: NotRequired[Dict[str, AssignProductImageValidationErrorTypedDict]]
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class ProductOptionValidationError(BaseModel):
|
|
26
|
+
name: Optional[str] = None
|
|
27
|
+
|
|
28
|
+
description: Optional[str] = None
|
|
29
|
+
|
|
30
|
+
price_modifier: Annotated[
|
|
31
|
+
Optional[AmountDecimalValidationError], pydantic.Field(alias="priceModifier")
|
|
32
|
+
] = None
|
|
33
|
+
|
|
34
|
+
images: Optional[Dict[str, AssignProductImageValidationError]] = None
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from .amountdecimal import AmountDecimal, AmountDecimalTypedDict
|
|
5
|
+
from .assignproductimage import AssignProductImage, AssignProductImageTypedDict
|
|
6
|
+
from .createproductoptiongroup import (
|
|
7
|
+
CreateProductOptionGroup,
|
|
8
|
+
CreateProductOptionGroupTypedDict,
|
|
9
|
+
)
|
|
10
|
+
from moovio_sdk.types import BaseModel
|
|
11
|
+
import pydantic
|
|
12
|
+
from typing import List, Optional
|
|
13
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class ProductRequestTypedDict(TypedDict):
|
|
17
|
+
r"""Request to create or update a product."""
|
|
18
|
+
|
|
19
|
+
title: str
|
|
20
|
+
base_price: AmountDecimalTypedDict
|
|
21
|
+
r"""A product's starting price, before applying modifiers."""
|
|
22
|
+
description: NotRequired[str]
|
|
23
|
+
r"""A detailed description of the product.
|
|
24
|
+
|
|
25
|
+
- Must be valid UTF-8 text
|
|
26
|
+
- Supports Markdown for formatting
|
|
27
|
+
- HTML is not permitted and will be rejected
|
|
28
|
+
"""
|
|
29
|
+
images: NotRequired[List[AssignProductImageTypedDict]]
|
|
30
|
+
r"""Assign previously uploaded images to a product or option."""
|
|
31
|
+
option_groups: NotRequired[List[CreateProductOptionGroupTypedDict]]
|
|
32
|
+
r"""Optional configuration options for a product, such as size or color."""
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class ProductRequest(BaseModel):
|
|
36
|
+
r"""Request to create or update a product."""
|
|
37
|
+
|
|
38
|
+
title: str
|
|
39
|
+
|
|
40
|
+
base_price: Annotated[AmountDecimal, pydantic.Field(alias="basePrice")]
|
|
41
|
+
r"""A product's starting price, before applying modifiers."""
|
|
42
|
+
|
|
43
|
+
description: Optional[str] = None
|
|
44
|
+
r"""A detailed description of the product.
|
|
45
|
+
|
|
46
|
+
- Must be valid UTF-8 text
|
|
47
|
+
- Supports Markdown for formatting
|
|
48
|
+
- HTML is not permitted and will be rejected
|
|
49
|
+
"""
|
|
50
|
+
|
|
51
|
+
images: Optional[List[AssignProductImage]] = None
|
|
52
|
+
r"""Assign previously uploaded images to a product or option."""
|
|
53
|
+
|
|
54
|
+
option_groups: Annotated[
|
|
55
|
+
Optional[List[CreateProductOptionGroup]], pydantic.Field(alias="optionGroups")
|
|
56
|
+
] = None
|
|
57
|
+
r"""Optional configuration options for a product, such as size or color."""
|