1515
1616import json
1717import pprint
18+ import re # noqa: F401
1819from typing import Any , ClassVar , Dict , List , Optional , Set
1920
20- from pydantic import BaseModel , ConfigDict , Field , StrictStr
21+ from pydantic import BaseModel , ConfigDict , Field , StrictStr , field_validator
2122from typing_extensions import Annotated , Self
2223
2324from stackit .kms .models .access_scope import AccessScope
@@ -37,7 +38,8 @@ class CreateWrappingKeyPayload(BaseModel):
3738 default = None , description = "A user chosen description to distinguish multiple wrapping keys."
3839 )
3940 display_name : Annotated [str , Field (strict = True , max_length = 64 )] = Field (
40- description = "The display name to distinguish multiple wrapping keys." , alias = "displayName"
41+ description = "The display name to distinguish multiple wrapping keys. Valid characters: letters, digits, underscores and hyphens." ,
42+ alias = "displayName" ,
4143 )
4244 protection : Protection
4345 purpose : WrappingPurpose
@@ -50,6 +52,13 @@ class CreateWrappingKeyPayload(BaseModel):
5052 "purpose" ,
5153 ]
5254
55+ @field_validator ("display_name" )
56+ def display_name_validate_regular_expression (cls , value ):
57+ """Validates the regular expression"""
58+ if not re .match (r"^[a-zA-Z0-9_-]+$" , value ):
59+ raise ValueError (r"must validate the regular expression /^[a-zA-Z0-9_-]+$/" )
60+ return value
61+
5362 model_config = ConfigDict (
5463 populate_by_name = True ,
5564 validate_assignment = True ,
0 commit comments