pub struct PolicyBinding {
pub name: String,
pub uid: String,
pub etag: String,
pub display_name: String,
pub annotations: HashMap<String, String>,
pub target: Option<Target>,
pub policy_kind: i32,
pub policy: String,
pub policy_uid: String,
pub condition: Option<Expr>,
pub create_time: Option<Timestamp>,
pub update_time: Option<Timestamp>,
}
Expand description
IAM policy binding
Fields§
§name: String
Identifier. The name of the policy binding, in the format
{binding_parent/locations/{location}/policyBindings/{policy_binding_id}
.
The binding parent is the closest Resource Manager resource (i.e., Project,
Folder or Organization) to the binding target.
Format:
projects/{project_id}/locations/{location}/policyBindings/{policy_binding_id}
projects/{project_number}/locations/{location}/policyBindings/{policy_binding_id}
folders/{folder_id}/locations/{location}/policyBindings/{policy_binding_id}
organizations/{organization_id}/locations/{location}/policyBindings/{policy_binding_id}
uid: String
Output only. The globally unique ID of the policy binding. Assigned when the policy binding is created.
etag: String
Optional. The etag for the policy binding. If this is provided on update, it must match the server’s etag.
display_name: String
Optional. The description of the policy binding. Must be less than or equal to 63 characters.
annotations: HashMap<String, String>
Optional. User defined annotations. See https://google.aip.dev/148#annotations for more details such as format and size limitations
target: Option<Target>
Required. Immutable. Target is the full resource name of the resource to which the policy will be bound. Immutable once set.
policy_kind: i32
Immutable. The kind of the policy to attach in this binding. This field must be one of the following:
- Left empty (will be automatically set to the policy kind)
- The input policy kind
policy: String
Required. Immutable. The resource name of the policy to be bound. The binding parent and policy must belong to the same Organization (or Project).
policy_uid: String
Output only. The globally unique ID of the policy to be bound.
condition: Option<Expr>
Optional. Condition can either be a principal condition or a resource
condition. It depends on the type of target, the policy it is attached to,
and/or the expression itself. When set, the expression
field in the
Expr
must include from 1 to 10 subexpressions, joined by the “||”(Logical
OR),
“&&”(Logical AND) or “!”(Logical NOT) operators and cannot contain more
than 250 characters.
Allowed operations for principal.subject:
principal.subject == <principal subject string>
principal.subject != <principal subject string>
principal.subject in \[<list of principal subjects>\]
principal.subject.startsWith(<string>)
principal.subject.endsWith(<string>)
Allowed operations for principal.type:
principal.type == <principal type string>
principal.type != <principal type string>
principal.type in \[<list of principal types>\]
Supported principal types are Workspace, Workforce Pool, Workload Pool and Service Account. Allowed string must be one of:
- iam.googleapis.com/WorkspaceIdentity
- iam.googleapis.com/WorkforcePoolIdentity
- iam.googleapis.com/WorkloadPoolIdentity
- iam.googleapis.com/ServiceAccount
When the bound policy is a principal access boundary policy, the only
supported attributes in any subexpression are principal.type
and
principal.subject
. An example expression is: “principal.type ==
‘iam.googleapis.com/ServiceAccount’” or “principal.subject ==
‘bob@example.com’”.
create_time: Option<Timestamp>
Output only. The time when the policy binding was created.
update_time: Option<Timestamp>
Output only. The time when the policy binding was most recently updated.
Implementations§
Source§impl PolicyBinding
impl PolicyBinding
Sourcepub fn policy_kind(&self) -> PolicyKind
pub fn policy_kind(&self) -> PolicyKind
Returns the enum value of policy_kind
, or the default if the field is set to an invalid enum value.
Sourcepub fn set_policy_kind(&mut self, value: PolicyKind)
pub fn set_policy_kind(&mut self, value: PolicyKind)
Sets policy_kind
to the provided enum value.
Trait Implementations§
Source§impl Clone for PolicyBinding
impl Clone for PolicyBinding
Source§fn clone(&self) -> PolicyBinding
fn clone(&self) -> PolicyBinding
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for PolicyBinding
impl Debug for PolicyBinding
Source§impl Default for PolicyBinding
impl Default for PolicyBinding
Source§impl Message for PolicyBinding
impl Message for PolicyBinding
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8>where
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8>where
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8>where
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8>where
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
.Source§impl PartialEq for PolicyBinding
impl PartialEq for PolicyBinding
impl StructuralPartialEq for PolicyBinding
Auto Trait Implementations§
impl Freeze for PolicyBinding
impl RefUnwindSafe for PolicyBinding
impl Send for PolicyBinding
impl Sync for PolicyBinding
impl Unpin for PolicyBinding
impl UnwindSafe for PolicyBinding
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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