# coding: utf-8

"""
    Whisper Security API

    # Whisper Security Threat Intelligence API  The Whisper Security API provides comprehensive threat intelligence, geolocation data, and security operations capabilities for enterprise security teams and developers.  ## Key Capabilities  - **Indicator Enrichment**: Get comprehensive intelligence on IP addresses and domains including   geolocation, WHOIS, DNS, reputation scoring, and relationship mapping. - **Geolocation Services**: Fast IP-to-location lookups with ISP, ASN, and network information. - **Security Operations**: Asynchronous tools for bulk enrichment, infrastructure scanning,   AI-powered threat investigation, and monitoring.  ## API Design  - **RESTful**: Standard HTTP methods (GET, POST, PUT, DELETE) with JSON request/response bodies. - **Synchronous Endpoints**: Fast responses (<500ms) for indicator enrichment and geolocation. - **Asynchronous Jobs**: Long-running operations return a job ID for polling results. - **Consistent Error Handling**: Standardized error responses with status codes, error codes, and messages.  ## Authentication  All API endpoints require Bearer token authentication. Include your API key in the `Authorization` header: `Authorization: Bearer <your-api-key>`  ## Rate Limits  Rate limits are applied per-user and vary by endpoint category:  | Endpoint Category | Rate Limit | Description | |-------------------|------------|-------------| | Indicators (`/v1/indicators/*`) | 100 req/sec | Single indicator enrichment | | Location (`/v1/location/*`) | 100 req/sec | Geolocation lookups | | Jobs (`/v1/ops/jobs/*`) | 100 req/sec | Job status and listing | | Bulk Operations (`/v1/ops/enrichment/bulk`) | 10 req/sec | Bulk indicator processing | | Screenshots (`/v1/ops/screenshots/*`) | 10 req/sec | Screenshot capture and scheduling | | Scans (`/v1/ops/scans/*`) | 10 req/sec | Infrastructure scanning | | Monitoring (`/v1/ops/monitoring/*`) | 10 req/sec | Uptime monitoring | | Tracking (`/v1/ops/tracking/*`) | 10 req/sec | Change tracking | | AI Investigate (`/v1/ops/ai/investigate`) | 5 req/min | Deep threat investigation | | AI Correlate (`/v1/ops/ai/correlate`) | 5 req/min | Global correlation | | AI Attribute (`/v1/ops/ai/attribute`) | 5 req/min | Threat actor attribution | | AI Pivot (`/v1/ops/ai/pivot`) | 5 req/min | Infrastructure pivoting |  When rate limits are exceeded, the API returns HTTP `429 Too Many Requests` with a `Retry-After` header indicating when you can retry. The response body includes: ```json {   \"error\": \"Too Many Requests\",   \"message\": \"Rate limit exceeded for <category>. Please retry after N seconds.\",   \"retryAfter\": N } ```  ## Response Conventions  - All timestamps are in ISO 8601 format (UTC). - Pagination uses `limit` and `offset` parameters. - Field names use camelCase throughout the API.  ## Official SDKs  - **Python**: [github.com/whisper-sec/sdk-python](https://github.com/whisper-sec/sdk-python) - **TypeScript/JavaScript**: [github.com/whisper-sec/sdk-typescript](https://github.com/whisper-sec/sdk-typescript) - **Java**: [github.com/whisper-sec/sdk-java](https://github.com/whisper-sec/sdk-java) - **C#/.NET**: [github.com/whisper-sec/sdk-csharp](https://github.com/whisper-sec/sdk-csharp)  ## Resources  - **Website**: [whisper.security](https://whisper.security) - **Dashboard**: [dash.whisper.security](https://dash.whisper.security) - Manage API keys and view usage - **Documentation**: [docs.whisper.security](https://docs.whisper.security) - Guides and tutorials 

    The version of the OpenAPI document: 1.0.0
    Contact: support@whisper.security
    Generated by OpenAPI Generator (https://openapi-generator.tech)

    Do not edit the class manually.
"""  # noqa: E501


from setuptools import setup, find_packages  # noqa: H301

# To install the library, run the following
#
# python setup.py install
#
# prerequisite: setuptools
# http://pypi.python.org/pypi/setuptools
NAME = "whisper-api-sdk"
VERSION = "1.0.0"
PYTHON_REQUIRES = ">= 3.9"
REQUIRES = [
    "urllib3 >= 2.1.0, < 3.0.0",
    "python-dateutil >= 2.8.2",
    "pydantic >= 2",
    "typing-extensions >= 4.7.1",
]

