ServiceAccountKey

Struct ServiceAccountKey 

Source
#[non_exhaustive]
pub struct ServiceAccountKey { pub name: String, pub private_key_type: ServiceAccountPrivateKeyType, pub key_algorithm: ServiceAccountKeyAlgorithm, pub private_key_data: Bytes, pub public_key_data: Bytes, pub valid_after_time: Option<Timestamp>, pub valid_before_time: Option<Timestamp>, pub key_origin: ServiceAccountKeyOrigin, pub key_type: KeyType, pub disabled: bool, /* private fields */ }
Expand description

Represents a service account key.

A service account has two sets of key-pairs: user-managed, and system-managed.

User-managed key-pairs can be created and deleted by users. Users are responsible for rotating these keys periodically to ensure security of their service accounts. Users retain the private key of these key-pairs, and Google retains ONLY the public key.

System-managed keys are automatically rotated by Google, and are used for signing for a maximum of two weeks. The rotation process is probabilistic, and usage of the new key will gradually ramp up and down over the key’s lifetime.

If you cache the public key set for a service account, we recommend that you update the cache every 15 minutes. User-managed keys can be added and removed at any time, so it is important to update the cache frequently. For Google-managed keys, Google will publish a key at least 6 hours before it is first used for signing and will keep publishing it for at least 6 hours after it was last used for signing.

Public keys for all service accounts are also published at the OAuth2 Service Account API.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§name: String

The resource name of the service account key in the following format projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}.

§private_key_type: ServiceAccountPrivateKeyType

The output format for the private key. Only provided in CreateServiceAccountKey responses, not in GetServiceAccountKey or ListServiceAccountKey responses.

Google never exposes system-managed private keys, and never retains user-managed private keys.

§key_algorithm: ServiceAccountKeyAlgorithm

Specifies the algorithm (and possibly key size) for the key.

§private_key_data: Bytes

The private key data. Only provided in CreateServiceAccountKey responses. Make sure to keep the private key data secure because it allows for the assertion of the service account identity. When base64 decoded, the private key data can be used to authenticate with Google API client libraries and with gcloud auth activate-service-account.

§public_key_data: Bytes

The public key data. Only provided in GetServiceAccountKey responses.

§valid_after_time: Option<Timestamp>

The key can be used after this timestamp.

§valid_before_time: Option<Timestamp>

The key can be used before this timestamp. For system-managed key pairs, this timestamp is the end time for the private key signing operation. The public key could still be used for verification for a few hours after this time.

§key_origin: ServiceAccountKeyOrigin

The key origin.

§key_type: KeyType

The key type.

§disabled: bool

The key status.

Implementations§

Source§

impl ServiceAccountKey

Source

pub fn new() -> Self

Source

pub fn set_name<T: Into<String>>(self, v: T) -> Self

Sets the value of name.

Source

pub fn set_private_key_type<T: Into<ServiceAccountPrivateKeyType>>( self, v: T, ) -> Self

Sets the value of private_key_type.

Source

pub fn set_key_algorithm<T: Into<ServiceAccountKeyAlgorithm>>( self, v: T, ) -> Self

Sets the value of key_algorithm.

Source

pub fn set_private_key_data<T: Into<Bytes>>(self, v: T) -> Self

Sets the value of private_key_data.

Source

pub fn set_public_key_data<T: Into<Bytes>>(self, v: T) -> Self

Sets the value of public_key_data.

Source

pub fn set_valid_after_time<T>(self, v: T) -> Self
where T: Into<Timestamp>,

Sets the value of valid_after_time.

Source

pub fn set_or_clear_valid_after_time<T>(self, v: Option<T>) -> Self
where T: Into<Timestamp>,

Sets or clears the value of valid_after_time.

Source

pub fn set_valid_before_time<T>(self, v: T) -> Self
where T: Into<Timestamp>,

Sets the value of valid_before_time.

Source

pub fn set_or_clear_valid_before_time<T>(self, v: Option<T>) -> Self
where T: Into<Timestamp>,

Sets or clears the value of valid_before_time.

Source

pub fn set_key_origin<T: Into<ServiceAccountKeyOrigin>>(self, v: T) -> Self

Sets the value of key_origin.

Source

pub fn set_key_type<T: Into<KeyType>>(self, v: T) -> Self

Sets the value of key_type.

Source

pub fn set_disabled<T: Into<bool>>(self, v: T) -> Self

Sets the value of disabled.

Trait Implementations§

Source§

impl Clone for ServiceAccountKey

Source§

fn clone(&self) -> ServiceAccountKey

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ServiceAccountKey

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ServiceAccountKey

Source§

fn default() -> ServiceAccountKey

Returns the “default value” for a type. Read more
Source§

impl Message for ServiceAccountKey

Source§

fn typename() -> &'static str

The typename of this message.
Source§

impl PartialEq for ServiceAccountKey

Source§

fn eq(&self, other: &ServiceAccountKey) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for ServiceAccountKey

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> ErasedDestructor for T
where T: 'static,