{"library":"mypy-boto3-cloudtrail-data","title":"mypy-boto3-cloudtrail-data Type Annotations","description":"Provides type annotations for `boto3`'s CloudTrailDataService, generated by `mypy-boto3-builder`. It enhances static type checking and IDE auto-completion for `boto3` users, currently supporting `boto3` version 1.42.3. Releases follow `boto3`'s release cycle to ensure compatibility.","language":"python","status":"active","last_verified":"Thu May 14","install":{"commands":["pip install mypy-boto3-cloudtrail-data boto3"],"cli":null},"imports":["from mypy_boto3_cloudtrail_data.client import CloudTrailDataServiceClient","from mypy_boto3_cloudtrail_data.type_defs import PutAuditEventsRequestRequestTypeDef","from mypy_boto3_cloudtrail_data.type_defs import PutAuditEventsResponseTypeDef"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import boto3\nfrom typing import TYPE_CHECKING, List, Dict, Any\n\nif TYPE_CHECKING:\n    from mypy_boto3_cloudtrail_data.client import CloudTrailDataServiceClient\n    from mypy_boto3_cloudtrail_data.type_defs import (AuditRecordEntryTypeDef, PutAuditEventsRequestRequestTypeDef, PutAuditEventsResponseTypeDef)\n\n\ndef put_cloudtrail_audit_events(event_data_store_id: str, audit_events: List[AuditRecordEntryTypeDef]) -> PutAuditEventsResponseTypeDef:\n    \"\"\"Puts audit events into CloudTrail Lake with type hints.\"\"\"\n    # Boto3 client without type hint - mypy will complain if mypy-boto3 is installed\n    # Use TYPE_CHECKING guard for production code to avoid runtime dependency on mypy-boto3\n    if TYPE_CHECKING:\n        client: CloudTrailDataServiceClient = boto3.client(\"cloudtrail-data\")\n    else:\n        client = boto3.client(\"cloudtrail-data\")\n\n    # Example request payload with type hint\n    request_payload: PutAuditEventsRequestRequestTypeDef = {\n        \"audit_events\": audit_events,\n        \"EventDataStore\": event_data_store_id\n    }\n\n    print(f\"Putting {len(audit_events)} audit events into {event_data_store_id}...\")\n    response: PutAuditEventsResponseTypeDef = client.put_audit_events(**request_payload)\n    print(f\"Result: {response['FailedEntries']}\")\n    return response\n\n\nif __name__ == \"__main__\":\n    # Replace with your actual Event Data Store ID\n    # For a runnable example, ensure AWS credentials are configured (e.g., via AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)\n    # and an existing CloudTrail Lake Event Data Store ID is provided.\n    sample_event_data_store_id = \"your-event-data-store-id\" # os.environ.get('CLOUD_TRAIL_DATA_STORE_ID', 'your-event-data-store-id')\n\n    sample_audit_events: List[AuditRecordEntryTypeDef] = [\n        {\n            \"EventID\": \"example-event-id-1\",\n            \"EventData\": \"{\\\"eventVersion\\\":\\\"1.08\\\",\\\"userIdentity\\\":{\\\"type\\\":\\\"IAMUser\\\",\\\"principalId\\\":\\\"AIDAJ45Q7YDR2T3W4XXXB\\\",\\\"arn\\\":\\\"arn:aws:iam::123456789012:user/Alice\\\",\\\"accountId\\\":\\\"123456789012\\\",\\\"userName\\\":\\\"Alice\\\"},\\\"eventTime\\\":\\\"2026-04-11T12:00:00Z\\\",\\\"eventSource\\\":\\\"my.application.com\\\",\\\"eventName\\\":\\\"Login\\\",\\\"awsRegion\\\":\\\"us-east-1\\\",\\\"sourceIPAddress\\\":\\\"203.0.113.1\\\",\\\"userAgent\\\":\\\"Mozilla/5.0\\\",\\\"requestParameters\\\":null,\\\"responseElements\\\":null}\",\n            \"EventDataChecksum\": \"string\", # Optional, required if provided for integrity check\n            \"ExternalID\": \"string\" # Optional\n        },\n        {\n            \"EventID\": \"example-event-id-2\",\n            \"EventData\": \"{\\\"eventVersion\\\":\\\"1.08\\\",\\\"userIdentity\\\":{\\\"type\\\":\\\"IAMUser\\\",\\\"principalId\\\":\\\"AIDAJ45Q7YDR2T3W4XXXC\\\",\\\"arn\\\":\\\"arn:aws:iam::123456789012:user/Bob\\\",\\\"accountId\\\":\\\"123456789012\\\",\\\"userName\\\":\\\"Bob\\\"},\\\"eventTime\\\":\\\"2026-04-11T12:01:00Z\\\",\\\"eventSource\\\":\\\"my.application.com\\\",\\\"eventName\\\":\\\"Logout\\\",\\\"awsRegion\\\":\\\"us-east-1\\\",\\\"sourceIPAddress\\\":\\\"203.0.113.2\\\",\\\"userAgent\\\":\\\"Chrome\\\",\\\"requestParameters\\\":null,\\\"responseElements\\\":null}\"\n        }\n    ]\n\n    try:\n        # Ensure to replace 'your-event-data-store-id' with a valid ID from your AWS account\n        if sample_event_data_store_id == 'your-event-data-store-id':\n            print(\"Please replace 'your-event-data-store-id' with a valid CloudTrail Lake Event Data Store ID.\")\n        else:\n            result = put_cloudtrail_audit_events(sample_event_data_store_id, sample_audit_events)\n            if result.get(\"FailedEntries\"):\n                print(f\"Some events failed: {result['FailedEntries']}\")\n            else:\n                print(\"All events successfully put.\")\n    except Exception as e:\n        print(f\"An error occurred: {e}\")\n","lang":"python","description":"This example demonstrates how to use the `mypy-boto3-cloudtrail-data` type annotations with a `boto3` client to put audit events into AWS CloudTrail Lake. It showcases explicit type hints for the client and the request/response payloads, which enable static type checking and improved IDE support.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-14","installed_version":"1.43.0","pypi_latest":"1.43.0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":3.7,"avg_import_s":0.59,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"mypy-boto3-cloudtrail-data","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.52,"mem_mb":12.5,"disk_size":"51.0M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"mypy-boto3-cloudtrail-data","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.66,"mem_mb":12.4,"disk_size":"50.9M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"mypy-boto3-cloudtrail-data","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.9,"import_time_s":0.44,"mem_mb":12.5,"disk_size":"52M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"mypy-boto3-cloudtrail-data","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.44,"mem_mb":12.4,"disk_size":"51M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"mypy-boto3-cloudtrail-data","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.7,"mem_mb":14.4,"disk_size":"54.0M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"mypy-boto3-cloudtrail-data","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.84,"mem_mb":14.2,"disk_size":"53.9M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"mypy-boto3-cloudtrail-data","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.7,"import_time_s":0.65,"mem_mb":14.4,"disk_size":"55M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"mypy-boto3-cloudtrail-data","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.66,"mem_mb":14.2,"disk_size":"54M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"mypy-boto3-cloudtrail-data","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.62,"mem_mb":13.5,"disk_size":"45.3M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"mypy-boto3-cloudtrail-data","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.77,"mem_mb":13.4,"disk_size":"45.2M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"mypy-boto3-cloudtrail-data","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.3,"import_time_s":0.63,"mem_mb":13.5,"disk_size":"46M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"mypy-boto3-cloudtrail-data","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.66,"mem_mb":13.4,"disk_size":"46M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"mypy-boto3-cloudtrail-data","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.57,"mem_mb":14.4,"disk_size":"45.0M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"mypy-boto3-cloudtrail-data","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.66,"mem_mb":14.3,"disk_size":"44.8M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"mypy-boto3-cloudtrail-data","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3,"import_time_s":0.61,"mem_mb":14.4,"disk_size":"46M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"mypy-boto3-cloudtrail-data","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.69,"mem_mb":14.3,"disk_size":"45M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"mypy-boto3-cloudtrail-data","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.41,"mem_mb":11.7,"disk_size":"50.4M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"mypy-boto3-cloudtrail-data","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.43,"mem_mb":11.7,"disk_size":"50.4M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"mypy-boto3-cloudtrail-data","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.6,"import_time_s":0.43,"mem_mb":11.7,"disk_size":"51M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"mypy-boto3-cloudtrail-data","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.43,"mem_mb":11.7,"disk_size":"51M"}]}}