# 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


import unittest

from whisper_api_sdk.models.benchmark_response import BenchmarkResponse

class TestBenchmarkResponse(unittest.TestCase):
    """BenchmarkResponse unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional) -> BenchmarkResponse:
        """Test BenchmarkResponse
            include_optional is a boolean, when False only required
            params are included, when True both required and
            optional params are included """
        # uncomment below to create an instance of `BenchmarkResponse`
        """
        model = BenchmarkResponse()
        if include_optional:
            return BenchmarkResponse(
                query = whisper_api_sdk.models.query_info.QueryInfo(
                    indicator = '', 
                    indicator_type = '', 
                    history_type = '', 
                    timestamp = '', 
                    response_time_ms = 56, ),
                industry = whisper_api_sdk.models.industry_info.IndustryInfo(
                    code = 'financial_services', 
                    description = '', 
                    display_name = 'Financial Services', ),
                metrics = whisper_api_sdk.models.benchmark_metrics.BenchmarkMetrics(
                    average_risk_score = 45.2, 
                    mttd_hours = 4.5, 
                    mttr_hours = 12.3, 
                    detection_rate = 78.5, 
                    false_positive_rate = 12.3, 
                    incidents_per_month = 8.5, ),
                percentiles = whisper_api_sdk.models.percentile_info.PercentileInfo(
                    p25 = 32.1, 
                    p50 = 44.8, 
                    p75 = 58.3, 
                    p90 = 72.1, ),
                threat_profile = whisper_api_sdk.models.threat_profile.ThreatProfile(
                    top_threats = [
                        ''
                        ], 
                    common_vectors = [
                        ''
                        ], 
                    attack_frequency = '', 
                    targeted_assets = [
                        ''
                        ], ),
                trends = whisper_api_sdk.models.trend_data.TrendData(
                    direction = 'improving', 
                    risk_trend30d = '', 
                    change_percent = 1.337, ),
                benchmark_info = whisper_api_sdk.models.benchmark_info.BenchmarkInfo(
                    data_as_of = '', 
                    sample_size = 1250, 
                    collection_period = '', )
            )
        else:
            return BenchmarkResponse(
        )
        """

    def testBenchmarkResponse(self):
        """Test BenchmarkResponse"""
        # inst_req_only = self.make_instance(include_optional=False)
        # inst_req_and_optional = self.make_instance(include_optional=True)

if __name__ == '__main__':
    unittest.main()
