Documentation ¶
Index ¶
- Constants
- func NewAggregatedDiscoveryServiceHandler(svc AggregatedDiscoveryServiceHandler, opts ...connect_go.HandlerOption) (string, http.Handler)
- func NewHealthDiscoveryServiceHandler(svc HealthDiscoveryServiceHandler, opts ...connect_go.HandlerOption) (string, http.Handler)
- func NewRuntimeDiscoveryServiceHandler(svc RuntimeDiscoveryServiceHandler, opts ...connect_go.HandlerOption) (string, http.Handler)
- func NewSecretDiscoveryServiceHandler(svc SecretDiscoveryServiceHandler, opts ...connect_go.HandlerOption) (string, http.Handler)
- type AggregatedDiscoveryServiceClient
- type AggregatedDiscoveryServiceHandler
- type HealthDiscoveryServiceClient
- type HealthDiscoveryServiceHandler
- type RuntimeDiscoveryServiceClient
- type RuntimeDiscoveryServiceHandler
- type SecretDiscoveryServiceClient
- type SecretDiscoveryServiceHandler
- type UnimplementedAggregatedDiscoveryServiceHandler
- type UnimplementedHealthDiscoveryServiceHandler
- type UnimplementedRuntimeDiscoveryServiceHandler
- func (UnimplementedRuntimeDiscoveryServiceHandler) DeltaRuntime(context.Context, ...) error
- func (UnimplementedRuntimeDiscoveryServiceHandler) FetchRuntime(context.Context, *connect_go.Request[v2.DiscoveryRequest]) (*connect_go.Response[v2.DiscoveryResponse], error)
- func (UnimplementedRuntimeDiscoveryServiceHandler) StreamRuntime(context.Context, ...) error
- type UnimplementedSecretDiscoveryServiceHandler
- func (UnimplementedSecretDiscoveryServiceHandler) DeltaSecrets(context.Context, ...) error
- func (UnimplementedSecretDiscoveryServiceHandler) FetchSecrets(context.Context, *connect_go.Request[v2.DiscoveryRequest]) (*connect_go.Response[v2.DiscoveryResponse], error)
- func (UnimplementedSecretDiscoveryServiceHandler) StreamSecrets(context.Context, ...) error
Constants ¶
const ( // AggregatedDiscoveryServiceStreamAggregatedResourcesProcedure is the fully-qualified name of the // AggregatedDiscoveryService's StreamAggregatedResources RPC. AggregatedDiscoveryServiceStreamAggregatedResourcesProcedure = "/envoy.service.discovery.v2.AggregatedDiscoveryService/StreamAggregatedResources" // AggregatedDiscoveryServiceDeltaAggregatedResourcesProcedure is the fully-qualified name of the // AggregatedDiscoveryService's DeltaAggregatedResources RPC. AggregatedDiscoveryServiceDeltaAggregatedResourcesProcedure = "/envoy.service.discovery.v2.AggregatedDiscoveryService/DeltaAggregatedResources" )
These constants are the fully-qualified names of the RPCs defined in this package. They're exposed at runtime as Spec.Procedure and as the final two segments of the HTTP route.
Note that these are different from the fully-qualified method names used by google.golang.org/protobuf/reflect/protoreflect. To convert from these constants to reflection-formatted method names, remove the leading slash and convert the remaining slash to a period.
const ( // HealthDiscoveryServiceStreamHealthCheckProcedure is the fully-qualified name of the // HealthDiscoveryService's StreamHealthCheck RPC. HealthDiscoveryServiceStreamHealthCheckProcedure = "/envoy.service.discovery.v2.HealthDiscoveryService/StreamHealthCheck" // HealthDiscoveryServiceFetchHealthCheckProcedure is the fully-qualified name of the // HealthDiscoveryService's FetchHealthCheck RPC. HealthDiscoveryServiceFetchHealthCheckProcedure = "/envoy.service.discovery.v2.HealthDiscoveryService/FetchHealthCheck" )
These constants are the fully-qualified names of the RPCs defined in this package. They're exposed at runtime as Spec.Procedure and as the final two segments of the HTTP route.
Note that these are different from the fully-qualified method names used by google.golang.org/protobuf/reflect/protoreflect. To convert from these constants to reflection-formatted method names, remove the leading slash and convert the remaining slash to a period.
const ( // RuntimeDiscoveryServiceStreamRuntimeProcedure is the fully-qualified name of the // RuntimeDiscoveryService's StreamRuntime RPC. RuntimeDiscoveryServiceStreamRuntimeProcedure = "/envoy.service.discovery.v2.RuntimeDiscoveryService/StreamRuntime" // RuntimeDiscoveryServiceDeltaRuntimeProcedure is the fully-qualified name of the // RuntimeDiscoveryService's DeltaRuntime RPC. RuntimeDiscoveryServiceDeltaRuntimeProcedure = "/envoy.service.discovery.v2.RuntimeDiscoveryService/DeltaRuntime" // RuntimeDiscoveryServiceFetchRuntimeProcedure is the fully-qualified name of the // RuntimeDiscoveryService's FetchRuntime RPC. RuntimeDiscoveryServiceFetchRuntimeProcedure = "/envoy.service.discovery.v2.RuntimeDiscoveryService/FetchRuntime" )
These constants are the fully-qualified names of the RPCs defined in this package. They're exposed at runtime as Spec.Procedure and as the final two segments of the HTTP route.
Note that these are different from the fully-qualified method names used by google.golang.org/protobuf/reflect/protoreflect. To convert from these constants to reflection-formatted method names, remove the leading slash and convert the remaining slash to a period.
const ( // SecretDiscoveryServiceDeltaSecretsProcedure is the fully-qualified name of the // SecretDiscoveryService's DeltaSecrets RPC. SecretDiscoveryServiceDeltaSecretsProcedure = "/envoy.service.discovery.v2.SecretDiscoveryService/DeltaSecrets" // SecretDiscoveryServiceStreamSecretsProcedure is the fully-qualified name of the // SecretDiscoveryService's StreamSecrets RPC. SecretDiscoveryServiceStreamSecretsProcedure = "/envoy.service.discovery.v2.SecretDiscoveryService/StreamSecrets" // SecretDiscoveryServiceFetchSecretsProcedure is the fully-qualified name of the // SecretDiscoveryService's FetchSecrets RPC. SecretDiscoveryServiceFetchSecretsProcedure = "/envoy.service.discovery.v2.SecretDiscoveryService/FetchSecrets" )
These constants are the fully-qualified names of the RPCs defined in this package. They're exposed at runtime as Spec.Procedure and as the final two segments of the HTTP route.
Note that these are different from the fully-qualified method names used by google.golang.org/protobuf/reflect/protoreflect. To convert from these constants to reflection-formatted method names, remove the leading slash and convert the remaining slash to a period.
const ( // AggregatedDiscoveryServiceName is the fully-qualified name of the AggregatedDiscoveryService // service. AggregatedDiscoveryServiceName = "envoy.service.discovery.v2.AggregatedDiscoveryService" )
const (
// HealthDiscoveryServiceName is the fully-qualified name of the HealthDiscoveryService service.
HealthDiscoveryServiceName = "envoy.service.discovery.v2.HealthDiscoveryService"
)
const (
// RuntimeDiscoveryServiceName is the fully-qualified name of the RuntimeDiscoveryService service.
RuntimeDiscoveryServiceName = "envoy.service.discovery.v2.RuntimeDiscoveryService"
)
const (
// SecretDiscoveryServiceName is the fully-qualified name of the SecretDiscoveryService service.
SecretDiscoveryServiceName = "envoy.service.discovery.v2.SecretDiscoveryService"
)
Variables ¶
This section is empty.
Functions ¶
func NewAggregatedDiscoveryServiceHandler ¶
func NewAggregatedDiscoveryServiceHandler(svc AggregatedDiscoveryServiceHandler, opts ...connect_go.HandlerOption) (string, http.Handler)
NewAggregatedDiscoveryServiceHandler builds an HTTP handler from the service implementation. It returns the path on which to mount the handler and the handler itself.
By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf and JSON codecs. They also support gzip compression.
func NewHealthDiscoveryServiceHandler ¶
func NewHealthDiscoveryServiceHandler(svc HealthDiscoveryServiceHandler, opts ...connect_go.HandlerOption) (string, http.Handler)
NewHealthDiscoveryServiceHandler builds an HTTP handler from the service implementation. It returns the path on which to mount the handler and the handler itself.
By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf and JSON codecs. They also support gzip compression.
func NewRuntimeDiscoveryServiceHandler ¶
func NewRuntimeDiscoveryServiceHandler(svc RuntimeDiscoveryServiceHandler, opts ...connect_go.HandlerOption) (string, http.Handler)
NewRuntimeDiscoveryServiceHandler builds an HTTP handler from the service implementation. It returns the path on which to mount the handler and the handler itself.
By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf and JSON codecs. They also support gzip compression.
func NewSecretDiscoveryServiceHandler ¶
func NewSecretDiscoveryServiceHandler(svc SecretDiscoveryServiceHandler, opts ...connect_go.HandlerOption) (string, http.Handler)
NewSecretDiscoveryServiceHandler builds an HTTP handler from the service implementation. It returns the path on which to mount the handler and the handler itself.
By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf and JSON codecs. They also support gzip compression.
Types ¶
type AggregatedDiscoveryServiceClient ¶
type AggregatedDiscoveryServiceClient interface { // This is a gRPC-only API. StreamAggregatedResources(context.Context) *connect_go.BidiStreamForClient[v2.DiscoveryRequest, v2.DiscoveryResponse] DeltaAggregatedResources(context.Context) *connect_go.BidiStreamForClient[v2.DeltaDiscoveryRequest, v2.DeltaDiscoveryResponse] }
AggregatedDiscoveryServiceClient is a client for the envoy.service.discovery.v2.AggregatedDiscoveryService service.
func NewAggregatedDiscoveryServiceClient ¶
func NewAggregatedDiscoveryServiceClient(httpClient connect_go.HTTPClient, baseURL string, opts ...connect_go.ClientOption) AggregatedDiscoveryServiceClient
NewAggregatedDiscoveryServiceClient constructs a client for the envoy.service.discovery.v2.AggregatedDiscoveryService service. By default, it uses the Connect protocol with the binary Protobuf Codec, asks for gzipped responses, and sends uncompressed requests. To use the gRPC or gRPC-Web protocols, supply the connect.WithGRPC() or connect.WithGRPCWeb() options.
The URL supplied here should be the base URL for the Connect or gRPC server (for example, http://api.acme.com or https://acme.com/grpc).
type AggregatedDiscoveryServiceHandler ¶
type AggregatedDiscoveryServiceHandler interface { // This is a gRPC-only API. StreamAggregatedResources(context.Context, *connect_go.BidiStream[v2.DiscoveryRequest, v2.DiscoveryResponse]) error DeltaAggregatedResources(context.Context, *connect_go.BidiStream[v2.DeltaDiscoveryRequest, v2.DeltaDiscoveryResponse]) error }
AggregatedDiscoveryServiceHandler is an implementation of the envoy.service.discovery.v2.AggregatedDiscoveryService service.
type HealthDiscoveryServiceClient ¶
type HealthDiscoveryServiceClient interface { // 1. Envoy starts up and if its can_healthcheck option in the static // bootstrap config is enabled, sends HealthCheckRequest to the management // server. It supplies its capabilities (which protocol it can health check // with, what zone it resides in, etc.). // 2. In response to (1), the management server designates this Envoy as a // healthchecker to health check a subset of all upstream hosts for a given // cluster (for example upstream Host 1 and Host 2). It streams // HealthCheckSpecifier messages with cluster related configuration for all // clusters this Envoy is designated to health check. Subsequent // HealthCheckSpecifier message will be sent on changes to: // a. Endpoints to health checks // b. Per cluster configuration change // 3. Envoy creates a health probe based on the HealthCheck config and sends // it to endpoint(ip:port) of Host 1 and 2. Based on the HealthCheck // configuration Envoy waits upon the arrival of the probe response and // looks at the content of the response to decide whether the endpoint is // healthy or not. If a response hasn't been received within the timeout // interval, the endpoint health status is considered TIMEOUT. // 4. Envoy reports results back in an EndpointHealthResponse message. // Envoy streams responses as often as the interval configured by the // management server in HealthCheckSpecifier. // 5. The management Server collects health statuses for all endpoints in the // cluster (for all clusters) and uses this information to construct // EndpointDiscoveryResponse messages. // 6. Once Envoy has a list of upstream endpoints to send traffic to, it load // balances traffic to them without additional health checking. It may // use inline healthcheck (i.e. consider endpoint UNHEALTHY if connection // failed to a particular endpoint to account for health status propagation // delay between HDS and EDS). // // By default, can_healthcheck is true. If can_healthcheck is false, Cluster // configuration may not contain HealthCheck message. // TODO(htuch): How is can_healthcheck communicated to CDS to ensure the above // invariant? // TODO(htuch): Add @amb67's diagram. StreamHealthCheck(context.Context) *connect_go.BidiStreamForClient[v2.HealthCheckRequestOrEndpointHealthResponse, v2.HealthCheckSpecifier] // TODO(htuch): Unlike the gRPC version, there is no stream-based binding of // request/response. Should we add an identifier to the HealthCheckSpecifier // to bind with the response? FetchHealthCheck(context.Context, *connect_go.Request[v2.HealthCheckRequestOrEndpointHealthResponse]) (*connect_go.Response[v2.HealthCheckSpecifier], error) }
HealthDiscoveryServiceClient is a client for the envoy.service.discovery.v2.HealthDiscoveryService service.
func NewHealthDiscoveryServiceClient ¶
func NewHealthDiscoveryServiceClient(httpClient connect_go.HTTPClient, baseURL string, opts ...connect_go.ClientOption) HealthDiscoveryServiceClient
NewHealthDiscoveryServiceClient constructs a client for the envoy.service.discovery.v2.HealthDiscoveryService service. By default, it uses the Connect protocol with the binary Protobuf Codec, asks for gzipped responses, and sends uncompressed requests. To use the gRPC or gRPC-Web protocols, supply the connect.WithGRPC() or connect.WithGRPCWeb() options.
The URL supplied here should be the base URL for the Connect or gRPC server (for example, http://api.acme.com or https://acme.com/grpc).
type HealthDiscoveryServiceHandler ¶
type HealthDiscoveryServiceHandler interface { // 1. Envoy starts up and if its can_healthcheck option in the static // bootstrap config is enabled, sends HealthCheckRequest to the management // server. It supplies its capabilities (which protocol it can health check // with, what zone it resides in, etc.). // 2. In response to (1), the management server designates this Envoy as a // healthchecker to health check a subset of all upstream hosts for a given // cluster (for example upstream Host 1 and Host 2). It streams // HealthCheckSpecifier messages with cluster related configuration for all // clusters this Envoy is designated to health check. Subsequent // HealthCheckSpecifier message will be sent on changes to: // a. Endpoints to health checks // b. Per cluster configuration change // 3. Envoy creates a health probe based on the HealthCheck config and sends // it to endpoint(ip:port) of Host 1 and 2. Based on the HealthCheck // configuration Envoy waits upon the arrival of the probe response and // looks at the content of the response to decide whether the endpoint is // healthy or not. If a response hasn't been received within the timeout // interval, the endpoint health status is considered TIMEOUT. // 4. Envoy reports results back in an EndpointHealthResponse message. // Envoy streams responses as often as the interval configured by the // management server in HealthCheckSpecifier. // 5. The management Server collects health statuses for all endpoints in the // cluster (for all clusters) and uses this information to construct // EndpointDiscoveryResponse messages. // 6. Once Envoy has a list of upstream endpoints to send traffic to, it load // balances traffic to them without additional health checking. It may // use inline healthcheck (i.e. consider endpoint UNHEALTHY if connection // failed to a particular endpoint to account for health status propagation // delay between HDS and EDS). // // By default, can_healthcheck is true. If can_healthcheck is false, Cluster // configuration may not contain HealthCheck message. // TODO(htuch): How is can_healthcheck communicated to CDS to ensure the above // invariant? // TODO(htuch): Add @amb67's diagram. StreamHealthCheck(context.Context, *connect_go.BidiStream[v2.HealthCheckRequestOrEndpointHealthResponse, v2.HealthCheckSpecifier]) error // TODO(htuch): Unlike the gRPC version, there is no stream-based binding of // request/response. Should we add an identifier to the HealthCheckSpecifier // to bind with the response? FetchHealthCheck(context.Context, *connect_go.Request[v2.HealthCheckRequestOrEndpointHealthResponse]) (*connect_go.Response[v2.HealthCheckSpecifier], error) }
HealthDiscoveryServiceHandler is an implementation of the envoy.service.discovery.v2.HealthDiscoveryService service.
type RuntimeDiscoveryServiceClient ¶
type RuntimeDiscoveryServiceClient interface { StreamRuntime(context.Context) *connect_go.BidiStreamForClient[v2.DiscoveryRequest, v2.DiscoveryResponse] DeltaRuntime(context.Context) *connect_go.BidiStreamForClient[v2.DeltaDiscoveryRequest, v2.DeltaDiscoveryResponse] FetchRuntime(context.Context, *connect_go.Request[v2.DiscoveryRequest]) (*connect_go.Response[v2.DiscoveryResponse], error) }
RuntimeDiscoveryServiceClient is a client for the envoy.service.discovery.v2.RuntimeDiscoveryService service.
func NewRuntimeDiscoveryServiceClient ¶
func NewRuntimeDiscoveryServiceClient(httpClient connect_go.HTTPClient, baseURL string, opts ...connect_go.ClientOption) RuntimeDiscoveryServiceClient
NewRuntimeDiscoveryServiceClient constructs a client for the envoy.service.discovery.v2.RuntimeDiscoveryService service. By default, it uses the Connect protocol with the binary Protobuf Codec, asks for gzipped responses, and sends uncompressed requests. To use the gRPC or gRPC-Web protocols, supply the connect.WithGRPC() or connect.WithGRPCWeb() options.
The URL supplied here should be the base URL for the Connect or gRPC server (for example, http://api.acme.com or https://acme.com/grpc).
type RuntimeDiscoveryServiceHandler ¶
type RuntimeDiscoveryServiceHandler interface { StreamRuntime(context.Context, *connect_go.BidiStream[v2.DiscoveryRequest, v2.DiscoveryResponse]) error DeltaRuntime(context.Context, *connect_go.BidiStream[v2.DeltaDiscoveryRequest, v2.DeltaDiscoveryResponse]) error FetchRuntime(context.Context, *connect_go.Request[v2.DiscoveryRequest]) (*connect_go.Response[v2.DiscoveryResponse], error) }
RuntimeDiscoveryServiceHandler is an implementation of the envoy.service.discovery.v2.RuntimeDiscoveryService service.
type SecretDiscoveryServiceClient ¶
type SecretDiscoveryServiceClient interface { DeltaSecrets(context.Context) *connect_go.BidiStreamForClient[v2.DeltaDiscoveryRequest, v2.DeltaDiscoveryResponse] StreamSecrets(context.Context) *connect_go.BidiStreamForClient[v2.DiscoveryRequest, v2.DiscoveryResponse] FetchSecrets(context.Context, *connect_go.Request[v2.DiscoveryRequest]) (*connect_go.Response[v2.DiscoveryResponse], error) }
SecretDiscoveryServiceClient is a client for the envoy.service.discovery.v2.SecretDiscoveryService service.
func NewSecretDiscoveryServiceClient ¶
func NewSecretDiscoveryServiceClient(httpClient connect_go.HTTPClient, baseURL string, opts ...connect_go.ClientOption) SecretDiscoveryServiceClient
NewSecretDiscoveryServiceClient constructs a client for the envoy.service.discovery.v2.SecretDiscoveryService service. By default, it uses the Connect protocol with the binary Protobuf Codec, asks for gzipped responses, and sends uncompressed requests. To use the gRPC or gRPC-Web protocols, supply the connect.WithGRPC() or connect.WithGRPCWeb() options.
The URL supplied here should be the base URL for the Connect or gRPC server (for example, http://api.acme.com or https://acme.com/grpc).
type SecretDiscoveryServiceHandler ¶
type SecretDiscoveryServiceHandler interface { DeltaSecrets(context.Context, *connect_go.BidiStream[v2.DeltaDiscoveryRequest, v2.DeltaDiscoveryResponse]) error StreamSecrets(context.Context, *connect_go.BidiStream[v2.DiscoveryRequest, v2.DiscoveryResponse]) error FetchSecrets(context.Context, *connect_go.Request[v2.DiscoveryRequest]) (*connect_go.Response[v2.DiscoveryResponse], error) }
SecretDiscoveryServiceHandler is an implementation of the envoy.service.discovery.v2.SecretDiscoveryService service.
type UnimplementedAggregatedDiscoveryServiceHandler ¶
type UnimplementedAggregatedDiscoveryServiceHandler struct{}
UnimplementedAggregatedDiscoveryServiceHandler returns CodeUnimplemented from all methods.
func (UnimplementedAggregatedDiscoveryServiceHandler) DeltaAggregatedResources ¶
func (UnimplementedAggregatedDiscoveryServiceHandler) DeltaAggregatedResources(context.Context, *connect_go.BidiStream[v2.DeltaDiscoveryRequest, v2.DeltaDiscoveryResponse]) error
func (UnimplementedAggregatedDiscoveryServiceHandler) StreamAggregatedResources ¶
func (UnimplementedAggregatedDiscoveryServiceHandler) StreamAggregatedResources(context.Context, *connect_go.BidiStream[v2.DiscoveryRequest, v2.DiscoveryResponse]) error
type UnimplementedHealthDiscoveryServiceHandler ¶
type UnimplementedHealthDiscoveryServiceHandler struct{}
UnimplementedHealthDiscoveryServiceHandler returns CodeUnimplemented from all methods.
func (UnimplementedHealthDiscoveryServiceHandler) FetchHealthCheck ¶
func (UnimplementedHealthDiscoveryServiceHandler) FetchHealthCheck(context.Context, *connect_go.Request[v2.HealthCheckRequestOrEndpointHealthResponse]) (*connect_go.Response[v2.HealthCheckSpecifier], error)
func (UnimplementedHealthDiscoveryServiceHandler) StreamHealthCheck ¶
func (UnimplementedHealthDiscoveryServiceHandler) StreamHealthCheck(context.Context, *connect_go.BidiStream[v2.HealthCheckRequestOrEndpointHealthResponse, v2.HealthCheckSpecifier]) error
type UnimplementedRuntimeDiscoveryServiceHandler ¶
type UnimplementedRuntimeDiscoveryServiceHandler struct{}
UnimplementedRuntimeDiscoveryServiceHandler returns CodeUnimplemented from all methods.
func (UnimplementedRuntimeDiscoveryServiceHandler) DeltaRuntime ¶
func (UnimplementedRuntimeDiscoveryServiceHandler) DeltaRuntime(context.Context, *connect_go.BidiStream[v2.DeltaDiscoveryRequest, v2.DeltaDiscoveryResponse]) error
func (UnimplementedRuntimeDiscoveryServiceHandler) FetchRuntime ¶
func (UnimplementedRuntimeDiscoveryServiceHandler) FetchRuntime(context.Context, *connect_go.Request[v2.DiscoveryRequest]) (*connect_go.Response[v2.DiscoveryResponse], error)
func (UnimplementedRuntimeDiscoveryServiceHandler) StreamRuntime ¶
func (UnimplementedRuntimeDiscoveryServiceHandler) StreamRuntime(context.Context, *connect_go.BidiStream[v2.DiscoveryRequest, v2.DiscoveryResponse]) error
type UnimplementedSecretDiscoveryServiceHandler ¶
type UnimplementedSecretDiscoveryServiceHandler struct{}
UnimplementedSecretDiscoveryServiceHandler returns CodeUnimplemented from all methods.
func (UnimplementedSecretDiscoveryServiceHandler) DeltaSecrets ¶
func (UnimplementedSecretDiscoveryServiceHandler) DeltaSecrets(context.Context, *connect_go.BidiStream[v2.DeltaDiscoveryRequest, v2.DeltaDiscoveryResponse]) error
func (UnimplementedSecretDiscoveryServiceHandler) FetchSecrets ¶
func (UnimplementedSecretDiscoveryServiceHandler) FetchSecrets(context.Context, *connect_go.Request[v2.DiscoveryRequest]) (*connect_go.Response[v2.DiscoveryResponse], error)
func (UnimplementedSecretDiscoveryServiceHandler) StreamSecrets ¶
func (UnimplementedSecretDiscoveryServiceHandler) StreamSecrets(context.Context, *connect_go.BidiStream[v2.DiscoveryRequest, v2.DiscoveryResponse]) error