- Notifications
You must be signed in to change notification settings - Fork2
Open
Description
Hello,
I want to create a access key without an expiry. But I keep running into an pydantic problem.
I am running this code:
config=Configuration()client=DefaultApi(config)name="abc"project_id=os.getenv("OS_PROJECT_NAME")cred_grp_resp=client.create_credentials_group(project_id,"eu01",CreateCredentialsGroupPayload(displayName=name) )acc_key_resp=client.create_access_key(project_id,"eu01",CreateAccessKeyPayload(),cred_grp_resp.credentials_group.credentials_group_id, )
The error I am getting is:
File "/app/pylfc/s3.py", line 196, in create_bucket_credentials acc_key_resp = client.create_access_key( File "/usr/local/lib/python3.10/dist-packages/pydantic/_internal/_validate_call.py", line 39, in wrapper_function return wrapper(*args, **kwargs) File "/usr/local/lib/python3.10/dist-packages/pydantic/_internal/_validate_call.py", line 136, in __call__ res = self.__pydantic_validator__.validate_python(pydantic_core.ArgsKwargs(args, kwargs)) File "/usr/local/lib/python3.10/dist-packages/stackit/objectstorage/api/default_api.py", line 139, in create_access_key return self.api_client.response_deserialize( File "/usr/local/lib/python3.10/dist-packages/stackit/objectstorage/api_client.py", line 275, in response_deserialize return_data = self.deserialize(response_text, response_type, content_type) File "/usr/local/lib/python3.10/dist-packages/stackit/objectstorage/api_client.py", line 363, in deserialize return self.__deserialize(data, response_type) File "/usr/local/lib/python3.10/dist-packages/stackit/objectstorage/api_client.py", line 408, in __deserialize return self.__deserialize_model(data, klass) File "/usr/local/lib/python3.10/dist-packages/stackit/objectstorage/api_client.py", line 626, in __deserialize_model return klass.from_dict(data) File "/usr/local/lib/python3.10/dist-packages/stackit/objectstorage/models/create_access_key_response.py", line 87, in from_dict _obj = cls.model_validate( File "/usr/local/lib/python3.10/dist-packages/pydantic/main.py", line 693, in model_validate return cls.__pydantic_validator__.validate_python(pydantic_core._pydantic_core.ValidationError: 1 validation error for CreateAccessKeyResponseexpires Input should be a valid string [type=string_type, input_value=None, input_type=NoneType] For further information visit https://errors.pydantic.dev/2.11/v/string_typeI seems the "CreateAccessKeyPayload" accepts an "None" expiry date, which is allowed looing at the api docs, but the CreateAccessKeyResponse requires it the field to be a string and not None.
Using the same code but setting an "expires" allows me to create the key:
acc_key_resp=client.create_access_key(project_id,"eu01",CreateAccessKeyPayload(expires=datetime(2026,1,1)),cred_grp_resp.credentials_group.credentials_group_id, )
Asking for a fix. Kind regards, Sebastian