stackit-stackitmarketplace 1.1.2__tar.gz → 1.2.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 (46) hide show
  1. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/PKG-INFO +1 -1
  2. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/pyproject.toml +1 -1
  3. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/catalog_product_detail.py +5 -0
  4. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/catalog_product_details_vendor.py +12 -1
  5. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/catalog_product_overview_vendor.py +12 -1
  6. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/vendor_subscription.py +39 -5
  7. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/LICENSE.md +0 -0
  8. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/NOTICE.txt +0 -0
  9. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/README.md +0 -0
  10. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/__init__.py +0 -0
  11. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/api/__init__.py +0 -0
  12. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/api/default_api.py +0 -0
  13. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/api_client.py +0 -0
  14. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/api_response.py +0 -0
  15. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/configuration.py +0 -0
  16. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/exceptions.py +0 -0
  17. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/__init__.py +0 -0
  18. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/approve_subscription_payload.py +0 -0
  19. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/become_vendor.py +0 -0
  20. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/catalog_pricing_option_highlight.py +0 -0
  21. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/catalog_product_highlight.py +0 -0
  22. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/catalog_product_overview.py +0 -0
  23. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/catalog_product_pricing_option.py +0 -0
  24. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/catalog_product_support_resource.py +0 -0
  25. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/catalog_product_vendor_terms.py +0 -0
  26. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/contact_sales.py +0 -0
  27. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/delivery_method.py +0 -0
  28. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/error_response.py +0 -0
  29. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/inquiries_create_inquiry_payload.py +0 -0
  30. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/inquiry_become_vendor.py +0 -0
  31. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/inquiry_contact_sales.py +0 -0
  32. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/inquiry_form_type.py +0 -0
  33. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/inquiry_register_testing.py +0 -0
  34. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/inquiry_suggest_product.py +0 -0
  35. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/list_catalog_products_response.py +0 -0
  36. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/list_vendor_subscriptions_response.py +0 -0
  37. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/price_type.py +0 -0
  38. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/pricing_option_unit.py +0 -0
  39. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/product_lifecycle_state.py +0 -0
  40. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/register_testing.py +0 -0
  41. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/resolve_customer_payload.py +0 -0
  42. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/subscription_lifecycle_state.py +0 -0
  43. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/subscription_product.py +0 -0
  44. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/models/suggest_product.py +0 -0
  45. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/py.typed +0 -0
  46. {stackit_stackitmarketplace-1.1.2 → stackit_stackitmarketplace-1.2.0}/src/stackit/stackitmarketplace/rest.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: stackit-stackitmarketplace
3
- Version: 1.1.2
3
+ Version: 1.2.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.1.2"
6
+ version = "v1.2.0"
7
7
  authors = [
8
8
  "STACKIT Developer Tools <developer-tools@stackit.cloud>",
9
9
  ]
@@ -66,6 +66,9 @@ class CatalogProductDetail(BaseModel):
66
66
  )
67
67
  email: Optional[StrictStr] = Field(default=None, description="A e-mail address.")
68
68
  highlights: List[CatalogProductHighlight] = Field(description="The list of highlights.")
69
+ industries: Optional[List[StrictStr]] = Field(
70
+ default=None, description="The list of industries associated to the product."
71
+ )
69
72
  is_product_listing: StrictBool = Field(
70
73
  description="If true, the product is not fully integrated but only listed. Product listings may not have prices and support information.",
71
74
  alias="isProductListing",
@@ -103,6 +106,7 @@ class CatalogProductDetail(BaseModel):
103
106
  "documentationUrl",
104
107
  "email",
105
108
  "highlights",
109
+ "industries",
106
110
  "isProductListing",
107
111
  "lifecycleState",
108
112
  "logo",
@@ -253,6 +257,7 @@ class CatalogProductDetail(BaseModel):
253
257
  if obj.get("highlights") is not None
254
258
  else None
255
259
  ),
260
+ "industries": obj.get("industries"),
256
261
  "isProductListing": obj.get("isProductListing"),
257
262
  "lifecycleState": obj.get("lifecycleState"),
258
263
  "logo": obj.get("logo"),
@@ -38,7 +38,9 @@ class CatalogProductDetailsVendor(BaseModel):
38
38
  description: StrictStr = Field(description="The vendor description.")
39
39
  logo: Union[StrictBytes, StrictStr] = Field(description="The logo base64 encoded.")
40
40
  name: Annotated[str, Field(strict=True, max_length=512)] = Field(description="The product's vendor name.")
41
- vendor_id: object = Field(alias="vendorId")
41
+ vendor_id: Annotated[str, Field(min_length=36, strict=True, max_length=36)] = Field(
42
+ description="Universally Unique Identifier (UUID).", alias="vendorId"
43
+ )
42
44
  video_url: Annotated[str, Field(strict=True, max_length=512)] = Field(
43
45
  description="The vendor video URL.", alias="videoUrl"
44
46
  )
