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.
Files changed (55) hide show
  1. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/PKG-INFO +1 -1
  2. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/pyproject.toml +1 -1
  3. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/catalog_product_pricing_option.py +15 -2
  4. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/subscription_product.py +12 -0
  5. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/LICENSE.md +0 -0
  6. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/NOTICE.txt +0 -0
  7. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/README.md +0 -0
  8. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/__init__.py +0 -0
  9. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/api/__init__.py +0 -0
  10. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/api/default_api.py +0 -0
  11. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/api_client.py +0 -0
  12. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/api_response.py +0 -0
  13. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/configuration.py +0 -0
  14. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/exceptions.py +0 -0
  15. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/__init__.py +0 -0
  16. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/approve_subscription_payload.py +0 -0
  17. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/assets.py +0 -0
  18. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/become_vendor.py +0 -0
  19. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/catalog_pricing_option_highlight.py +0 -0
  20. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/catalog_product_detail.py +0 -0
  21. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/catalog_product_details_vendor.py +0 -0
  22. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/catalog_product_facets_value_inner.py +0 -0
  23. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/catalog_product_highlight.py +0 -0
  24. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/catalog_product_overview.py +0 -0
  25. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/catalog_product_overview_vendor.py +0 -0
  26. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/catalog_product_support_resource.py +0 -0
  27. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/catalog_product_vendor_terms.py +0 -0
  28. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/contact_sales.py +0 -0
  29. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/delivery_method.py +0 -0
  30. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/error_response.py +0 -0
  31. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/free_trial.py +0 -0
  32. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/inquiries_create_inquiry_payload.py +0 -0
  33. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/inquiry_become_vendor.py +0 -0
  34. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/inquiry_contact_sales.py +0 -0
  35. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/inquiry_form_type.py +0 -0
  36. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/inquiry_register_testing.py +0 -0
  37. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/inquiry_request_private_plan.py +0 -0
  38. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/inquiry_suggest_product.py +0 -0
  39. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/list_catalog_products_response.py +0 -0
  40. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/list_vendor_subscriptions_response.py +0 -0
  41. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/localized_version.py +0 -0
  42. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/notice_period.py +0 -0
  43. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/offer_type.py +0 -0
  44. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/price_type.py +0 -0
  45. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/pricing_option_unit.py +0 -0
  46. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/product_lifecycle_state.py +0 -0
  47. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/register_testing.py +0 -0
  48. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/request_private_plan.py +0 -0
  49. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/resolve_customer_payload.py +0 -0
  50. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/service_certificate.py +0 -0
  51. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/subscription_lifecycle_state.py +0 -0
  52. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/suggest_product.py +0 -0
  53. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/models/vendor_subscription.py +0 -0
  54. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/py.typed +0 -0
  55. {stackit_stackitmarketplace-1.9.0 → stackit_stackitmarketplace-1.10.0}/src/stackit/stackitmarketplace/rest.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: stackit-stackitmarketplace
3
- Version: 1.9.0
3
+ Version: 1.10.0
4
4
  Summary: STACKIT Marketplace API
5
5
  Author: STACKIT Developer Tools
6
6
  Author-email: developer-tools@stackit.cloud
@@ -3,7 +3,7 @@ name = "stackit-stackitmarketplace"
3
3
 
4
4
  [tool.poetry]
5
5
  name = "stackit-stackitmarketplace"
6
- version = "v1.9.0"
6
+ version = "v1.10.0"
7
7
  authors = [
8
8
  "STACKIT Developer Tools <developer-tools@stackit.cloud>",
9
9
  ]
@@ -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"),