Skip to content

Commit 1b4a57e

Browse files
refactor(parameters): improve typing for get_secret method (aws-powertools#3910)
fix: add overloads for get_secret function Co-authored-by: Leandro Damascena <[email protected]>
1 parent c8c01ec commit 1b4a57e

File tree

1 file changed

+44
-2
lines changed
  • aws_lambda_powertools/utilities/parameters

1 file changed

+44
-2
lines changed

aws_lambda_powertools/utilities/parameters/secrets.py

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@
33
"""
44

55
import os
6-
from typing import TYPE_CHECKING, Any, Dict, Optional, Union
6+
from typing import TYPE_CHECKING, Any, Dict, Literal, Optional, Union, overload
77

88
import boto3
99
from botocore.config import Config
1010

11+
from aws_lambda_powertools.utilities.parameters.types import TransformOptions
12+
1113
if TYPE_CHECKING:
1214
from mypy_boto3_secretsmanager import SecretsManagerClient
1315

@@ -116,9 +118,49 @@ def _get_multiple(self, path: str, **sdk_options) -> Dict[str, str]:
116118
raise NotImplementedError()
117119

118120

121+
@overload
122+
def get_secret(
123+
name: str,
124+
transform: None = None,
125+
force_fetch: bool = False,
126+
max_age: Optional[int] = None,
127+
**sdk_options,
128+
) -> str: ...
129+
130+
131+
@overload
132+
def get_secret(
133+
name: str,
134+
transform: Literal["json"],
135+
force_fetch: bool = False,
136+
max_age: Optional[int] = None,
137+
**sdk_options,
138+
) -> dict: ...
139+
140+
141+
@overload
142+
def get_secret(
143+
name: str,
144+
transform: Literal["binary"],
145+
force_fetch: bool = False,
146+
max_age: Optional[int] = None,
147+
**sdk_options,
148+
) -> Union[str, dict, bytes]: ...
149+
150+
151+
@overload
152+
def get_secret(
153+
name: str,
154+
transform: Literal["auto"],
155+
force_fetch: bool = False,
156+
max_age: Optional[int] = None,
157+
**sdk_options,
158+
) -> bytes: ...
159+
160+
119161
def get_secret(
120162
name: str,
121-
transform: Optional[str] = None,
163+
transform: TransformOptions = None,
122164
force_fetch: bool = False,
123165
max_age: Optional[int] = None,
124166
**sdk_options,

0 commit comments

Comments
 (0)