Skip to content

Commit 7b924d2

Browse files
jcyamachohramezani
andauthored
Add support for AWS Secrets Manager VersionId parameter (#708)
Co-authored-by: Hasan Ramezani <[email protected]>
1 parent 61e0b46 commit 7b924d2

File tree

1 file changed

+8
-1
lines changed
  • pydantic_settings/sources/providers

1 file changed

+8
-1
lines changed

pydantic_settings/sources/providers/aws.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,12 @@ def __init__(
4343
env_nested_delimiter: str | None = '--',
4444
env_parse_none_str: str | None = None,
4545
env_parse_enums: bool | None = None,
46+
version_id: str | None = None,
4647
) -> None:
4748
import_aws_secrets_manager()
4849
self._secretsmanager_client = boto3_client('secretsmanager', region_name=region_name, endpoint_url=endpoint_url) # type: ignore
4950
self._secret_id = secret_id
51+
self._version_id = version_id
5052
super().__init__(
5153
settings_cls,
5254
case_sensitive=case_sensitive,
@@ -58,7 +60,12 @@ def __init__(
5860
)
5961

6062
def _load_env_vars(self) -> Mapping[str, str | None]:
61-
response = self._secretsmanager_client.get_secret_value(SecretId=self._secret_id) # type: ignore
63+
request = {'SecretId': self._secret_id}
64+
65+
if self._version_id:
66+
request['VersionId'] = self._version_id
67+
68+
response = self._secretsmanager_client.get_secret_value(**request) # type: ignore
6269

6370
return parse_env_vars(
6471
json.loads(response['SecretString']),

0 commit comments

Comments
 (0)