{"id":7821,"library":"types-boto3-secretsmanager","title":"Type Annotations for boto3 SecretsManager","description":"types-boto3-secretsmanager provides comprehensive type annotations for the `boto3` AWS Secrets Manager service, enhancing static analysis, code completion, and overall developer experience in Python projects. It is automatically generated by the `mypy-boto3-builder` and is currently at version 1.42.8, with releases closely tracking `boto3` updates to ensure compatibility and extensive type coverage across all service operations, paginators, and type definitions.","status":"active","version":"1.42.8","language":"en","source_language":"en","source_url":"https://github.com/youtype/mypy_boto3_builder","tags":["typing","mypy","boto3","aws","secretsmanager","type-stubs"],"install":[{"cmd":"pip install types-boto3-secretsmanager","lang":"bash","label":"Install standalone package"},{"cmd":"pip install 'boto3-stubs[secretsmanager]'","lang":"bash","label":"Install as part of boto3-stubs (recommended)"}],"dependencies":[{"reason":"Provides runtime functionality for which these are type stubs.","package":"boto3","optional":false},{"reason":"Minimum Python version required for generated stubs.","package":"python","optional":false}],"imports":[{"note":"The client type hint is imported directly from the stub package, not boto3 itself.","wrong":"from boto3.client import SecretsManagerClient","symbol":"SecretsManagerClient","correct":"from mypy_boto3_secretsmanager import SecretsManagerClient"},{"note":"Paginator type hints are located in the .paginator submodule.","symbol":"ListSecretsPaginator","correct":"from mypy_boto3_secretsmanager.paginator import ListSecretsPaginator"},{"note":"Literal types are available from the .literals submodule for stricter type checking.","symbol":"FilterNameStringTypeType","correct":"from mypy_boto3_secretsmanager.literals import FilterNameStringTypeType"},{"note":"Type definitions (TypedDicts, Unions) for service responses and parameters are in .type_defs.","symbol":"APIErrorTypeTypeDef","correct":"from mypy_boto3_secretsmanager.type_defs import APIErrorTypeTypeDef"},{"note":"For production deployments, wrap stub imports in `if TYPE_CHECKING:` to prevent adding a runtime dependency.","symbol":"TYPE_CHECKING for stubs","correct":"from typing import TYPE_CHECKING\nif TYPE_CHECKING:\n    from mypy_boto3_secretsmanager import SecretsManagerClient\nelse:\n    SecretsManagerClient = object"}],"quickstart":{"code":"import boto3\nfrom typing import TYPE_CHECKING\nimport os\n\n# Ensure AWS credentials are configured (e.g., via environment variables or ~/.aws/credentials)\n# os.environ['AWS_ACCESS_KEY_ID'] = 'YOUR_ACCESS_KEY'\n# os.environ['AWS_SECRET_ACCESS_KEY'] = 'YOUR_SECRET_KEY'\n# os.environ['AWS_REGION'] = 'us-east-1'\n\nif TYPE_CHECKING:\n    from mypy_boto3_secretsmanager import SecretsManagerClient\n\ndef get_secret_value_typed(secret_name: str, region_name: str) -> str:\n    session = boto3.session.Session()\n    client: SecretsManagerClient = session.client(\n        service_name='secretsmanager',\n        region_name=region_name,\n    )\n\n    try:\n        response = client.get_secret_value(\n            SecretId=secret_name\n        )\n        if 'SecretString' in response:\n            return response['SecretString']\n        elif 'SecretBinary' in response:\n            return response['SecretBinary'].decode('utf-8') # Assuming UTF-8 encoded binary\n    except client.exceptions.ResourceNotFoundException:\n        print(f\"Secret '{secret_name}' not found.\")\n    except client.exceptions.ClientError as e:\n        print(f\"An AWS client error occurred: {e}\")\n    return \"\"\n\n# Example usage (uncomment and replace with valid secret name and region)\n# if __name__ == \"__main__\":\n#     secret = get_secret_value_typed(\"my-test-secret\", os.environ.get('AWS_REGION', 'us-east-1'))\n#     if secret:\n#         print(f\"Retrieved secret: {secret}\")","lang":"python","description":"This quickstart demonstrates how to initialize a `boto3` Secrets Manager client and retrieve a secret value with the benefit of static type checking provided by `types-boto3-secretsmanager`. The `if TYPE_CHECKING:` block ensures that `mypy_boto3_secretsmanager` is only used for type analysis and not as a runtime dependency."},"warnings":[{"fix":"Upgrade your Python environment to 3.9 or newer.","message":"Starting with `mypy-boto3-builder` version 8.12.0 (which generated this package), Python 3.8 is no longer supported for generated stub packages. This applies to `types-boto3-secretsmanager` versions built with builder 8.12.0 or newer.","severity":"breaking","affected_versions":"mypy-boto3-builder >= 8.12.0 (and corresponding types-boto3-secretsmanager versions)"},{"fix":"Update your type checker (e.g., `pip install --upgrade mypy`) and ensure it's configured to recognize PEP 561-compliant stub packages.","message":"Following the migration to PEP 561 packages in `mypy-boto3-builder` 8.12.0, ensure your `mypy` or other type checker is up-to-date. Older versions might not correctly discover or utilize the stubs, leading to `Missing type stub` errors or incorrect type inference.","severity":"breaking","affected_versions":"mypy-boto3-builder >= 8.12.0 (and corresponding types-boto3-secretsmanager versions)"},{"fix":"Update your code to use the new `TypeDef` names as per the latest stub documentation. Your IDE or type checker should highlight these if you are using explicit type hints.","message":"In `mypy-boto3-builder` version 8.9.0, type definition (TypeDef) naming conventions changed. This includes shorter names for packed method arguments and revised postfix handling for conflicting `TypeDef` names (e.g., `CreateDistributionExtraRequestTypeDef` became `CreateDistributionRequestExtraTypeDef`).","severity":"breaking","affected_versions":"mypy-boto3-builder >= 8.9.0 (and corresponding types-boto3-secretsmanager versions)"},{"fix":"Use `from typing import TYPE_CHECKING; if TYPE_CHECKING: from mypy_boto3_secretsmanager import SecretsManagerClient` (and similar for other types), with fallback assignments to `object` in the `else` block if `pylint` complains.","message":"These packages provide only type stubs and are not intended for runtime use. To avoid adding `types-boto3-secretsmanager` as a production dependency and ensure it's only used by static analysis tools, wrap your type imports within an `if TYPE_CHECKING:` block.","severity":"gotcha","affected_versions":"All versions"}],"env_vars":null,"last_verified":"2026-04-16T00:00:00.000Z","next_check":"2026-07-15T00:00:00.000Z","problems":[{"fix":"Run `pip install types-boto3-secretsmanager` or `pip install 'boto3-stubs[secretsmanager]'`.","cause":"The `types-boto3-secretsmanager` package is not installed in your environment.","error":"ModuleNotFoundError: No module named 'mypy_boto3_secretsmanager'"},{"fix":"Ensure `types-boto3-secretsmanager` or `boto3-stubs[secretsmanager]` is installed and your type checker is correctly configured to discover PEP 561-compliant stub packages. Updating your type checker might also help.","cause":"Your type checker (e.g., mypy, pyright) cannot find type information for boto3 when using the Secrets Manager client.","error":"error: Missing type stub for 'boto3.client' (reportMissingStubs)"},{"fix":"Verify your import statement: `from mypy_boto3_secretsmanager import SecretsManagerClient`. Also, check if your type checker is up-to-date and configured for PEP 561 packages.","cause":"The `SecretsManagerClient` type was either not imported correctly, or your type checker is not resolving it properly.","error":"error: 'SecretsManagerClient' is not a known type (reportUnknownMemberAccess)"}]}