Skip to main content

winterbaume_workspacesweb/
types.rs

1use std::collections::HashMap;
2
3use chrono::{DateTime, Utc};
4
5/// A WorkSpaces Web portal.
6#[derive(Debug, Clone)]
7pub struct Portal {
8    pub portal_arn: String,
9    pub portal_endpoint: String,
10    pub display_name: String,
11    pub portal_status: String,
12    pub browser_type: String,
13    pub renderer_type: String,
14    pub creation_date: DateTime<Utc>,
15    pub browser_settings_arn: Option<String>,
16    pub network_settings_arn: Option<String>,
17    pub user_access_logging_settings_arn: Option<String>,
18    pub user_settings_arn: Option<String>,
19    pub trust_store_arn: Option<String>,
20    pub ip_access_settings_arn: Option<String>,
21    pub data_protection_settings_arn: Option<String>,
22    pub session_logger_arn: Option<String>,
23    pub tags: HashMap<String, String>,
24}
25
26/// Browser settings resource.
27#[derive(Debug, Clone)]
28pub struct BrowserSettings {
29    pub browser_settings_arn: String,
30    pub browser_policy: Option<String>,
31    pub associated_portal_arns: Vec<String>,
32    pub tags: HashMap<String, String>,
33}
34
35/// Network settings resource.
36#[derive(Debug, Clone)]
37pub struct NetworkSettings {
38    pub network_settings_arn: String,
39    pub vpc_id: String,
40    pub subnet_ids: Vec<String>,
41    pub security_group_ids: Vec<String>,
42    pub associated_portal_arns: Vec<String>,
43    pub tags: HashMap<String, String>,
44}
45
46/// User access logging settings resource.
47#[derive(Debug, Clone)]
48pub struct UserAccessLoggingSettings {
49    pub user_access_logging_settings_arn: String,
50    pub kinesis_stream_arn: String,
51    pub associated_portal_arns: Vec<String>,
52    pub tags: HashMap<String, String>,
53}
54
55/// User settings resource.
56#[derive(Debug, Clone)]
57pub struct UserSettings {
58    pub user_settings_arn: String,
59    pub copy_allowed: String,
60    pub paste_allowed: String,
61    pub download_allowed: String,
62    pub upload_allowed: String,
63    pub print_allowed: String,
64    pub disconnect_timeout_in_minutes: Option<i32>,
65    pub idle_disconnect_timeout_in_minutes: Option<i32>,
66    pub associated_portal_arns: Vec<String>,
67    pub tags: HashMap<String, String>,
68}
69
70/// Identity provider resource.
71#[derive(Debug, Clone)]
72pub struct IdentityProvider {
73    pub identity_provider_arn: String,
74    pub portal_arn: String,
75    pub identity_provider_name: String,
76    pub identity_provider_type: String,
77    pub identity_provider_details: HashMap<String, String>,
78}
79
80/// IP access settings resource.
81#[derive(Debug, Clone)]
82pub struct IpAccessSettings {
83    pub ip_access_settings_arn: String,
84    pub display_name: Option<String>,
85    pub description: Option<String>,
86    pub ip_rules: Vec<IpRule>,
87    pub associated_portal_arns: Vec<String>,
88    pub creation_date: DateTime<Utc>,
89    pub tags: HashMap<String, String>,
90}
91
92#[derive(Debug, Clone)]
93pub struct IpRule {
94    pub ip_range: String,
95    pub description: Option<String>,
96}
97
98/// Trust store resource.
99#[derive(Debug, Clone)]
100pub struct TrustStore {
101    pub trust_store_arn: String,
102    pub certificate_list: Vec<TrustStoreCertificate>,
103    pub associated_portal_arns: Vec<String>,
104    pub tags: HashMap<String, String>,
105}
106
107#[derive(Debug, Clone)]
108pub struct TrustStoreCertificate {
109    pub thumbprint: String,
110    pub body: String,
111    pub issuer: Option<String>,
112    pub subject: Option<String>,
113}
114
115/// Data protection settings resource.
116#[derive(Debug, Clone)]
117pub struct DataProtectionSettings {
118    pub data_protection_settings_arn: String,
119    pub display_name: Option<String>,
120    pub description: Option<String>,
121    pub associated_portal_arns: Vec<String>,
122    pub creation_date: DateTime<Utc>,
123    pub tags: HashMap<String, String>,
124}
125
126/// Session logger resource.
127#[derive(Debug, Clone)]
128pub struct SessionLogger {
129    pub session_logger_arn: String,
130    pub display_name: Option<String>,
131    pub associated_portal_arns: Vec<String>,
132    pub creation_date: DateTime<Utc>,
133    pub tags: HashMap<String, String>,
134}
135
136/// Session resource.
137#[derive(Debug, Clone)]
138pub struct Session {
139    pub session_id: String,
140    pub portal_id: String,
141    pub username: Option<String>,
142    pub status: String,
143    pub start_time: DateTime<Utc>,
144    pub end_time: Option<DateTime<Utc>>,
145    pub client_ip_addresses: Vec<String>,
146}