stackit-stackitmarketplace 1.10.0__tar.gz → 1.12.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.10.0 → stackit_stackitmarketplace-1.12.0}/PKG-INFO +5 -2
  2. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/pyproject.toml +1 -1
  3. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/catalog_product_detail.py +19 -3
  4. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/catalog_product_details_vendor.py +4 -11
  5. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/catalog_product_overview.py +4 -11
  6. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/LICENSE.md +0 -0
  7. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/NOTICE.txt +0 -0
  8. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/README.md +0 -0
  9. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/__init__.py +0 -0
  10. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/api/__init__.py +0 -0
  11. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/api/default_api.py +0 -0
  12. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/api_client.py +0 -0
  13. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/api_response.py +0 -0
  14. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/configuration.py +0 -0
  15. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/exceptions.py +0 -0
  16. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/__init__.py +0 -0
  17. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/approve_subscription_payload.py +0 -0
  18. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/assets.py +0 -0
  19. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/become_vendor.py +0 -0
  20. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/catalog_pricing_option_highlight.py +0 -0
  21. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/catalog_product_facets_value_inner.py +0 -0
  22. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/catalog_product_highlight.py +0 -0
  23. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/catalog_product_overview_vendor.py +0 -0
  24. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/catalog_product_pricing_option.py +0 -0
  25. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/catalog_product_support_resource.py +0 -0
  26. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/catalog_product_vendor_terms.py +0 -0
  27. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/contact_sales.py +0 -0
  28. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/delivery_method.py +0 -0
  29. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/error_response.py +0 -0
  30. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/free_trial.py +0 -0
  31. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/inquiries_create_inquiry_payload.py +0 -0
  32. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/inquiry_become_vendor.py +0 -0
  33. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/inquiry_contact_sales.py +0 -0
  34. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/inquiry_form_type.py +0 -0
  35. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/inquiry_register_testing.py +0 -0
  36. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/inquiry_request_private_plan.py +0 -0
  37. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/inquiry_suggest_product.py +0 -0
  38. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/list_catalog_products_response.py +0 -0
  39. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/list_vendor_subscriptions_response.py +0 -0
  40. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/localized_version.py +0 -0
  41. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/notice_period.py +0 -0
  42. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/offer_type.py +0 -0
  43. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/price_type.py +0 -0
  44. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/pricing_option_unit.py +0 -0
  45. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/product_lifecycle_state.py +0 -0
  46. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/register_testing.py +0 -0
  47. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/request_private_plan.py +0 -0
  48. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/resolve_customer_payload.py +0 -0
  49. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/service_certificate.py +0 -0
  50. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/subscription_lifecycle_state.py +0 -0
  51. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/subscription_product.py +0 -0
  52. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/suggest_product.py +0 -0
  53. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/models/vendor_subscription.py +0 -0
  54. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/py.typed +0 -0
  55. {stackit_stackitmarketplace-1.10.0 → stackit_stackitmarketplace-1.12.0}/src/stackit/stackitmarketplace/rest.py +0 -0
@@ -1,7 +1,9 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: stackit-stackitmarketplace
3
- Version: 1.10.0
3
+ Version: 1.12.0
4
4
  Summary: STACKIT Marketplace API
5
+ License-File: LICENSE.md
6
+ License-File: NOTICE.txt
5
7
  Author: STACKIT Developer Tools
6
8
  Author-email: developer-tools@stackit.cloud
7
9
  Requires-Python: >=3.9,<4.0
@@ -13,6 +15,7 @@ Classifier: Programming Language :: Python :: 3.10
13
15
  Classifier: Programming Language :: Python :: 3.11
14
16
  Classifier: Programming Language :: Python :: 3.12
15
17
  Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Programming Language :: Python :: 3.14
16
19
  Requires-Dist: pydantic (>=2.9.2)
17
20
  Requires-Dist: python-dateutil (>=2.9.0.post0)
18
21
  Requires-Dist: requests (>=2.32.3)
@@ -3,7 +3,7 @@ name = "stackit-stackitmarketplace"
3
3
 
4
4
  [tool.poetry]
5
5
  name = "stackit-stackitmarketplace"
6
- version = "v1.10.0"
6
+ version = "v1.12.0"
7
7
  authors = [
8
8
  "STACKIT Developer Tools <developer-tools@stackit.cloud>",
9
9
  ]
@@ -17,14 +17,13 @@ from __future__ import annotations
17
17
  import json
18
18
  import pprint
19
19
  import re # noqa: F401
20
- from typing import Any, ClassVar, Dict, List, Optional, Set, Union
20
+ from typing import Any, ClassVar, Dict, List, Optional, Set
21
21
 
22
22
  from pydantic import (
23
23
  BaseModel,
24
24
  ConfigDict,
25
25
  Field,
26
26
  StrictBool,
27
- StrictBytes,
28
27
  StrictStr,
29
28
  field_validator,
30
29
  )
@@ -63,6 +62,9 @@ class CatalogProductDetail(BaseModel):
63
62
  default=None, description="The list of categories associated to the product."
64
63
  )
65
64
  delivery_method: DeliveryMethod = Field(alias="deliveryMethod")
