#[non_exhaustive]pub struct Condition {
pub ip_subnetworks: Vec<String>,
pub device_policy: Option<DevicePolicy>,
pub required_access_levels: Vec<String>,
pub negate: bool,
pub members: Vec<String>,
pub regions: Vec<String>,
/* private fields */
}Expand description
A condition necessary for an AccessLevel to be granted. The Condition is an
AND over its fields. So a Condition is true if: 1) the request IP is from one
of the listed subnetworks AND 2) the originating device complies with the
listed device policy AND 3) all listed access levels are granted AND 4) the
request was sent at a time allowed by the DateTimeRestriction.
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.ip_subnetworks: Vec<String>CIDR block IP subnetwork specification. May be IPv4 or IPv6. Note that for a CIDR IP address block, the specified IP address portion must be properly truncated (i.e. all the host bits must be zero) or the input is considered malformed. For example, “192.0.2.0/24” is accepted but “192.0.2.1/24” is not. Similarly, for IPv6, “2001:db8::/32” is accepted whereas “2001:db8::1/32” is not. The originating IP of a request must be in one of the listed subnets in order for this Condition to be true. If empty, all IP addresses are allowed.
device_policy: Option<DevicePolicy>Device specific restrictions, all restrictions must hold for the Condition to be true. If not specified, all devices are allowed.
required_access_levels: Vec<String>A list of other access levels defined in the same Policy, referenced by
resource name. Referencing an AccessLevel which does not exist is an
error. All access levels listed must be granted for the Condition
to be true. Example:
“accessPolicies/MY_POLICY/accessLevels/LEVEL_NAME"
negate: boolWhether to negate the Condition. If true, the Condition becomes a NAND over its non-empty fields, each field must be false for the Condition overall to be satisfied. Defaults to false.
members: Vec<String>The request must be made by one of the provided user or service
accounts. Groups are not supported.
Syntax:
user:{emailid}
serviceAccount:{emailid}
If not specified, a request may come from any user.
regions: Vec<String>The request must originate from one of the provided countries/regions. Must be valid ISO 3166-1 alpha-2 codes.
Implementations§
Source§impl Condition
impl Condition
pub fn new() -> Self
Sourcepub fn set_ip_subnetworks<T, V>(self, v: T) -> Self
pub fn set_ip_subnetworks<T, V>(self, v: T) -> Self
Sets the value of ip_subnetworks.
Sourcepub fn set_device_policy<T>(self, v: T) -> Selfwhere
T: Into<DevicePolicy>,
pub fn set_device_policy<T>(self, v: T) -> Selfwhere
T: Into<DevicePolicy>,
Sets the value of device_policy.
Sourcepub fn set_or_clear_device_policy<T>(self, v: Option<T>) -> Selfwhere
T: Into<DevicePolicy>,
pub fn set_or_clear_device_policy<T>(self, v: Option<T>) -> Selfwhere
T: Into<DevicePolicy>,
Sets or clears the value of device_policy.
Sourcepub fn set_required_access_levels<T, V>(self, v: T) -> Self
pub fn set_required_access_levels<T, V>(self, v: T) -> Self
Sets the value of required_access_levels.
Sourcepub fn set_negate<T: Into<bool>>(self, v: T) -> Self
pub fn set_negate<T: Into<bool>>(self, v: T) -> Self
Sets the value of negate.
Sourcepub fn set_members<T, V>(self, v: T) -> Self
pub fn set_members<T, V>(self, v: T) -> Self
Sets the value of members.
Sourcepub fn set_regions<T, V>(self, v: T) -> Self
pub fn set_regions<T, V>(self, v: T) -> Self
Sets the value of regions.