.. _envoy_api_file_envoy/api/v2/core/grpc_service.proto: gRPC services ============= .. _envoy_api_msg_core.GrpcService: core.GrpcService ---------------- `[core.GrpcService proto] `_ gRPC service configuration. This is used by :ref:`ApiConfigSource ` and filter configurations. .. WARNING:: This message type has :ref:`draft ` status. .. code-block:: json { "envoy_grpc": "{...}", "google_grpc": "{...}", "timeout": "{...}", "credentials": [], "initial_metadata": [] } .. _envoy_api_field_core.GrpcService.envoy_grpc: envoy_grpc (:ref:`core.GrpcService.EnvoyGrpc `) Envoy's in-built gRPC client. See the :ref:`gRPC services overview ` documentation for discussion on gRPC client selection. Precisely one of :ref:`envoy_grpc `, :ref:`google_grpc ` must be set. .. _envoy_api_field_core.GrpcService.google_grpc: google_grpc (:ref:`core.GrpcService.GoogleGrpc `) `Google C++ gRPC client `_ See the :ref:`gRPC services overview ` documentation for discussion on gRPC client selection. Precisely one of :ref:`envoy_grpc `, :ref:`google_grpc ` must be set. .. _envoy_api_field_core.GrpcService.timeout: timeout (`Duration `_) The timeout for the gRPC request. This is the timeout for a specific request. .. _envoy_api_field_core.GrpcService.credentials: credentials (:ref:`core.GrpcService.Credentials `) A set of credentials that will be composed to form the `channel credentials `_. .. _envoy_api_field_core.GrpcService.initial_metadata: initial_metadata (:ref:`core.HeaderValue `) Additional metadata to include in streams initiated to the GrpcService. This can be used for scenarios in which additional ad hoc authorization headers (e.g. `x-foo-bar: baz-key`) are to be injected. .. _envoy_api_msg_core.GrpcService.EnvoyGrpc: core.GrpcService.EnvoyGrpc -------------------------- `[core.GrpcService.EnvoyGrpc proto] `_ .. WARNING:: This message type has :ref:`draft ` status. .. code-block:: json { "cluster_name": "..." } .. _envoy_api_field_core.GrpcService.EnvoyGrpc.cluster_name: cluster_name (`string `_, *REQUIRED*) The name of the upstream gRPC cluster. SSL credentials will be supplied in the :ref:`Cluster ` :ref:`tls_context `. .. _envoy_api_msg_core.GrpcService.GoogleGrpc: core.GrpcService.GoogleGrpc --------------------------- `[core.GrpcService.GoogleGrpc proto] `_ .. WARNING:: This message type has :ref:`draft ` status. .. code-block:: json { "target_uri": "...", "ssl_credentials": "{...}", "stat_prefix": "...", "config": "{...}" } .. _envoy_api_field_core.GrpcService.GoogleGrpc.target_uri: target_uri (`string `_, *REQUIRED*) The target URI when using the `Google C++ gRPC client `_. SSL credentials will be supplied in :ref:`credentials `. .. _envoy_api_field_core.GrpcService.GoogleGrpc.ssl_credentials: ssl_credentials (:ref:`core.GrpcService.GoogleGrpc.SslCredentials `) .. _envoy_api_field_core.GrpcService.GoogleGrpc.stat_prefix: stat_prefix (`string `_, *REQUIRED*) The human readable prefix to use when emitting statistics for the gRPC service. .. csv-table:: :header: Name, Type, Description :widths: 1, 1, 2 streams_total, Counter, Total number of streams opened streams_closed_, Counter, Total streams closed with .. _envoy_api_field_core.GrpcService.GoogleGrpc.config: config (`Struct `_) Additional configuration for site-specific customizations of the Google gRPC library. .. _envoy_api_msg_core.GrpcService.GoogleGrpc.SslCredentials: core.GrpcService.GoogleGrpc.SslCredentials ------------------------------------------ `[core.GrpcService.GoogleGrpc.SslCredentials proto] `_ See https://grpc.io/grpc/cpp/structgrpc_1_1_ssl_credentials_options.html. .. WARNING:: This message type has :ref:`draft ` status. .. code-block:: json { "root_certs": "{...}", "private_key": "{...}", "cert_chain": "{...}" } .. _envoy_api_field_core.GrpcService.GoogleGrpc.SslCredentials.root_certs: root_certs (:ref:`core.DataSource `) PEM encoded server root certificates. .. _envoy_api_field_core.GrpcService.GoogleGrpc.SslCredentials.private_key: private_key (:ref:`core.DataSource `) PEM encoded client private key. .. _envoy_api_field_core.GrpcService.GoogleGrpc.SslCredentials.cert_chain: cert_chain (:ref:`core.DataSource `) PEM encoded client certificate chain. .. _envoy_api_msg_core.GrpcService.Credentials: core.GrpcService.Credentials ---------------------------- `[core.GrpcService.Credentials proto] `_ gRPC credentials as described at https://grpc.io/docs/guides/auth.html#credential-types. .. note:: Credentials are only currently implemented for the Google gRPC client. .. WARNING:: This message type has :ref:`draft ` status. .. code-block:: json { "access_token": "..." } .. _envoy_api_field_core.GrpcService.Credentials.access_token: access_token (`string `_) OAuth2 access token, see https://grpc.io/grpc/cpp/namespacegrpc.html#ad3a80da696ffdaea943f0f858d7a360d. Precisely one of :ref:`access_token ` must be set.