# coding: utf-8

"""
    Internet Insights API

    **Note:** All Internet Insights APIs are not available for ThousandEyes for Government instance.  We are happy to announce the release of the Internet Insights API set. This limited release includes endpoints that:  * Make our catalog provider and Internet outage data accessible to API users. * Provide access to advanced filtering, which is part of our next-generation API efforts to allow API users to fine-tune queries across all of our APIs in a consistent manner.  Internet Insights provide visibility into core Internet infrastructure, including ISPs, DNS providers, IaaS, CDNs , and SaaS providers. It tracks the macro-level impact of Internet events on individual users and enterprise networks connecting at the edge of the Internet. These events include Outages, Routing hijacks and leaks, DDoS attacks, And political interference, among others.  Future releases of the Internet Insights API set will further unlock access to core Internet Insights functionality, unlocking potential integrations to enrich customer process flows.  For more information about Internet Insights, see the [Internet Insights](https://docs.thousandeyes.com/product-documentation/internet-insights). 

    Generated by OpenAPI Generator (https://openapi-generator.tech)

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


import json

from sdk_test_support.mock_server_types import ErrorResponseExpectation, OperationExpectation

OPERATION_MANIFEST = {

    "filter_catalog_providers": OperationExpectation(
        operation_id="filter_catalog_providers",
        method="POST",
        path="/internet-insights/catalog/providers/filter",
        path_param_examples={
        },
        success_status=200,
        success_body=json.loads("""

                {
                  "_links" : {
                    "self" : {
                      "hreflang" : "hreflang",
                      "templated" : true,
                      "profile" : "profile",
                      "name" : "name",
                      "href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
                      "type" : "type",
                      "deprecation" : "deprecation",
                      "title" : "title"
                    }
                  },
                  "providers" : [ {
                    "interfacesCount" : 15,
                    "locationsCount" : 50,
                    "_links" : {
                      "self" : {
                        "hreflang" : "hreflang",
                        "templated" : true,
                        "profile" : "profile",
                        "name" : "name",
                        "href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
                        "type" : "type",
                        "deprecation" : "deprecation",
                        "title" : "title"
                      }
                    },
                    "countriesCount" : 2,
                    "dataType" : "Application",
                    "id" : "85602a0a-54a7-4e97-946e-67492ef1fa26",
                    "region" : "North America",
                    "asnsCount" : 10,
                    "included" : true,
                    "providerName" : "Amazon Web Services",
                    "providerType" : "IAAS"
                  }, {
                    "interfacesCount" : 15,
                    "locationsCount" : 50,
                    "_links" : {
                      "self" : {
                        "hreflang" : "hreflang",
                        "templated" : true,
                        "profile" : "profile",
                        "name" : "name",
                        "href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
                        "type" : "type",
                        "deprecation" : "deprecation",
                        "title" : "title"
                      }
                    },
                    "countriesCount" : 2,
                    "dataType" : "Application",
                    "id" : "85602a0a-54a7-4e97-946e-67492ef1fa26",
                    "region" : "North America",
                    "asnsCount" : 10,
                    "included" : true,
                    "providerName" : "Amazon Web Services",
                    "providerType" : "IAAS"
                  } ]
                }

                """),

        success_content_type="application/json",

        request_body_example=json.loads("""

                {
                  "providerName" : "Amazon Web Services",
                  "providerType" : "IAAS",
                  "region" : "North America",
                  "location" : "San Jose, US",
                  "asn" : "Amazon.com, Inc.",
                  "included" : true
                }

                """),
        error_responses={

            "400": ErrorResponseExpectation(
                status=400,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "errors" : [ {
                    "code" : "code",
                    "field" : "field",
                    "message" : "message"
                  }, {
                    "code" : "code",
                    "field" : "field",
                    "message" : "message"
                  } ],
                  "status" : 0
                }"""),
                content_type="application/json",
            ),

            "401": ErrorResponseExpectation(
                status=401,
                body=json.loads("""
                {
                  "error_description" : "Invalid access token",
                  "error" : "invalid_token"
                }"""),
                content_type="application/json",
            ),

            "403": ErrorResponseExpectation(
                status=403,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "status" : 6
                }"""),
                content_type="application/json",
            ),

            "404": ErrorResponseExpectation(
                status=404,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "status" : 6
                }"""),
                content_type="application/json",
            ),

            "429": ErrorResponseExpectation(
                status=429,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "status" : 6
                }"""),
                content_type="application/json",
            ),

            "500": ErrorResponseExpectation(
                status=500,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "status" : 6
                }"""),
                content_type="application/json",
            ),

            "502": ErrorResponseExpectation(
                status=502,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "status" : 6
                }"""),
                content_type="application/json",
            ),

        },
    ),

    "get_catalog_provider": OperationExpectation(
        operation_id="get_catalog_provider",
        method="GET",
        path="/internet-insights/catalog/providers/{providerId}",
        path_param_examples={
            "providerId": '85602a0a-54a7-4e97-946e-67492ef1fa26',
        },
        success_status=200,
        success_body=json.loads("""

                {
                  "_links" : {
                    "self" : {
                      "hreflang" : "hreflang",
                      "templated" : true,
                      "profile" : "profile",
                      "name" : "name",
                      "href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
                      "type" : "type",
                      "deprecation" : "deprecation",
                      "title" : "title"
                    }
                  },
                  "dataType" : "Application",
                  "asns" : [ {
                    "name" : "LVLT-1 - Level 3 Communications, Inc.",
                    "id" : 1
                  }, {
                    "name" : "LVLT-1 - Level 3 Communications, Inc.",
                    "id" : 1
                  } ],
                  "locations" : [ {
                    "interfacesCount" : 5,
                    "location" : "San Jose, US"
                  }, {
                    "interfacesCount" : 5,
                    "location" : "San Jose, US"
                  } ],
                  "id" : "85602a0a-54a7-4e97-946e-67492ef1fa26",
                  "region" : "North America",
                  "providerName" : "Amazon Web Services",
                  "providerType" : "IAAS"
                }

                """),

        success_content_type="application/json",

        request_body_example=None,
        error_responses={

            "400": ErrorResponseExpectation(
                status=400,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "errors" : [ {
                    "code" : "code",
                    "field" : "field",
                    "message" : "message"
                  }, {
                    "code" : "code",
                    "field" : "field",
                    "message" : "message"
                  } ],
                  "status" : 0
                }"""),
                content_type="application/json",
            ),

            "401": ErrorResponseExpectation(
                status=401,
                body=json.loads("""
                {
                  "error_description" : "Invalid access token",
                  "error" : "invalid_token"
                }"""),
                content_type="application/json",
            ),

            "403": ErrorResponseExpectation(
                status=403,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "status" : 6
                }"""),
                content_type="application/json",
            ),

            "404": ErrorResponseExpectation(
                status=404,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "status" : 6
                }"""),
                content_type="application/json",
            ),

            "429": ErrorResponseExpectation(
                status=429,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "status" : 6
                }"""),
                content_type="application/json",
            ),

            "500": ErrorResponseExpectation(
                status=500,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "status" : 6
                }"""),
                content_type="application/json",
            ),

            "502": ErrorResponseExpectation(
                status=502,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "status" : 6
                }"""),
                content_type="application/json",
            ),

        },
    ),

    "filter_outages": OperationExpectation(
        operation_id="filter_outages",
        method="POST",
        path="/internet-insights/outages/filter",
        path_param_examples={
        },
        success_status=200,
        success_body=json.loads("""

                {
                  "_links" : {
                    "self" : {
                      "hreflang" : "hreflang",
                      "templated" : true,
                      "profile" : "profile",
                      "name" : "name",
                      "href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
                      "type" : "type",
                      "deprecation" : "deprecation",
                      "title" : "title"
                    }
                  },
                  "outages" : [ {
                    "affectedInterfacesCount" : 1,
                    "endDate" : "2022-03-01T23:31:11Z",
                    "_links" : {
                      "self" : {
                        "hreflang" : "hreflang",
                        "templated" : true,
                        "profile" : "profile",
                        "name" : "name",
                        "href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
                        "type" : "type",
                        "deprecation" : "deprecation",
                        "title" : "title"
                      }
                    },
                    "affectedLocationsCount" : 1,
                    "endRoundId" : 1646177700,
                    "affectedTestsCount" : 1,
                    "type" : "app",
                    "providerType" : "SAAS",
                    "duration" : 214,
                    "startRoundId" : 1646177400,
                    "name" : "Google",
                    "id" : "xxxxxxxxxxxxxxxxxx1",
                    "affectedServersCount" : 2,
                    "asn" : 19994,
                    "providerName" : "Google",
                    "startDate" : "2022-03-01T23:31:11Z"
                  }, {
                    "affectedInterfacesCount" : 1,
                    "endDate" : "2022-03-01T23:31:11Z",
                    "_links" : {
                      "self" : {
                        "hreflang" : "hreflang",
                        "templated" : true,
                        "profile" : "profile",
                        "name" : "name",
                        "href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
                        "type" : "type",
                        "deprecation" : "deprecation",
                        "title" : "title"
                      }
                    },
                    "affectedLocationsCount" : 1,
                    "endRoundId" : 1646177700,
                    "affectedTestsCount" : 1,
                    "type" : "app",
                    "providerType" : "SAAS",
                    "duration" : 214,
                    "startRoundId" : 1646177400,
                    "name" : "Google",
                    "id" : "xxxxxxxxxxxxxxxxxx1",
                    "affectedServersCount" : 2,
                    "asn" : 19994,
                    "providerName" : "Google",
                    "startDate" : "2022-03-01T23:31:11Z"
                  } ]
                }

                """),

        success_content_type="application/json",

        request_body_example=json.loads("""

                {
                  "startDate" : "2022-03-01T01:30:00Z",
                  "endDate" : "2022-03-01T23:30:15Z",
                  "outageScope" : "all",
                  "providerName" : [ "Telia", "Amazon" ],
                  "interfaceNetwork" : [ "Telianet", "Cloudflare" ],
                  "applicationName" : [ "slack", "facebook" ]
                }

                """),
        error_responses={

            "400": ErrorResponseExpectation(
                status=400,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "errors" : [ {
                    "code" : "code",
                    "field" : "field",
                    "message" : "message"
                  }, {
                    "code" : "code",
                    "field" : "field",
                    "message" : "message"
                  } ],
                  "status" : 0
                }"""),
                content_type="application/json",
            ),

            "401": ErrorResponseExpectation(
                status=401,
                body=json.loads("""
                {
                  "error_description" : "Invalid access token",
                  "error" : "invalid_token"
                }"""),
                content_type="application/json",
            ),

            "403": ErrorResponseExpectation(
                status=403,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "status" : 6
                }"""),
                content_type="application/json",
            ),

            "404": ErrorResponseExpectation(
                status=404,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "status" : 6
                }"""),
                content_type="application/json",
            ),

            "429": ErrorResponseExpectation(
                status=429,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "status" : 6
                }"""),
                content_type="application/json",
            ),

            "500": ErrorResponseExpectation(
                status=500,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "status" : 6
                }"""),
                content_type="application/json",
            ),

            "502": ErrorResponseExpectation(
                status=502,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "status" : 6
                }"""),
                content_type="application/json",
            ),

        },
    ),

    "get_app_outage": OperationExpectation(
        operation_id="get_app_outage",
        method="GET",
        path="/internet-insights/outages/app/{outageId}",
        path_param_examples={
            "outageId": 'F73E24F17E4996923196826A208BB572508A8EB13BEE14B0',
        },
        success_status=200,
        success_body=json.loads("""

                {
                  "affectedDomains" : [ "amazon.com", "amazon.com" ],
                  "affectedTests" : [ {
                    "name" : "amazon-test2",
                    "id" : 5
                  }, {
                    "name" : "amazon-test2",
                    "id" : 5
                  } ],
                  "endDate" : "2023-01-27T20:53:51.256Z",
                  "_links" : {
                    "self" : {
                      "hreflang" : "hreflang",
                      "templated" : true,
                      "profile" : "profile",
                      "name" : "name",
                      "href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
                      "type" : "type",
                      "deprecation" : "deprecation",
                      "title" : "title"
                    }
                  },
                  "endRoundId" : 1674852600,
                  "providerType" : "SAAS",
                  "duration" : 180,
                  "startRoundId" : 1674852600,
                  "affectedAgents" : [ {
                    "name" : "London, England",
                    "id" : 11
                  }, {
                    "name" : "London, England",
                    "id" : 11
                  } ],
                  "id" : "0CC4C4209887126DE42E92252FB43962CBB3193147F318EA",
                  "providerName" : "Amazon Web Services",
                  "applicationName" : "Amazon Web Services",
                  "startDate" : "2023-01-27T20:50:51.256Z",
                  "errors" : [ "HTTP_SERVER_TIMEOUT", "HTTP_SERVER_TIMEOUT" ],
                  "affectedLocations" : [ {
                    "location" : "Chicago, Illinois, US",
                    "affectedServers" : [ {
                      "prefix" : "123.176.185.0/23",
                      "domain" : "amazon.com"
                    }, {
                      "prefix" : "123.176.185.0/23",
                      "domain" : "amazon.com"
                    } ]
                  }, {
                    "location" : "Chicago, Illinois, US",
                    "affectedServers" : [ {
                      "prefix" : "123.176.185.0/23",
                      "domain" : "amazon.com"
                    }, {
                      "prefix" : "123.176.185.0/23",
                      "domain" : "amazon.com"
                    } ]
                  } ]
                }

                """),

        success_content_type="application/json",

        request_body_example=None,
        error_responses={

            "400": ErrorResponseExpectation(
                status=400,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "errors" : [ {
                    "code" : "code",
                    "field" : "field",
                    "message" : "message"
                  }, {
                    "code" : "code",
                    "field" : "field",
                    "message" : "message"
                  } ],
                  "status" : 0
                }"""),
                content_type="application/json",
            ),

            "401": ErrorResponseExpectation(
                status=401,
                body=json.loads("""
                {
                  "error_description" : "Invalid access token",
                  "error" : "invalid_token"
                }"""),
                content_type="application/json",
            ),

            "403": ErrorResponseExpectation(
                status=403,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "status" : 6
                }"""),
                content_type="application/json",
            ),

            "404": ErrorResponseExpectation(
                status=404,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "status" : 6
                }"""),
                content_type="application/json",
            ),

            "429": ErrorResponseExpectation(
                status=429,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "status" : 6
                }"""),
                content_type="application/json",
            ),

            "500": ErrorResponseExpectation(
                status=500,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "status" : 6
                }"""),
                content_type="application/json",
            ),

            "502": ErrorResponseExpectation(
                status=502,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "status" : 6
                }"""),
                content_type="application/json",
            ),

        },
    ),

    "get_network_outage": OperationExpectation(
        operation_id="get_network_outage",
        method="GET",
        path="/internet-insights/outages/net/{outageId}",
        path_param_examples={
            "outageId": '694D8656960F34F76489BCE5E9BCD58EC53027462740D75F',
        },
        success_status=200,
        success_body=json.loads("""

                {
                  "affectedDomains" : [ "periodic-failure.com", "periodic-failure.com" ],
                  "affectedTests" : [ {
                    "name" : "amazon-test2",
                    "id" : 5
                  }, {
                    "name" : "amazon-test2",
                    "id" : 5
                  } ],
                  "endDate" : "2023-01-27T20:53:51.256Z",
                  "_links" : {
                    "self" : {
                      "hreflang" : "hreflang",
                      "templated" : true,
                      "profile" : "profile",
                      "name" : "name",
                      "href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
                      "type" : "type",
                      "deprecation" : "deprecation",
                      "title" : "title"
                    }
                  },
                  "networkName" : "Rackspace Hosting",
                  "endRoundId" : 1674852600,
                  "providerType" : "IAAS",
                  "duration" : 180,
                  "startRoundId" : 1674852600,
                  "affectedAgents" : [ {
                    "name" : "London, England",
                    "id" : 11
                  }, {
                    "name" : "London, England",
                    "id" : 11
                  } ],
                  "id" : "8EF2760862C705783A2F8BCBAAABB44F28DBC670DBA3B610",
                  "asn" : 19994,
                  "providerName" : "Rackspace",
                  "startDate" : "2023-01-27T20:50:51.256Z",
                  "affectedLocations" : [ {
                    "affectedInterfaces" : [ "50.51.52.53", "50.51.52.53" ],
                    "location" : "Chicago, Illinois, US"
                  }, {
                    "affectedInterfaces" : [ "50.51.52.53", "50.51.52.53" ],
                    "location" : "Chicago, Illinois, US"
                  } ]
                }

                """),

        success_content_type="application/json",

        request_body_example=None,
        error_responses={

            "400": ErrorResponseExpectation(
                status=400,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "errors" : [ {
                    "code" : "code",
                    "field" : "field",
                    "message" : "message"
                  }, {
                    "code" : "code",
                    "field" : "field",
                    "message" : "message"
                  } ],
                  "status" : 0
                }"""),
                content_type="application/json",
            ),

            "401": ErrorResponseExpectation(
                status=401,
                body=json.loads("""
                {
                  "error_description" : "Invalid access token",
                  "error" : "invalid_token"
                }"""),
                content_type="application/json",
            ),

            "403": ErrorResponseExpectation(
                status=403,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "status" : 6
                }"""),
                content_type="application/json",
            ),

            "404": ErrorResponseExpectation(
                status=404,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "status" : 6
                }"""),
                content_type="application/json",
            ),

            "429": ErrorResponseExpectation(
                status=429,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "status" : 6
                }"""),
                content_type="application/json",
            ),

            "500": ErrorResponseExpectation(
                status=500,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "status" : 6
                }"""),
                content_type="application/json",
            ),

            "502": ErrorResponseExpectation(
                status=502,
                body=json.loads("""
                {
                  "instance" : "instance",
                  "detail" : "detail",
                  "type" : "type",
                  "title" : "title",
                  "status" : 6
                }"""),
                content_type="application/json",
            ),

        },
    ),

}
