diff --git a/services/stackitmarketplace/src/stackit/stackitmarketplace/models/catalog_product_details_vendor.py b/services/stackitmarketplace/src/stackit/stackitmarketplace/models/catalog_product_details_vendor.py index e39ac175..f110cbf7 100644 --- a/services/stackitmarketplace/src/stackit/stackitmarketplace/models/catalog_product_details_vendor.py +++ b/services/stackitmarketplace/src/stackit/stackitmarketplace/models/catalog_product_details_vendor.py @@ -38,7 +38,9 @@ class CatalogProductDetailsVendor(BaseModel): description: StrictStr = Field(description="The vendor description.") logo: Union[StrictBytes, StrictStr] = Field(description="The logo base64 encoded.") name: Annotated[str, Field(strict=True, max_length=512)] = Field(description="The product's vendor name.") - vendor_id: object = Field(alias="vendorId") + vendor_id: Annotated[str, Field(min_length=36, strict=True, max_length=36)] = Field( + description="Universally Unique Identifier (UUID).", alias="vendorId" + ) video_url: Annotated[str, Field(strict=True, max_length=512)] = Field( description="The vendor video URL.", alias="videoUrl" ) @@ -54,6 +56,15 @@ def name_validate_regular_expression(cls, value): raise ValueError(r"must validate the regular expression /^[a-zA-ZäüöÄÜÖ0-9,.!?()@\/:=\n\t -]+$/") return value + @field_validator("vendor_id") + def vendor_id_validate_regular_expression(cls, value): + """Validates the regular expression""" + 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): + raise ValueError( + 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}$/" + ) + return value + @field_validator("video_url") def video_url_validate_regular_expression(cls, value): """Validates the regular expression""" diff --git a/services/stackitmarketplace/src/stackit/stackitmarketplace/models/catalog_product_overview_vendor.py b/services/stackitmarketplace/src/stackit/stackitmarketplace/models/catalog_product_overview_vendor.py index 0d5d2f10..e6a26e6c 100644 --- a/services/stackitmarketplace/src/stackit/stackitmarketplace/models/catalog_product_overview_vendor.py +++ b/services/stackitmarketplace/src/stackit/stackitmarketplace/models/catalog_product_overview_vendor.py @@ -29,7 +29,9 @@ class CatalogProductOverviewVendor(BaseModel): """ name: Annotated[str, Field(strict=True, max_length=512)] = Field(description="The product's vendor name.") - vendor_id: object = Field(alias="vendorId") + vendor_id: Annotated[str, Field(min_length=36, strict=True, max_length=36)] = Field( + description="Universally Unique Identifier (UUID).", alias="vendorId" + ) website_url: Annotated[str, Field(strict=True, max_length=512)] = Field( description="Uniform Resource Locator.", alias="websiteUrl" ) @@ -42,6 +44,15 @@ def name_validate_regular_expression(cls, value): raise ValueError(r"must validate the regular expression /^[a-zA-ZäüöÄÜÖ0-9,.!?()@\/:=\n\t -]+$/") return value + @field_validator("vendor_id") + def vendor_id_validate_regular_expression(cls, value): + """Validates the regular expression""" + 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): + raise ValueError( + 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}$/" + ) + return value + @field_validator("website_url") def website_url_validate_regular_expression(cls, value): """Validates the regular expression""" diff --git a/services/stackitmarketplace/src/stackit/stackitmarketplace/models/vendor_subscription.py b/services/stackitmarketplace/src/stackit/stackitmarketplace/models/vendor_subscription.py index e0194804..1bbfef6e 100644 --- a/services/stackitmarketplace/src/stackit/stackitmarketplace/models/vendor_subscription.py +++ b/services/stackitmarketplace/src/stackit/stackitmarketplace/models/vendor_subscription.py @@ -16,10 +16,11 @@ import json import pprint +import re from typing import Any, ClassVar, Dict, List, Optional, Set -from pydantic import BaseModel, ConfigDict, Field -from typing_extensions import Self +from pydantic import BaseModel, ConfigDict, Field, field_validator +from typing_extensions import Annotated, Self from stackit.stackitmarketplace.models.subscription_lifecycle_state import ( SubscriptionLifecycleState, @@ -33,12 +34,45 @@ class VendorSubscription(BaseModel): """ lifecycle_state: SubscriptionLifecycleState = Field(alias="lifecycleState") - organization_id: object = Field(alias="organizationId") + organization_id: Annotated[str, Field(min_length=36, strict=True, max_length=36)] = Field( + description="Universally Unique Identifier (UUID).", alias="organizationId" + ) product: SubscriptionProduct - project_id: object = Field(alias="projectId") - subscription_id: object = Field(alias="subscriptionId") + project_id: Annotated[str, Field(min_length=36, strict=True, max_length=36)] = Field( + description="Universally Unique Identifier (UUID).", alias="projectId" + ) + subscription_id: Annotated[str, Field(min_length=36, strict=True, max_length=36)] = Field( + description="Universally Unique Identifier (UUID).", alias="subscriptionId" + ) __properties: ClassVar[List[str]] = ["lifecycleState", "organizationId", "product", "projectId", "subscriptionId"] + @field_validator("organization_id") + def organization_id_validate_regular_expression(cls, value): + """Validates the regular expression""" + 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): + raise ValueError( + 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}$/" + ) + return value + + @field_validator("project_id") + def project_id_validate_regular_expression(cls, value): + """Validates the regular expression""" + 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): + raise ValueError( + 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}$/" + ) + return value + + @field_validator("subscription_id") + def subscription_id_validate_regular_expression(cls, value): + """Validates the regular expression""" + 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): + raise ValueError( + 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}$/" + ) + return value + model_config = ConfigDict( populate_by_name=True, validate_assignment=True,