rustack_cloudfront_core/
store.rs1use std::sync::Arc;
8
9use dashmap::DashMap;
10use rustack_cloudfront_model::{
11 CachePolicy, CloudFrontFunction, CloudFrontOriginAccessIdentity, Distribution,
12 FieldLevelEncryption, FieldLevelEncryptionProfile, Invalidation, KeyGroup, KeyValueStore,
13 MonitoringSubscription, OriginAccessControl, OriginRequestPolicy, PublicKey, RealtimeLogConfig,
14 ResponseHeadersPolicy, TagSet,
15};
16
17#[derive(Debug, Default)]
19pub struct CloudFrontStore {
20 pub distributions: DashMap<String, Distribution>,
22 pub invalidations: DashMap<(String, String), Invalidation>,
24 pub origin_access_controls: DashMap<String, OriginAccessControl>,
26 pub origin_access_identities: DashMap<String, CloudFrontOriginAccessIdentity>,
28 pub cache_policies: DashMap<String, CachePolicy>,
30 pub origin_request_policies: DashMap<String, OriginRequestPolicy>,
32 pub response_headers_policies: DashMap<String, ResponseHeadersPolicy>,
34 pub key_groups: DashMap<String, KeyGroup>,
36 pub public_keys: DashMap<String, PublicKey>,
38 pub functions: DashMap<String, CloudFrontFunction>,
40 pub fle_configs: DashMap<String, FieldLevelEncryption>,
42 pub fle_profiles: DashMap<String, FieldLevelEncryptionProfile>,
44 pub monitoring_subscriptions: DashMap<String, MonitoringSubscription>,
46 pub key_value_stores: DashMap<String, KeyValueStore>,
48 pub realtime_log_configs: DashMap<String, RealtimeLogConfig>,
50 pub tags: DashMap<String, TagSet>,
52}
53
54impl CloudFrontStore {
55 #[must_use]
57 pub fn new() -> Arc<Self> {
58 Arc::new(Self::default())
59 }
60}