stackit-stackitmarketplace 0.4.0__tar.gz → 1.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/PKG-INFO +1 -1
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/pyproject.toml +1 -1
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/api/default_api.py +18 -18
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/api_client.py +1 -1
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/configuration.py +6 -2
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/catalog_product_detail.py +10 -1
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/catalog_product_overview.py +10 -1
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/inquiry_contact_sales.py +10 -1
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/subscription_product.py +25 -1
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/vendor_subscription.py +3 -1
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/LICENSE.md +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/NOTICE.txt +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/README.md +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/__init__.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/api/__init__.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/api_response.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/exceptions.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/__init__.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/approve_subscription_payload.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/become_vendor.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/catalog_pricing_option_highlight.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/catalog_product_details_vendor.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/catalog_product_highlight.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/catalog_product_overview_vendor.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/catalog_product_pricing_option.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/catalog_product_support_resource.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/catalog_product_vendor_terms.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/contact_sales.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/delivery_method.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/error_response.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/inquiries_create_inquiry_payload.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/inquiry_become_vendor.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/inquiry_form_type.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/inquiry_register_testing.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/inquiry_suggest_product.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/list_catalog_products_response.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/list_vendor_subscriptions_response.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/price_type.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/pricing_option_unit.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/product_lifecycle_state.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/register_testing.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/resolve_customer_payload.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/subscription_lifecycle_state.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/suggest_product.py +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/py.typed +0 -0
- {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/rest.py +0 -0
|
@@ -346,7 +346,7 @@ class DefaultApi:
|
|
|
346
346
|
@validate_call
|
|
347
347
|
def get_catalog_product(
|
|
348
348
|
self,
|
|
349
|
-
product_id: Annotated[str, Field(min_length=
|
|
349
|
+
product_id: Annotated[str, Field(min_length=10, strict=True, max_length=29, description="The product ID.")],
|
|
350
350
|
locale: Annotated[Optional[StrictStr], Field(description="The language of the response.")] = None,
|
|
351
351
|
_request_timeout: Union[
|
|
352
352
|
None,
|
|
@@ -414,7 +414,7 @@ class DefaultApi:
|
|
|
414
414
|
@validate_call
|
|
415
415
|
def get_catalog_product_with_http_info(
|
|
416
416
|
self,
|
|
417
|
-
product_id: Annotated[str, Field(min_length=
|
|
417
|
+
product_id: Annotated[str, Field(min_length=10, strict=True, max_length=29, description="The product ID.")],
|
|
418
418
|
locale: Annotated[Optional[StrictStr], Field(description="The language of the response.")] = None,
|
|
419
419
|
_request_timeout: Union[
|
|
420
420
|
None,
|
|
@@ -482,7 +482,7 @@ class DefaultApi:
|
|
|
482
482
|
@validate_call
|
|
483
483
|
def get_catalog_product_without_preload_content(
|
|
484
484
|
self,
|
|
485
|
-
product_id: Annotated[str, Field(min_length=
|
|
485
|
+
product_id: Annotated[str, Field(min_length=10, strict=True, max_length=29, description="The product ID.")],
|
|
486
486
|
locale: Annotated[Optional[StrictStr], Field(description="The language of the response.")] = None,
|
|
487
487
|
_request_timeout: Union[
|
|
488
488
|
None,
|
|
@@ -1132,7 +1132,7 @@ class DefaultApi:
|
|
|
1132
1132
|
sort: Annotated[
|
|
1133
1133
|
Optional[StrictStr],
|
|
1134
1134
|
Field(
|
|
1135
|
-
description="Sort the products based on attributes and order
|
|
1135
|
+
description="Sort the products based on attributes and order e.g. `name:asc`. Attributes with scalar types (`createdAt`, `isProductListing`) or keywords (`name`, `deliveryMethod`, `lifecycleState`, `vendor.name`) can be used as sort criteria. To set the sort order, append `asc` (ascending) or `desc` (descending) to the attribute, e.g. `name:asc`. To sort by multiple attributes, separate them with a comma. E.g `name:asc,price:desc`."
|
|
1136
1136
|
),
|
|
1137
1137
|
] = None,
|
|
1138
1138
|
_request_timeout: Union[
|
|
@@ -1157,7 +1157,7 @@ class DefaultApi:
|
|
|
1157
1157
|
:type locale: str
|
|
1158
1158
|
:param filter: Filter the products based on attributes. E.g `deliveryMethod eq \"SAAS\"`. The supported attributes are `deliveryMethod`, `priceType`, `category`, `vendorId`, `vendorName`, and `name`. The supported operators are `eq`. Filters can be joined with `and` or `or`.
|
|
1159
1159
|
:type filter: str
|
|
1160
|
-
:param sort: Sort the products based on attributes and order
|
|
1160
|
+
:param sort: Sort the products based on attributes and order e.g. `name:asc`. Attributes with scalar types (`createdAt`, `isProductListing`) or keywords (`name`, `deliveryMethod`, `lifecycleState`, `vendor.name`) can be used as sort criteria. To set the sort order, append `asc` (ascending) or `desc` (descending) to the attribute, e.g. `name:asc`. To sort by multiple attributes, separate them with a comma. E.g `name:asc,price:desc`.
|
|
1161
1161
|
:type sort: str
|
|
1162
1162
|
:param _request_timeout: timeout setting for this request. If one
|
|
1163
1163
|
number provided, it will be total request
|
|
@@ -1235,7 +1235,7 @@ class DefaultApi:
|
|
|
1235
1235
|
sort: Annotated[
|
|
1236
1236
|
Optional[StrictStr],
|
|
1237
1237
|
Field(
|
|
1238
|
-
description="Sort the products based on attributes and order
|
|
1238
|
+
description="Sort the products based on attributes and order e.g. `name:asc`. Attributes with scalar types (`createdAt`, `isProductListing`) or keywords (`name`, `deliveryMethod`, `lifecycleState`, `vendor.name`) can be used as sort criteria. To set the sort order, append `asc` (ascending) or `desc` (descending) to the attribute, e.g. `name:asc`. To sort by multiple attributes, separate them with a comma. E.g `name:asc,price:desc`."
|
|
1239
1239
|
),
|
|
1240
1240
|
] = None,
|
|
1241
1241
|
_request_timeout: Union[
|
|
@@ -1260,7 +1260,7 @@ class DefaultApi:
|
|
|
1260
1260
|
:type locale: str
|
|
1261
1261
|
:param filter: Filter the products based on attributes. E.g `deliveryMethod eq \"SAAS\"`. The supported attributes are `deliveryMethod`, `priceType`, `category`, `vendorId`, `vendorName`, and `name`. The supported operators are `eq`. Filters can be joined with `and` or `or`.
|
|
1262
1262
|
:type filter: str
|
|
1263
|
-
:param sort: Sort the products based on attributes and order
|
|
1263
|
+
:param sort: Sort the products based on attributes and order e.g. `name:asc`. Attributes with scalar types (`createdAt`, `isProductListing`) or keywords (`name`, `deliveryMethod`, `lifecycleState`, `vendor.name`) can be used as sort criteria. To set the sort order, append `asc` (ascending) or `desc` (descending) to the attribute, e.g. `name:asc`. To sort by multiple attributes, separate them with a comma. E.g `name:asc,price:desc`.
|
|
1264
1264
|
:type sort: str
|
|
1265
1265
|
:param _request_timeout: timeout setting for this request. If one
|
|
1266
1266
|
number provided, it will be total request
|
|
@@ -1338,7 +1338,7 @@ class DefaultApi:
|
|
|
1338
1338
|
sort: Annotated[
|
|
1339
1339
|
Optional[StrictStr],
|
|
1340
1340
|
Field(
|
|
1341
|
-
description="Sort the products based on attributes and order
|
|
1341
|
+
description="Sort the products based on attributes and order e.g. `name:asc`. Attributes with scalar types (`createdAt`, `isProductListing`) or keywords (`name`, `deliveryMethod`, `lifecycleState`, `vendor.name`) can be used as sort criteria. To set the sort order, append `asc` (ascending) or `desc` (descending) to the attribute, e.g. `name:asc`. To sort by multiple attributes, separate them with a comma. E.g `name:asc,price:desc`."
|
|
1342
1342
|
),
|
|
1343
1343
|
] = None,
|
|
1344
1344
|
_request_timeout: Union[
|
|
@@ -1363,7 +1363,7 @@ class DefaultApi:
|
|
|
1363
1363
|
:type locale: str
|
|
1364
1364
|
:param filter: Filter the products based on attributes. E.g `deliveryMethod eq \"SAAS\"`. The supported attributes are `deliveryMethod`, `priceType`, `category`, `vendorId`, `vendorName`, and `name`. The supported operators are `eq`. Filters can be joined with `and` or `or`.
|
|
1365
1365
|
:type filter: str
|
|
1366
|
-
:param sort: Sort the products based on attributes and order
|
|
1366
|
+
:param sort: Sort the products based on attributes and order e.g. `name:asc`. Attributes with scalar types (`createdAt`, `isProductListing`) or keywords (`name`, `deliveryMethod`, `lifecycleState`, `vendor.name`) can be used as sort criteria. To set the sort order, append `asc` (ascending) or `desc` (descending) to the attribute, e.g. `name:asc`. To sort by multiple attributes, separate them with a comma. E.g `name:asc,price:desc`.
|
|
1367
1367
|
:type sort: str
|
|
1368
1368
|
:param _request_timeout: timeout setting for this request. If one
|
|
1369
1369
|
number provided, it will be total request
|
|
@@ -1501,7 +1501,7 @@ class DefaultApi:
|
|
|
1501
1501
|
),
|
|
1502
1502
|
] = None,
|
|
1503
1503
|
product_id: Annotated[
|
|
1504
|
-
Optional[Annotated[str, Field(min_length=
|
|
1504
|
+
Optional[Annotated[str, Field(min_length=10, strict=True, max_length=29)]],
|
|
1505
1505
|
Field(description="The product ID."),
|
|
1506
1506
|
] = None,
|
|
1507
1507
|
_request_timeout: Union[
|
|
@@ -1514,9 +1514,9 @@ class DefaultApi:
|
|
|
1514
1514
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1515
1515
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1516
1516
|
) -> ListVendorSubscriptionsResponse:
|
|
1517
|
-
"""List all subscriptions
|
|
1517
|
+
"""List all subscriptions of a project.
|
|
1518
1518
|
|
|
1519
|
-
List all subscriptions.
|
|
1519
|
+
List all subscriptions of a project.
|
|
1520
1520
|
|
|
1521
1521
|
:param project_id: The project ID. (required)
|
|
1522
1522
|
:type project_id: str
|
|
@@ -1593,7 +1593,7 @@ class DefaultApi:
|
|
|
1593
1593
|
),
|
|
1594
1594
|
] = None,
|
|
1595
1595
|
product_id: Annotated[
|
|
1596
|
-
Optional[Annotated[str, Field(min_length=
|
|
1596
|
+
Optional[Annotated[str, Field(min_length=10, strict=True, max_length=29)]],
|
|
1597
1597
|
Field(description="The product ID."),
|
|
1598
1598
|
] = None,
|
|
1599
1599
|
_request_timeout: Union[
|
|
@@ -1606,9 +1606,9 @@ class DefaultApi:
|
|
|
1606
1606
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1607
1607
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1608
1608
|
) -> ApiResponse[ListVendorSubscriptionsResponse]:
|
|
1609
|
-
"""List all subscriptions
|
|
1609
|
+
"""List all subscriptions of a project.
|
|
1610
1610
|
|
|
1611
|
-
List all subscriptions.
|
|
1611
|
+
List all subscriptions of a project.
|
|
1612
1612
|
|
|
1613
1613
|
:param project_id: The project ID. (required)
|
|
1614
1614
|
:type project_id: str
|
|
@@ -1685,7 +1685,7 @@ class DefaultApi:
|
|
|
1685
1685
|
),
|
|
1686
1686
|
] = None,
|
|
1687
1687
|
product_id: Annotated[
|
|
1688
|
-
Optional[Annotated[str, Field(min_length=
|
|
1688
|
+
Optional[Annotated[str, Field(min_length=10, strict=True, max_length=29)]],
|
|
1689
1689
|
Field(description="The product ID."),
|
|
1690
1690
|
] = None,
|
|
1691
1691
|
_request_timeout: Union[
|
|
@@ -1698,9 +1698,9 @@ class DefaultApi:
|
|
|
1698
1698
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1699
1699
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1700
1700
|
) -> RESTResponseType:
|
|
1701
|
-
"""List all subscriptions
|
|
1701
|
+
"""List all subscriptions of a project.
|
|
1702
1702
|
|
|
1703
|
-
List all subscriptions.
|
|
1703
|
+
List all subscriptions of a project.
|
|
1704
1704
|
|
|
1705
1705
|
:param project_id: The project ID. (required)
|
|
1706
1706
|
:type project_id: str
|
|
@@ -82,7 +82,7 @@ class ApiClient:
|
|
|
82
82
|
self.default_headers[header_name] = header_value
|
|
83
83
|
self.cookie = cookie
|
|
84
84
|
# Set default User-Agent.
|
|
85
|
-
self.user_agent = "
|
|
85
|
+
self.user_agent = "stackit-sdk-python/stackitmarketplace"
|
|
86
86
|
|
|
87
87
|
def __enter__(self):
|
|
88
88
|
return self
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# coding: utf-8
|
|
2
2
|
|
|
3
|
+
import sys
|
|
4
|
+
|
|
5
|
+
import os
|
|
6
|
+
|
|
7
|
+
|
|
3
8
|
"""
|
|
4
9
|
STACKIT Marketplace API
|
|
5
10
|
|
|
@@ -12,8 +17,6 @@
|
|
|
12
17
|
Do not edit the class manually.
|
|
13
18
|
""" # noqa: E501 docstring might be too long
|
|
14
19
|
|
|
15
|
-
import os
|
|
16
|
-
|
|
17
20
|
|
|
18
21
|
class HostConfiguration:
|
|
19
22
|
def __init__(
|
|
@@ -30,6 +33,7 @@ class HostConfiguration:
|
|
|
30
33
|
"as a function argument instead of being set in the client configuration.\n"
|
|
31
34
|
"Once all services have migrated, the methods to specify the region in the client configuration "
|
|
32
35
|
"will be removed.",
|
|
36
|
+
file=sys.stderr,
|
|
33
37
|
)
|
|
34
38
|
"""Constructor
|
|
35
39
|
"""
|
|
@@ -76,7 +76,9 @@ class CatalogProductDetail(BaseModel):
|
|
|
76
76
|
pricing_options: List[CatalogProductPricingOption] = Field(
|
|
77
77
|
description="The list of pricing options.", alias="pricingOptions"
|
|
78
78
|
)
|
|
79
|
-
product_id:
|
|
79
|
+
product_id: Annotated[str, Field(min_length=10, strict=True, max_length=29)] = Field(
|
|
80
|
+
description="The user-readable product ID.", alias="productId"
|
|
81
|
+
)
|
|
80
82
|
summary: StrictStr = Field(description="The short summary of the product.")
|
|
81
83
|
support_faq: Optional[Annotated[str, Field(strict=True, max_length=512)]] = Field(
|
|
82
84
|
default=None, description="The support FAQ URL.", alias="supportFaq"
|
|
@@ -132,6 +134,13 @@ class CatalogProductDetail(BaseModel):
|
|
|
132
134
|
raise ValueError(r"must validate the regular expression /^[a-zA-ZäüöÄÜÖ0-9,.!?()@\/:=\n\t -]+$/")
|
|
133
135
|
return value
|
|
134
136
|
|
|
137
|
+
@field_validator("product_id")
|
|
138
|
+
def product_id_validate_regular_expression(cls, value):
|
|
139
|
+
"""Validates the regular expression"""
|
|
140
|
+
if not re.match(r"^[a-z0-9-]{1,20}-[0-9a-f]{8}$", value):
|
|
141
|
+
raise ValueError(r"must validate the regular expression /^[a-z0-9-]{1,20}-[0-9a-f]{8}$/")
|
|
142
|
+
return value
|
|
143
|
+
|
|
135
144
|
@field_validator("support_faq")
|
|
136
145
|
def support_faq_validate_regular_expression(cls, value):
|
|
137
146
|
"""Validates the regular expression"""
|
|
@@ -47,7 +47,9 @@ class CatalogProductOverview(BaseModel):
|
|
|
47
47
|
lifecycle_state: ProductLifecycleState = Field(alias="lifecycleState")
|
|
48
48
|
logo: Optional[Union[StrictBytes, StrictStr]] = Field(default=None, description="The logo base64 encoded.")
|
|
49
49
|
name: Annotated[str, Field(strict=True, max_length=512)] = Field(description="The name of the product.")
|
|
50
|
-
product_id:
|
|
50
|
+
product_id: Annotated[str, Field(min_length=10, strict=True, max_length=29)] = Field(
|
|
51
|
+
description="The user-readable product ID.", alias="productId"
|
|
52
|
+
)
|
|
51
53
|
summary: Annotated[str, Field(strict=True, max_length=512)] = Field(description="The short summary of the product.")
|
|
52
54
|
vendor: CatalogProductOverviewVendor
|
|
53
55
|
__properties: ClassVar[List[str]] = [
|
|
@@ -67,6 +69,13 @@ class CatalogProductOverview(BaseModel):
|
|
|
67
69
|
raise ValueError(r"must validate the regular expression /^[a-zA-ZäüöÄÜÖ0-9,.!?()@\/:=\n\t -]+$/")
|
|
68
70
|
return value
|
|
69
71
|
|
|
72
|
+
@field_validator("product_id")
|
|
73
|
+
def product_id_validate_regular_expression(cls, value):
|
|
74
|
+
"""Validates the regular expression"""
|
|
75
|
+
if not re.match(r"^[a-z0-9-]{1,20}-[0-9a-f]{8}$", value):
|
|
76
|
+
raise ValueError(r"must validate the regular expression /^[a-z0-9-]{1,20}-[0-9a-f]{8}$/")
|
|
77
|
+
return value
|
|
78
|
+
|
|
70
79
|
@field_validator("summary")
|
|
71
80
|
def summary_validate_regular_expression(cls, value):
|
|
72
81
|
"""Validates the regular expression"""
|
|
@@ -36,7 +36,9 @@ class InquiryContactSales(BaseModel):
|
|
|
36
36
|
description="The full name of the contact person.", alias="fullName"
|
|
37
37
|
)
|
|
38
38
|
message: Annotated[str, Field(strict=True, max_length=512)] = Field(description="A custom message.")
|
|
39
|
-
product_id:
|
|
39
|
+
product_id: Annotated[str, Field(min_length=10, strict=True, max_length=29)] = Field(
|
|
40
|
+
description="The user-readable product ID.", alias="productId"
|
|
41
|
+
)
|
|
40
42
|
__properties: ClassVar[List[str]] = ["companyName", "contactEmail", "fullName", "message", "productId"]
|
|
41
43
|
|
|
42
44
|
@field_validator("company_name")
|
|
@@ -60,6 +62,13 @@ class InquiryContactSales(BaseModel):
|
|
|
60
62
|
raise ValueError(r"must validate the regular expression /^[a-zA-ZäüöÄÜÖ0-9,.!?()@\/:=\n\t -]+$/")
|
|
61
63
|
return value
|
|
62
64
|
|
|
65
|
+
@field_validator("product_id")
|
|
66
|
+
def product_id_validate_regular_expression(cls, value):
|
|
67
|
+
"""Validates the regular expression"""
|
|
68
|
+
if not re.match(r"^[a-z0-9-]{1,20}-[0-9a-f]{8}$", value):
|
|
69
|
+
raise ValueError(r"must validate the regular expression /^[a-z0-9-]{1,20}-[0-9a-f]{8}$/")
|
|
70
|
+
return value
|
|
71
|
+
|
|
63
72
|
model_config = ConfigDict(
|
|
64
73
|
populate_by_name=True,
|
|
65
74
|
validate_assignment=True,
|
|
@@ -38,13 +38,18 @@ class SubscriptionProduct(BaseModel):
|
|
|
38
38
|
lifecycle_state: ProductLifecycleState = Field(alias="lifecycleState")
|
|
39
39
|
price_type: PriceType = Field(alias="priceType")
|
|
40
40
|
pricing_plan: StrictStr = Field(description="Additional price type information.", alias="pricingPlan")
|
|
41
|
-
product_id:
|
|
41
|
+
product_id: Annotated[str, Field(min_length=10, strict=True, max_length=29)] = Field(
|
|
42
|
+
description="The user-readable product ID.", alias="productId"
|
|
43
|
+
)
|
|
42
44
|
product_name: Annotated[str, Field(strict=True, max_length=512)] = Field(
|
|
43
45
|
description="The name of the product.", alias="productName"
|
|
44
46
|
)
|
|
45
47
|
vendor_name: Annotated[str, Field(strict=True, max_length=512)] = Field(
|
|
46
48
|
description="The product's vendor name.", alias="vendorName"
|
|
47
49
|
)
|
|
50
|
+
vendor_plan_id: Optional[Annotated[str, Field(strict=True)]] = Field(
|
|
51
|
+
default=None, description="The vendor provided plan ID.", alias="vendorPlanId"
|
|
52
|
+
)
|
|
48
53
|
vendor_product_id: Optional[Annotated[str, Field(strict=True)]] = Field(
|
|
49
54
|
default=None, description="The vendor provided product ID.", alias="vendorProductId"
|
|
50
55
|
)
|
|
@@ -59,10 +64,18 @@ class SubscriptionProduct(BaseModel):
|
|
|
59
64
|
"productId",
|
|
60
65
|
"productName",
|
|
61
66
|
"vendorName",
|
|
67
|
+
"vendorPlanId",
|
|
62
68
|
"vendorProductId",
|
|
63
69
|
"vendorWebsiteUrl",
|
|
64
70
|
]
|
|
65
71
|
|
|
72
|
+
@field_validator("product_id")
|
|
73
|
+
def product_id_validate_regular_expression(cls, value):
|
|
74
|
+
"""Validates the regular expression"""
|
|
75
|
+
if not re.match(r"^[a-z0-9-]{1,20}-[0-9a-f]{8}$", value):
|
|
76
|
+
raise ValueError(r"must validate the regular expression /^[a-z0-9-]{1,20}-[0-9a-f]{8}$/")
|
|
77
|
+
return value
|
|
78
|
+
|
|
66
79
|
@field_validator("product_name")
|
|
67
80
|
def product_name_validate_regular_expression(cls, value):
|
|
68
81
|
"""Validates the regular expression"""
|
|
@@ -77,6 +90,16 @@ class SubscriptionProduct(BaseModel):
|
|
|
77
90
|
raise ValueError(r"must validate the regular expression /^[a-zA-ZäüöÄÜÖ0-9,.!?()@\/:=\n\t -]+$/")
|
|
78
91
|
return value
|
|
79
92
|
|
|
93
|
+
@field_validator("vendor_plan_id")
|
|
94
|
+
def vendor_plan_id_validate_regular_expression(cls, value):
|
|
95
|
+
"""Validates the regular expression"""
|
|
96
|
+
if value is None:
|
|
97
|
+
return value
|
|
98
|
+
|
|
99
|
+
if not re.match(r"^[a-zA-Z0-9](?:[a-zA-Z0-9_+&-]){0,39}$", value):
|
|
100
|
+
raise ValueError(r"must validate the regular expression /^[a-zA-Z0-9](?:[a-zA-Z0-9_+&-]){0,39}$/")
|
|
101
|
+
return value
|
|
102
|
+
|
|
80
103
|
@field_validator("vendor_product_id")
|
|
81
104
|
def vendor_product_id_validate_regular_expression(cls, value):
|
|
82
105
|
"""Validates the regular expression"""
|
|
@@ -153,6 +176,7 @@ class SubscriptionProduct(BaseModel):
|
|
|
153
176
|
"productId": obj.get("productId"),
|
|
154
177
|
"productName": obj.get("productName"),
|
|
155
178
|
"vendorName": obj.get("vendorName"),
|
|
179
|
+
"vendorPlanId": obj.get("vendorPlanId"),
|
|
156
180
|
"vendorProductId": obj.get("vendorProductId"),
|
|
157
181
|
"vendorWebsiteUrl": obj.get("vendorWebsiteUrl"),
|
|
158
182
|
}
|
|
@@ -33,10 +33,11 @@ class VendorSubscription(BaseModel):
|
|
|
33
33
|
"""
|
|
34
34
|
|
|
35
35
|
lifecycle_state: SubscriptionLifecycleState = Field(alias="lifecycleState")
|
|
36
|
+
organization_id: object = Field(alias="organizationId")
|
|
36
37
|
product: SubscriptionProduct
|
|
37
38
|
project_id: object = Field(alias="projectId")
|
|
38
39
|
subscription_id: object = Field(alias="subscriptionId")
|
|
39
|
-
__properties: ClassVar[List[str]] = ["lifecycleState", "product", "projectId", "subscriptionId"]
|
|
40
|
+
__properties: ClassVar[List[str]] = ["lifecycleState", "organizationId", "product", "projectId", "subscriptionId"]
|
|
40
41
|
|
|
41
42
|
model_config = ConfigDict(
|
|
42
43
|
populate_by_name=True,
|
|
@@ -92,6 +93,7 @@ class VendorSubscription(BaseModel):
|
|
|
92
93
|
_obj = cls.model_validate(
|
|
93
94
|
{
|
|
94
95
|
"lifecycleState": obj.get("lifecycleState"),
|
|
96
|
+
"organizationId": obj.get("organizationId"),
|
|
95
97
|
"product": SubscriptionProduct.from_dict(obj["product"]) if obj.get("product") is not None else None,
|
|
96
98
|
"projectId": obj.get("projectId"),
|
|
97
99
|
"subscriptionId": obj.get("subscriptionId"),
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|