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.
Files changed (46) hide show
  1. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/PKG-INFO +1 -1
  2. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/pyproject.toml +1 -1
  3. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/api/default_api.py +18 -18
  4. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/api_client.py +1 -1
  5. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/configuration.py +6 -2
  6. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/catalog_product_detail.py +10 -1
  7. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/catalog_product_overview.py +10 -1
  8. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/inquiry_contact_sales.py +10 -1
  9. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/subscription_product.py +25 -1
  10. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/vendor_subscription.py +3 -1
  11. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/LICENSE.md +0 -0
  12. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/NOTICE.txt +0 -0
  13. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/README.md +0 -0
  14. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/__init__.py +0 -0
  15. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/api/__init__.py +0 -0
  16. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/api_response.py +0 -0
  17. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/exceptions.py +0 -0
  18. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/__init__.py +0 -0
  19. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/approve_subscription_payload.py +0 -0
  20. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/become_vendor.py +0 -0
  21. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/catalog_pricing_option_highlight.py +0 -0
  22. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/catalog_product_details_vendor.py +0 -0
  23. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/catalog_product_highlight.py +0 -0
  24. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/catalog_product_overview_vendor.py +0 -0
  25. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/catalog_product_pricing_option.py +0 -0
  26. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/catalog_product_support_resource.py +0 -0
  27. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/catalog_product_vendor_terms.py +0 -0
  28. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/contact_sales.py +0 -0
  29. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/delivery_method.py +0 -0
  30. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/error_response.py +0 -0
  31. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/inquiries_create_inquiry_payload.py +0 -0
  32. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/inquiry_become_vendor.py +0 -0
  33. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/inquiry_form_type.py +0 -0
  34. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/inquiry_register_testing.py +0 -0
  35. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/inquiry_suggest_product.py +0 -0
  36. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/list_catalog_products_response.py +0 -0
  37. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/list_vendor_subscriptions_response.py +0 -0
  38. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/price_type.py +0 -0
  39. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/pricing_option_unit.py +0 -0
  40. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/product_lifecycle_state.py +0 -0
  41. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/register_testing.py +0 -0
  42. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/resolve_customer_payload.py +0 -0
  43. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/subscription_lifecycle_state.py +0 -0
  44. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/models/suggest_product.py +0 -0
  45. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.0}/src/stackit/stackitmarketplace/py.typed +0 -0
  46. {stackit_stackitmarketplace-0.4.0 → stackit_stackitmarketplace-1.1.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: 0.4.0
3
+ Version: 1.1.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 = "v0.4.0"
6
+ version = "v1.1.0"
7
7
  authors = [
8
8
  "STACKIT Developer Tools <developer-tools@stackit.cloud>",
9
9
  ]
@@ -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=36, strict=True, max_length=36, description="The product ID.")],
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=36, strict=True, max_length=36, description="The product ID.")],
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=36, strict=True, max_length=36, description="The product ID.")],
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 (if specified). E.g `name:asc`. The supported attributes are `name`, `price`, and `deliveryMethod`. 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,price:desc`. The order can be ommited to sort by the default order. E.g `name`."
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 (if specified). E.g `name:asc`. The supported attributes are `name`, `price`, and `deliveryMethod`. 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,price:desc`. The order can be ommited to sort by the default order. E.g `name`.
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 (if specified). E.g `name:asc`. The supported attributes are `name`, `price`, and `deliveryMethod`. 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,price:desc`. The order can be ommited to sort by the default order. E.g `name`."
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 (if specified). E.g `name:asc`. The supported attributes are `name`, `price`, and `deliveryMethod`. 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,price:desc`. The order can be ommited to sort by the default order. E.g `name`.
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 (if specified). E.g `name:asc`. The supported attributes are `name`, `price`, and `deliveryMethod`. 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,price:desc`. The order can be ommited to sort by the default order. E.g `name`."
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 (if specified). E.g `name:asc`. The supported attributes are `name`, `price`, and `deliveryMethod`. 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,price:desc`. The order can be ommited to sort by the default order. E.g `name`.
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=36, strict=True, max_length=36)]],
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=36, strict=True, max_length=36)]],
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=36, strict=True, max_length=36)]],
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 = "OpenAPI-Generator/1.0.0/python"
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: object = Field(alias="productId")
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: object = Field(alias="productId")
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: object = Field(alias="productId")
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: object = Field(alias="productId")
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"),