65
+ demo_url: Optional[Annotated[str, Field(strict=True, max_length=512)]] = Field(
66
+ default=None, description="The URL to a demo if available.", alias="demoUrl"
67
+ )
66
68
  description: StrictStr = Field(description="The product description.")
67
69
  documentation_url: Annotated[str, Field(strict=True, max_length=512)] = Field(
68
70
  description="The documentation URL.", alias="documentationUrl"
@@ -78,7 +80,7 @@ class CatalogProductDetail(BaseModel):
78
80
  alias="isProductListing",
79
81
  )
80
82
  lifecycle_state: ProductLifecycleState = Field(alias="lifecycleState")
81
- logo: Union[StrictBytes, StrictStr] = Field(description="The logo base64 encoded.")
83
+ logo: StrictStr = Field(description="The logo information.")
82
84
  name: Annotated[str, Field(strict=True, max_length=512)] = Field(description="The name of the product.")
83
85
  offer_type: OfferType = Field(alias="offerType")
84
86
  pricing_options: List[CatalogProductPricingOption] = Field(
@@ -108,6 +110,7 @@ class CatalogProductDetail(BaseModel):
108
110
  "assets",
109
111
  "categories",
110
112
  "deliveryMethod",
113
+ "demoUrl",
111
114
  "description",
112
115
  "documentationUrl",
113
116
  "email",
@@ -129,6 +132,18 @@ class CatalogProductDetail(BaseModel):
129
132
  "videoUrl",
130
133
  ]
131
134
 
135
+ @field_validator("demo_url")
136
+ def demo_url_validate_regular_expression(cls, value):
137
+ """Validates the regular expression"""
138
+ if value is None:
139
+ return value
140
+
141
+ if not re.match(r"^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$", value):
142
+ raise ValueError(
143
+ r"must validate the regular expression /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/"
144
+ )
145
+ return value
146
+
132
147
  @field_validator("documentation_url")
133
148
  def documentation_url_validate_regular_expression(cls, value):
134
149
  """Validates the regular expression"""
@@ -260,6 +275,7 @@ class CatalogProductDetail(BaseModel):
260
275
  "assets": Assets.from_dict(obj["assets"]) if obj.get("assets") is not None else None,
261
276
  "categories": obj.get("categories"),
262
277
  "deliveryMethod": obj.get("deliveryMethod"),
278
+ "demoUrl": obj.get("demoUrl"),
263
279
  "description": obj.get("description"),
264
280
  "documentationUrl": obj.get("documentationUrl"),
265
281
  "email": obj.get("email"),
@@ -17,16 +17,9 @@ from __future__ import annotations
17
17
  import json
18
18
  import pprint
19
19
  import re # noqa: F401
20
- from typing import Any, ClassVar, Dict, List, Optional, Set, Union
21
-
22
- from pydantic import (
23
- BaseModel,
24
- ConfigDict,
25
- Field,
26
- StrictBytes,
27
- StrictStr,
28
- field_validator,
29
- )
20
+ from typing import Any, ClassVar, Dict, List, Optional, Set
21
+
22
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
30
23
  from typing_extensions import Annotated, Self
31
24
 
32
25
 
@@ -36,7 +29,7 @@ class CatalogProductDetailsVendor(BaseModel):
36
29
  """ # noqa: E501
37
30
 
38
31
  description: StrictStr = Field(description="The vendor description.")
39
- logo: Union[StrictBytes, StrictStr] = Field(description="The logo base64 encoded.")
32
+ logo: StrictStr = Field(description="The logo information.")
40
33
  name: Annotated[str, Field(strict=True, max_length=512)] = Field(description="The product's vendor name.")
41
34
  vendor_id: Annotated[str, Field(min_length=36, strict=True, max_length=36)] = Field(
42
35
  description="Universally Unique Identifier (UUID).", alias="vendorId"
@@ -17,16 +17,9 @@ from __future__ import annotations
17
17
  import json
18
18
  import pprint
19
19
  import re # noqa: F401
20
- from typing import Any, ClassVar, Dict, List, Optional, Set, Union
21
-
22
- from pydantic import (
23
- BaseModel,
24
- ConfigDict,
25
- Field,
26
- StrictBytes,
27
- StrictStr,
28
- field_validator,
29
- )
20
+ from typing import Any, ClassVar, Dict, List, Optional, Set
21
+
22
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
30
23
  from typing_extensions import Annotated, Self
31
24
 
32
25
  from stackit.stackitmarketplace.models.catalog_product_overview_vendor import (
@@ -47,7 +40,7 @@ class CatalogProductOverview(BaseModel):
47
40
  delivery_method: DeliveryMethod = Field(alias="deliveryMethod")
48
41
  free_trial: Optional[FreeTrial] = Field(default=None, alias="freeTrial")
49
42
  lifecycle_state: ProductLifecycleState = Field(alias="lifecycleState")
50
- logo: Optional[Union[StrictBytes, StrictStr]] = Field(default=None, description="The logo base64 encoded.")
43
+ logo: Optional[StrictStr] = Field(default=None, description="The logo information.")
51
44
  name: Annotated[str, Field(strict=True, max_length=512)] = Field(description="The name of the product.")
52
45
  product_id: Annotated[str, Field(min_length=10, strict=True, max_length=29)] = Field(
53
46
  description="The user-readable product ID.", alias="productId"