pub struct RequestContext {
pub source_ip: Option<IpAddr>,
pub user_agent: Option<String>,
pub request_time: Option<SystemTime>,
pub secure_transport: bool,
pub existing_object_tags: Option<TagSet>,
pub request_object_tags: Option<TagSet>,
pub extra: HashMap<String, String>,
}Expand description
Per-request context fed into the policy evaluator. Caller is expected to fill what’s available; missing fields make any Condition that depends on them fail (= statement skipped, never silently allowed).
Fields§
§source_ip: Option<IpAddr>§user_agent: Option<String>§request_time: Option<SystemTime>§secure_transport: boolv0.6 #39: tags currently attached to the object the request
targets (resolved by the caller via TagManager ahead of
evaluate_with). Surfaced to policy via the
s3:ExistingObjectTag/<key> condition key. None here is
treated identically to “no tags exist” — every
ExistingObjectTag clause then fails.
v0.6 #39: tags carried in the request itself (PutObject’s
x-amz-tagging URL-encoded header, or PutObjectTagging’s
Tagging body). Surfaced to policy via the
s3:RequestObjectTag/<key> condition key.
extra: HashMap<String, String>Generic key → value map for any aws:* or s3:* context key not covered by the typed fields above (keeps the door open for any key the caller wants to plumb without changing the struct).
Trait Implementations§
Source§impl Clone for RequestContext
impl Clone for RequestContext
Source§fn clone(&self) -> RequestContext
fn clone(&self) -> RequestContext
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more