diff --git a/services/stackitmarketplace/src/stackit/stackitmarketplace/__init__.py b/services/stackitmarketplace/src/stackit/stackitmarketplace/__init__.py index 63fcf65b..cb4ffcfe 100644 --- a/services/stackitmarketplace/src/stackit/stackitmarketplace/__init__.py +++ b/services/stackitmarketplace/src/stackit/stackitmarketplace/__init__.py @@ -89,6 +89,7 @@ from stackit.stackitmarketplace.models.list_vendor_subscriptions_response import ( ListVendorSubscriptionsResponse, ) +from stackit.stackitmarketplace.models.offer_type import OfferType from stackit.stackitmarketplace.models.price_type import PriceType from stackit.stackitmarketplace.models.pricing_option_unit import PricingOptionUnit from stackit.stackitmarketplace.models.product_lifecycle_state import ( diff --git a/services/stackitmarketplace/src/stackit/stackitmarketplace/models/__init__.py b/services/stackitmarketplace/src/stackit/stackitmarketplace/models/__init__.py index da02d096..6f537b8b 100644 --- a/services/stackitmarketplace/src/stackit/stackitmarketplace/models/__init__.py +++ b/services/stackitmarketplace/src/stackit/stackitmarketplace/models/__init__.py @@ -70,6 +70,7 @@ from stackit.stackitmarketplace.models.list_vendor_subscriptions_response import ( ListVendorSubscriptionsResponse, ) +from stackit.stackitmarketplace.models.offer_type import OfferType from stackit.stackitmarketplace.models.price_type import PriceType from stackit.stackitmarketplace.models.pricing_option_unit import PricingOptionUnit from stackit.stackitmarketplace.models.product_lifecycle_state import ( diff --git a/services/stackitmarketplace/src/stackit/stackitmarketplace/models/catalog_product_detail.py b/services/stackitmarketplace/src/stackit/stackitmarketplace/models/catalog_product_detail.py index c685c037..4414a1fc 100644 --- a/services/stackitmarketplace/src/stackit/stackitmarketplace/models/catalog_product_detail.py +++ b/services/stackitmarketplace/src/stackit/stackitmarketplace/models/catalog_product_detail.py @@ -46,6 +46,7 @@ CatalogProductVendorTerms, ) from stackit.stackitmarketplace.models.delivery_method import DeliveryMethod +from stackit.stackitmarketplace.models.offer_type import OfferType from stackit.stackitmarketplace.models.product_lifecycle_state import ( ProductLifecycleState, ) @@ -69,13 +70,15 @@ class CatalogProductDetail(BaseModel): industries: Optional[List[StrictStr]] = Field( default=None, description="The list of industries associated to the product." ) - is_product_listing: StrictBool = Field( - description="If true, the product is not fully integrated but only listed. Product listings may not have prices and support information.", + is_product_listing: Optional[StrictBool] = Field( + default=None, + description="If true, the product is not fully integrated but only listed. Product listings may not have prices and support information. Deprecated: Will be removed after 16.12.2025. Please use `offerType` as replacement.", alias="isProductListing", ) lifecycle_state: ProductLifecycleState = Field(alias="lifecycleState") logo: Union[StrictBytes, StrictStr] = Field(description="The logo base64 encoded.") name: Annotated[str, Field(strict=True, max_length=512)] = Field(description="The name of the product.") + offer_type: OfferType = Field(alias="offerType") pricing_options: List[CatalogProductPricingOption] = Field( description="The list of pricing options.", alias="pricingOptions" ) @@ -111,6 +114,7 @@ class CatalogProductDetail(BaseModel): "lifecycleState", "logo", "name", + "offerType", "pricingOptions", "productId", "summary", @@ -262,6 +266,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "lifecycleState": obj.get("lifecycleState"), "logo": obj.get("logo"), "name": obj.get("name"), + "offerType": obj.get("offerType"), "pricingOptions": ( [CatalogProductPricingOption.from_dict(_item) for _item in obj["pricingOptions"]] if obj.get("pricingOptions") is not None diff --git a/services/stackitmarketplace/src/stackit/stackitmarketplace/models/offer_type.py b/services/stackitmarketplace/src/stackit/stackitmarketplace/models/offer_type.py new file mode 100644 index 00000000..d55aae71 --- /dev/null +++ b/services/stackitmarketplace/src/stackit/stackitmarketplace/models/offer_type.py @@ -0,0 +1,37 @@ +# coding: utf-8 + +""" + STACKIT Marketplace API + + API to manage STACKIT Marketplace. + + The version of the OpenAPI document: 1 + Contact: marketplace@stackit.cloud + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 docstring might be too long + +from __future__ import annotations + +import json +from enum import Enum + +from typing_extensions import Self + + +class OfferType(str, Enum): + """ + The offer type of a product reflecting the business model. + """ + + """ + allowed enum values + """ + OFFER_LISTING = "OFFER_LISTING" + OFFER_RESELLING = "OFFER_RESELLING" + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of OfferType from a JSON string""" + return cls(json.loads(json_str))