1// Copyright 2023 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15syntax = "proto3"; 16 17package google.cloud.networkmanagement.v1; 18 19import "google/api/field_behavior.proto"; 20import "google/api/field_info.proto"; 21 22option csharp_namespace = "Google.Cloud.NetworkManagement.V1"; 23option go_package = "cloud.google.com/go/networkmanagement/apiv1/networkmanagementpb;networkmanagementpb"; 24option java_multiple_files = true; 25option java_outer_classname = "TraceProto"; 26option java_package = "com.google.cloud.networkmanagement.v1"; 27option php_namespace = "Google\\Cloud\\NetworkManagement\\V1"; 28option ruby_package = "Google::Cloud::NetworkManagement::V1"; 29 30// Trace represents one simulated packet forwarding path. 31// 32// * Each trace contains multiple ordered steps. 33// * Each step is in a particular state with associated configuration. 34// * State is categorized as final or non-final states. 35// * Each final state has a reason associated. 36// * Each trace must end with a final state (the last step). 37// ``` 38// |---------------------Trace----------------------| 39// Step1(State) Step2(State) --- StepN(State(final)) 40// ``` 41message Trace { 42 // Derived from the source and destination endpoints definition specified by 43 // user request, and validated by the data plane model. 44 // If there are multiple traces starting from different source locations, then 45 // the endpoint_info may be different between traces. 46 EndpointInfo endpoint_info = 1; 47 48 // A trace of a test contains multiple steps from the initial state to the 49 // final state (delivered, dropped, forwarded, or aborted). 50 // 51 // The steps are ordered by the processing sequence within the simulated 52 // network state machine. It is critical to preserve the order of the steps 53 // and avoid reordering or sorting them. 54 repeated Step steps = 2; 55 56 // ID of trace. For forward traces, this ID is unique for each trace. For 57 // return traces, it matches ID of associated forward trace. A single forward 58 // trace can be associated with none, one or more than one return trace. 59 int32 forward_trace_id = 4; 60} 61 62// A simulated forwarding path is composed of multiple steps. 63// Each step has a well-defined state and an associated configuration. 64message Step { 65 // Type of states that are defined in the network state machine. 66 // Each step in the packet trace is in a specific state. 67 enum State { 68 // Unspecified state. 69 STATE_UNSPECIFIED = 0; 70 71 // Initial state: packet originating from a Compute Engine instance. 72 // An InstanceInfo is populated with starting instance information. 73 START_FROM_INSTANCE = 1; 74 75 // Initial state: packet originating from the internet. 76 // The endpoint information is populated. 77 START_FROM_INTERNET = 2; 78 79 // Initial state: packet originating from a Google service. 80 // The google_service information is populated. 81 START_FROM_GOOGLE_SERVICE = 27; 82 83 // Initial state: packet originating from a VPC or on-premises network 84 // with internal source IP. 85 // If the source is a VPC network visible to the user, a NetworkInfo 86 // is populated with details of the network. 87 START_FROM_PRIVATE_NETWORK = 3; 88 89 // Initial state: packet originating from a Google Kubernetes Engine cluster 90 // master. A GKEMasterInfo is populated with starting instance information. 91 START_FROM_GKE_MASTER = 21; 92 93 // Initial state: packet originating from a Cloud SQL instance. 94 // A CloudSQLInstanceInfo is populated with starting instance information. 95 START_FROM_CLOUD_SQL_INSTANCE = 22; 96 97 // Initial state: packet originating from a Cloud Function. 98 // A CloudFunctionInfo is populated with starting function information. 99 START_FROM_CLOUD_FUNCTION = 23; 100 101 // Initial state: packet originating from an App Engine service version. 102 // An AppEngineVersionInfo is populated with starting version information. 103 START_FROM_APP_ENGINE_VERSION = 25; 104 105 // Initial state: packet originating from a Cloud Run revision. 106 // A CloudRunRevisionInfo is populated with starting revision information. 107 START_FROM_CLOUD_RUN_REVISION = 26; 108 109 // Initial state: packet originating from a Storage Bucket. Used only for 110 // return traces. 111 // The storage_bucket information is populated. 112 START_FROM_STORAGE_BUCKET = 29; 113 114 // Initial state: packet originating from a published service that uses 115 // Private Service Connect. Used only for return traces. 116 START_FROM_PSC_PUBLISHED_SERVICE = 30; 117 118 // Config checking state: verify ingress firewall rule. 119 APPLY_INGRESS_FIREWALL_RULE = 4; 120 121 // Config checking state: verify egress firewall rule. 122 APPLY_EGRESS_FIREWALL_RULE = 5; 123 124 // Config checking state: verify route. 125 APPLY_ROUTE = 6; 126 127 // Config checking state: match forwarding rule. 128 APPLY_FORWARDING_RULE = 7; 129 130 // Config checking state: verify load balancer backend configuration. 131 ANALYZE_LOAD_BALANCER_BACKEND = 28; 132 133 // Config checking state: packet sent or received under foreign IP 134 // address and allowed. 135 SPOOFING_APPROVED = 8; 136 137 // Forwarding state: arriving at a Compute Engine instance. 138 ARRIVE_AT_INSTANCE = 9; 139 140 // Forwarding state: arriving at a Compute Engine internal load balancer. 141 ARRIVE_AT_INTERNAL_LOAD_BALANCER = 10 [deprecated = true]; 142 143 // Forwarding state: arriving at a Compute Engine external load balancer. 144 ARRIVE_AT_EXTERNAL_LOAD_BALANCER = 11 [deprecated = true]; 145 146 // Forwarding state: arriving at a Cloud VPN gateway. 147 ARRIVE_AT_VPN_GATEWAY = 12; 148 149 // Forwarding state: arriving at a Cloud VPN tunnel. 150 ARRIVE_AT_VPN_TUNNEL = 13; 151 152 // Forwarding state: arriving at a VPC connector. 153 ARRIVE_AT_VPC_CONNECTOR = 24; 154 155 // Transition state: packet header translated. 156 NAT = 14; 157 158 // Transition state: original connection is terminated and a new proxied 159 // connection is initiated. 160 PROXY_CONNECTION = 15; 161 162 // Final state: packet could be delivered. 163 DELIVER = 16; 164 165 // Final state: packet could be dropped. 166 DROP = 17; 167 168 // Final state: packet could be forwarded to a network with an unknown 169 // configuration. 170 FORWARD = 18; 171 172 // Final state: analysis is aborted. 173 ABORT = 19; 174 175 // Special state: viewer of the test result does not have permission to 176 // see the configuration in this step. 177 VIEWER_PERMISSION_MISSING = 20; 178 } 179 180 // A description of the step. Usually this is a summary of the state. 181 string description = 1; 182 183 // Each step is in one of the pre-defined states. 184 State state = 2; 185 186 // This is a step that leads to the final state Drop. 187 bool causes_drop = 3; 188 189 // Project ID that contains the configuration this step is validating. 190 string project_id = 4; 191 192 // Configuration or metadata associated with each step. 193 // The configuration is filtered based on viewer's permission. If a viewer 194 // has no permission to view the configuration in this step, for non-final 195 // states a special state is populated (VIEWER_PERMISSION_MISSING), and for 196 // final state the configuration is cleared. 197 oneof step_info { 198 // Display information of a Compute Engine instance. 199 InstanceInfo instance = 5; 200 201 // Display information of a Compute Engine firewall rule. 202 FirewallInfo firewall = 6; 203 204 // Display information of a Compute Engine route. 205 RouteInfo route = 7; 206 207 // Display information of the source and destination under analysis. 208 // The endpoint information in an intermediate state may differ with the 209 // initial input, as it might be modified by state like NAT, 210 // or Connection Proxy. 211 EndpointInfo endpoint = 8; 212 213 // Display information of a Google service 214 GoogleServiceInfo google_service = 24; 215 216 // Display information of a Compute Engine forwarding rule. 217 ForwardingRuleInfo forwarding_rule = 9; 218 219 // Display information of a Compute Engine VPN gateway. 220 VpnGatewayInfo vpn_gateway = 10; 221 222 // Display information of a Compute Engine VPN tunnel. 223 VpnTunnelInfo vpn_tunnel = 11; 224 225 // Display information of a VPC connector. 226 VpcConnectorInfo vpc_connector = 21; 227 228 // Display information of the final state "deliver" and reason. 229 DeliverInfo deliver = 12; 230 231 // Display information of the final state "forward" and reason. 232 ForwardInfo forward = 13; 233 234 // Display information of the final state "abort" and reason. 235 AbortInfo abort = 14; 236 237 // Display information of the final state "drop" and reason. 238 DropInfo drop = 15; 239 240 // Display information of the load balancers. Deprecated in favor of the 241 // `load_balancer_backend_info` field, not used in new tests. 242 LoadBalancerInfo load_balancer = 16 [deprecated = true]; 243 244 // Display information of a Google Cloud network. 245 NetworkInfo network = 17; 246 247 // Display information of a Google Kubernetes Engine cluster master. 248 GKEMasterInfo gke_master = 18; 249 250 // Display information of a Cloud SQL instance. 251 CloudSQLInstanceInfo cloud_sql_instance = 19; 252 253 // Display information of a Cloud Function. 254 CloudFunctionInfo cloud_function = 20; 255 256 // Display information of an App Engine service version. 257 AppEngineVersionInfo app_engine_version = 22; 258 259 // Display information of a Cloud Run revision. 260 CloudRunRevisionInfo cloud_run_revision = 23; 261 262 // Display information of a NAT. 263 NatInfo nat = 25; 264 265 // Display information of a ProxyConnection. 266 ProxyConnectionInfo proxy_connection = 26; 267 268 // Display information of a specific load balancer backend. 269 LoadBalancerBackendInfo load_balancer_backend_info = 27; 270 271 // Display information of a Storage Bucket. Used only for return traces. 272 StorageBucketInfo storage_bucket = 28; 273 } 274} 275 276// For display only. Metadata associated with a Compute Engine instance. 277message InstanceInfo { 278 // Name of a Compute Engine instance. 279 string display_name = 1; 280 281 // URI of a Compute Engine instance. 282 string uri = 2; 283 284 // Name of the network interface of a Compute Engine instance. 285 string interface = 3; 286 287 // URI of a Compute Engine network. 288 string network_uri = 4; 289 290 // Internal IP address of the network interface. 291 string internal_ip = 5; 292 293 // External IP address of the network interface. 294 string external_ip = 6; 295 296 // Network tags configured on the instance. 297 repeated string network_tags = 7; 298 299 // Service account authorized for the instance. 300 string service_account = 8 [deprecated = true]; 301} 302 303// For display only. Metadata associated with a Compute Engine network. 304message NetworkInfo { 305 // Name of a Compute Engine network. 306 string display_name = 1; 307 308 // URI of a Compute Engine network. 309 string uri = 2; 310 311 // The IP range that matches the test. 312 string matched_ip_range = 4; 313} 314 315// For display only. Metadata associated with a VPC firewall rule, an implied 316// VPC firewall rule, or a hierarchical firewall policy rule. 317message FirewallInfo { 318 // The firewall rule's type. 319 enum FirewallRuleType { 320 // Unspecified type. 321 FIREWALL_RULE_TYPE_UNSPECIFIED = 0; 322 323 // Hierarchical firewall policy rule. For details, see 324 // [Hierarchical firewall policies 325 // overview](https://cloud.google.com/vpc/docs/firewall-policies). 326 HIERARCHICAL_FIREWALL_POLICY_RULE = 1; 327 328 // VPC firewall rule. For details, see 329 // [VPC firewall rules 330 // overview](https://cloud.google.com/vpc/docs/firewalls). 331 VPC_FIREWALL_RULE = 2; 332 333 // Implied VPC firewall rule. For details, see 334 // [Implied 335 // rules](https://cloud.google.com/vpc/docs/firewalls#default_firewall_rules). 336 IMPLIED_VPC_FIREWALL_RULE = 3; 337 338 // Implicit firewall rules that are managed by serverless VPC access to 339 // allow ingress access. They are not visible in the Google Cloud console. 340 // For details, see [VPC connector's implicit 341 // rules](https://cloud.google.com/functions/docs/networking/connecting-vpc#restrict-access). 342 SERVERLESS_VPC_ACCESS_MANAGED_FIREWALL_RULE = 4; 343 344 // Global network firewall policy rule. 345 // For details, see [Network firewall 346 // policies](https://cloud.google.com/vpc/docs/network-firewall-policies). 347 NETWORK_FIREWALL_POLICY_RULE = 5; 348 349 // Regional network firewall policy rule. 350 // For details, see [Regional network firewall 351 // policies](https://cloud.google.com/firewall/docs/regional-firewall-policies). 352 NETWORK_REGIONAL_FIREWALL_POLICY_RULE = 6; 353 354 // Firewall policy rule containing attributes not yet supported in 355 // Connectivity tests. Firewall analysis is skipped if such a rule can 356 // potentially be matched. Please see the [list of unsupported 357 // configurations](https://cloud.google.com/network-intelligence-center/docs/connectivity-tests/concepts/overview#unsupported-configs). 358 UNSUPPORTED_FIREWALL_POLICY_RULE = 100; 359 360 // Tracking state for response traffic created when request traffic goes 361 // through allow firewall rule. 362 // For details, see [firewall rules 363 // specifications](https://cloud.google.com/firewall/docs/firewalls#specifications) 364 TRACKING_STATE = 101; 365 } 366 367 // The display name of the VPC firewall rule. This field is not applicable 368 // to hierarchical firewall policy rules. 369 string display_name = 1; 370 371 // The URI of the VPC firewall rule. This field is not applicable to 372 // implied firewall rules or hierarchical firewall policy rules. 373 string uri = 2; 374 375 // Possible values: INGRESS, EGRESS 376 string direction = 3; 377 378 // Possible values: ALLOW, DENY, APPLY_SECURITY_PROFILE_GROUP 379 string action = 4; 380 381 // The priority of the firewall rule. 382 int32 priority = 5; 383 384 // The URI of the VPC network that the firewall rule is associated with. 385 // This field is not applicable to hierarchical firewall policy rules. 386 string network_uri = 6; 387 388 // The target tags defined by the VPC firewall rule. This field is not 389 // applicable to hierarchical firewall policy rules. 390 repeated string target_tags = 7; 391 392 // The target service accounts specified by the firewall rule. 393 repeated string target_service_accounts = 8; 394 395 // The hierarchical firewall policy that this rule is associated with. 396 // This field is not applicable to VPC firewall rules. 397 string policy = 9; 398 399 // The firewall rule's type. 400 FirewallRuleType firewall_rule_type = 10; 401} 402 403// For display only. Metadata associated with a Compute Engine route. 404message RouteInfo { 405 // Type of route: 406 enum RouteType { 407 // Unspecified type. Default value. 408 ROUTE_TYPE_UNSPECIFIED = 0; 409 410 // Route is a subnet route automatically created by the system. 411 SUBNET = 1; 412 413 // Static route created by the user, including the default route to the 414 // internet. 415 STATIC = 2; 416 417 // Dynamic route exchanged between BGP peers. 418 DYNAMIC = 3; 419 420 // A subnet route received from peering network. 421 PEERING_SUBNET = 4; 422 423 // A static route received from peering network. 424 PEERING_STATIC = 5; 425 426 // A dynamic route received from peering network. 427 PEERING_DYNAMIC = 6; 428 429 // Policy based route. 430 POLICY_BASED = 7; 431 } 432 433 // Type of next hop: 434 enum NextHopType { 435 // Unspecified type. Default value. 436 NEXT_HOP_TYPE_UNSPECIFIED = 0; 437 438 // Next hop is an IP address. 439 NEXT_HOP_IP = 1; 440 441 // Next hop is a Compute Engine instance. 442 NEXT_HOP_INSTANCE = 2; 443 444 // Next hop is a VPC network gateway. 445 NEXT_HOP_NETWORK = 3; 446 447 // Next hop is a peering VPC. 448 NEXT_HOP_PEERING = 4; 449 450 // Next hop is an interconnect. 451 NEXT_HOP_INTERCONNECT = 5; 452 453 // Next hop is a VPN tunnel. 454 NEXT_HOP_VPN_TUNNEL = 6; 455 456 // Next hop is a VPN gateway. This scenario only happens when tracing 457 // connectivity from an on-premises network to Google Cloud through a VPN. 458 // The analysis simulates a packet departing from the on-premises network 459 // through a VPN tunnel and arriving at a Cloud VPN gateway. 460 NEXT_HOP_VPN_GATEWAY = 7; 461 462 // Next hop is an internet gateway. 463 NEXT_HOP_INTERNET_GATEWAY = 8; 464 465 // Next hop is blackhole; that is, the next hop either does not exist or is 466 // not running. 467 NEXT_HOP_BLACKHOLE = 9; 468 469 // Next hop is the forwarding rule of an Internal Load Balancer. 470 NEXT_HOP_ILB = 10; 471 472 // Next hop is a 473 // [router appliance 474 // instance](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/ra-overview). 475 NEXT_HOP_ROUTER_APPLIANCE = 11; 476 477 // Next hop is an NCC hub. 478 NEXT_HOP_NCC_HUB = 12; 479 } 480 481 // Indicates where routes are applicable. 482 enum RouteScope { 483 // Unspecified scope. Default value. 484 ROUTE_SCOPE_UNSPECIFIED = 0; 485 486 // Route is applicable to packets in Network. 487 NETWORK = 1; 488 489 // Route is applicable to packets using NCC Hub's routing table. 490 NCC_HUB = 2; 491 } 492 493 // Type of route. 494 RouteType route_type = 8; 495 496 // Type of next hop. 497 NextHopType next_hop_type = 9; 498 499 // Indicates where route is applicable. 500 RouteScope route_scope = 14; 501 502 // Name of a route. 503 string display_name = 1; 504 505 // URI of a route. 506 // Dynamic, peering static and peering dynamic routes do not have an URI. 507 // Advertised route from Google Cloud VPC to on-premises network also does 508 // not have an URI. 509 string uri = 2; 510 511 // Destination IP range of the route. 512 string dest_ip_range = 3; 513 514 // Next hop of the route. 515 string next_hop = 4; 516 517 // URI of a Compute Engine network. NETWORK routes only. 518 string network_uri = 5; 519 520 // Priority of the route. 521 int32 priority = 6; 522 523 // Instance tags of the route. 524 repeated string instance_tags = 7; 525 526 // Source IP address range of the route. Policy based routes only. 527 string src_ip_range = 10; 528 529 // Destination port ranges of the route. Policy based routes only. 530 repeated string dest_port_ranges = 11; 531 532 // Source port ranges of the route. Policy based routes only. 533 repeated string src_port_ranges = 12; 534 535 // Protocols of the route. Policy based routes only. 536 repeated string protocols = 13; 537 538 // URI of a NCC Hub. NCC_HUB routes only. 539 optional string ncc_hub_uri = 15; 540 541 // URI of a NCC Spoke. NCC_HUB routes only. 542 optional string ncc_spoke_uri = 16; 543} 544 545// For display only. Details of a Google Service sending packets to a 546// VPC network. Although the source IP might be a publicly routable address, 547// some Google Services use special routes within Google production 548// infrastructure to reach Compute Engine Instances. 549// https://cloud.google.com/vpc/docs/routes#special_return_paths 550message GoogleServiceInfo { 551 // Recognized type of a Google Service. 552 enum GoogleServiceType { 553 // Unspecified Google Service. 554 GOOGLE_SERVICE_TYPE_UNSPECIFIED = 0; 555 556 // Identity aware proxy. 557 // https://cloud.google.com/iap/docs/using-tcp-forwarding 558 IAP = 1; 559 560 // One of two services sharing IP ranges: 561 // * Load Balancer proxy 562 // * Centralized Health Check prober 563 // https://cloud.google.com/load-balancing/docs/firewall-rules 564 GFE_PROXY_OR_HEALTH_CHECK_PROBER = 2; 565 566 // Connectivity from Cloud DNS to forwarding targets or alternate name 567 // servers that use private routing. 568 // https://cloud.google.com/dns/docs/zones/forwarding-zones#firewall-rules 569 // https://cloud.google.com/dns/docs/policies#firewall-rules 570 CLOUD_DNS = 3; 571 572 // private.googleapis.com and restricted.googleapis.com 573 GOOGLE_API = 4; 574 575 // Google API via Private Service Connect. 576 // https://cloud.google.com/vpc/docs/configure-private-service-connect-apis 577 GOOGLE_API_PSC = 5; 578 579 // Google API via VPC Service Controls. 580 // https://cloud.google.com/vpc/docs/configure-private-service-connect-apis 581 GOOGLE_API_VPC_SC = 6; 582 } 583 584 // Source IP address. 585 string source_ip = 1; 586 587 // Recognized type of a Google Service. 588 GoogleServiceType google_service_type = 2; 589} 590 591// For display only. Metadata associated with a Compute Engine forwarding rule. 592message ForwardingRuleInfo { 593 // Name of a Compute Engine forwarding rule. 594 string display_name = 1; 595 596 // URI of a Compute Engine forwarding rule. 597 string uri = 2; 598 599 // Protocol defined in the forwarding rule that matches the test. 600 string matched_protocol = 3; 601 602 // Port range defined in the forwarding rule that matches the test. 603 string matched_port_range = 6; 604 605 // VIP of the forwarding rule. 606 string vip = 4; 607 608 // Target type of the forwarding rule. 609 string target = 5; 610 611 // Network URI. Only valid for Internal Load Balancer. 612 string network_uri = 7; 613} 614 615// For display only. Metadata associated with a load balancer. 616message LoadBalancerInfo { 617 // The type definition for a load balancer: 618 enum LoadBalancerType { 619 // Type is unspecified. 620 LOAD_BALANCER_TYPE_UNSPECIFIED = 0; 621 622 // Internal TCP/UDP load balancer. 623 INTERNAL_TCP_UDP = 1; 624 625 // Network TCP/UDP load balancer. 626 NETWORK_TCP_UDP = 2; 627 628 // HTTP(S) proxy load balancer. 629 HTTP_PROXY = 3; 630 631 // TCP proxy load balancer. 632 TCP_PROXY = 4; 633 634 // SSL proxy load balancer. 635 SSL_PROXY = 5; 636 } 637 638 // The type definition for a load balancer backend configuration: 639 enum BackendType { 640 // Type is unspecified. 641 BACKEND_TYPE_UNSPECIFIED = 0; 642 643 // Backend Service as the load balancer's backend. 644 BACKEND_SERVICE = 1; 645 646 // Target Pool as the load balancer's backend. 647 TARGET_POOL = 2; 648 649 // Target Instance as the load balancer's backend. 650 TARGET_INSTANCE = 3; 651 } 652 653 // Type of the load balancer. 654 LoadBalancerType load_balancer_type = 1; 655 656 // URI of the health check for the load balancer. Deprecated and no longer 657 // populated as different load balancer backends might have different health 658 // checks. 659 string health_check_uri = 2 [deprecated = true]; 660 661 // Information for the loadbalancer backends. 662 repeated LoadBalancerBackend backends = 3; 663 664 // Type of load balancer's backend configuration. 665 BackendType backend_type = 4; 666 667 // Backend configuration URI. 668 string backend_uri = 5; 669} 670 671// For display only. Metadata associated with a specific load balancer backend. 672message LoadBalancerBackend { 673 // State of a health check firewall configuration: 674 enum HealthCheckFirewallState { 675 // State is unspecified. Default state if not populated. 676 HEALTH_CHECK_FIREWALL_STATE_UNSPECIFIED = 0; 677 678 // There are configured firewall rules to allow health check probes to the 679 // backend. 680 CONFIGURED = 1; 681 682 // There are firewall rules configured to allow partial health check ranges 683 // or block all health check ranges. 684 // If a health check probe is sent from denied IP ranges, 685 // the health check to the backend will fail. Then, the backend will be 686 // marked unhealthy and will not receive traffic sent to the load balancer. 687 MISCONFIGURED = 2; 688 } 689 690 // Name of a Compute Engine instance or network endpoint. 691 string display_name = 1; 692 693 // URI of a Compute Engine instance or network endpoint. 694 string uri = 2; 695 696 // State of the health check firewall configuration. 697 HealthCheckFirewallState health_check_firewall_state = 3; 698 699 // A list of firewall rule URIs allowing probes from health check IP ranges. 700 repeated string health_check_allowing_firewall_rules = 4; 701 702 // A list of firewall rule URIs blocking probes from health check IP ranges. 703 repeated string health_check_blocking_firewall_rules = 5; 704} 705 706// For display only. Metadata associated with a Compute Engine VPN gateway. 707message VpnGatewayInfo { 708 // Name of a VPN gateway. 709 string display_name = 1; 710 711 // URI of a VPN gateway. 712 string uri = 2; 713 714 // URI of a Compute Engine network where the VPN gateway is configured. 715 string network_uri = 3; 716 717 // IP address of the VPN gateway. 718 string ip_address = 4; 719 720 // A VPN tunnel that is associated with this VPN gateway. 721 // There may be multiple VPN tunnels configured on a VPN gateway, and only 722 // the one relevant to the test is displayed. 723 string vpn_tunnel_uri = 5; 724 725 // Name of a Google Cloud region where this VPN gateway is configured. 726 string region = 6; 727} 728 729// For display only. Metadata associated with a Compute Engine VPN tunnel. 730message VpnTunnelInfo { 731 // Types of VPN routing policy. For details, refer to [Networks and Tunnel 732 // routing](https://cloud.google.com/network-connectivity/docs/vpn/concepts/choosing-networks-routing/). 733 enum RoutingType { 734 // Unspecified type. Default value. 735 ROUTING_TYPE_UNSPECIFIED = 0; 736 737 // Route based VPN. 738 ROUTE_BASED = 1; 739 740 // Policy based routing. 741 POLICY_BASED = 2; 742 743 // Dynamic (BGP) routing. 744 DYNAMIC = 3; 745 } 746 747 // Name of a VPN tunnel. 748 string display_name = 1; 749 750 // URI of a VPN tunnel. 751 string uri = 2; 752 753 // URI of the VPN gateway at local end of the tunnel. 754 string source_gateway = 3; 755 756 // URI of a VPN gateway at remote end of the tunnel. 757 string remote_gateway = 4; 758 759 // Remote VPN gateway's IP address. 760 string remote_gateway_ip = 5; 761 762 // Local VPN gateway's IP address. 763 string source_gateway_ip = 6; 764 765 // URI of a Compute Engine network where the VPN tunnel is configured. 766 string network_uri = 7; 767 768 // Name of a Google Cloud region where this VPN tunnel is configured. 769 string region = 8; 770 771 // Type of the routing policy. 772 RoutingType routing_type = 9; 773} 774 775// For display only. The specification of the endpoints for the test. 776// EndpointInfo is derived from source and destination Endpoint and validated 777// by the backend data plane model. 778message EndpointInfo { 779 // Source IP address. 780 string source_ip = 1; 781 782 // Destination IP address. 783 string destination_ip = 2; 784 785 // IP protocol in string format, for example: "TCP", "UDP", "ICMP". 786 string protocol = 3; 787 788 // Source port. Only valid when protocol is TCP or UDP. 789 int32 source_port = 4; 790 791 // Destination port. Only valid when protocol is TCP or UDP. 792 int32 destination_port = 5; 793 794 // URI of the network where this packet originates from. 795 string source_network_uri = 6; 796 797 // URI of the network where this packet is sent to. 798 string destination_network_uri = 7; 799 800 // URI of the source telemetry agent this packet originates from. 801 string source_agent_uri = 8; 802} 803 804// Details of the final state "deliver" and associated resource. 805message DeliverInfo { 806 // Deliver target types: 807 enum Target { 808 // Target not specified. 809 TARGET_UNSPECIFIED = 0; 810 811 // Target is a Compute Engine instance. 812 INSTANCE = 1; 813 814 // Target is the internet. 815 INTERNET = 2; 816 817 // Target is a Google API. 818 GOOGLE_API = 3; 819 820 // Target is a Google Kubernetes Engine cluster master. 821 GKE_MASTER = 4; 822 823 // Target is a Cloud SQL instance. 824 CLOUD_SQL_INSTANCE = 5; 825 826 // Target is a published service that uses [Private Service 827 // Connect](https://cloud.google.com/vpc/docs/configure-private-service-connect-services). 828 PSC_PUBLISHED_SERVICE = 6; 829 830 // Target is all Google APIs that use [Private Service 831 // Connect](https://cloud.google.com/vpc/docs/configure-private-service-connect-apis). 832 PSC_GOOGLE_API = 7; 833 834 // Target is a VPC-SC that uses [Private Service 835 // Connect](https://cloud.google.com/vpc/docs/configure-private-service-connect-apis). 836 PSC_VPC_SC = 8; 837 838 // Target is a serverless network endpoint group. 839 SERVERLESS_NEG = 9; 840 841 // Target is a Cloud Storage bucket. 842 STORAGE_BUCKET = 10; 843 844 // Target is a private network. Used only for return traces. 845 PRIVATE_NETWORK = 11; 846 847 // Target is a Cloud Function. Used only for return traces. 848 CLOUD_FUNCTION = 12; 849 850 // Target is a App Engine service version. Used only for return traces. 851 APP_ENGINE_VERSION = 13; 852 853 // Target is a Cloud Run revision. Used only for return traces. 854 CLOUD_RUN_REVISION = 14; 855 } 856 857 // Target type where the packet is delivered to. 858 Target target = 1; 859 860 // URI of the resource that the packet is delivered to. 861 string resource_uri = 2; 862 863 // IP address of the target (if applicable). 864 string ip_address = 3 [(google.api.field_info).format = IPV4_OR_IPV6]; 865} 866 867// Details of the final state "forward" and associated resource. 868message ForwardInfo { 869 // Forward target types. 870 enum Target { 871 // Target not specified. 872 TARGET_UNSPECIFIED = 0; 873 874 // Forwarded to a VPC peering network. 875 PEERING_VPC = 1; 876 877 // Forwarded to a Cloud VPN gateway. 878 VPN_GATEWAY = 2; 879 880 // Forwarded to a Cloud Interconnect connection. 881 INTERCONNECT = 3; 882 883 // Forwarded to a Google Kubernetes Engine Container cluster master. 884 GKE_MASTER = 4 [deprecated = true]; 885 886 // Forwarded to the next hop of a custom route imported from a peering VPC. 887 IMPORTED_CUSTOM_ROUTE_NEXT_HOP = 5; 888 889 // Forwarded to a Cloud SQL instance. 890 CLOUD_SQL_INSTANCE = 6 [deprecated = true]; 891 892 // Forwarded to a VPC network in another project. 893 ANOTHER_PROJECT = 7; 894 895 // Forwarded to an NCC Hub. 896 NCC_HUB = 8; 897 898 // Forwarded to a router appliance. 899 ROUTER_APPLIANCE = 9; 900 } 901 902 // Target type where this packet is forwarded to. 903 Target target = 1; 904 905 // URI of the resource that the packet is forwarded to. 906 string resource_uri = 2; 907 908 // IP address of the target (if applicable). 909 string ip_address = 3 [(google.api.field_info).format = IPV4_OR_IPV6]; 910} 911 912// Details of the final state "abort" and associated resource. 913message AbortInfo { 914 // Abort cause types: 915 enum Cause { 916 // Cause is unspecified. 917 CAUSE_UNSPECIFIED = 0; 918 919 // Aborted due to unknown network. Deprecated, not used in the new tests. 920 UNKNOWN_NETWORK = 1 [deprecated = true]; 921 922 // Aborted because no project information can be derived from the test 923 // input. Deprecated, not used in the new tests. 924 UNKNOWN_PROJECT = 3 [deprecated = true]; 925 926 // Aborted because traffic is sent from a public IP to an instance without 927 // an external IP. Deprecated, not used in the new tests. 928 NO_EXTERNAL_IP = 7 [deprecated = true]; 929 930 // Aborted because none of the traces matches destination information 931 // specified in the input test request. Deprecated, not used in the new 932 // tests. 933 UNINTENDED_DESTINATION = 8 [deprecated = true]; 934 935 // Aborted because the source endpoint could not be found. Deprecated, not 936 // used in the new tests. 937 SOURCE_ENDPOINT_NOT_FOUND = 11 [deprecated = true]; 938 939 // Aborted because the source network does not match the source endpoint. 940 // Deprecated, not used in the new tests. 941 MISMATCHED_SOURCE_NETWORK = 12 [deprecated = true]; 942 943 // Aborted because the destination endpoint could not be found. Deprecated, 944 // not used in the new tests. 945 DESTINATION_ENDPOINT_NOT_FOUND = 13 [deprecated = true]; 946 947 // Aborted because the destination network does not match the destination 948 // endpoint. Deprecated, not used in the new tests. 949 MISMATCHED_DESTINATION_NETWORK = 14 [deprecated = true]; 950 951 // Aborted because no endpoint with the packet's destination IP address is 952 // found. 953 UNKNOWN_IP = 2; 954 955 // Aborted because the source IP address doesn't belong to any of the 956 // subnets of the source VPC network. 957 SOURCE_IP_ADDRESS_NOT_IN_SOURCE_NETWORK = 23; 958 959 // Aborted because user lacks permission to access all or part of the 960 // network configurations required to run the test. 961 PERMISSION_DENIED = 4; 962 963 // Aborted because user lacks permission to access Cloud NAT configs 964 // required to run the test. 965 PERMISSION_DENIED_NO_CLOUD_NAT_CONFIGS = 28; 966 967 // Aborted because user lacks permission to access Network endpoint group 968 // endpoint configs required to run the test. 969 PERMISSION_DENIED_NO_NEG_ENDPOINT_CONFIGS = 29; 970 971 // Aborted because no valid source or destination endpoint is derived from 972 // the input test request. 973 NO_SOURCE_LOCATION = 5; 974 975 // Aborted because the source or destination endpoint specified in 976 // the request is invalid. Some examples: 977 // - The request might contain malformed resource URI, project ID, or IP 978 // address. 979 // - The request might contain inconsistent information (for example, the 980 // request might include both the instance and the network, but the instance 981 // might not have a NIC in that network). 982 INVALID_ARGUMENT = 6; 983 984 // Aborted because the number of steps in the trace exceeds a certain 985 // limit. It might be caused by a routing loop. 986 TRACE_TOO_LONG = 9; 987 988 // Aborted due to internal server error. 989 INTERNAL_ERROR = 10; 990 991 // Aborted because the test scenario is not supported. 992 UNSUPPORTED = 15; 993 994 // Aborted because the source and destination resources have no common IP 995 // version. 996 MISMATCHED_IP_VERSION = 16; 997 998 // Aborted because the connection between the control plane and the node of 999 // the source cluster is initiated by the node and managed by the 1000 // Konnectivity proxy. 1001 GKE_KONNECTIVITY_PROXY_UNSUPPORTED = 17; 1002 1003 // Aborted because expected resource configuration was missing. 1004 RESOURCE_CONFIG_NOT_FOUND = 18; 1005 1006 // Aborted because expected VM instance configuration was missing. 1007 VM_INSTANCE_CONFIG_NOT_FOUND = 24; 1008 1009 // Aborted because expected network configuration was missing. 1010 NETWORK_CONFIG_NOT_FOUND = 25; 1011 1012 // Aborted because expected firewall configuration was missing. 1013 FIREWALL_CONFIG_NOT_FOUND = 26; 1014 1015 // Aborted because expected route configuration was missing. 1016 ROUTE_CONFIG_NOT_FOUND = 27; 1017 1018 // Aborted because a PSC endpoint selection for the Google-managed service 1019 // is ambiguous (several PSC endpoints satisfy test input). 1020 GOOGLE_MANAGED_SERVICE_AMBIGUOUS_PSC_ENDPOINT = 19; 1021 1022 // Aborted because tests with a PSC-based Cloud SQL instance as a source are 1023 // not supported. 1024 SOURCE_PSC_CLOUD_SQL_UNSUPPORTED = 20; 1025 1026 // Aborted because tests with a forwarding rule as a source are not 1027 // supported. 1028 SOURCE_FORWARDING_RULE_UNSUPPORTED = 21; 1029 1030 // Aborted because one of the endpoints is a non-routable IP address 1031 // (loopback, link-local, etc). 1032 NON_ROUTABLE_IP_ADDRESS = 22; 1033 1034 // Aborted due to an unknown issue in the Google-managed project. 1035 UNKNOWN_ISSUE_IN_GOOGLE_MANAGED_PROJECT = 30; 1036 1037 // Aborted due to an unsupported configuration of the Google-managed 1038 // project. 1039 UNSUPPORTED_GOOGLE_MANAGED_PROJECT_CONFIG = 31; 1040 } 1041 1042 // Causes that the analysis is aborted. 1043 Cause cause = 1; 1044 1045 // URI of the resource that caused the abort. 1046 string resource_uri = 2; 1047 1048 // IP address that caused the abort. 1049 string ip_address = 4 [(google.api.field_info).format = IPV4_OR_IPV6]; 1050 1051 // List of project IDs the user specified in the request but lacks access to. 1052 // In this case, analysis is aborted with the PERMISSION_DENIED cause. 1053 repeated string projects_missing_permission = 3; 1054} 1055 1056// Details of the final state "drop" and associated resource. 1057message DropInfo { 1058 // Drop cause types: 1059 enum Cause { 1060 // Cause is unspecified. 1061 CAUSE_UNSPECIFIED = 0; 1062 1063 // Destination external address cannot be resolved to a known target. If 1064 // the address is used in a Google Cloud project, provide the project ID 1065 // as test input. 1066 UNKNOWN_EXTERNAL_ADDRESS = 1; 1067 1068 // A Compute Engine instance can only send or receive a packet with a 1069 // foreign IP address if ip_forward is enabled. 1070 FOREIGN_IP_DISALLOWED = 2; 1071 1072 // Dropped due to a firewall rule, unless allowed due to connection 1073 // tracking. 1074 FIREWALL_RULE = 3; 1075 1076 // Dropped due to no matching routes. 1077 NO_ROUTE = 4; 1078 1079 // Dropped due to invalid route. Route's next hop is a blackhole. 1080 ROUTE_BLACKHOLE = 5; 1081 1082 // Packet is sent to a wrong (unintended) network. Example: you trace a 1083 // packet from VM1:Network1 to VM2:Network2, however, the route configured 1084 // in Network1 sends the packet destined for VM2's IP address to Network3. 1085 ROUTE_WRONG_NETWORK = 6; 1086 1087 // Route's next hop IP address cannot be resolved to a GCP resource. 1088 ROUTE_NEXT_HOP_IP_ADDRESS_NOT_RESOLVED = 42; 1089 1090 // Route's next hop resource is not found. 1091 ROUTE_NEXT_HOP_RESOURCE_NOT_FOUND = 43; 1092 1093 // Route's next hop instance doesn't have a NIC in the route's network. 1094 ROUTE_NEXT_HOP_INSTANCE_WRONG_NETWORK = 49; 1095 1096 // Route's next hop IP address is not a primary IP address of the next hop 1097 // instance. 1098 ROUTE_NEXT_HOP_INSTANCE_NON_PRIMARY_IP = 50; 1099 1100 // Route's next hop forwarding rule doesn't match next hop IP address. 1101 ROUTE_NEXT_HOP_FORWARDING_RULE_IP_MISMATCH = 51; 1102 1103 // Route's next hop VPN tunnel is down (does not have valid IKE SAs). 1104 ROUTE_NEXT_HOP_VPN_TUNNEL_NOT_ESTABLISHED = 52; 1105 1106 // Route's next hop forwarding rule type is invalid (it's not a forwarding 1107 // rule of the internal passthrough load balancer). 1108 ROUTE_NEXT_HOP_FORWARDING_RULE_TYPE_INVALID = 53; 1109 1110 // Packet is sent from the Internet to the private IPv6 address. 1111 NO_ROUTE_FROM_INTERNET_TO_PRIVATE_IPV6_ADDRESS = 44; 1112 1113 // The packet does not match a policy-based VPN tunnel local selector. 1114 VPN_TUNNEL_LOCAL_SELECTOR_MISMATCH = 45; 1115 1116 // The packet does not match a policy-based VPN tunnel remote selector. 1117 VPN_TUNNEL_REMOTE_SELECTOR_MISMATCH = 46; 1118 1119 // Packet with internal destination address sent to the internet gateway. 1120 PRIVATE_TRAFFIC_TO_INTERNET = 7; 1121 1122 // Instance with only an internal IP address tries to access Google API and 1123 // services, but private Google access is not enabled in the subnet. 1124 PRIVATE_GOOGLE_ACCESS_DISALLOWED = 8; 1125 1126 // Source endpoint tries to access Google API and services through the VPN 1127 // tunnel to another network, but Private Google Access needs to be enabled 1128 // in the source endpoint network. 1129 PRIVATE_GOOGLE_ACCESS_VIA_VPN_TUNNEL_UNSUPPORTED = 47; 1130 1131 // Instance with only an internal IP address tries to access external hosts, 1132 // but Cloud NAT is not enabled in the subnet, unless special configurations 1133 // on a VM allow this connection. 1134 NO_EXTERNAL_ADDRESS = 9; 1135 1136 // Destination internal address cannot be resolved to a known target. If 1137 // this is a shared VPC scenario, verify if the service project ID is 1138 // provided as test input. Otherwise, verify if the IP address is being 1139 // used in the project. 1140 UNKNOWN_INTERNAL_ADDRESS = 10; 1141 1142 // Forwarding rule's protocol and ports do not match the packet header. 1143 FORWARDING_RULE_MISMATCH = 11; 1144 1145 // Forwarding rule does not have backends configured. 1146 FORWARDING_RULE_NO_INSTANCES = 12; 1147 1148 // Firewalls block the health check probes to the backends and cause 1149 // the backends to be unavailable for traffic from the load balancer. 1150 // For more details, see [Health check firewall 1151 // rules](https://cloud.google.com/load-balancing/docs/health-checks#firewall_rules). 1152 FIREWALL_BLOCKING_LOAD_BALANCER_BACKEND_HEALTH_CHECK = 13; 1153 1154 // Packet is sent from or to a Compute Engine instance that is not in a 1155 // running state. 1156 INSTANCE_NOT_RUNNING = 14; 1157 1158 // Packet sent from or to a GKE cluster that is not in running state. 1159 GKE_CLUSTER_NOT_RUNNING = 27; 1160 1161 // Packet sent from or to a Cloud SQL instance that is not in running state. 1162 CLOUD_SQL_INSTANCE_NOT_RUNNING = 28; 1163 1164 // The type of traffic is blocked and the user cannot configure a firewall 1165 // rule to enable it. See [Always blocked 1166 // traffic](https://cloud.google.com/vpc/docs/firewalls#blockedtraffic) for 1167 // more details. 1168 TRAFFIC_TYPE_BLOCKED = 15; 1169 1170 // Access to Google Kubernetes Engine cluster master's endpoint is not 1171 // authorized. See [Access to the cluster 1172 // endpoints](https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters#access_to_the_cluster_endpoints) 1173 // for more details. 1174 GKE_MASTER_UNAUTHORIZED_ACCESS = 16; 1175 1176 // Access to the Cloud SQL instance endpoint is not authorized. 1177 // See [Authorizing with authorized 1178 // networks](https://cloud.google.com/sql/docs/mysql/authorize-networks) for 1179 // more details. 1180 CLOUD_SQL_INSTANCE_UNAUTHORIZED_ACCESS = 17; 1181 1182 // Packet was dropped inside Google Kubernetes Engine Service. 1183 DROPPED_INSIDE_GKE_SERVICE = 18; 1184 1185 // Packet was dropped inside Cloud SQL Service. 1186 DROPPED_INSIDE_CLOUD_SQL_SERVICE = 19; 1187 1188 // Packet was dropped because there is no peering between the originating 1189 // network and the Google Managed Services Network. 1190 GOOGLE_MANAGED_SERVICE_NO_PEERING = 20; 1191 1192 // Packet was dropped because the Google-managed service uses Private 1193 // Service Connect (PSC), but the PSC endpoint is not found in the project. 1194 GOOGLE_MANAGED_SERVICE_NO_PSC_ENDPOINT = 38; 1195 1196 // Packet was dropped because the GKE cluster uses Private Service Connect 1197 // (PSC), but the PSC endpoint is not found in the project. 1198 GKE_PSC_ENDPOINT_MISSING = 36; 1199 1200 // Packet was dropped because the Cloud SQL instance has neither a private 1201 // nor a public IP address. 1202 CLOUD_SQL_INSTANCE_NO_IP_ADDRESS = 21; 1203 1204 // Packet was dropped because a GKE cluster private endpoint is 1205 // unreachable from a region different from the cluster's region. 1206 GKE_CONTROL_PLANE_REGION_MISMATCH = 30; 1207 1208 // Packet sent from a public GKE cluster control plane to a private 1209 // IP address. 1210 PUBLIC_GKE_CONTROL_PLANE_TO_PRIVATE_DESTINATION = 31; 1211 1212 // Packet was dropped because there is no route from a GKE cluster 1213 // control plane to a destination network. 1214 GKE_CONTROL_PLANE_NO_ROUTE = 32; 1215 1216 // Packet sent from a Cloud SQL instance to an external IP address is not 1217 // allowed. The Cloud SQL instance is not configured to send packets to 1218 // external IP addresses. 1219 CLOUD_SQL_INSTANCE_NOT_CONFIGURED_FOR_EXTERNAL_TRAFFIC = 33; 1220 1221 // Packet sent from a Cloud SQL instance with only a public IP address to a 1222 // private IP address. 1223 PUBLIC_CLOUD_SQL_INSTANCE_TO_PRIVATE_DESTINATION = 34; 1224 1225 // Packet was dropped because there is no route from a Cloud SQL 1226 // instance to a destination network. 1227 CLOUD_SQL_INSTANCE_NO_ROUTE = 35; 1228 1229 // Packet could be dropped because the Cloud Function is not in an active 1230 // status. 1231 CLOUD_FUNCTION_NOT_ACTIVE = 22; 1232 1233 // Packet could be dropped because no VPC connector is set. 1234 VPC_CONNECTOR_NOT_SET = 23; 1235 1236 // Packet could be dropped because the VPC connector is not in a running 1237 // state. 1238 VPC_CONNECTOR_NOT_RUNNING = 24; 1239 1240 // Packet could be dropped because it was sent from a different region 1241 // to a regional forwarding without global access. 1242 FORWARDING_RULE_REGION_MISMATCH = 25; 1243 1244 // The Private Service Connect endpoint is in a project that is not approved 1245 // to connect to the service. 1246 PSC_CONNECTION_NOT_ACCEPTED = 26; 1247 1248 // The packet is sent to the Private Service Connect endpoint over the 1249 // peering, but [it's not 1250 // supported](https://cloud.google.com/vpc/docs/configure-private-service-connect-services#on-premises). 1251 PSC_ENDPOINT_ACCESSED_FROM_PEERED_NETWORK = 41; 1252 1253 // The packet is sent to the Private Service Connect backend (network 1254 // endpoint group), but the producer PSC forwarding rule does not have 1255 // global access enabled. 1256 PSC_NEG_PRODUCER_ENDPOINT_NO_GLOBAL_ACCESS = 48; 1257 1258 // The packet is sent to the Private Service Connect backend (network 1259 // endpoint group), but the producer PSC forwarding rule has multiple ports 1260 // specified. 1261 PSC_NEG_PRODUCER_FORWARDING_RULE_MULTIPLE_PORTS = 54; 1262 1263 // The packet is sent to the Private Service Connect backend (network 1264 // endpoint group) targeting a Cloud SQL service attachment, but this 1265 // configuration is not supported. 1266 CLOUD_SQL_PSC_NEG_UNSUPPORTED = 58; 1267 1268 // No NAT subnets are defined for the PSC service attachment. 1269 NO_NAT_SUBNETS_FOR_PSC_SERVICE_ATTACHMENT = 57; 1270 1271 // The packet sent from the hybrid NEG proxy matches a non-dynamic route, 1272 // but such a configuration is not supported. 1273 HYBRID_NEG_NON_DYNAMIC_ROUTE_MATCHED = 55; 1274 1275 // The packet sent from the hybrid NEG proxy matches a dynamic route with a 1276 // next hop in a different region, but such a configuration is not 1277 // supported. 1278 HYBRID_NEG_NON_LOCAL_DYNAMIC_ROUTE_MATCHED = 56; 1279 1280 // Packet sent from a Cloud Run revision that is not ready. 1281 CLOUD_RUN_REVISION_NOT_READY = 29; 1282 1283 // Packet was dropped inside Private Service Connect service producer. 1284 DROPPED_INSIDE_PSC_SERVICE_PRODUCER = 37; 1285 1286 // Packet sent to a load balancer, which requires a proxy-only subnet and 1287 // the subnet is not found. 1288 LOAD_BALANCER_HAS_NO_PROXY_SUBNET = 39; 1289 1290 // Packet sent to Cloud Nat without active NAT IPs. 1291 CLOUD_NAT_NO_ADDRESSES = 40; 1292 1293 // Packet is stuck in a routing loop. 1294 ROUTING_LOOP = 59; 1295 } 1296 1297 // Cause that the packet is dropped. 1298 Cause cause = 1; 1299 1300 // URI of the resource that caused the drop. 1301 string resource_uri = 2; 1302 1303 // Source IP address of the dropped packet (if relevant). 1304 string source_ip = 3; 1305 1306 // Destination IP address of the dropped packet (if relevant). 1307 string destination_ip = 4; 1308 1309 // Region of the dropped packet (if relevant). 1310 string region = 5; 1311} 1312 1313// For display only. Metadata associated with a Google Kubernetes Engine (GKE) 1314// cluster master. 1315message GKEMasterInfo { 1316 // URI of a GKE cluster. 1317 string cluster_uri = 2; 1318 1319 // URI of a GKE cluster network. 1320 string cluster_network_uri = 4; 1321 1322 // Internal IP address of a GKE cluster master. 1323 string internal_ip = 5; 1324 1325 // External IP address of a GKE cluster master. 1326 string external_ip = 6; 1327} 1328 1329// For display only. Metadata associated with a Cloud SQL instance. 1330message CloudSQLInstanceInfo { 1331 // Name of a Cloud SQL instance. 1332 string display_name = 1; 1333 1334 // URI of a Cloud SQL instance. 1335 string uri = 2; 1336 1337 // URI of a Cloud SQL instance network or empty string if the instance does 1338 // not have one. 1339 string network_uri = 4; 1340 1341 // Internal IP address of a Cloud SQL instance. 1342 string internal_ip = 5; 1343 1344 // External IP address of a Cloud SQL instance. 1345 string external_ip = 6; 1346 1347 // Region in which the Cloud SQL instance is running. 1348 string region = 7; 1349} 1350 1351// For display only. Metadata associated with a Cloud Function. 1352message CloudFunctionInfo { 1353 // Name of a Cloud Function. 1354 string display_name = 1; 1355 1356 // URI of a Cloud Function. 1357 string uri = 2; 1358 1359 // Location in which the Cloud Function is deployed. 1360 string location = 3; 1361 1362 // Latest successfully deployed version id of the Cloud Function. 1363 int64 version_id = 4; 1364} 1365 1366// For display only. Metadata associated with a Cloud Run revision. 1367message CloudRunRevisionInfo { 1368 // Name of a Cloud Run revision. 1369 string display_name = 1; 1370 1371 // URI of a Cloud Run revision. 1372 string uri = 2; 1373 1374 // Location in which this revision is deployed. 1375 string location = 4; 1376 1377 // URI of Cloud Run service this revision belongs to. 1378 string service_uri = 5; 1379} 1380 1381// For display only. Metadata associated with an App Engine version. 1382message AppEngineVersionInfo { 1383 // Name of an App Engine version. 1384 string display_name = 1; 1385 1386 // URI of an App Engine version. 1387 string uri = 2; 1388 1389 // Runtime of the App Engine version. 1390 string runtime = 3; 1391 1392 // App Engine execution environment for a version. 1393 string environment = 4; 1394} 1395 1396// For display only. Metadata associated with a VPC connector. 1397message VpcConnectorInfo { 1398 // Name of a VPC connector. 1399 string display_name = 1; 1400 1401 // URI of a VPC connector. 1402 string uri = 2; 1403 1404 // Location in which the VPC connector is deployed. 1405 string location = 3; 1406} 1407 1408// For display only. Metadata associated with NAT. 1409message NatInfo { 1410 // Types of NAT. 1411 enum Type { 1412 // Type is unspecified. 1413 TYPE_UNSPECIFIED = 0; 1414 1415 // From Compute Engine instance's internal address to external address. 1416 INTERNAL_TO_EXTERNAL = 1; 1417 1418 // From Compute Engine instance's external address to internal address. 1419 EXTERNAL_TO_INTERNAL = 2; 1420 1421 // Cloud NAT Gateway. 1422 CLOUD_NAT = 3; 1423 1424 // Private service connect NAT. 1425 PRIVATE_SERVICE_CONNECT = 4; 1426 } 1427 1428 // Type of NAT. 1429 Type type = 1; 1430 1431 // IP protocol in string format, for example: "TCP", "UDP", "ICMP". 1432 string protocol = 2; 1433 1434 // URI of the network where NAT translation takes place. 1435 string network_uri = 3; 1436 1437 // Source IP address before NAT translation. 1438 string old_source_ip = 4; 1439 1440 // Source IP address after NAT translation. 1441 string new_source_ip = 5; 1442 1443 // Destination IP address before NAT translation. 1444 string old_destination_ip = 6; 1445 1446 // Destination IP address after NAT translation. 1447 string new_destination_ip = 7; 1448 1449 // Source port before NAT translation. Only valid when protocol is TCP or UDP. 1450 int32 old_source_port = 8; 1451 1452 // Source port after NAT translation. Only valid when protocol is TCP or UDP. 1453 int32 new_source_port = 9; 1454 1455 // Destination port before NAT translation. Only valid when protocol is TCP or 1456 // UDP. 1457 int32 old_destination_port = 10; 1458 1459 // Destination port after NAT translation. Only valid when protocol is TCP or 1460 // UDP. 1461 int32 new_destination_port = 11; 1462 1463 // Uri of the Cloud Router. Only valid when type is CLOUD_NAT. 1464 string router_uri = 12; 1465 1466 // The name of Cloud NAT Gateway. Only valid when type is CLOUD_NAT. 1467 string nat_gateway_name = 13; 1468} 1469 1470// For display only. Metadata associated with ProxyConnection. 1471message ProxyConnectionInfo { 1472 // IP protocol in string format, for example: "TCP", "UDP", "ICMP". 1473 string protocol = 1; 1474 1475 // Source IP address of an original connection. 1476 string old_source_ip = 2; 1477 1478 // Source IP address of a new connection. 1479 string new_source_ip = 3; 1480 1481 // Destination IP address of an original connection 1482 string old_destination_ip = 4; 1483 1484 // Destination IP address of a new connection. 1485 string new_destination_ip = 5; 1486 1487 // Source port of an original connection. Only valid when protocol is TCP or 1488 // UDP. 1489 int32 old_source_port = 6; 1490 1491 // Source port of a new connection. Only valid when protocol is TCP or UDP. 1492 int32 new_source_port = 7; 1493 1494 // Destination port of an original connection. Only valid when protocol is TCP 1495 // or UDP. 1496 int32 old_destination_port = 8; 1497 1498 // Destination port of a new connection. Only valid when protocol is TCP or 1499 // UDP. 1500 int32 new_destination_port = 9; 1501 1502 // Uri of proxy subnet. 1503 string subnet_uri = 10; 1504 1505 // URI of the network where connection is proxied. 1506 string network_uri = 11; 1507} 1508 1509// For display only. Metadata associated with the load balancer backend. 1510message LoadBalancerBackendInfo { 1511 // Health check firewalls configuration state enum. 1512 enum HealthCheckFirewallsConfigState { 1513 // Configuration state unspecified. It usually means that the backend has 1514 // no health check attached, or there was an unexpected configuration error 1515 // preventing Connectivity tests from verifying health check configuration. 1516 HEALTH_CHECK_FIREWALLS_CONFIG_STATE_UNSPECIFIED = 0; 1517 1518 // Firewall rules (policies) allowing health check traffic from all required 1519 // IP ranges to the backend are configured. 1520 FIREWALLS_CONFIGURED = 1; 1521 1522 // Firewall rules (policies) allow health check traffic only from a part of 1523 // required IP ranges. 1524 FIREWALLS_PARTIALLY_CONFIGURED = 2; 1525 1526 // Firewall rules (policies) deny health check traffic from all required 1527 // IP ranges to the backend. 1528 FIREWALLS_NOT_CONFIGURED = 3; 1529 1530 // The network contains firewall rules of unsupported types, so Connectivity 1531 // tests were not able to verify health check configuration status. Please 1532 // refer to the documentation for the list of unsupported configurations: 1533 // https://cloud.google.com/network-intelligence-center/docs/connectivity-tests/concepts/overview#unsupported-configs 1534 FIREWALLS_UNSUPPORTED = 4; 1535 } 1536 1537 // Display name of the backend. For example, it might be an instance name for 1538 // the instance group backends, or an IP address and port for zonal network 1539 // endpoint group backends. 1540 string name = 1; 1541 1542 // URI of the backend instance (if applicable). Populated for instance group 1543 // backends, and zonal NEG backends. 1544 string instance_uri = 2; 1545 1546 // URI of the backend service this backend belongs to (if applicable). 1547 string backend_service_uri = 3; 1548 1549 // URI of the instance group this backend belongs to (if applicable). 1550 string instance_group_uri = 4; 1551 1552 // URI of the network endpoint group this backend belongs to (if applicable). 1553 string network_endpoint_group_uri = 5; 1554 1555 // URI of the backend bucket this backend targets (if applicable). 1556 string backend_bucket_uri = 8; 1557 1558 // URI of the PSC service attachment this PSC NEG backend targets (if 1559 // applicable). 1560 string psc_service_attachment_uri = 9; 1561 1562 // PSC Google API target this PSC NEG backend targets (if applicable). 1563 string psc_google_api_target = 10; 1564 1565 // URI of the health check attached to this backend (if applicable). 1566 string health_check_uri = 6; 1567 1568 // Output only. Health check firewalls configuration state for the backend. 1569 // This is a result of the static firewall analysis (verifying that health 1570 // check traffic from required IP ranges to the backend is allowed or not). 1571 // The backend might still be unhealthy even if these firewalls are 1572 // configured. Please refer to the documentation for more information: 1573 // https://cloud.google.com/load-balancing/docs/firewall-rules 1574 HealthCheckFirewallsConfigState health_check_firewalls_config_state = 7 1575 [(google.api.field_behavior) = OUTPUT_ONLY]; 1576} 1577 1578// Type of a load balancer. For more information, see [Summary of Google Cloud 1579// load 1580// balancers](https://cloud.google.com/load-balancing/docs/load-balancing-overview#summary-of-google-cloud-load-balancers). 1581enum LoadBalancerType { 1582 // Forwarding rule points to a different target than a load balancer or a 1583 // load balancer type is unknown. 1584 LOAD_BALANCER_TYPE_UNSPECIFIED = 0; 1585 1586 // Global external HTTP(S) load balancer. 1587 HTTPS_ADVANCED_LOAD_BALANCER = 1; 1588 1589 // Global external HTTP(S) load balancer (classic) 1590 HTTPS_LOAD_BALANCER = 2; 1591 1592 // Regional external HTTP(S) load balancer. 1593 REGIONAL_HTTPS_LOAD_BALANCER = 3; 1594 1595 // Internal HTTP(S) load balancer. 1596 INTERNAL_HTTPS_LOAD_BALANCER = 4; 1597 1598 // External SSL proxy load balancer. 1599 SSL_PROXY_LOAD_BALANCER = 5; 1600 1601 // External TCP proxy load balancer. 1602 TCP_PROXY_LOAD_BALANCER = 6; 1603 1604 // Internal regional TCP proxy load balancer. 1605 INTERNAL_TCP_PROXY_LOAD_BALANCER = 7; 1606 1607 // External TCP/UDP Network load balancer. 1608 NETWORK_LOAD_BALANCER = 8; 1609 1610 // Target-pool based external TCP/UDP Network load balancer. 1611 LEGACY_NETWORK_LOAD_BALANCER = 9; 1612 1613 // Internal TCP/UDP load balancer. 1614 TCP_UDP_INTERNAL_LOAD_BALANCER = 10; 1615} 1616 1617// For display only. Metadata associated with Storage Bucket. 1618message StorageBucketInfo { 1619 // Cloud Storage Bucket name. 1620 string bucket = 1; 1621} 1622