diff --git a/services/iaas/src/stackit/iaas/models/allowed_addresses_inner.py b/services/iaas/src/stackit/iaas/models/allowed_addresses_inner.py index eb37911c..3c9969c4 100644 --- a/services/iaas/src/stackit/iaas/models/allowed_addresses_inner.py +++ b/services/iaas/src/stackit/iaas/models/allowed_addresses_inner.py @@ -16,6 +16,7 @@ import json import pprint +import re from typing import Any, Dict, Optional, Set, Union from pydantic import ( @@ -38,11 +39,23 @@ class AllowedAddressesInner(BaseModel): # data type: str oneof_schema_1_validator: Optional[Annotated[str, Field(strict=True)]] = Field( - default=None, description="Object that represents an IP address." + default=None, + description="Object that represents an IP address.", + pattern=re.sub( + r"^\/|\/$", + "", + "/((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$))/", + ), ) # data type: str oneof_schema_2_validator: Optional[Annotated[str, Field(strict=True)]] = Field( - default=None, description="Classless Inter-Domain Routing (CIDR)." + default=None, + description="Classless Inter-Domain Routing (CIDR).", + pattern=re.sub( + r"^\/|\/$", + "", + "/^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\/(3[0-2]|2[0-9]|1[0-9]|[0-9]))$|^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))(\/((1(1[0-9]|2[0-8]))|([0-9][0-9])|([0-9])))?$/", + ), ) actual_instance: Optional[Union[str]] = None one_of_schemas: Set[str] = {"str"} diff --git a/services/iaas/src/stackit/iaas/models/area_id.py b/services/iaas/src/stackit/iaas/models/area_id.py index ba44e8a5..a11190da 100644 --- a/services/iaas/src/stackit/iaas/models/area_id.py +++ b/services/iaas/src/stackit/iaas/models/area_id.py @@ -16,6 +16,7 @@ import json import pprint +import re from typing import Any, Dict, Optional, Set, Union from pydantic import ( @@ -39,8 +40,10 @@ class AreaId(BaseModel): """ # data type: str - oneof_schema_1_validator: Optional[Annotated[str, Field(min_length=36, strict=True, max_length=36)]] = Field( - default=None, description="Universally Unique Identifier (UUID)." + oneof_schema_1_validator: Optional[Annotated[str, Field(strict=True)]] = Field( + default=None, + description="Universally Unique Identifier (UUID).", + pattern=re.sub(r"^\/|\/$", "", "/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/"), ) # data type: StaticAreaID oneof_schema_2_validator: Optional[StaticAreaID] = None diff --git a/services/iaas/src/stackit/iaas/models/create_protocol.py b/services/iaas/src/stackit/iaas/models/create_protocol.py index 534e2063..2c0202db 100644 --- a/services/iaas/src/stackit/iaas/models/create_protocol.py +++ b/services/iaas/src/stackit/iaas/models/create_protocol.py @@ -22,7 +22,6 @@ BaseModel, ConfigDict, Field, - StrictStr, ValidationError, field_validator, ) @@ -42,7 +41,7 @@ class CreateProtocol(BaseModel): default=None, description="The protocol number which the rule should match." ) # data type: str - oneof_schema_2_validator: Optional[StrictStr] = Field( + oneof_schema_2_validator: Optional[Annotated[str, Field(strict=True)]] = Field( default=None, description="The protocol name which the rule should match. Possible values: `ah`, `dccp`, `egp`, `esp`, `gre`, `icmp`, `igmp`, `ipip`, `ipv6-encap`, `ipv6-frag`, `ipv6-icmp`, `ipv6-nonxt`, `ipv6-opts`, `ipv6-route`, `ospf`, `pgm`, `rsvp`, `sctp`, `tcp`, `udp`, `udplite`, `vrrp`.", )