1syntax = "proto3"; 2 3package envoy.admin.v3; 4 5import "google/protobuf/any.proto"; 6import "google/protobuf/timestamp.proto"; 7 8import "udpa/annotations/status.proto"; 9import "udpa/annotations/versioning.proto"; 10 11option java_package = "io.envoyproxy.envoy.admin.v3"; 12option java_outer_classname = "ConfigDumpSharedProto"; 13option java_multiple_files = true; 14option go_package = "github.com/envoyproxy/go-control-plane/envoy/admin/v3;adminv3"; 15option (udpa.annotations.file_status).package_version_status = ACTIVE; 16 17// [#protodoc-title: ConfigDump] 18 19// Resource status from the view of a xDS client, which tells the synchronization 20// status between the xDS client and the xDS server. 21enum ClientResourceStatus { 22 // Resource status is not available/unknown. 23 UNKNOWN = 0; 24 25 // Client requested this resource but hasn't received any update from management 26 // server. The client will not fail requests, but will queue them until update 27 // arrives or the client times out waiting for the resource. 28 REQUESTED = 1; 29 30 // This resource has been requested by the client but has either not been 31 // delivered by the server or was previously delivered by the server and then 32 // subsequently removed from resources provided by the server. For more 33 // information, please refer to the :ref:`"Knowing When a Requested Resource 34 // Does Not Exist" <xds_protocol_resource_not_existed>` section. 35 DOES_NOT_EXIST = 2; 36 37 // Client received this resource and replied with ACK. 38 ACKED = 3; 39 40 // Client received this resource and replied with NACK. 41 NACKED = 4; 42} 43 44message UpdateFailureState { 45 option (udpa.annotations.versioning).previous_message_type = 46 "envoy.admin.v2alpha.UpdateFailureState"; 47 48 // What the component configuration would have been if the update had succeeded. 49 // This field may not be populated by xDS clients due to storage overhead. 50 google.protobuf.Any failed_configuration = 1; 51 52 // Time of the latest failed update attempt. 53 google.protobuf.Timestamp last_update_attempt = 2; 54 55 // Details about the last failed update attempt. 56 string details = 3; 57 58 // This is the version of the rejected resource. 59 // [#not-implemented-hide:] 60 string version_info = 4; 61} 62 63// Envoy's listener manager fills this message with all currently known listeners. Listener 64// configuration information can be used to recreate an Envoy configuration by populating all 65// listeners as static listeners or by returning them in a LDS response. 66message ListenersConfigDump { 67 option (udpa.annotations.versioning).previous_message_type = 68 "envoy.admin.v2alpha.ListenersConfigDump"; 69 70 // Describes a statically loaded listener. 71 message StaticListener { 72 option (udpa.annotations.versioning).previous_message_type = 73 "envoy.admin.v2alpha.ListenersConfigDump.StaticListener"; 74 75 // The listener config. 76 google.protobuf.Any listener = 1; 77 78 // The timestamp when the Listener was last successfully updated. 79 google.protobuf.Timestamp last_updated = 2; 80 } 81 82 message DynamicListenerState { 83 option (udpa.annotations.versioning).previous_message_type = 84 "envoy.admin.v2alpha.ListenersConfigDump.DynamicListenerState"; 85 86 // This is the per-resource version information. This version is currently taken from the 87 // :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time 88 // that the listener was loaded. In the future, discrete per-listener versions may be supported 89 // by the API. 90 string version_info = 1; 91 92 // The listener config. 93 google.protobuf.Any listener = 2; 94 95 // The timestamp when the Listener was last successfully updated. 96 google.protobuf.Timestamp last_updated = 3; 97 } 98 99 // Describes a dynamically loaded listener via the LDS API. 100 // [#next-free-field: 7] 101 message DynamicListener { 102 option (udpa.annotations.versioning).previous_message_type = 103 "envoy.admin.v2alpha.ListenersConfigDump.DynamicListener"; 104 105 // The name or unique id of this listener, pulled from the DynamicListenerState config. 106 string name = 1; 107 108 // The listener state for any active listener by this name. 109 // These are listeners that are available to service data plane traffic. 110 DynamicListenerState active_state = 2; 111 112 // The listener state for any warming listener by this name. 113 // These are listeners that are currently undergoing warming in preparation to service data 114 // plane traffic. Note that if attempting to recreate an Envoy configuration from a 115 // configuration dump, the warming listeners should generally be discarded. 116 DynamicListenerState warming_state = 3; 117 118 // The listener state for any draining listener by this name. 119 // These are listeners that are currently undergoing draining in preparation to stop servicing 120 // data plane traffic. Note that if attempting to recreate an Envoy configuration from a 121 // configuration dump, the draining listeners should generally be discarded. 122 DynamicListenerState draining_state = 4; 123 124 // Set if the last update failed, cleared after the next successful update. 125 // The ``error_state`` field contains the rejected version of this particular 126 // resource along with the reason and timestamp. For successfully updated or 127 // acknowledged resource, this field should be empty. 128 UpdateFailureState error_state = 5; 129 130 // The client status of this resource. 131 // [#not-implemented-hide:] 132 ClientResourceStatus client_status = 6; 133 } 134 135 // This is the :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` in the 136 // last processed LDS discovery response. If there are only static bootstrap listeners, this field 137 // will be "". 138 string version_info = 1; 139 140 // The statically loaded listener configs. 141 repeated StaticListener static_listeners = 2; 142 143 // State for any warming, active, or draining listeners. 144 repeated DynamicListener dynamic_listeners = 3; 145} 146 147// Envoy's cluster manager fills this message with all currently known clusters. Cluster 148// configuration information can be used to recreate an Envoy configuration by populating all 149// clusters as static clusters or by returning them in a CDS response. 150message ClustersConfigDump { 151 option (udpa.annotations.versioning).previous_message_type = 152 "envoy.admin.v2alpha.ClustersConfigDump"; 153 154 // Describes a statically loaded cluster. 155 message StaticCluster { 156 option (udpa.annotations.versioning).previous_message_type = 157 "envoy.admin.v2alpha.ClustersConfigDump.StaticCluster"; 158 159 // The cluster config. 160 google.protobuf.Any cluster = 1; 161 162 // The timestamp when the Cluster was last updated. 163 google.protobuf.Timestamp last_updated = 2; 164 } 165 166 // Describes a dynamically loaded cluster via the CDS API. 167 // [#next-free-field: 6] 168 message DynamicCluster { 169 option (udpa.annotations.versioning).previous_message_type = 170 "envoy.admin.v2alpha.ClustersConfigDump.DynamicCluster"; 171 172 // This is the per-resource version information. This version is currently taken from the 173 // :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time 174 // that the cluster was loaded. In the future, discrete per-cluster versions may be supported by 175 // the API. 176 string version_info = 1; 177 178 // The cluster config. 179 google.protobuf.Any cluster = 2; 180 181 // The timestamp when the Cluster was last updated. 182 google.protobuf.Timestamp last_updated = 3; 183 184 // Set if the last update failed, cleared after the next successful update. 185 // The ``error_state`` field contains the rejected version of this particular 186 // resource along with the reason and timestamp. For successfully updated or 187 // acknowledged resource, this field should be empty. 188 // [#not-implemented-hide:] 189 UpdateFailureState error_state = 4; 190 191 // The client status of this resource. 192 // [#not-implemented-hide:] 193 ClientResourceStatus client_status = 5; 194 } 195 196 // This is the :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` in the 197 // last processed CDS discovery response. If there are only static bootstrap clusters, this field 198 // will be "". 199 string version_info = 1; 200 201 // The statically loaded cluster configs. 202 repeated StaticCluster static_clusters = 2; 203 204 // The dynamically loaded active clusters. These are clusters that are available to service 205 // data plane traffic. 206 repeated DynamicCluster dynamic_active_clusters = 3; 207 208 // The dynamically loaded warming clusters. These are clusters that are currently undergoing 209 // warming in preparation to service data plane traffic. Note that if attempting to recreate an 210 // Envoy configuration from a configuration dump, the warming clusters should generally be 211 // discarded. 212 repeated DynamicCluster dynamic_warming_clusters = 4; 213} 214 215// Envoy's RDS implementation fills this message with all currently loaded routes, as described by 216// their RouteConfiguration objects. Static routes that are either defined in the bootstrap configuration 217// or defined inline while configuring listeners are separated from those configured dynamically via RDS. 218// Route configuration information can be used to recreate an Envoy configuration by populating all routes 219// as static routes or by returning them in RDS responses. 220message RoutesConfigDump { 221 option (udpa.annotations.versioning).previous_message_type = 222 "envoy.admin.v2alpha.RoutesConfigDump"; 223 224 message StaticRouteConfig { 225 option (udpa.annotations.versioning).previous_message_type = 226 "envoy.admin.v2alpha.RoutesConfigDump.StaticRouteConfig"; 227 228 // The route config. 229 google.protobuf.Any route_config = 1; 230 231 // The timestamp when the Route was last updated. 232 google.protobuf.Timestamp last_updated = 2; 233 } 234 235 // [#next-free-field: 6] 236 message DynamicRouteConfig { 237 option (udpa.annotations.versioning).previous_message_type = 238 "envoy.admin.v2alpha.RoutesConfigDump.DynamicRouteConfig"; 239 240 // This is the per-resource version information. This version is currently taken from the 241 // :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time that 242 // the route configuration was loaded. 243 string version_info = 1; 244 245 // The route config. 246 google.protobuf.Any route_config = 2; 247 248 // The timestamp when the Route was last updated. 249 google.protobuf.Timestamp last_updated = 3; 250 251 // Set if the last update failed, cleared after the next successful update. 252 // The ``error_state`` field contains the rejected version of this particular 253 // resource along with the reason and timestamp. For successfully updated or 254 // acknowledged resource, this field should be empty. 255 // [#not-implemented-hide:] 256 UpdateFailureState error_state = 4; 257 258 // The client status of this resource. 259 // [#not-implemented-hide:] 260 ClientResourceStatus client_status = 5; 261 } 262 263 // The statically loaded route configs. 264 repeated StaticRouteConfig static_route_configs = 2; 265 266 // The dynamically loaded route configs. 267 repeated DynamicRouteConfig dynamic_route_configs = 3; 268} 269 270// Envoy's scoped RDS implementation fills this message with all currently loaded route 271// configuration scopes (defined via ScopedRouteConfigurationsSet protos). This message lists both 272// the scopes defined inline with the higher order object (i.e., the HttpConnectionManager) and the 273// dynamically obtained scopes via the SRDS API. 274message ScopedRoutesConfigDump { 275 option (udpa.annotations.versioning).previous_message_type = 276 "envoy.admin.v2alpha.ScopedRoutesConfigDump"; 277 278 message InlineScopedRouteConfigs { 279 option (udpa.annotations.versioning).previous_message_type = 280 "envoy.admin.v2alpha.ScopedRoutesConfigDump.InlineScopedRouteConfigs"; 281 282 // The name assigned to the scoped route configurations. 283 string name = 1; 284 285 // The scoped route configurations. 286 repeated google.protobuf.Any scoped_route_configs = 2; 287 288 // The timestamp when the scoped route config set was last updated. 289 google.protobuf.Timestamp last_updated = 3; 290 } 291 292 // [#next-free-field: 7] 293 message DynamicScopedRouteConfigs { 294 option (udpa.annotations.versioning).previous_message_type = 295 "envoy.admin.v2alpha.ScopedRoutesConfigDump.DynamicScopedRouteConfigs"; 296 297 // The name assigned to the scoped route configurations. 298 string name = 1; 299 300 // This is the per-resource version information. This version is currently taken from the 301 // :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time that 302 // the scoped routes configuration was loaded. 303 string version_info = 2; 304 305 // The scoped route configurations. 306 repeated google.protobuf.Any scoped_route_configs = 3; 307 308 // The timestamp when the scoped route config set was last updated. 309 google.protobuf.Timestamp last_updated = 4; 310 311 // Set if the last update failed, cleared after the next successful update. 312 // The ``error_state`` field contains the rejected version of this particular 313 // resource along with the reason and timestamp. For successfully updated or 314 // acknowledged resource, this field should be empty. 315 // [#not-implemented-hide:] 316 UpdateFailureState error_state = 5; 317 318 // The client status of this resource. 319 // [#not-implemented-hide:] 320 ClientResourceStatus client_status = 6; 321 } 322 323 // The statically loaded scoped route configs. 324 repeated InlineScopedRouteConfigs inline_scoped_route_configs = 1; 325 326 // The dynamically loaded scoped route configs. 327 repeated DynamicScopedRouteConfigs dynamic_scoped_route_configs = 2; 328} 329 330// Envoy's admin fill this message with all currently known endpoints. Endpoint 331// configuration information can be used to recreate an Envoy configuration by populating all 332// endpoints as static endpoints or by returning them in an EDS response. 333message EndpointsConfigDump { 334 message StaticEndpointConfig { 335 // The endpoint config. 336 google.protobuf.Any endpoint_config = 1; 337 338 // [#not-implemented-hide:] The timestamp when the Endpoint was last updated. 339 google.protobuf.Timestamp last_updated = 2; 340 } 341 342 // [#next-free-field: 6] 343 message DynamicEndpointConfig { 344 // [#not-implemented-hide:] This is the per-resource version information. This version is currently taken from the 345 // :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time that 346 // the endpoint configuration was loaded. 347 string version_info = 1; 348 349 // The endpoint config. 350 google.protobuf.Any endpoint_config = 2; 351 352 // [#not-implemented-hide:] The timestamp when the Endpoint was last updated. 353 google.protobuf.Timestamp last_updated = 3; 354 355 // Set if the last update failed, cleared after the next successful update. 356 // The ``error_state`` field contains the rejected version of this particular 357 // resource along with the reason and timestamp. For successfully updated or 358 // acknowledged resource, this field should be empty. 359 // [#not-implemented-hide:] 360 UpdateFailureState error_state = 4; 361 362 // The client status of this resource. 363 // [#not-implemented-hide:] 364 ClientResourceStatus client_status = 5; 365 } 366 367 // The statically loaded endpoint configs. 368 repeated StaticEndpointConfig static_endpoint_configs = 2; 369 370 // The dynamically loaded endpoint configs. 371 repeated DynamicEndpointConfig dynamic_endpoint_configs = 3; 372} 373 374// Envoy's ECDS service fills this message with all currently extension 375// configuration. Extension configuration information can be used to recreate 376// an Envoy ECDS listener and HTTP filters as static filters or by returning 377// them in ECDS response. 378message EcdsConfigDump { 379 option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v2alpha.EcdsConfigDump"; 380 381 // [#next-free-field: 6] 382 message EcdsFilterConfig { 383 option (udpa.annotations.versioning).previous_message_type = 384 "envoy.admin.v2alpha.EcdsConfigDump.EcdsFilterConfig"; 385 386 // This is the per-resource version information. This version is currently 387 // taken from the :ref:`version_info 388 // <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` 389 // field at the time that the ECDS filter was loaded. 390 string version_info = 1; 391 392 // The ECDS filter config. 393 google.protobuf.Any ecds_filter = 2; 394 395 // The timestamp when the ECDS filter was last updated. 396 google.protobuf.Timestamp last_updated = 3; 397 398 // Set if the last update failed, cleared after the next successful update. 399 // The ``error_state`` field contains the rejected version of this 400 // particular resource along with the reason and timestamp. For successfully 401 // updated or acknowledged resource, this field should be empty. 402 // [#not-implemented-hide:] 403 UpdateFailureState error_state = 4; 404 405 // The client status of this resource. 406 // [#not-implemented-hide:] 407 ClientResourceStatus client_status = 5; 408 } 409 410 // The ECDS filter configs. 411 repeated EcdsFilterConfig ecds_filters = 1; 412} 413