From 268a75a1b1c553f896bc9766f8fabca5dc048837 Mon Sep 17 00:00:00 2001 From: SDK Generator Bot Date: Tue, 11 Nov 2025 08:46:31 +0000 Subject: [PATCH 1/2] Generate stackitmarketplace --- .../stackit/stackitmarketplace/__init__.py | 2 + .../stackitmarketplace/api/default_api.py | 40 ++++++++++++------- .../stackitmarketplace/models/__init__.py | 1 + .../models/catalog_product_detail.py | 2 +- .../models/catalog_product_pricing_option.py | 4 ++ .../stackitmarketplace/models/scope.py | 38 ++++++++++++++++++ 6 files changed, 71 insertions(+), 16 deletions(-) create mode 100644 services/stackitmarketplace/src/stackit/stackitmarketplace/models/scope.py diff --git a/services/stackitmarketplace/src/stackit/stackitmarketplace/__init__.py b/services/stackitmarketplace/src/stackit/stackitmarketplace/__init__.py index 147b7aca2..7a2ac8aa1 100644 --- a/services/stackitmarketplace/src/stackit/stackitmarketplace/__init__.py +++ b/services/stackitmarketplace/src/stackit/stackitmarketplace/__init__.py @@ -67,6 +67,7 @@ "RegisterTesting", "RequestPrivatePlan", "ResolveCustomerPayload", + "Scope", "ServiceCertificate", "SubscriptionLifecycleState", "SubscriptionProduct", @@ -191,6 +192,7 @@ from stackit.stackitmarketplace.models.resolve_customer_payload import ( ResolveCustomerPayload as ResolveCustomerPayload, ) +from stackit.stackitmarketplace.models.scope import Scope as Scope from stackit.stackitmarketplace.models.service_certificate import ( ServiceCertificate as ServiceCertificate, ) diff --git a/services/stackitmarketplace/src/stackit/stackitmarketplace/api/default_api.py b/services/stackitmarketplace/src/stackit/stackitmarketplace/api/default_api.py index 31d9445f0..d7eb46949 100644 --- a/services/stackitmarketplace/src/stackit/stackitmarketplace/api/default_api.py +++ b/services/stackitmarketplace/src/stackit/stackitmarketplace/api/default_api.py @@ -12,6 +12,7 @@ Do not edit the class manually. """ # noqa: E501 +import warnings from typing import Any, Dict, List, Optional, Tuple, Union from pydantic import ( @@ -358,7 +359,7 @@ def get_catalog_product( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> CatalogProductDetail: - """Get a product + """(Deprecated) Get a product Get a product. @@ -387,6 +388,7 @@ def get_catalog_product( :type _host_index: int, optional :return: Returns the result object. """ # noqa: E501 + warnings.warn("GET /v1/catalog/products/{productId} is deprecated.", DeprecationWarning) _param = self._get_catalog_product_serialize( product_id=product_id, @@ -426,7 +428,7 @@ def get_catalog_product_with_http_info( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> ApiResponse[CatalogProductDetail]: - """Get a product + """(Deprecated) Get a product Get a product. @@ -455,6 +457,7 @@ def get_catalog_product_with_http_info( :type _host_index: int, optional :return: Returns the result object. """ # noqa: E501 + warnings.warn("GET /v1/catalog/products/{productId} is deprecated.", DeprecationWarning) _param = self._get_catalog_product_serialize( product_id=product_id, @@ -494,7 +497,7 @@ def get_catalog_product_without_preload_content( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """Get a product + """(Deprecated) Get a product Get a product. @@ -523,6 +526,7 @@ def get_catalog_product_without_preload_content( :type _host_index: int, optional :return: Returns the result object. """ # noqa: E501 + warnings.warn("GET /v1/catalog/products/{productId} is deprecated.", DeprecationWarning) _param = self._get_catalog_product_serialize( product_id=product_id, @@ -871,7 +875,7 @@ def inquiries_create_inquiry( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> None: - """Create inquiry + """(Deprecated) Create inquiry Create an inquiry to contact sales, become a vendor, request a private plan, register for testing, or suggest a product. Requests are limited to 10 per 5 minutes. @@ -898,6 +902,7 @@ def inquiries_create_inquiry( :type _host_index: int, optional :return: Returns the result object. """ # noqa: E501 + warnings.warn("POST /v1/inquiries is deprecated.", DeprecationWarning) _param = self._inquiries_create_inquiry_serialize( inquiries_create_inquiry_payload=inquiries_create_inquiry_payload, @@ -935,7 +940,7 @@ def inquiries_create_inquiry_with_http_info( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> ApiResponse[None]: - """Create inquiry + """(Deprecated) Create inquiry Create an inquiry to contact sales, become a vendor, request a private plan, register for testing, or suggest a product. Requests are limited to 10 per 5 minutes. @@ -962,6 +967,7 @@ def inquiries_create_inquiry_with_http_info( :type _host_index: int, optional :return: Returns the result object. """ # noqa: E501 + warnings.warn("POST /v1/inquiries is deprecated.", DeprecationWarning) _param = self._inquiries_create_inquiry_serialize( inquiries_create_inquiry_payload=inquiries_create_inquiry_payload, @@ -999,7 +1005,7 @@ def inquiries_create_inquiry_without_preload_content( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """Create inquiry + """(Deprecated) Create inquiry Create an inquiry to contact sales, become a vendor, request a private plan, register for testing, or suggest a product. Requests are limited to 10 per 5 minutes. @@ -1026,6 +1032,7 @@ def inquiries_create_inquiry_without_preload_content( :type _host_index: int, optional :return: Returns the result object. """ # noqa: E501 + warnings.warn("POST /v1/inquiries is deprecated.", DeprecationWarning) _param = self._inquiries_create_inquiry_serialize( inquiries_create_inquiry_payload=inquiries_create_inquiry_payload, @@ -1126,7 +1133,7 @@ def list_catalog_products( filter: Annotated[ Optional[StrictStr], Field( - description='Filter the products based on attributes, e.g., `deliveryMethod eq "SAAS"`. The supported operators are: - `PR` (present; `name pr`) - `EQ` (equal) - `NE` (not equal) - `CO` (contains; `text co "searching"`) - `SW` (starts with) - `EW` (ends with) - `GT` (greater than) - `LT` (less than) - `GE` (greater than or equal) - `LE` (less than or equal). These expressions can be logically linked with `AND` and `OR`. All attributes (and the special `text` attribute) can be used as filters, if the attribute type allows the operator. ' + description='Filter the products based on attributes, e.g., `deliveryMethod eq "SAAS"`. The supported operators are: - `PR` (present; `name pr`) - `EQ` (equal) - `NE` (not equal) - `CO` (contains; `text co "searching"`) - `SW` (starts with) - `EW` (ends with) - `GT` (greater than) - `LT` (less than) - `GE` (greater than or equal) - `LE` (less than or equal). These expressions can be logically linked with `AND` and `OR`. All attributes (and the special `text` attribute) can be used as filters, if the attribute type allows the operator. ' ), ] = None, sort: Annotated[ @@ -1145,7 +1152,7 @@ def list_catalog_products( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> ListCatalogProductsResponse: - """List all products + """(Deprecated) List all products List all products. @@ -1155,7 +1162,7 @@ def list_catalog_products( :type limit: float :param locale: The language of the response. :type locale: str - :param filter: Filter the products based on attributes, e.g., `deliveryMethod eq \"SAAS\"`. The supported operators are: - `PR` (present; `name pr`) - `EQ` (equal) - `NE` (not equal) - `CO` (contains; `text co \"searching\"`) - `SW` (starts with) - `EW` (ends with) - `GT` (greater than) - `LT` (less than) - `GE` (greater than or equal) - `LE` (less than or equal). These expressions can be logically linked with `AND` and `OR`. All attributes (and the special `text` attribute) can be used as filters, if the attribute type allows the operator. + :param filter: Filter the products based on attributes, e.g., `deliveryMethod eq \"SAAS\"`. The supported operators are: - `PR` (present; `name pr`) - `EQ` (equal) - `NE` (not equal) - `CO` (contains; `text co \"searching\"`) - `SW` (starts with) - `EW` (ends with) - `GT` (greater than) - `LT` (less than) - `GE` (greater than or equal) - `LE` (less than or equal). These expressions can be logically linked with `AND` and `OR`. All attributes (and the special `text` attribute) can be used as filters, if the attribute type allows the operator. :type filter: str :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`. :type sort: str @@ -1180,6 +1187,7 @@ def list_catalog_products( :type _host_index: int, optional :return: Returns the result object. """ # noqa: E501 + warnings.warn("GET /v1/catalog/products is deprecated.", DeprecationWarning) _param = self._list_catalog_products_serialize( cursor=cursor, @@ -1229,7 +1237,7 @@ def list_catalog_products_with_http_info( filter: Annotated[ Optional[StrictStr], Field( - description='Filter the products based on attributes, e.g., `deliveryMethod eq "SAAS"`. The supported operators are: - `PR` (present; `name pr`) - `EQ` (equal) - `NE` (not equal) - `CO` (contains; `text co "searching"`) - `SW` (starts with) - `EW` (ends with) - `GT` (greater than) - `LT` (less than) - `GE` (greater than or equal) - `LE` (less than or equal). These expressions can be logically linked with `AND` and `OR`. All attributes (and the special `text` attribute) can be used as filters, if the attribute type allows the operator. ' + description='Filter the products based on attributes, e.g., `deliveryMethod eq "SAAS"`. The supported operators are: - `PR` (present; `name pr`) - `EQ` (equal) - `NE` (not equal) - `CO` (contains; `text co "searching"`) - `SW` (starts with) - `EW` (ends with) - `GT` (greater than) - `LT` (less than) - `GE` (greater than or equal) - `LE` (less than or equal). These expressions can be logically linked with `AND` and `OR`. All attributes (and the special `text` attribute) can be used as filters, if the attribute type allows the operator. ' ), ] = None, sort: Annotated[ @@ -1248,7 +1256,7 @@ def list_catalog_products_with_http_info( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> ApiResponse[ListCatalogProductsResponse]: - """List all products + """(Deprecated) List all products List all products. @@ -1258,7 +1266,7 @@ def list_catalog_products_with_http_info( :type limit: float :param locale: The language of the response. :type locale: str - :param filter: Filter the products based on attributes, e.g., `deliveryMethod eq \"SAAS\"`. The supported operators are: - `PR` (present; `name pr`) - `EQ` (equal) - `NE` (not equal) - `CO` (contains; `text co \"searching\"`) - `SW` (starts with) - `EW` (ends with) - `GT` (greater than) - `LT` (less than) - `GE` (greater than or equal) - `LE` (less than or equal). These expressions can be logically linked with `AND` and `OR`. All attributes (and the special `text` attribute) can be used as filters, if the attribute type allows the operator. + :param filter: Filter the products based on attributes, e.g., `deliveryMethod eq \"SAAS\"`. The supported operators are: - `PR` (present; `name pr`) - `EQ` (equal) - `NE` (not equal) - `CO` (contains; `text co \"searching\"`) - `SW` (starts with) - `EW` (ends with) - `GT` (greater than) - `LT` (less than) - `GE` (greater than or equal) - `LE` (less than or equal). These expressions can be logically linked with `AND` and `OR`. All attributes (and the special `text` attribute) can be used as filters, if the attribute type allows the operator. :type filter: str :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`. :type sort: str @@ -1283,6 +1291,7 @@ def list_catalog_products_with_http_info( :type _host_index: int, optional :return: Returns the result object. """ # noqa: E501 + warnings.warn("GET /v1/catalog/products is deprecated.", DeprecationWarning) _param = self._list_catalog_products_serialize( cursor=cursor, @@ -1332,7 +1341,7 @@ def list_catalog_products_without_preload_content( filter: Annotated[ Optional[StrictStr], Field( - description='Filter the products based on attributes, e.g., `deliveryMethod eq "SAAS"`. The supported operators are: - `PR` (present; `name pr`) - `EQ` (equal) - `NE` (not equal) - `CO` (contains; `text co "searching"`) - `SW` (starts with) - `EW` (ends with) - `GT` (greater than) - `LT` (less than) - `GE` (greater than or equal) - `LE` (less than or equal). These expressions can be logically linked with `AND` and `OR`. All attributes (and the special `text` attribute) can be used as filters, if the attribute type allows the operator. ' + description='Filter the products based on attributes, e.g., `deliveryMethod eq "SAAS"`. The supported operators are: - `PR` (present; `name pr`) - `EQ` (equal) - `NE` (not equal) - `CO` (contains; `text co "searching"`) - `SW` (starts with) - `EW` (ends with) - `GT` (greater than) - `LT` (less than) - `GE` (greater than or equal) - `LE` (less than or equal). These expressions can be logically linked with `AND` and `OR`. All attributes (and the special `text` attribute) can be used as filters, if the attribute type allows the operator. ' ), ] = None, sort: Annotated[ @@ -1351,7 +1360,7 @@ def list_catalog_products_without_preload_content( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """List all products + """(Deprecated) List all products List all products. @@ -1361,7 +1370,7 @@ def list_catalog_products_without_preload_content( :type limit: float :param locale: The language of the response. :type locale: str - :param filter: Filter the products based on attributes, e.g., `deliveryMethod eq \"SAAS\"`. The supported operators are: - `PR` (present; `name pr`) - `EQ` (equal) - `NE` (not equal) - `CO` (contains; `text co \"searching\"`) - `SW` (starts with) - `EW` (ends with) - `GT` (greater than) - `LT` (less than) - `GE` (greater than or equal) - `LE` (less than or equal). These expressions can be logically linked with `AND` and `OR`. All attributes (and the special `text` attribute) can be used as filters, if the attribute type allows the operator. + :param filter: Filter the products based on attributes, e.g., `deliveryMethod eq \"SAAS\"`. The supported operators are: - `PR` (present; `name pr`) - `EQ` (equal) - `NE` (not equal) - `CO` (contains; `text co \"searching\"`) - `SW` (starts with) - `EW` (ends with) - `GT` (greater than) - `LT` (less than) - `GE` (greater than or equal) - `LE` (less than or equal). These expressions can be logically linked with `AND` and `OR`. All attributes (and the special `text` attribute) can be used as filters, if the attribute type allows the operator. :type filter: str :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`. :type sort: str @@ -1386,6 +1395,7 @@ def list_catalog_products_without_preload_content( :type _host_index: int, optional :return: Returns the result object. """ # noqa: E501 + warnings.warn("GET /v1/catalog/products is deprecated.", DeprecationWarning) _param = self._list_catalog_products_serialize( cursor=cursor, diff --git a/services/stackitmarketplace/src/stackit/stackitmarketplace/models/__init__.py b/services/stackitmarketplace/src/stackit/stackitmarketplace/models/__init__.py index 880fdfc47..903487230 100644 --- a/services/stackitmarketplace/src/stackit/stackitmarketplace/models/__init__.py +++ b/services/stackitmarketplace/src/stackit/stackitmarketplace/models/__init__.py @@ -97,6 +97,7 @@ from stackit.stackitmarketplace.models.resolve_customer_payload import ( ResolveCustomerPayload, ) +from stackit.stackitmarketplace.models.scope import Scope from stackit.stackitmarketplace.models.service_certificate import ServiceCertificate from stackit.stackitmarketplace.models.subscription_lifecycle_state import ( SubscriptionLifecycleState, 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 0aacfb88b..b225a6b69 100644 --- a/services/stackitmarketplace/src/stackit/stackitmarketplace/models/catalog_product_detail.py +++ b/services/stackitmarketplace/src/stackit/stackitmarketplace/models/catalog_product_detail.py @@ -82,7 +82,7 @@ class CatalogProductDetail(BaseModel): ) 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.", + 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") diff --git a/services/stackitmarketplace/src/stackit/stackitmarketplace/models/catalog_product_pricing_option.py b/services/stackitmarketplace/src/stackit/stackitmarketplace/models/catalog_product_pricing_option.py index 4edacc2b6..c429dba6b 100644 --- a/services/stackitmarketplace/src/stackit/stackitmarketplace/models/catalog_product_pricing_option.py +++ b/services/stackitmarketplace/src/stackit/stackitmarketplace/models/catalog_product_pricing_option.py @@ -28,6 +28,7 @@ from stackit.stackitmarketplace.models.notice_period import NoticePeriod from stackit.stackitmarketplace.models.price_type import PriceType from stackit.stackitmarketplace.models.pricing_option_unit import PricingOptionUnit +from stackit.stackitmarketplace.models.scope import Scope class CatalogProductPricingOption(BaseModel): @@ -47,6 +48,7 @@ class CatalogProductPricingOption(BaseModel): default=None, description="Additional price type information.", alias="pricingPlan" ) rate: Optional[StrictStr] = Field(default=None, description="The price of the product (per unit).") + scope: Scope sku: StrictStr = Field(description="The concrete variant of the product.") sku_info: StrictStr = Field(description="Short description of this offering.", alias="skuInfo") sku_info_details: StrictStr = Field( @@ -62,6 +64,7 @@ class CatalogProductPricingOption(BaseModel): "priceType", "pricingPlan", "rate", + "scope", "sku", "skuInfo", "skuInfoDetails", @@ -149,6 +152,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "priceType": obj.get("priceType"), "pricingPlan": obj.get("pricingPlan"), "rate": obj.get("rate"), + "scope": obj.get("scope"), "sku": obj.get("sku"), "skuInfo": obj.get("skuInfo"), "skuInfoDetails": obj.get("skuInfoDetails"), diff --git a/services/stackitmarketplace/src/stackit/stackitmarketplace/models/scope.py b/services/stackitmarketplace/src/stackit/stackitmarketplace/models/scope.py new file mode 100644 index 000000000..cca1be50b --- /dev/null +++ b/services/stackitmarketplace/src/stackit/stackitmarketplace/models/scope.py @@ -0,0 +1,38 @@ +# 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 + +from __future__ import annotations + +import json +from enum import Enum + +from typing_extensions import Self + + +class Scope(str, Enum): + """ + The (visibility) scope. + """ + + """ + allowed enum values + """ + PUBLIC = "PUBLIC" + AUTHENTICATED = "AUTHENTICATED" + PRIVATE_PROJECT = "PRIVATE_PROJECT" + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of Scope from a JSON string""" + return cls(json.loads(json_str)) From 94bb088b3bb524ff677550f4cb5415f763727b36 Mon Sep 17 00:00:00 2001 From: Marcel Jacek Date: Tue, 11 Nov 2025 14:59:56 +0100 Subject: [PATCH 2/2] add changelog entries --- CHANGELOG.md | 3 +++ services/stackitmarketplace/CHANGELOG.md | 4 ++++ services/stackitmarketplace/pyproject.toml | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d9eb065fa..5bfe51297 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,9 @@ - Other new model classes: `BucketCredentials` - `alb` [v0.6.1](services/alb/CHANGELOG.md#v061) - **Docs:** Update description of field `WafConfigName` in `Listener` model +- `stackitmarketplace`: [v1.16.0](services/stackitmarketplace/CHANGELOG.md#v1160) + - **Feature:** Add new field `Scope` in `CatalogProductPricingOption` model + - **Deprecation:** Deprecated API methods `GetCatalogProduct`, `ListCatalogProducts` and `InquiriesCreateInquiry` ## Release (2025-10-29) - `stackitmarketplace`: [v1.15.0](services/stackitmarketplace/CHANGELOG.md#v1150) diff --git a/services/stackitmarketplace/CHANGELOG.md b/services/stackitmarketplace/CHANGELOG.md index 62a6ed3bc..64455b024 100644 --- a/services/stackitmarketplace/CHANGELOG.md +++ b/services/stackitmarketplace/CHANGELOG.md @@ -1,3 +1,7 @@ +## v1.16.0 +- **Feature:** Add new field `Scope` in `CatalogProductPricingOption` model +- **Deprecation:** Deprecated API methods `GetCatalogProduct`, `ListCatalogProducts` and `InquiriesCreateInquiry` + ## v1.15.0 - **Feature:** Add `EndUserLicenseAgreement`, `ProductDescription` and `ServiceLevelAgreement` attributes and add them to `Assets` struct diff --git a/services/stackitmarketplace/pyproject.toml b/services/stackitmarketplace/pyproject.toml index 03e603802..42e5ed479 100644 --- a/services/stackitmarketplace/pyproject.toml +++ b/services/stackitmarketplace/pyproject.toml @@ -3,7 +3,7 @@ name = "stackit-stackitmarketplace" [tool.poetry] name = "stackit-stackitmarketplace" -version = "v1.15.0" +version = "v1.16.0" authors = [ "STACKIT Developer Tools ", ]