...

Text file src/github.com/datawire/ambassador/v2/api/envoy/admin/v2alpha/config_dump.proto

Documentation: github.com/datawire/ambassador/v2/api/envoy/admin/v2alpha

     1syntax = "proto3";
     2
     3package envoy.admin.v2alpha;
     4
     5import "envoy/config/bootstrap/v2/bootstrap.proto";
     6
     7import "google/protobuf/any.proto";
     8import "google/protobuf/timestamp.proto";
     9
    10import "udpa/annotations/status.proto";
    11
    12option java_package = "io.envoyproxy.envoy.admin.v2alpha";
    13option java_outer_classname = "ConfigDumpProto";
    14option java_multiple_files = true;
    15option (udpa.annotations.file_status).package_version_status = FROZEN;
    16
    17// [#protodoc-title: ConfigDump]
    18
    19// The :ref:`/config_dump <operations_admin_interface_config_dump>` admin endpoint uses this wrapper
    20// message to maintain and serve arbitrary configuration information from any component in Envoy.
    21message ConfigDump {
    22  // This list is serialized and dumped in its entirety at the
    23  // :ref:`/config_dump <operations_admin_interface_config_dump>` endpoint.
    24  //
    25  // The following configurations are currently supported and will be dumped in the order given
    26  // below:
    27  //
    28  // * *bootstrap*: :ref:`BootstrapConfigDump <envoy_api_msg_admin.v2alpha.BootstrapConfigDump>`
    29  // * *clusters*: :ref:`ClustersConfigDump <envoy_api_msg_admin.v2alpha.ClustersConfigDump>`
    30  // * *listeners*: :ref:`ListenersConfigDump <envoy_api_msg_admin.v2alpha.ListenersConfigDump>`
    31  // * *routes*:  :ref:`RoutesConfigDump <envoy_api_msg_admin.v2alpha.RoutesConfigDump>`
    32  //
    33  // You can filter output with the resource and mask query parameters.
    34  // See :ref:`/config_dump?resource={} <operations_admin_interface_config_dump_by_resource>`,
    35  // :ref:`/config_dump?mask={} <operations_admin_interface_config_dump_by_mask>`,
    36  // or :ref:`/config_dump?resource={},mask={}
    37  // <operations_admin_interface_config_dump_by_resource_and_mask>` for more information.
    38  repeated google.protobuf.Any configs = 1;
    39}
    40
    41message UpdateFailureState {
    42  // What the component configuration would have been if the update had succeeded.
    43  google.protobuf.Any failed_configuration = 1;
    44
    45  // Time of the latest failed update attempt.
    46  google.protobuf.Timestamp last_update_attempt = 2;
    47
    48  // Details about the last failed update attempt.
    49  string details = 3;
    50}
    51
    52// This message describes the bootstrap configuration that Envoy was started with. This includes
    53// any CLI overrides that were merged. Bootstrap configuration information can be used to recreate
    54// the static portions of an Envoy configuration by reusing the output as the bootstrap
    55// configuration for another Envoy.
    56message BootstrapConfigDump {
    57  config.bootstrap.v2.Bootstrap bootstrap = 1;
    58
    59  // The timestamp when the BootstrapConfig was last updated.
    60  google.protobuf.Timestamp last_updated = 2;
    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  // Describes a statically loaded listener.
    68  message StaticListener {
    69    // The listener config.
    70    google.protobuf.Any listener = 1;
    71
    72    // The timestamp when the Listener was last successfully updated.
    73    google.protobuf.Timestamp last_updated = 2;
    74  }
    75
    76  message DynamicListenerState {
    77    // This is the per-resource version information. This version is currently taken from the
    78    // :ref:`version_info <envoy_api_field_DiscoveryResponse.version_info>` field at the time
    79    // that the listener was loaded. In the future, discrete per-listener versions may be supported
    80    // by the API.
    81    string version_info = 1;
    82
    83    // The listener config.
    84    google.protobuf.Any listener = 2;
    85
    86    // The timestamp when the Listener was last successfully updated.
    87    google.protobuf.Timestamp last_updated = 3;
    88  }
    89
    90  // Describes a dynamically loaded listener via the LDS API.
    91  // [#next-free-field: 6]
    92  message DynamicListener {
    93    // The name or unique id of this listener, pulled from the DynamicListenerState config.
    94    string name = 1;
    95
    96    // The listener state for any active listener by this name.
    97    // These are listeners that are available to service data plane traffic.
    98    DynamicListenerState active_state = 2;
    99
   100    // The listener state for any warming listener by this name.
   101    // These are listeners that are currently undergoing warming in preparation to service data
   102    // plane traffic. Note that if attempting to recreate an Envoy configuration from a
   103    // configuration dump, the warming listeners should generally be discarded.
   104    DynamicListenerState warming_state = 3;
   105
   106    // The listener state for any draining listener by this name.
   107    // These are listeners that are currently undergoing draining in preparation to stop servicing
   108    // data plane traffic. Note that if attempting to recreate an Envoy configuration from a
   109    // configuration dump, the draining listeners should generally be discarded.
   110    DynamicListenerState draining_state = 4;
   111
   112    // Set if the last update failed, cleared after the next successful update.
   113    UpdateFailureState error_state = 5;
   114  }
   115
   116  // This is the :ref:`version_info <envoy_api_field_DiscoveryResponse.version_info>` in the
   117  // last processed LDS discovery response. If there are only static bootstrap listeners, this field
   118  // will be "".
   119  string version_info = 1;
   120
   121  // The statically loaded listener configs.
   122  repeated StaticListener static_listeners = 2;
   123
   124  // State for any warming, active, or draining listeners.
   125  repeated DynamicListener dynamic_listeners = 3;
   126}
   127
   128// Envoy's cluster manager fills this message with all currently known clusters. Cluster
   129// configuration information can be used to recreate an Envoy configuration by populating all
   130// clusters as static clusters or by returning them in a CDS response.
   131message ClustersConfigDump {
   132  // Describes a statically loaded cluster.
   133  message StaticCluster {
   134    // The cluster config.
   135    google.protobuf.Any cluster = 1;
   136
   137    // The timestamp when the Cluster was last updated.
   138    google.protobuf.Timestamp last_updated = 2;
   139  }
   140
   141  // Describes a dynamically loaded cluster via the CDS API.
   142  message DynamicCluster {
   143    // This is the per-resource version information. This version is currently taken from the
   144    // :ref:`version_info <envoy_api_field_DiscoveryResponse.version_info>` field at the time
   145    // that the cluster was loaded. In the future, discrete per-cluster versions may be supported by
   146    // the API.
   147    string version_info = 1;
   148
   149    // The cluster config.
   150    google.protobuf.Any cluster = 2;
   151
   152    // The timestamp when the Cluster was last updated.
   153    google.protobuf.Timestamp last_updated = 3;
   154  }
   155
   156  // This is the :ref:`version_info <envoy_api_field_DiscoveryResponse.version_info>` in the
   157  // last processed CDS discovery response. If there are only static bootstrap clusters, this field
   158  // will be "".
   159  string version_info = 1;
   160
   161  // The statically loaded cluster configs.
   162  repeated StaticCluster static_clusters = 2;
   163
   164  // The dynamically loaded active clusters. These are clusters that are available to service
   165  // data plane traffic.
   166  repeated DynamicCluster dynamic_active_clusters = 3;
   167
   168  // The dynamically loaded warming clusters. These are clusters that are currently undergoing
   169  // warming in preparation to service data plane traffic. Note that if attempting to recreate an
   170  // Envoy configuration from a configuration dump, the warming clusters should generally be
   171  // discarded.
   172  repeated DynamicCluster dynamic_warming_clusters = 4;
   173}
   174
   175// Envoy's RDS implementation fills this message with all currently loaded routes, as described by
   176// their RouteConfiguration objects. Static routes that are either defined in the bootstrap configuration
   177// or defined inline while configuring listeners are separated from those configured dynamically via RDS.
   178// Route configuration information can be used to recreate an Envoy configuration by populating all routes
   179// as static routes or by returning them in RDS responses.
   180message RoutesConfigDump {
   181  message StaticRouteConfig {
   182    // The route config.
   183    google.protobuf.Any route_config = 1;
   184
   185    // The timestamp when the Route was last updated.
   186    google.protobuf.Timestamp last_updated = 2;
   187  }
   188
   189  message DynamicRouteConfig {
   190    // This is the per-resource version information. This version is currently taken from the
   191    // :ref:`version_info <envoy_api_field_DiscoveryResponse.version_info>` field at the time that
   192    // the route configuration was loaded.
   193    string version_info = 1;
   194
   195    // The route config.
   196    google.protobuf.Any route_config = 2;
   197
   198    // The timestamp when the Route was last updated.
   199    google.protobuf.Timestamp last_updated = 3;
   200  }
   201
   202  // The statically loaded route configs.
   203  repeated StaticRouteConfig static_route_configs = 2;
   204
   205  // The dynamically loaded route configs.
   206  repeated DynamicRouteConfig dynamic_route_configs = 3;
   207}
   208
   209// Envoy's scoped RDS implementation fills this message with all currently loaded route
   210// configuration scopes (defined via ScopedRouteConfigurationsSet protos). This message lists both
   211// the scopes defined inline with the higher order object (i.e., the HttpConnectionManager) and the
   212// dynamically obtained scopes via the SRDS API.
   213message ScopedRoutesConfigDump {
   214  message InlineScopedRouteConfigs {
   215    // The name assigned to the scoped route configurations.
   216    string name = 1;
   217
   218    // The scoped route configurations.
   219    repeated google.protobuf.Any scoped_route_configs = 2;
   220
   221    // The timestamp when the scoped route config set was last updated.
   222    google.protobuf.Timestamp last_updated = 3;
   223  }
   224
   225  message DynamicScopedRouteConfigs {
   226    // The name assigned to the scoped route configurations.
   227    string name = 1;
   228
   229    // This is the per-resource version information. This version is currently taken from the
   230    // :ref:`version_info <envoy_api_field_DiscoveryResponse.version_info>` field at the time that
   231    // the scoped routes configuration was loaded.
   232    string version_info = 2;
   233
   234    // The scoped route configurations.
   235    repeated google.protobuf.Any scoped_route_configs = 3;
   236
   237    // The timestamp when the scoped route config set was last updated.
   238    google.protobuf.Timestamp last_updated = 4;
   239  }
   240
   241  // The statically loaded scoped route configs.
   242  repeated InlineScopedRouteConfigs inline_scoped_route_configs = 1;
   243
   244  // The dynamically loaded scoped route configs.
   245  repeated DynamicScopedRouteConfigs dynamic_scoped_route_configs = 2;
   246}
   247
   248// Envoys SDS implementation fills this message with all secrets fetched dynamically via SDS.
   249message SecretsConfigDump {
   250  // DynamicSecret contains secret information fetched via SDS.
   251  message DynamicSecret {
   252    // The name assigned to the secret.
   253    string name = 1;
   254
   255    // This is the per-resource version information.
   256    string version_info = 2;
   257
   258    // The timestamp when the secret was last updated.
   259    google.protobuf.Timestamp last_updated = 3;
   260
   261    // The actual secret information.
   262    // Security sensitive information is redacted (replaced with "[redacted]") for
   263    // private keys and passwords in TLS certificates.
   264    google.protobuf.Any secret = 4;
   265  }
   266
   267  // StaticSecret specifies statically loaded secret in bootstrap.
   268  message StaticSecret {
   269    // The name assigned to the secret.
   270    string name = 1;
   271
   272    // The timestamp when the secret was last updated.
   273    google.protobuf.Timestamp last_updated = 2;
   274
   275    // The actual secret information.
   276    // Security sensitive information is redacted (replaced with "[redacted]") for
   277    // private keys and passwords in TLS certificates.
   278    google.protobuf.Any secret = 3;
   279  }
   280
   281  // The statically loaded secrets.
   282  repeated StaticSecret static_secrets = 1;
   283
   284  // The dynamically loaded active secrets. These are secrets that are available to service
   285  // clusters or listeners.
   286  repeated DynamicSecret dynamic_active_secrets = 2;
   287
   288  // The dynamically loaded warming secrets. These are secrets that are currently undergoing
   289  // warming in preparation to service clusters or listeners.
   290  repeated DynamicSecret dynamic_warming_secrets = 3;
   291}

View as plain text