Skip to main content

capo-securityhub: typed, async Python SDK for AWS Securityhub

capo-securityhub is a typed Python SDK for AWS Securityhub. It has an async client, AsyncSecurityHubClient, for asyncio and trio, and a sync client, SecurityHubClient, with the same methods. Requests and responses are typed with TypedDicts, so your editor and type checker know every field.

It is part of capo, a community-driven alternative to boto3 and aioboto3, built on its own HTTP stack instead of botocore and generated from the official AWS Smithy models. Documentation: https://capo-sdk.dev/services/securityhub/

Installation

pip install capo-securityhub

Usage

from capo_securityhub import AsyncSecurityHubClient


async def main():
    async with AsyncSecurityHubClient() as security_hub:
        # Example: call the accept_administrator_invitation operation
        response = await security_hub.accept_administrator_invitation()
        print(response)

Pagination

Some operations in this SDK support pagination. If the operation supports pagination it will have an iter_ prefixed method that returns an async iterator.

from capo_securityhub import AsyncSecurityHubClient


async def main():
    async with AsyncSecurityHubClient() as security_hub:
        # Example: paginate over describe_action_targets
        async for item in security_hub.iter_describe_action_targets():
            print(item)

Error Handling

The SDK raises exceptions for errors returned by the API. Catch them to handle failures gracefully.

from capo_securityhub import AsyncSecurityHubClient
from capo_securityhub.error import InternalException


async def main():
    async with AsyncSecurityHubClient() as security_hub:
        try:
            await security_hub.accept_administrator_invitation()
        except InternalException as e:
            print(f"Error: {e}")
            print(e.data)  # additional error data

Retrying

The SDK retries failed operations automatically. Retry behaviour follows the Smithy specification: errors are retried based on their is_retryable and is_throttling_error attributes. Throttling errors use a longer base delay. Network-level failures (connection errors and timeouts) are also retried. Non-retryable errors, such as client errors without the @retryable trait, are raised immediately without further attempts.

The number of attempts defaults to 3 and can be changed at the client level via retry_max_attempts, or per call via config_overrides.

from capo_securityhub import AsyncSecurityHubClient


async def main():
    async with AsyncSecurityHubClient() as security_hub:
        # Default: 3 attempts for every operation
        response = await security_hub.accept_administrator_invitation()

        # Override per operation
        response = await security_hub.accept_administrator_invitation(config_overrides={"retry_max_attempts": 5})

        # Disable retries for this call
        response = await security_hub.accept_administrator_invitation(config_overrides={"retry_max_attempts": 1})

Metadata

Release files for capo-securityhub 0.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for capo-securityhub 0.9.0
File Size Uploaded
capo_securityhub-0.9.0.tar.gz 643.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for capo-securityhub 0.9.0
File Interpreter ABI Platform
capo_securityhub-0.9.0-py3-none-any.whl Python 3 none any Details

Total release size: 2.4 MB

Release files / capo_securityhub-0.9.0.tar.gz

Download URL capo_securityhub-0.9.0.tar.gz
Size 643.8 kB
Tags Source
SHA-256 checksum
How to use checksums
a82676295b1f0f964bcdd0834a838703089e562a4ea6132c2e27706be5ccc71f
BLAKE2b-256 checksum
How to use checksums
0c1f6d1bf00bbeef2e3a6c34e7d6534958e01eeee5f3b7273f7e7f4446f27104
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / capo_securityhub-0.9.0-py3-none-any.whl

Download URL capo_securityhub-0.9.0-py3-none-any.whl
Size 1.7 MB
Tags Python 3
SHA-256 checksum
How to use checksums
e9bb58c5148f0f2e540858d65adc37e54b12db8b37dbb58e7ef6f7d53c5505ba
BLAKE2b-256 checksum
How to use checksums
97806ca02473948eb56186ddcdb11e4957cbff8e9ac229e18d6c5f6c5ab857d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.9.0 This release

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page