stackit-stackitmarketplace 1.9.0__tar.gz → 1.10.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-1.9.0 → stackit_stackitmarketplace-1.10.0}/PKG-INFO +1 -1
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/pyproject.toml +1 -1
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/catalog_product_pricing_option.py +15 -2
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/subscription_product.py +12 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/LICENSE.md +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/NOTICE.txt +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/README.md +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/__init__.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/api/__init__.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/api/default_api.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/api_client.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/api_response.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/configuration.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/exceptions.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/__init__.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/approve_subscription_payload.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/assets.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/become_vendor.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/catalog_pricing_option_highlight.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/catalog_product_detail.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/catalog_product_details_vendor.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/catalog_product_facets_value_inner.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/catalog_product_highlight.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/catalog_product_overview.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/catalog_product_overview_vendor.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/catalog_product_support_resource.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/catalog_product_vendor_terms.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/contact_sales.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/delivery_method.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/error_response.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/free_trial.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/inquiries_create_inquiry_payload.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/inquiry_become_vendor.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/inquiry_contact_sales.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/inquiry_form_type.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/inquiry_register_testing.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/inquiry_request_private_plan.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/inquiry_suggest_product.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/list_catalog_products_response.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/list_vendor_subscriptions_response.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/localized_version.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/notice_period.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/offer_type.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/price_type.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/pricing_option_unit.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/product_lifecycle_state.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/register_testing.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/request_private_plan.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/resolve_customer_payload.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/service_certificate.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/subscription_lifecycle_state.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/suggest_product.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/vendor_subscription.py +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/py.typed +0 -0
- {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/rest.py +0 -0
|
@@ -16,10 +16,11 @@ from __future__ import annotations
|
|
|
16
16
|
|
|
17
17
|
import json
|
|
18
18
|
import pprint
|
|
19
|
+
import re # noqa: F401
|
|
19
20
|
from typing import Any, ClassVar, Dict, List, Optional, Set
|
|
20
21
|
|
|
21
|
-
from pydantic import BaseModel, ConfigDict, Field, StrictStr
|
|
22
|
-
from typing_extensions import Self
|
|
22
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
|
|
23
|
+
from typing_extensions import Annotated, Self
|
|
23
24
|
|
|
24
25
|
from stackit.stackitmarketplace.models.catalog_pricing_option_highlight import (
|
|
25
26
|
CatalogPricingOptionHighlight,
|
|
@@ -38,6 +39,9 @@ class CatalogProductPricingOption(BaseModel):
|
|
|
38
39
|
highlights: List[CatalogPricingOptionHighlight] = Field(description="The list of highlights.")
|
|
39
40
|
name: StrictStr = Field(description="The pricing option name.")
|
|
40
41
|
notice_period: Optional[NoticePeriod] = Field(default=None, alias="noticePeriod")
|
|
42
|
+
plan_id: Annotated[str, Field(min_length=10, strict=True, max_length=29)] = Field(
|
|
43
|
+
description="The user-readable plan ID of a pricing option.", alias="planId"
|
|
44
|
+
)
|
|
41
45
|
price_type: Optional[PriceType] = Field(default=None, alias="priceType")
|
|
42
46
|
pricing_plan: Optional[StrictStr] = Field(
|
|
43
47
|
default=None, description="Additional price type information.", alias="pricingPlan"
|
|
@@ -54,6 +58,7 @@ class CatalogProductPricingOption(BaseModel):
|
|
|
54
58
|
"highlights",
|
|
55
59
|
"name",
|
|
56
60
|
"noticePeriod",
|
|
61
|
+
"planId",
|
|
57
62
|
"priceType",
|
|
58
63
|
"pricingPlan",
|
|
59
64
|
"rate",
|
|
@@ -63,6 +68,13 @@ class CatalogProductPricingOption(BaseModel):
|
|
|
63
68
|
"unit",
|
|
64
69
|
]
|
|
65
70
|
|
|
71
|
+
@field_validator("plan_id")
|
|
72
|
+
def plan_id_validate_regular_expression(cls, value):
|
|
73
|
+
"""Validates the regular expression"""
|
|
74
|
+
if not re.match(r"^[a-z0-9-]{1,20}-[0-9a-f]{8}$", value):
|
|
75
|
+
raise ValueError(r"must validate the regular expression /^[a-z0-9-]{1,20}-[0-9a-f]{8}$/")
|
|
76
|
+
return value
|
|
77
|
+
|
|
66
78
|
model_config = ConfigDict(
|
|
67
79
|
populate_by_name=True,
|
|
68
80
|
validate_assignment=True,
|
|
@@ -133,6 +145,7 @@ class CatalogProductPricingOption(BaseModel):
|
|
|
133
145
|
"noticePeriod": (
|
|
134
146
|
NoticePeriod.from_dict(obj["noticePeriod"]) if obj.get("noticePeriod") is not None else None
|
|
135
147
|
),
|
|
148
|
+
"planId": obj.get("planId"),
|
|
136
149
|
"priceType": obj.get("priceType"),
|
|
137
150
|
"pricingPlan": obj.get("pricingPlan"),
|
|
138
151
|
"rate": obj.get("rate"),
|
|
@@ -38,6 +38,9 @@ class SubscriptionProduct(BaseModel):
|
|
|
38
38
|
assets: Optional[Assets] = None
|
|
39
39
|
delivery_method: DeliveryMethod = Field(alias="deliveryMethod")
|
|
40
40
|
lifecycle_state: ProductLifecycleState = Field(alias="lifecycleState")
|
|
41
|
+
plan_id: Annotated[str, Field(min_length=10, strict=True, max_length=29)] = Field(
|
|
42
|
+
description="The user-readable plan ID of a pricing option.", alias="planId"
|
|
43
|
+
)
|
|
41
44
|
price_type: PriceType = Field(alias="priceType")
|
|
42
45
|
pricing_plan: StrictStr = Field(description="Additional price type information.", alias="pricingPlan")
|
|
43
46
|
product_id: Annotated[str, Field(min_length=10, strict=True, max_length=29)] = Field(
|
|
@@ -62,6 +65,7 @@ class SubscriptionProduct(BaseModel):
|
|
|
62
65
|
"assets",
|
|
63
66
|
"deliveryMethod",
|
|
64
67
|
"lifecycleState",
|
|
68
|
+
"planId",
|
|
65
69
|
"priceType",
|
|
66
70
|
"pricingPlan",
|
|
67
71
|
"productId",
|
|
@@ -72,6 +76,13 @@ class SubscriptionProduct(BaseModel):
|
|
|
72
76
|
"vendorWebsiteUrl",
|
|
73
77
|
]
|
|
74
78
|
|
|
79
|
+
@field_validator("plan_id")
|
|
80
|
+
def plan_id_validate_regular_expression(cls, value):
|
|
81
|
+
"""Validates the regular expression"""
|
|
82
|
+
if not re.match(r"^[a-z0-9-]{1,20}-[0-9a-f]{8}$", value):
|
|
83
|
+
raise ValueError(r"must validate the regular expression /^[a-z0-9-]{1,20}-[0-9a-f]{8}$/")
|
|
84
|
+
return value
|
|
85
|
+
|
|
75
86
|
@field_validator("product_id")
|
|
76
87
|
def product_id_validate_regular_expression(cls, value):
|
|
77
88
|
"""Validates the regular expression"""
|
|
@@ -178,6 +189,7 @@ class SubscriptionProduct(BaseModel):
|
|
|
178
189
|
"assets": Assets.from_dict(obj["assets"]) if obj.get("assets") is not None else None,
|
|
179
190
|
"deliveryMethod": obj.get("deliveryMethod"),
|
|
180
191
|
"lifecycleState": obj.get("lifecycleState"),
|
|
192
|
+
"planId": obj.get("planId"),
|
|
181
193
|
"priceType": obj.get("priceType"),
|
|
182
194
|
"pricingPlan": obj.get("pricingPlan"),
|
|
183
195
|
"productId": obj.get("productId"),
|
|
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
|
|
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
|