#[non_exhaustive]pub struct BackendServiceTlsSettings {
pub authentication_config: Option<String>,
pub identity: Option<String>,
pub sni: Option<String>,
pub subject_alt_names: Vec<BackendServiceTlsSettingsSubjectAltName>,
/* private fields */
}backend-services or region-backend-services only.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.authentication_config: Option<String>Reference to the BackendAuthenticationConfig resource from the networksecurity.googleapis.com namespace. Can be used in authenticating TLS connections to the backend, as specified by the authenticationMode field. Can only be specified if authenticationMode is not NONE.
identity: Option<String>Assigns the Managed Identity for the BackendService Workload.
Use this property to configure the load balancer back-end to use certificates and roots of trust provisioned by the Managed Workload Identity system.
The identity property is the
fully-specified SPIFFE ID to use in the SVID presented by the Load
Balancer Workload.
The SPIFFE ID must be a resource starting with the
trustDomain property value, followed by the path to the Managed
Workload Identity.
Supported SPIFFE ID format:
- //<trust_domain>/ns/<namespace>/sa/<subject>
The Trust Domain within the Managed Identity must refer to a valid Workload Identity Pool. The TrustConfig and CertificateIssuanceConfig will be inherited from the Workload Identity Pool.
Restrictions:
- If you set the
identityproperty, you cannot manually set the following fields:- tlsSettings.sni
- tlsSettings.subjectAltNames
- tlsSettings.authenticationConfig
When defining a identity for a RegionBackendServices, the
corresponding Workload Identity Pool must have a ca_pool
configured in the same region.
The system will set up a read-onlytlsSettings.authenticationConfig for the Managed Identity.
sni: Option<String>Server Name Indication - see RFC3546 section 3.1. If set, the load balancer sends this string as the SNI hostname in the TLS connection to the backend, and requires that this string match a Subject Alternative Name (SAN) in the backend’s server certificate. With a Regional Internet NEG backend, if the SNI is specified here, the load balancer uses it regardless of whether the Regional Internet NEG is specified with FQDN or IP address and port. When both sni and subjectAltNames[] are specified, the load balancer matches the backend certificate’s SAN only to subjectAltNames[].
subject_alt_names: Vec<BackendServiceTlsSettingsSubjectAltName>A list of Subject Alternative Names (SANs) that the Load Balancer verifies during a TLS handshake with the backend. When the server presents its X.509 certificate to the Load Balancer, the Load Balancer inspects the certificate’s SAN field, and requires that at least one SAN match one of the subjectAltNames in the list. This field is limited to 5 entries. When both sni and subjectAltNames[] are specified, the load balancer matches the backend certificate’s SAN only to subjectAltNames[].
Implementations§
Source§impl BackendServiceTlsSettings
impl BackendServiceTlsSettings
Sourcepub fn set_authentication_config<T>(self, v: T) -> Self
pub fn set_authentication_config<T>(self, v: T) -> Self
Sets the value of authentication_config.
§Example
let x = BackendServiceTlsSettings::new().set_authentication_config("example");Sourcepub fn set_or_clear_authentication_config<T>(self, v: Option<T>) -> Self
pub fn set_or_clear_authentication_config<T>(self, v: Option<T>) -> Self
Sets or clears the value of authentication_config.
§Example
let x = BackendServiceTlsSettings::new().set_or_clear_authentication_config(Some("example"));
let x = BackendServiceTlsSettings::new().set_or_clear_authentication_config(None::<String>);Sourcepub fn set_identity<T>(self, v: T) -> Self
pub fn set_identity<T>(self, v: T) -> Self
Sourcepub fn set_or_clear_identity<T>(self, v: Option<T>) -> Self
pub fn set_or_clear_identity<T>(self, v: Option<T>) -> Self
Sourcepub fn set_or_clear_sni<T>(self, v: Option<T>) -> Self
pub fn set_or_clear_sni<T>(self, v: Option<T>) -> Self
Sourcepub fn set_subject_alt_names<T, V>(self, v: T) -> Self
pub fn set_subject_alt_names<T, V>(self, v: T) -> Self
Sets the value of subject_alt_names.
§Example
use google_cloud_compute_v1::model::BackendServiceTlsSettingsSubjectAltName;
let x = BackendServiceTlsSettings::new()
.set_subject_alt_names([
BackendServiceTlsSettingsSubjectAltName::default()/* use setters */,
BackendServiceTlsSettingsSubjectAltName::default()/* use (different) setters */,
]);Trait Implementations§
Source§impl Clone for BackendServiceTlsSettings
impl Clone for BackendServiceTlsSettings
Source§impl Debug for BackendServiceTlsSettings
impl Debug for BackendServiceTlsSettings
Source§impl Default for BackendServiceTlsSettings
impl Default for BackendServiceTlsSettings
Source§impl Message for BackendServiceTlsSettings
impl Message for BackendServiceTlsSettings
impl StructuralPartialEq for BackendServiceTlsSettings
Auto Trait Implementations§
impl Freeze for BackendServiceTlsSettings
impl RefUnwindSafe for BackendServiceTlsSettings
impl Send for BackendServiceTlsSettings
impl Sync for BackendServiceTlsSettings
impl Unpin for BackendServiceTlsSettings
impl UnsafeUnpin for BackendServiceTlsSettings
impl UnwindSafe for BackendServiceTlsSettings
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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> 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