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.networkanalyzer.logging.v1; 18 19import "google/protobuf/timestamp.proto"; 20 21option csharp_namespace = "Google.Cloud.NetworkAnalyzer.Logging.V1"; 22option go_package = "cloud.google.com/go/networkanalyzer/logging/apiv1/loggingpb;loggingpb"; 23option java_multiple_files = true; 24option java_outer_classname = "AnalyzerLogProto"; 25option java_package = "com.google.cloud.networkanalyzer.logging.v1"; 26option php_namespace = "Google\\Cloud\\NetworkAnalyzer\\Logging\\V1"; 27option ruby_package = "Google::Cloud::NetworkAnalyzer::Logging::V1"; 28 29enum ReportCauseCode { 30 REPORT_CAUSE_CODE_UNSPECIFIED = 0; 31 32 // VPC Basics 33 ROUTE_INVALID_NEXT_HOP_VM_IP_FORWARDING_DISABLED = 1; 34 35 ROUTE_INVALID_NEXT_HOP_VM_DELETED = 2; 36 37 ROUTE_INVALID_NEXT_HOP_VM_STOPPED = 3; 38 39 ROUTE_INVALID_NEXT_HOP_ILB_MISCONFIGURED = 4; 40 41 ROUTE_INVALID_NEXT_HOP_VPN_TUNNEL_DELETED = 5; 42 43 ROUTE_INVALID_NEXT_HOP_ILB_BACKEND_IP_FORWARDING_DISABLED = 6; 44 45 IP_UTILIZATION_IP_ALLOCATION_RATIO_HIGH = 20; 46 47 // Summary of ip utilization of all subnet ranges in the project. 48 IP_UTILIZATION_IP_ALLOCATION_SUMMARY = 21; 49 50 // Kubernetes Engine 51 GKE_NODE_TO_CONTROL_PLANE_BLOCKED_BY_ROUTING_ISSUE = 201; 52 53 GKE_NODE_TO_CONTROL_PLANE_PUBLIC_ENDPOINT_BLOCKED_BY_EGRESS_FIREWALL = 202; 54 55 GKE_NODE_TO_CONTROL_PLANE_PRIVATE_ENDPOINT_BLOCKED_BY_EGRESS_FIREWALL = 203; 56 57 GKE_CONTROL_PLANE_TO_NODE_BLOCKED_BY_ROUTING_ISSUE = 211; 58 59 GKE_CONTROL_PLANE_TO_NODE_BLOCKED_BY_INGRESS_FIREWALL_ON_NODE = 212; 60 61 GKE_IP_UTILIZATION_POD_RANGES_ALLOCATION_HIGH = 221; 62 63 GKE_IP_UTILIZATION_POD_RANGES_ALLOCATION_LIMITES_AUTOSCALING = 222; 64 65 GKE_NODE_SERVICE_ACCOUNT_SERVICE_ACCOUNT_DISABLED = 243; 66 67 GKE_NODE_SERVICE_ACCOUNT_DEFAULT_SERVICE_ACCOUNT_USED = 244; 68 69 GKE_NODE_SERVICE_ACCOUNT_BAD_OAUTH_SCOPES = 245; 70 71 // Managed Services 72 CLOUD_SQL_PRIVATE_IP_BLOCKED_BY_EGRESS_FIREWALL = 601; 73 74 CLOUD_SQL_PRIVATE_IP_BLOCKED_BY_ROUTING_ISSUE = 602; 75 76 CLOUD_SQL_PRIVATE_IP_INSTANCE_NOT_RUNNING = 603; 77 78 // Hybrid Connectivity 79 DYNAMIC_ROUTE_SHADOWED_FULLY_SHADOWED_BY_SUBNET_ROUTE = 801; 80 81 DYNAMIC_ROUTE_SHADOWED_FULLY_SHADOWED_BY_PEERING_SUBNET_ROUTE = 802; 82 83 DYNAMIC_ROUTE_SHADOWED_FULLY_SHADOWED_BY_STATIC_ROUTE = 803; 84 85 DYNAMIC_ROUTE_SHADOWED_FULLY_SHADOWED_BY_PEERING_STATIC_ROUTE = 804; 86 87 DYNAMIC_ROUTE_SHADOWED_PARTIALLY_SHADOWED_BY_SUBNET_ROUTE = 805; 88 89 DYNAMIC_ROUTE_SHADOWED_PARTIALLY_SHADOWED_BY_PEERING_SUBNET_ROUTE = 806; 90 91 DYNAMIC_ROUTE_SHADOWED_PARTIALLY_SHADOWED_BY_STATIC_ROUTE = 807; 92 93 DYNAMIC_ROUTE_SHADOWED_PARTIALLY_SHADOWED_BY_PEERING_STATIC_ROUTE = 808; 94 95 // Network Services 96 LOAD_BALANCER_HEALTH_CHECK_FIREWALL_HEALTH_CHECK_FIREWALL_NOT_CONFIGURED = 97 1001; 98 99 LOAD_BALANCER_HEALTH_CHECK_FIREWALL_HEALTH_CHECK_RANGE_BLOCKED = 1002; 100 101 LOAD_BALANCER_HEALTH_CHECK_FIREWALL_FIREWALL_CONFIG_INCONSISTENT = 1003; 102 103 LOAD_BALANCER_HEALTH_CHECK_FIREWALL_HEALTH_CHECK_RANGE_PARTIALLY_BLOCKED = 104 1004; 105 106 LOAD_BALANCER_BEST_PRACTICES_BACKEND_SERVICE_BALANCING_MODE_BREAKS_SESSION_AFFINITY = 107 1021; 108 109 LOAD_BALANCER_BEST_PRACTICES_BACKEND_SERVICE_HEALTH_CHECK_PORT_MISMATCH = 110 1024; 111} 112 113message IpUtilizationInfo { 114 message SubnetIpUtilization { 115 // URI of subnet. 116 string subnet_uri = 1; 117 118 // Secondary range name. If the range is the primary range of the subnet, 119 // this field is empty. 120 string secondary_range_name = 2; 121 122 // Total number of usable IP addresses in the IP range. 123 uint64 total_usable_addresses = 3; 124 125 // The ratio of allocated IP addresses from the total usable addresses. 126 double allocation_ratio = 4; 127 } 128 129 repeated SubnetIpUtilization subnet_ip_utilization = 1; 130} 131 132// Log entry that describes a report from Network Analyzer. 133message Report { 134 // Priority level of an report. 135 enum Priority { 136 SEVERITY_UNSPECIFIED = 0; 137 138 CRITICAL = 1; 139 140 HIGH = 2; 141 142 MEDIUM = 3; 143 144 LOW = 4; 145 } 146 147 // Type of an report. 148 enum Type { 149 REPORT_TYPE_UNSPECIFIED = 0; 150 151 INFO = 1; 152 153 WARNING = 2; 154 155 ERROR = 3; 156 } 157 158 // Status of an report. 159 enum ReportStatus { 160 REPORT_STATUS_UNSPECIFIED = 0; 161 162 ACTIVE = 1; 163 164 FIXED = 2; 165 166 DISMISSED = 3; 167 } 168 169 // Groups of an report. 170 enum ReportGroup { 171 CATEGORY_UNSPECIFIED = 0; 172 173 VPC_NETWORK = 1; 174 175 NETWORK_SERVICES = 2; 176 177 KUBERNETES_ENGINE = 3; 178 179 HYBRID_CONNECTIVITY = 4; 180 181 MANAGED_SERVICES = 5; 182 } 183 184 // The unique identifier of the report. 185 string id = 1; 186 187 // Priority of the report. 188 Priority priority = 2; 189 190 // Type of the report. 191 Type type = 3; 192 193 // Status of the report. 194 ReportStatus status = 4; 195 196 // The timestamp when the report was first discovered by Network Analyzer. 197 google.protobuf.Timestamp first_report_time = 9; 198 199 // Cause code of the report. 200 ReportCauseCode cause_code = 12; 201 202 // The resource that are reported with the report. 203 // Contains the fully qualified resource name. 204 // e.g., 205 // `//compute.googleapis.com/projects/{project_id}/global/networks/{network}` 206 string resource_name = 15; 207 208 // Location associated with the report. It can be global or GCP regions 209 // and zones. e.g., https://cloud.google.com/compute/docs/regions-zones/ 210 string location = 16; 211 212 // URI to the documentation of the report. 213 string report_documentation_uri = 17; 214 215 // The groups of the report. One report may be present in multiple groups. 216 repeated ReportGroup report_groups = 18; 217 218 oneof content { 219 IpUtilizationInfo ip_utilization_info = 19; 220 } 221} 222