{
  "analysis_inclusion": {
    "associated_brazilian_resources": [
      {
        "country": "BR",
        "family": "ipv4",
        "organization": "Nokia Solutions and Networks do Brasil Telec. LTDA",
        "registry": "nicbr",
        "resource": "189.50.64.0/20",
        "source": "nicbr"
      }
    ],
    "details": [
      "ASN externo incluído porque o snapshot NIC.br o associa à origem de recurso brasileiro."
    ],
    "reason": "nicbr_resource_origin_association",
    "reason_code": "nicbr_origin_association_with_external_authority"
  },
  "announced_prefixes": [
    {
      "address_family": 4,
      "analysis_scope": {
        "national_relevance": "out_of_scope",
        "national_statistics_eligible": false,
        "reason": "O recurso observado não é brasileiro segundo o registro territorial congelado do ciclo; IRR/RPKI podem ser exibidos como contexto, mas não entram no score brasileiro nem nas estatísticas nacionais.",
        "reason_code": "resource_not_brazilian",
        "score_eligible": false
      },
      "brazilian_relevance": {
        "category": "foreign_resource",
        "reason": "Prefixo registrado fora do Brasil; aparece porque o relatório é por ASN e inclui todos os anúncios observados.",
        "reason_code": "resource_not_brazilian"
      },
      "delegation_origins": [],
      "delegation_status": "not_applicable",
      "irr_origins": [],
      "irr_query_sources": [],
      "irr_sources": [],
      "irr_status": "missing",
      "is_bogon": false,
      "is_too_specific": false,
      "notes": [
        "Nenhum objeto IRR route/route6 exato foi encontrado para este anúncio BGP observado.",
        "Nenhum ROA cobrindo este anúncio foi encontrado.",
        "Este prefixo é registrado fora do Brasil. Ele aparece porque o relatório cobre todos os anúncios BGP observados deste ASN; não é um dos recursos brasileiros que justificam a inclusão no TC Analysis."
      ],
      "origin_as": "AS39784",
      "prefix": "93.183.19.0/24",
      "registry_origin_association": {
        "associated_asns": [],
        "observed_origin_asn": "AS39784",
        "reason": "Este prefixo é registrado fora do Brasil. Ele aparece porque o relatório cobre todos os anúncios BGP observados deste ASN; não é um dos recursos brasileiros que justificam a inclusão no TC Analysis.",
        "reason_code": "resource_not_brazilian",
        "resource_country": "FI",
        "resource_registry": "ripencc",
        "status": "not_applicable"
      },
      "resource_registry": {
        "country": "FI",
        "date": "20080519",
        "delegated_status": "allocated",
        "match_type": "bgp_more_specific",
        "prefix": "93.183.0.0/18",
        "reason_code": "covering_resource_registry_record",
        "registry": "ripencc",
        "source": "rir_delegated",
        "status": "known"
      },
      "rpki_status": "not_found",
      "severity": "warning",
      "tags": [
        "irr:missing",
        "rpki:not_found",
        "delegation:not_applicable"
      ],
      "tc_irr_origins": []
    },
    {
      "address_family": 4,
      "analysis_scope": {
        "national_relevance": "in_scope",
        "national_statistics_eligible": true,
        "reason": "O recurso observado é brasileiro segundo o registro territorial congelado do ciclo.",
        "reason_code": "resource_country_br",
        "score_eligible": true
      },
      "brazilian_relevance": {
        "category": "associated_brazilian_resource",
        "reason": "Recurso brasileiro com associação cadastral NIC.br compatível com a origem BGP observada.",
        "reason_code": "compatible_nicbr_origin_association"
      },
      "delegation_origins": [
        "AS39784"
      ],
      "delegation_status": "valid",
      "irr_origins": [],
      "irr_query_sources": [],
      "irr_sources": [],
      "irr_status": "missing",
      "is_bogon": false,
      "is_too_specific": false,
      "notes": [
        "Nenhum objeto IRR route/route6 exato foi encontrado para este anúncio BGP observado.",
        "Nenhum ROA cobrindo este anúncio foi encontrado."
      ],
      "origin_as": "AS39784",
      "prefix": "189.50.68.0/24",
      "registry_origin_association": {
        "associated_asns": [
          "AS39784"
        ],
        "match_type": "bgp_more_specific",
        "match_types": [
          "bgp_more_specific"
        ],
        "matched_resources": [
          "189.50.64.0/20"
        ],
        "observed_origin_asn": "AS39784",
        "organizations": [
          "Nokia Solutions and Networks do Brasil Telec. LTDA"
        ],
        "reason": "A origem BGP observada está entre os ASNs associados ao recurso brasileiro no snapshot NIC.br.",
        "reason_code": "observed_origin_is_registered_association",
        "source": "nicbr",
        "status": "compatible"
      },
      "resource_registry": {
        "country": "BR",
        "date": "20070716",
        "delegated_status": "allocated",
        "match_type": "bgp_more_specific",
        "prefix": "189.50.64.0/20",
        "reason_code": "covering_resource_registry_record",
        "registry": "lacnic",
        "source": "rir_delegated",
        "status": "known"
      },
      "rpki_status": "not_found",
      "severity": "warning",
      "tags": [
        "irr:missing",
        "rpki:not_found",
        "delegation:valid"
      ],
      "tc_irr_origins": []
    }
  ],
  "artifact_set_id": "ce96dfb49615be68",
  "asn": "AS39784",
  "asn_registry": {
    "authoritative_rir": "ripencc",
    "country": "FI",
    "delegated_status": "allocated",
    "source": "rir_delegated",
    "status": "known"
  },
  "asn_scope": "external_authorized",
  "build_commit": "774ee6ce216a5c7dd39e835a8e9df6b9cb3dc00d",
  "country": "FI",
  "cycle_id": "20260810T224520Z-774ee6c-22493d",
  "cycle_started_at": "2026-08-10T22:45:21Z",
  "downstreams": [],
  "generated_at": "2026-08-10T23:25:52Z",
  "ix_memberships": [],
  "left_neighbours": [
    "AS3356",
    "AS12956"
  ],
  "metadata": {
    "bgp_observation": {
      "announcements_source": "ripestat_announced_prefixes",
      "cache_configured": true,
      "cache_status": "ok",
      "cache_ttl_seconds": 21600,
      "earliest_time": "2000-08-01T00:00:00Z",
      "effective_window": {
        "endtime": "2026-08-10T16:00:00Z",
        "starttime": "2026-07-27T16:00:00Z"
      },
      "endpoint": "announced-prefixes",
      "from_cache": false,
      "latest_time": "2026-08-10T16:00:00Z",
      "min_peers_seeing": 10,
      "per_prefix_first_seen": null,
      "per_prefix_last_seen": null,
      "per_prefix_peer_count": null,
      "prefix_count": 2,
      "query_endtime": "2026-08-10T16:00:00Z",
      "query_parameters": {
        "min_peers_seeing": 10,
        "resource": "AS39784",
        "sourceapp": "tc-irr-analysis"
      },
      "query_starttime": "2026-07-27T16:00:00Z",
      "request_finished_at": "2026-08-10T23:14:17Z",
      "request_started_at": "2026-08-10T23:14:16Z",
      "requested_window": {
        "endtime": null,
        "starttime": null
      },
      "resource": "AS39784",
      "response_data_fields": [
        "earliest_time",
        "latest_time",
        "prefixes",
        "query_endtime",
        "query_starttime",
        "resource"
      ],
      "response_prefix_fields": [
        "prefix",
        "timelines"
      ],
      "source": "RIPEstat"
    },
    "country_source": "delegation",
    "display": {
      "neighbour_limit": 50
    },
    "external_irrd_mode": "missing",
    "irr_timing_summary": {
      "RADB/external-origin": {
        "avg_ms": 0.005,
        "cache": 2,
        "count": 2,
        "error": 0,
        "max_ms": 0.006,
        "ok": 0,
        "total_ms": 0.01
      },
      "TC,DELEGATED/local": {
        "avg_ms": 0.005,
        "cache": 2,
        "count": 2,
        "error": 0,
        "max_ms": 0.005,
        "ok": 0,
        "total_ms": 0.01
      },
      "TC,DELEGATED/local-aut-num": {
        "avg_ms": 0.036,
        "cache": 1,
        "count": 1,
        "error": 0,
        "max_ms": 0.036,
        "ok": 0,
        "total_ms": 0.036
      }
    },
    "irr_timings": [
      {
        "elapsed_ms": 0.036,
        "host": "127.0.0.1",
        "port": 43,
        "prefix": "AS39784",
        "service": "irrd",
        "source": "TC,DELEGATED",
        "status": "cache",
        "target": "local-aut-num"
      },
      {
        "elapsed_ms": 0.006,
        "host": "whois.radb.net",
        "port": 43,
        "prefix": "AS39784",
        "service": "irrd",
        "source": "RADB",
        "status": "cache",
        "target": "external-origin"
      },
      {
        "elapsed_ms": 0.004,
        "host": "whois.radb.net",
        "port": 43,
        "prefix": "AS39784",
        "service": "irrd",
        "source": "RADB",
        "status": "cache",
        "target": "external-origin"
      },
      {
        "elapsed_ms": 0.005,
        "host": "127.0.0.1",
        "port": 43,
        "prefix": "93.183.19.0/24",
        "service": "irrd",
        "source": "TC,DELEGATED",
        "status": "cache",
        "target": "local"
      },
      {
        "elapsed_ms": 0.005,
        "host": "127.0.0.1",
        "port": 43,
        "prefix": "189.50.68.0/24",
        "service": "irrd",
        "source": "TC,DELEGATED",
        "status": "cache",
        "target": "local"
      }
    ],
    "irrd_cache_ttl_seconds": 86400,
    "metadata_source": "RIPEstat",
    "neighbour_count": 2,
    "neighbours_observation": {
      "accepted_neighbour_count": 2,
      "accepted_observation_count": 2,
      "cache_configured": true,
      "cache_lookup": "miss",
      "cache_status": "ok",
      "cache_ttl_seconds": 21600,
      "collection_error": null,
      "collection_skipped": false,
      "conflicting_neighbours": [],
      "conflicting_neighbours_limit": 50,
      "conflicting_neighbours_truncated": false,
      "downstream_count": 0,
      "duplicate_neighbour_count": 0,
      "duplicate_observation_count": 0,
      "earliest_time": "2019-06-30T00:00:00Z",
      "endpoint": "asn-neighbours",
      "from_cache": false,
      "invalid_neighbour_count": 0,
      "latest_time": "2026-08-10T00:00:00Z",
      "left_neighbour_count": 2,
      "multi_position_neighbour_count": 0,
      "multi_position_neighbours": [],
      "neighbour_observation_details": [
        {
          "asn": "AS12956",
          "power": 56,
          "type": "left",
          "v4_peers": 112,
          "v6_peers": 0
        },
        {
          "asn": "AS3356",
          "power": 228,
          "type": "left",
          "v4_peers": 557,
          "v6_peers": 0
        }
      ],
      "normalization_applied": true,
      "partial_response": false,
      "peer_count": 0,
      "peers_sample_limit": 50,
      "query_endtime": "2026-08-10T00:00:00Z",
      "query_parameters": {
        "resource": "AS39784",
        "sourceapp": "tc-irr-analysis"
      },
      "query_starttime": "2026-08-10T00:00:00Z",
      "request_finished_at": "2026-08-10T23:25:52Z",
      "request_started_at": "2026-08-10T23:25:51Z",
      "resource": "AS39784",
      "response_data_fields": [
        "earliest_time",
        "latest_time",
        "neighbour_counts",
        "neighbours",
        "query_endtime",
        "query_starttime",
        "resource"
      ],
      "response_neighbour_count": 2,
      "response_neighbour_fields": [
        "asn",
        "power",
        "type",
        "v4_peers",
        "v6_peers"
      ],
      "right_neighbour_count": 0,
      "source": "RIPEstat",
      "source_neighbour_counts": {
        "left": 2,
        "right": 0,
        "uncertain": 0,
        "unique": 2
      },
      "source_neighbour_counts_match_observations": true,
      "source_neighbour_counts_mismatch": false,
      "source_neighbour_counts_mismatch_details": [],
      "type_conflict_neighbour_count": 0,
      "uncertain_neighbour_count": 0,
      "unique_neighbour_count": 2,
      "upstream_count": 2
    },
    "nicbr_delegation_dataset_status": "collected",
    "peer_count": 0,
    "peers_sample": [],
    "resource_registry_dataset_status": "collected",
    "ripestat_cache_ttl_seconds": 21600,
    "ripestat_timing_summary": {
      "as-overview": {
        "avg_ms": 718.527,
        "cache": 0,
        "count": 1,
        "error": 0,
        "max_ms": 718.527,
        "ok": 1,
        "total_ms": 718.527
      },
      "asn-neighbours": {
        "avg_ms": 738.453,
        "cache": 0,
        "count": 1,
        "error": 0,
        "max_ms": 738.453,
        "ok": 1,
        "total_ms": 738.453
      }
    },
    "ripestat_timings": [
      {
        "cache_lookup": {
          "key": "https://stat.ripe.net/data/as-overview/data.json?resource=AS39784&sourceapp=tc-irr-analysis",
          "state": "miss"
        },
        "elapsed_ms": 718.527,
        "endpoint": "as-overview",
        "query_parameters": {
          "resource": "AS39784",
          "sourceapp": "tc-irr-analysis"
        },
        "request_finished_at": "2026-08-10T23:25:51Z",
        "request_started_at": "2026-08-10T23:25:50Z",
        "service": "ripestat",
        "status": "ok"
      },
      {
        "cache_lookup": {
          "key": "https://stat.ripe.net/data/asn-neighbours/data.json?resource=AS39784&sourceapp=tc-irr-analysis",
          "state": "miss"
        },
        "elapsed_ms": 738.453,
        "endpoint": "asn-neighbours",
        "query_parameters": {
          "resource": "AS39784",
          "sourceapp": "tc-irr-analysis"
        },
        "request_finished_at": "2026-08-10T23:25:52Z",
        "request_started_at": "2026-08-10T23:25:51Z",
        "service": "ripestat",
        "status": "ok"
      }
    ],
    "rpki_cache_ttl_seconds": 86400,
    "rpki_source": "local_vrp",
    "rpki_vrp_count": 875,
    "rpki_vrp_filter_prefix_count": 21407,
    "rpki_vrp_input_count": 988585,
    "source_neighbour_counts": {
      "left": 2,
      "right": 0,
      "uncertain": 0,
      "unique": 2
    },
    "tc_irr_registration": {
      "collection_error": null,
      "matched_sources": [],
      "object_class": "aut-num",
      "query_sources": [],
      "registered": false,
      "resource": "AS39784",
      "source": "IRRd",
      "status": "not_registered"
    },
    "uncertain_neighbours": []
  },
  "multi_position_neighbours": [],
  "name": "NOKIANET_Amsterdam Nokia Oyj",
  "prefix_summary": {
    "analysis_scope": {
      "in_scope": 1,
      "out_of_scope": 1
    },
    "delegation": {
      "valid": 1
    },
    "irr": {
      "missing": 1
    },
    "national_statistics_eligible_prefix_count": 1,
    "prefix_count": 2,
    "rpki": {
      "not_found": 1
    },
    "score_eligible_prefix_count": 1,
    "severity": {
      "warning": 1
    },
    "tags": {
      "delegation:not_applicable": 1,
      "delegation:valid": 1,
      "irr:missing": 2,
      "rpki:not_found": 2
    },
    "technical_severity": {
      "warning": 2
    }
  },
  "right_neighbours": [],
  "ruleset_version": 4,
  "schema_version": 2,
  "score_scope": {
    "denominator_reason": "resource_country_br",
    "excluded_non_br": 1,
    "in_scope_brazilian_prefixes": 1,
    "national_statistics_eligible_prefixes": 1,
    "observed_prefixes": 2,
    "out_of_scope_prefixes": 1,
    "score_denominator": 1,
    "score_eligible_prefixes": 1,
    "unknown_scope": 0,
    "unknown_scope_prefixes": 0
  },
  "tool_version": "0.2.1",
  "uncertain_neighbours": [],
  "universe_sha256": "8e18fde2c18114c161c056bc5aa16df6f9dbafec548d547e8482910a9d334040",
  "upstreams": [
    "AS3356",
    "AS12956"
  ]
}
