.. _envoy_api_file_envoy/service/status/v2/csds.proto:

Client Status Discovery Service (CSDS)
======================================


.. _envoy_api_msg_service.status.v2.ClientStatusRequest:

service.status.v2.ClientStatusRequest
-------------------------------------

`[service.status.v2.ClientStatusRequest proto] <https://github.com/envoyproxy/envoy/blob/v1.15.2/api/envoy/service/status/v2/csds.proto#L55>`_

Request for client status of clients identified by a list of NodeMatchers.

.. code-block:: json

  {
    "node_matchers": []
  }

.. _envoy_api_field_service.status.v2.ClientStatusRequest.node_matchers:

node_matchers
  (:ref:`type.matcher.NodeMatcher <envoy_api_msg_type.matcher.NodeMatcher>`) Management server can use these match criteria to identify clients.
  The match follows OR semantics.
  
  


.. _envoy_api_msg_service.status.v2.PerXdsConfig:

service.status.v2.PerXdsConfig
------------------------------

`[service.status.v2.PerXdsConfig proto] <https://github.com/envoyproxy/envoy/blob/v1.15.2/api/envoy/service/status/v2/csds.proto#L63>`_

Detailed config (per xDS) with status.

.. code-block:: json

  {
    "status": "...",
    "listener_config": "{...}",
    "cluster_config": "{...}",
    "route_config": "{...}",
    "scoped_route_config": "{...}"
  }

.. _envoy_api_field_service.status.v2.PerXdsConfig.status:

status
  (:ref:`service.status.v2.ConfigStatus <envoy_api_enum_service.status.v2.ConfigStatus>`) 
  
.. _envoy_api_field_service.status.v2.PerXdsConfig.listener_config:

listener_config
  (:ref:`admin.v2alpha.ListenersConfigDump <envoy_api_msg_admin.v2alpha.ListenersConfigDump>`) 
  
  
  Only one of :ref:`listener_config <envoy_api_field_service.status.v2.PerXdsConfig.listener_config>`, :ref:`cluster_config <envoy_api_field_service.status.v2.PerXdsConfig.cluster_config>`, :ref:`route_config <envoy_api_field_service.status.v2.PerXdsConfig.route_config>`, :ref:`scoped_route_config <envoy_api_field_service.status.v2.PerXdsConfig.scoped_route_config>` may be set.
  
.. _envoy_api_field_service.status.v2.PerXdsConfig.cluster_config:

cluster_config
  (:ref:`admin.v2alpha.ClustersConfigDump <envoy_api_msg_admin.v2alpha.ClustersConfigDump>`) 
  
  
  Only one of :ref:`listener_config <envoy_api_field_service.status.v2.PerXdsConfig.listener_config>`, :ref:`cluster_config <envoy_api_field_service.status.v2.PerXdsConfig.cluster_config>`, :ref:`route_config <envoy_api_field_service.status.v2.PerXdsConfig.route_config>`, :ref:`scoped_route_config <envoy_api_field_service.status.v2.PerXdsConfig.scoped_route_config>` may be set.
  
.. _envoy_api_field_service.status.v2.PerXdsConfig.route_config:

route_config
  (:ref:`admin.v2alpha.RoutesConfigDump <envoy_api_msg_admin.v2alpha.RoutesConfigDump>`) 
  
  
  Only one of :ref:`listener_config <envoy_api_field_service.status.v2.PerXdsConfig.listener_config>`, :ref:`cluster_config <envoy_api_field_service.status.v2.PerXdsConfig.cluster_config>`, :ref:`route_config <envoy_api_field_service.status.v2.PerXdsConfig.route_config>`, :ref:`scoped_route_config <envoy_api_field_service.status.v2.PerXdsConfig.scoped_route_config>` may be set.
  
.. _envoy_api_field_service.status.v2.PerXdsConfig.scoped_route_config:

scoped_route_config
  (:ref:`admin.v2alpha.ScopedRoutesConfigDump <envoy_api_msg_admin.v2alpha.ScopedRoutesConfigDump>`) 
  
  
  Only one of :ref:`listener_config <envoy_api_field_service.status.v2.PerXdsConfig.listener_config>`, :ref:`cluster_config <envoy_api_field_service.status.v2.PerXdsConfig.cluster_config>`, :ref:`route_config <envoy_api_field_service.status.v2.PerXdsConfig.route_config>`, :ref:`scoped_route_config <envoy_api_field_service.status.v2.PerXdsConfig.scoped_route_config>` may be set.
  


.. _envoy_api_msg_service.status.v2.ClientConfig:

service.status.v2.ClientConfig
------------------------------

`[service.status.v2.ClientConfig proto] <https://github.com/envoyproxy/envoy/blob/v1.15.2/api/envoy/service/status/v2/csds.proto#L78>`_

All xds configs for a particular client.

.. code-block:: json

  {
    "node": "{...}",
    "xds_config": []
  }

.. _envoy_api_field_service.status.v2.ClientConfig.node:

node
  (:ref:`core.Node <envoy_api_msg_core.Node>`) Node for a particular client.
  
  
.. _envoy_api_field_service.status.v2.ClientConfig.xds_config:

xds_config
  (:ref:`service.status.v2.PerXdsConfig <envoy_api_msg_service.status.v2.PerXdsConfig>`) 
  


.. _envoy_api_msg_service.status.v2.ClientStatusResponse:

service.status.v2.ClientStatusResponse
--------------------------------------

`[service.status.v2.ClientStatusResponse proto] <https://github.com/envoyproxy/envoy/blob/v1.15.2/api/envoy/service/status/v2/csds.proto#L85>`_


.. code-block:: json

  {
    "config": []
  }

.. _envoy_api_field_service.status.v2.ClientStatusResponse.config:

config
  (:ref:`service.status.v2.ClientConfig <envoy_api_msg_service.status.v2.ClientConfig>`) Client configs for the clients specified in the ClientStatusRequest.
  
  

.. _envoy_api_enum_service.status.v2.ConfigStatus:

Enum service.status.v2.ConfigStatus
-----------------------------------

`[service.status.v2.ConfigStatus proto] <https://github.com/envoyproxy/envoy/blob/v1.15.2/api/envoy/service/status/v2/csds.proto#L36>`_

Status of a config.

.. _envoy_api_enum_value_service.status.v2.ConfigStatus.UNKNOWN:

UNKNOWN
  *(DEFAULT)* ⁣Status info is not available/unknown.
  
  
.. _envoy_api_enum_value_service.status.v2.ConfigStatus.SYNCED:

SYNCED
  ⁣Management server has sent the config to client and received ACK.
  
  
.. _envoy_api_enum_value_service.status.v2.ConfigStatus.NOT_SENT:

NOT_SENT
  ⁣Config is not sent.
  
  
.. _envoy_api_enum_value_service.status.v2.ConfigStatus.STALE:

STALE
  ⁣Management server has sent the config to client but hasn’t received
  ACK/NACK.
  
  
.. _envoy_api_enum_value_service.status.v2.ConfigStatus.ERROR:

ERROR
  ⁣Management server has sent the config to client but received NACK.