#[non_exhaustive]pub enum GrpcBareAddressScheme {
HttpsExceptLoopback,
Https,
Http,
}Expand description
How a gRPC interface address that carries no scheme is connected.
A2A’s AgentInterface.url for the gRPC binding is a gRPC target
("hostname:port", per the proto’s field comment since A2A cfc9d34),
not a URL: gRPC names carry no scheme, and whether the channel is TLS is
a property of the channel, not of the name. The official SDKs leave that
choice to the caller (Python: a grpc_channel_factory; the A2A project’s
own Rust SDK: plaintext unless a rustls config is supplied). This SDK makes
the choice explicit and defaults to the safe one.
An address that already carries http:// or https:// is used as-is; this
policy applies only to bare host[:port] addresses.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
HttpsExceptLoopback
TLS (https://) for every host except loopback (localhost,
127.0.0.0/8, ::1), which is plaintext. The default: the
specification requires TLS in production (§13), and a loopback
address is the one case where the peer is this machine — the same
rule browsers apply when they treat localhost as a secure context.
Https
TLS for every bare address, loopback included.
Http
Plaintext for every bare address. For private networks that terminate
TLS elsewhere (a service mesh sidecar, a Docker Compose network whose
agents advertise agent:50051), and for nothing reachable from the
public internet.
Trait Implementations§
Source§impl Clone for GrpcBareAddressScheme
impl Clone for GrpcBareAddressScheme
Source§fn clone(&self) -> GrpcBareAddressScheme
fn clone(&self) -> GrpcBareAddressScheme
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for GrpcBareAddressScheme
Source§impl Debug for GrpcBareAddressScheme
impl Debug for GrpcBareAddressScheme
Source§impl Default for GrpcBareAddressScheme
impl Default for GrpcBareAddressScheme
Source§fn default() -> GrpcBareAddressScheme
fn default() -> GrpcBareAddressScheme
impl Eq for GrpcBareAddressScheme
Source§impl PartialEq for GrpcBareAddressScheme
impl PartialEq for GrpcBareAddressScheme
impl StructuralPartialEq for GrpcBareAddressScheme
Auto Trait Implementations§
impl Freeze for GrpcBareAddressScheme
impl RefUnwindSafe for GrpcBareAddressScheme
impl Send for GrpcBareAddressScheme
impl Sync for GrpcBareAddressScheme
impl Unpin for GrpcBareAddressScheme
impl UnsafeUnpin for GrpcBareAddressScheme
impl UnwindSafe for GrpcBareAddressScheme
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request