Struct gapi_grpc::google::iam::v1beta::WorkloadIdentityPoolProvider[][src]

pub struct WorkloadIdentityPoolProvider {
    pub name: String,
    pub display_name: String,
    pub description: String,
    pub state: i32,
    pub disabled: bool,
    pub attribute_mapping: HashMap<String, String>,
    pub attribute_condition: String,
    pub provider_config: Option<ProviderConfig>,
}

A configuration for an external identity provider.

Fields

name: String

Output only. The resource name of the provider.

display_name: String

A display name for the provider. Cannot exceed 32 characters.

description: String

A description for the provider. Cannot exceed 256 characters.

state: i32

Output only. The state of the provider.

disabled: bool

Whether the provider is disabled. You cannot use a disabled provider to exchange tokens. However, existing tokens still grant access.

attribute_mapping: HashMap<String, String>

Maps attributes from authentication credentials issued by an external identity provider to Google Cloud attributes, such as subject and segment.

Each key must be a string specifying the Google Cloud IAM attribute to map to.

The following keys are supported:

You can also provide custom attributes by specifying attribute.{custom_attribute}, where {custom_attribute} is the name of the custom attribute to be mapped. You can define a maximum of 50 custom attributes. The maximum length of a mapped attribute key is 100 characters, and the key may only contain the characters [a-z0-9_].

You can reference these attributes in IAM policies to define fine-grained access for a workload to Google Cloud resources. For example:

Each value must be a [Common Expression Language] (https://opensource.google/projects/cel) function that maps an identity provider credential to the normalized attribute specified by the corresponding map key.

You can use the assertion keyword in the expression to access a JSON representation of the authentication credential issued by the provider.

The maximum length of an attribute mapping expression is 2048 characters. When evaluated, the total size of all mapped attributes must not exceed 8KB.

For AWS providers, the following rules apply:

For OIDC providers, the following rules apply:

attribute_condition: String

A Common Expression Language expression, in plain text, to restrict what otherwise valid authentication credentials issued by the provider should not be accepted.

The expression must output a boolean representing whether to allow the federation.

The following keywords may be referenced in the expressions:

The maximum length of the attribute condition expression is 4096 characters. If unspecified, all valid authentication credential are accepted.

The following example shows how to only allow credentials with a mapped google.groups value of admins:

"'admins' in google.groups"
provider_config: Option<ProviderConfig>

Identity provider configuration types.

Implementations

impl WorkloadIdentityPoolProvider[src]

pub fn state(&self) -> State[src]

Returns the enum value of state, or the default if the field is set to an invalid enum value.

pub fn set_state(&mut self, value: State)[src]

Sets state to the provided enum value.

Trait Implementations

impl Clone for WorkloadIdentityPoolProvider[src]

impl Debug for WorkloadIdentityPoolProvider[src]

impl Default for WorkloadIdentityPoolProvider[src]

impl Message for WorkloadIdentityPoolProvider[src]

impl PartialEq<WorkloadIdentityPoolProvider> for WorkloadIdentityPoolProvider[src]

impl StructuralPartialEq for WorkloadIdentityPoolProvider[src]

Auto Trait Implementations

impl RefUnwindSafe for WorkloadIdentityPoolProvider

impl Send for WorkloadIdentityPoolProvider

impl Sync for WorkloadIdentityPoolProvider

impl Unpin for WorkloadIdentityPoolProvider

impl UnwindSafe for WorkloadIdentityPoolProvider

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> IntoRequest<T> for T[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]

impl<T> WithSubscriber for T[src]