@@ -54,6 +56,15 @@ class CatalogProductDetailsVendor(BaseModel):
54
56
  raise ValueError(r"must validate the regular expression /^[a-zA-ZäüöÄÜÖ0-9,.!?()@\/:=\n\t -]+$/")
55
57
  return value
56
58
 
59
+ @field_validator("vendor_id")
60
+ def vendor_id_validate_regular_expression(cls, value):
61
+ """Validates the regular expression"""
62
+ if not re.match(r"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", value):
63
+ raise ValueError(
64
+ r"must validate the regular expression /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/"
65
+ )
66
+ return value
67
+
57
68
  @field_validator("video_url")
58
69
  def video_url_validate_regular_expression(cls, value):
59
70
  """Validates the regular expression"""
@@ -29,7 +29,9 @@ class CatalogProductOverviewVendor(BaseModel):
29
29
  """
30
30
 
31
31
  name: Annotated[str, Field(strict=True, max_length=512)] = Field(description="The product's vendor name.")
32
- vendor_id: object = Field(alias="vendorId")
32
+ vendor_id: Annotated[str, Field(min_length=36, strict=True, max_length=36)] = Field(
33
+ description="Universally Unique Identifier (UUID).", alias="vendorId"
34
+ )
33
35
  website_url: Annotated[str, Field(strict=True, max_length=512)] = Field(
34
36
  description="Uniform Resource Locator.", alias="websiteUrl"
35
37
  )
@@ -42,6 +44,15 @@ class CatalogProductOverviewVendor(BaseModel):
42
44
  raise ValueError(r"must validate the regular expression /^[a-zA-ZäüöÄÜÖ0-9,.!?()@\/:=\n\t -]+$/")
43
45
  return value
44
46
 
47
+ @field_validator("vendor_id")
48
+ def vendor_id_validate_regular_expression(cls, value):
49
+ """Validates the regular expression"""
50
+ if not re.match(r"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", value):
51
+ raise ValueError(
52
+ r"must validate the regular expression /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/"
53
+ )
54
+ return value
55
+
45
56
  @field_validator("website_url")
46
57
  def website_url_validate_regular_expression(cls, value):
47
58
  """Validates the regular expression"""
@@ -16,10 +16,11 @@ from __future__ import annotations
16
16
 
17
17
  import json
18
18
  import pprint
19
+ import re
19
20
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
21
 
21
- from pydantic import BaseModel, ConfigDict, Field
22
- from typing_extensions import Self
22
+ from pydantic import BaseModel, ConfigDict, Field, field_validator
23
+ from typing_extensions import Annotated, Self
23
24
 
24
25
  from stackit.stackitmarketplace.models.subscription_lifecycle_state import (
25
26
  SubscriptionLifecycleState,
@@ -33,12 +34,45 @@ class VendorSubscription(BaseModel):
33
34
  """
34
35
 
35
36
  lifecycle_state: SubscriptionLifecycleState = Field(alias="lifecycleState")
36
- organization_id: object = Field(alias="organizationId")
37
+ organization_id: Annotated[str, Field(min_length=36, strict=True, max_length=36)] = Field(
38
+ description="Universally Unique Identifier (UUID).", alias="organizationId"
39
+ )
37
40
  product: SubscriptionProduct
38
- project_id: object = Field(alias="projectId")
39
- subscription_id: object = Field(alias="subscriptionId")
41
+ project_id: Annotated[str, Field(min_length=36, strict=True, max_length=36)] = Field(
42
+ description="Universally Unique Identifier (UUID).", alias="projectId"
43
+ )
44
+ subscription_id: Annotated[str, Field(min_length=36, strict=True, max_length=36)] = Field(
45
+ description="Universally Unique Identifier (UUID).", alias="subscriptionId"
46
+ )
40
47
  __properties: ClassVar[List[str]] = ["lifecycleState", "organizationId", "product", "projectId", "subscriptionId"]
41
48
 
49
+ @field_validator("organization_id")
50
+ def organization_id_validate_regular_expression(cls, value):
51
+ """Validates the regular expression"""
52
+ if not re.match(r"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", value):
53
+ raise ValueError(
54
+ r"must validate the regular expression /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/"
55
+ )
56
+ return value
57
+
58
+ @field_validator("project_id")
59
+ def project_id_validate_regular_expression(cls, value):
60
+ """Validates the regular expression"""
61
+ if not re.match(r"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", value):
62
+ raise ValueError(
63
+ r"must validate the regular expression /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/"
64
+ )
65
+ return value
66
+
67
+ @field_validator("subscription_id")
68
+ def subscription_id_validate_regular_expression(cls, value):
69
+ """Validates the regular expression"""
70
+ if not re.match(r"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", value):
71
+ raise ValueError(
72
+ r"must validate the regular expression /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/"
73
+ )
74
+ return value
75
+
42
76
  model_config = ConfigDict(
43
77
  populate_by_name=True,
44
78
  validate_assignment=True,