setup(
    name=NAME,
    version=VERSION,
    description="Whisper Security API",
    author="Whisper Security Support",
    author_email="support@whisper.security",
    url="https://github.com/whisper-sec/sdk-python",
    keywords=["OpenAPI", "OpenAPI-Generator", "Whisper Security API"],
    install_requires=REQUIRES,
    packages=find_packages(exclude=["test", "tests"]),
    include_package_data=True,
    long_description_content_type='text/markdown',
    long_description="""\
    # Whisper Security Threat Intelligence API  The Whisper Security API provides comprehensive threat intelligence, geolocation data, and security operations capabilities for enterprise security teams and developers.  ## Key Capabilities  - **Indicator Enrichment**: Get comprehensive intelligence on IP addresses and domains including   geolocation, WHOIS, DNS, reputation scoring, and relationship mapping. - **Geolocation Services**: Fast IP-to-location lookups with ISP, ASN, and network information. - **Security Operations**: Asynchronous tools for bulk enrichment, infrastructure scanning,   AI-powered threat investigation, and monitoring.  ## API Design  - **RESTful**: Standard HTTP methods (GET, POST, PUT, DELETE) with JSON request/response bodies. - **Synchronous Endpoints**: Fast responses (&lt;500ms) for indicator enrichment and geolocation. - **Asynchronous Jobs**: Long-running operations return a job ID for polling results. - **Consistent Error Handling**: Standardized error responses with status codes, error codes, and messages.  ## Authentication  All API endpoints require Bearer token authentication. Include your API key in the &#x60;Authorization&#x60; header: &#x60;Authorization: Bearer &lt;your-api-key&gt;&#x60;  ## Rate Limits  Rate limits are applied per-user and vary by endpoint category:  | Endpoint Category | Rate Limit | Description | |-------------------|------------|-------------| | Indicators (&#x60;/v1/indicators/*&#x60;) | 100 req/sec | Single indicator enrichment | | Location (&#x60;/v1/location/*&#x60;) | 100 req/sec | Geolocation lookups | | Jobs (&#x60;/v1/ops/jobs/*&#x60;) | 100 req/sec | Job status and listing | | Bulk Operations (&#x60;/v1/ops/enrichment/bulk&#x60;) | 10 req/sec | Bulk indicator processing | | Screenshots (&#x60;/v1/ops/screenshots/*&#x60;) | 10 req/sec | Screenshot capture and scheduling | | Scans (&#x60;/v1/ops/scans/*&#x60;) | 10 req/sec | Infrastructure scanning | | Monitoring (&#x60;/v1/ops/monitoring/*&#x60;) | 10 req/sec | Uptime monitoring | | Tracking (&#x60;/v1/ops/tracking/*&#x60;) | 10 req/sec | Change tracking | | AI Investigate (&#x60;/v1/ops/ai/investigate&#x60;) | 5 req/min | Deep threat investigation | | AI Correlate (&#x60;/v1/ops/ai/correlate&#x60;) | 5 req/min | Global correlation | | AI Attribute (&#x60;/v1/ops/ai/attribute&#x60;) | 5 req/min | Threat actor attribution | | AI Pivot (&#x60;/v1/ops/ai/pivot&#x60;) | 5 req/min | Infrastructure pivoting |  When rate limits are exceeded, the API returns HTTP &#x60;429 Too Many Requests&#x60; with a &#x60;Retry-After&#x60; header indicating when you can retry. The response body includes: &#x60;&#x60;&#x60;json {   \&quot;error\&quot;: \&quot;Too Many Requests\&quot;,   \&quot;message\&quot;: \&quot;Rate limit exceeded for &lt;category&gt;. Please retry after N seconds.\&quot;,   \&quot;retryAfter\&quot;: N } &#x60;&#x60;&#x60;  ## Response Conventions  - All timestamps are in ISO 8601 format (UTC). - Pagination uses &#x60;limit&#x60; and &#x60;offset&#x60; parameters. - Field names use camelCase throughout the API.  ## Official SDKs  - **Python**: [github.com/whisper-sec/sdk-python](https://github.com/whisper-sec/sdk-python) - **TypeScript/JavaScript**: [github.com/whisper-sec/sdk-typescript](https://github.com/whisper-sec/sdk-typescript) - **Java**: [github.com/whisper-sec/sdk-java](https://github.com/whisper-sec/sdk-java) - **C#/.NET**: [github.com/whisper-sec/sdk-csharp](https://github.com/whisper-sec/sdk-csharp)  ## Resources  - **Website**: [whisper.security](https://whisper.security) - **Dashboard**: [dash.whisper.security](https://dash.whisper.security) - Manage API keys and view usage - **Documentation**: [docs.whisper.security](https://docs.whisper.security) - Guides and tutorials 
    """,  # noqa: E501
    package_data={"whisper_api_sdk": ["py.typed"]},
)