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