#[non_exhaustive]pub struct Context {
pub rules: Vec<ContextRule>,
/* private fields */
}
Expand description
Context
defines which contexts an API requests.
Example:
context:
rules:
- selector: "*"
requested:
- google.rpc.context.ProjectContext
- google.rpc.context.OriginContext
The above specifies that all methods in the API request
google.rpc.context.ProjectContext
and
google.rpc.context.OriginContext
.
Available context types are defined in package
google.rpc.context
.
This also provides mechanism to allowlist any protobuf message extension that can be sent in grpc metadata using “x-goog-ext-<extension_id>-bin” and “x-goog-ext-<extension_id>-jspb” format. For example, list any service specific protobuf types that can appear in grpc metadata as follows in your yaml file:
Example:
context:
rules:
- selector: "google.example.library.v1.LibraryService.CreateBook"
allowed_request_extensions:
- google.foo.v1.NewExtension
allowed_response_extensions:
- google.foo.v1.NewExtension
You can also specify extension ID instead of fully qualified extension name here.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.rules: Vec<ContextRule>
A list of RPC context rules that apply to individual API methods.
NOTE: All service configuration rules follow “last one wins” order.