Skip to main content

aws_sdk_connect/types/
_user.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2
3/// <p>Contains information about a user account for an Amazon Connect instance.</p>
4#[non_exhaustive]
5#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
6pub struct User {
7    /// <p>The identifier of the user account.</p>
8    pub id: ::std::option::Option<::std::string::String>,
9    /// <p>The Amazon Resource Name (ARN) of the user account.</p>
10    pub arn: ::std::option::Option<::std::string::String>,
11    /// <p>The user name assigned to the user account.</p>
12    pub username: ::std::option::Option<::std::string::String>,
13    /// <p>Information about the user identity.</p>
14    pub identity_info: ::std::option::Option<crate::types::UserIdentityInfo>,
15    /// <p>Information about the phone configuration for the user.</p>
16    pub phone_config: ::std::option::Option<crate::types::UserPhoneConfig>,
17    /// <p>The identifier of the user account in the directory used for identity management.</p>
18    pub directory_user_id: ::std::option::Option<::std::string::String>,
19    /// <p>The identifiers of the security profiles for the user.</p>
20    pub security_profile_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
21    /// <p>The identifier of the routing profile for the user.</p>
22    pub routing_profile_id: ::std::option::Option<::std::string::String>,
23    /// <p>The identifier of the hierarchy group for the user.</p>
24    pub hierarchy_group_id: ::std::option::Option<::std::string::String>,
25    /// <p>The tags.</p>
26    pub tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
27    /// <p>The list of auto-accept configuration settings for each channel.</p>
28    pub auto_accept_configs: ::std::option::Option<::std::vec::Vec<crate::types::AutoAcceptConfig>>,
29    /// <p>The list of after contact work (ACW) timeout configuration settings for each channel.</p>
30    pub after_contact_work_configs: ::std::option::Option<::std::vec::Vec<crate::types::AfterContactWorkConfigPerChannel>>,
31    /// <p>The list of phone number configuration settings for each channel.</p>
32    pub phone_number_configs: ::std::option::Option<::std::vec::Vec<crate::types::PhoneNumberConfig>>,
33    /// <p>The list of persistent connection configuration settings for each channel.</p>
34    pub persistent_connection_configs: ::std::option::Option<::std::vec::Vec<crate::types::PersistentConnectionConfig>>,
35    /// <p>The list of voice enhancement configuration settings for each channel.</p>
36    pub voice_enhancement_configs: ::std::option::Option<::std::vec::Vec<crate::types::VoiceEnhancementConfig>>,
37    /// <p>The timestamp when this resource was last modified.</p>
38    pub last_modified_time: ::std::option::Option<::aws_smithy_types::DateTime>,
39    /// <p>The Amazon Web Services Region where this resource was last modified.</p>
40    pub last_modified_region: ::std::option::Option<::std::string::String>,
41}
42impl User {
43    /// <p>The identifier of the user account.</p>
44    pub fn id(&self) -> ::std::option::Option<&str> {
45        self.id.as_deref()
46    }
47    /// <p>The Amazon Resource Name (ARN) of the user account.</p>
48    pub fn arn(&self) -> ::std::option::Option<&str> {
49        self.arn.as_deref()
50    }
51    /// <p>The user name assigned to the user account.</p>
52    pub fn username(&self) -> ::std::option::Option<&str> {
53        self.username.as_deref()
54    }
55    /// <p>Information about the user identity.</p>
56    pub fn identity_info(&self) -> ::std::option::Option<&crate::types::UserIdentityInfo> {
57        self.identity_info.as_ref()
58    }
59    /// <p>Information about the phone configuration for the user.</p>
60    pub fn phone_config(&self) -> ::std::option::Option<&crate::types::UserPhoneConfig> {
61        self.phone_config.as_ref()
62    }
63    /// <p>The identifier of the user account in the directory used for identity management.</p>
64    pub fn directory_user_id(&self) -> ::std::option::Option<&str> {
65        self.directory_user_id.as_deref()
66    }
67    /// <p>The identifiers of the security profiles for the user.</p>
68    ///
69    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.security_profile_ids.is_none()`.
70    pub fn security_profile_ids(&self) -> &[::std::string::String] {
71        self.security_profile_ids.as_deref().unwrap_or_default()
72    }
73    /// <p>The identifier of the routing profile for the user.</p>
74    pub fn routing_profile_id(&self) -> ::std::option::Option<&str> {
75        self.routing_profile_id.as_deref()
76    }
77    /// <p>The identifier of the hierarchy group for the user.</p>
78    pub fn hierarchy_group_id(&self) -> ::std::option::Option<&str> {
79        self.hierarchy_group_id.as_deref()
80    }
81    /// <p>The tags.</p>
82    pub fn tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
83        self.tags.as_ref()
84    }
85    /// <p>The list of auto-accept configuration settings for each channel.</p>
86    ///
87    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.auto_accept_configs.is_none()`.
88    pub fn auto_accept_configs(&self) -> &[crate::types::AutoAcceptConfig] {
89        self.auto_accept_configs.as_deref().unwrap_or_default()
90    }
91    /// <p>The list of after contact work (ACW) timeout configuration settings for each channel.</p>
92    ///
93    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.after_contact_work_configs.is_none()`.
94    pub fn after_contact_work_configs(&self) -> &[crate::types::AfterContactWorkConfigPerChannel] {
95        self.after_contact_work_configs.as_deref().unwrap_or_default()
96    }
97    /// <p>The list of phone number configuration settings for each channel.</p>
98    ///
99    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.phone_number_configs.is_none()`.
100    pub fn phone_number_configs(&self) -> &[crate::types::PhoneNumberConfig] {
101        self.phone_number_configs.as_deref().unwrap_or_default()
102    }
103    /// <p>The list of persistent connection configuration settings for each channel.</p>
104    ///
105    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.persistent_connection_configs.is_none()`.
106    pub fn persistent_connection_configs(&self) -> &[crate::types::PersistentConnectionConfig] {
107        self.persistent_connection_configs.as_deref().unwrap_or_default()
108    }
109    /// <p>The list of voice enhancement configuration settings for each channel.</p>
110    ///
111    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.voice_enhancement_configs.is_none()`.
112    pub fn voice_enhancement_configs(&self) -> &[crate::types::VoiceEnhancementConfig] {
113        self.voice_enhancement_configs.as_deref().unwrap_or_default()
114    }
115    /// <p>The timestamp when this resource was last modified.</p>
116    pub fn last_modified_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
117        self.last_modified_time.as_ref()
118    }
119    /// <p>The Amazon Web Services Region where this resource was last modified.</p>
120    pub fn last_modified_region(&self) -> ::std::option::Option<&str> {
121        self.last_modified_region.as_deref()
122    }
123}
124impl User {
125    /// Creates a new builder-style object to manufacture [`User`](crate::types::User).
126    pub fn builder() -> crate::types::builders::UserBuilder {
127        crate::types::builders::UserBuilder::default()
128    }
129}
130
131/// A builder for [`User`](crate::types::User).
132#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
133#[non_exhaustive]
134pub struct UserBuilder {
135    pub(crate) id: ::std::option::Option<::std::string::String>,
136    pub(crate) arn: ::std::option::Option<::std::string::String>,
137    pub(crate) username: ::std::option::Option<::std::string::String>,
138    pub(crate) identity_info: ::std::option::Option<crate::types::UserIdentityInfo>,
139    pub(crate) phone_config: ::std::option::Option<crate::types::UserPhoneConfig>,
140    pub(crate) directory_user_id: ::std::option::Option<::std::string::String>,
141    pub(crate) security_profile_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
142    pub(crate) routing_profile_id: ::std::option::Option<::std::string::String>,
143    pub(crate) hierarchy_group_id: ::std::option::Option<::std::string::String>,
144    pub(crate) tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
145    pub(crate) auto_accept_configs: ::std::option::Option<::std::vec::Vec<crate::types::AutoAcceptConfig>>,
146    pub(crate) after_contact_work_configs: ::std::option::Option<::std::vec::Vec<crate::types::AfterContactWorkConfigPerChannel>>,
147    pub(crate) phone_number_configs: ::std::option::Option<::std::vec::Vec<crate::types::PhoneNumberConfig>>,
148    pub(crate) persistent_connection_configs: ::std::option::Option<::std::vec::Vec<crate::types::PersistentConnectionConfig>>,
149    pub(crate) voice_enhancement_configs: ::std::option::Option<::std::vec::Vec<crate::types::VoiceEnhancementConfig>>,
150    pub(crate) last_modified_time: ::std::option::Option<::aws_smithy_types::DateTime>,
151    pub(crate) last_modified_region: ::std::option::Option<::std::string::String>,
152}
153impl UserBuilder {
154    /// <p>The identifier of the user account.</p>
155    pub fn id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
156        self.id = ::std::option::Option::Some(input.into());
157        self
158    }
159    /// <p>The identifier of the user account.</p>
160    pub fn set_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
161        self.id = input;
162        self
163    }
164    /// <p>The identifier of the user account.</p>
165    pub fn get_id(&self) -> &::std::option::Option<::std::string::String> {
166        &self.id
167    }
168    /// <p>The Amazon Resource Name (ARN) of the user account.</p>
169    pub fn arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
170        self.arn = ::std::option::Option::Some(input.into());
171        self
172    }
173    /// <p>The Amazon Resource Name (ARN) of the user account.</p>
174    pub fn set_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
175        self.arn = input;
176        self
177    }
178    /// <p>The Amazon Resource Name (ARN) of the user account.</p>
179    pub fn get_arn(&self) -> &::std::option::Option<::std::string::String> {
180        &self.arn
181    }
182    /// <p>The user name assigned to the user account.</p>
183    pub fn username(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
184        self.username = ::std::option::Option::Some(input.into());
185        self
186    }
187    /// <p>The user name assigned to the user account.</p>
188    pub fn set_username(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
189        self.username = input;
190        self
191    }
192    /// <p>The user name assigned to the user account.</p>
193    pub fn get_username(&self) -> &::std::option::Option<::std::string::String> {
194        &self.username
195    }
196    /// <p>Information about the user identity.</p>
197    pub fn identity_info(mut self, input: crate::types::UserIdentityInfo) -> Self {
198        self.identity_info = ::std::option::Option::Some(input);
199        self
200    }
201    /// <p>Information about the user identity.</p>
202    pub fn set_identity_info(mut self, input: ::std::option::Option<crate::types::UserIdentityInfo>) -> Self {
203        self.identity_info = input;
204        self
205    }
206    /// <p>Information about the user identity.</p>
207    pub fn get_identity_info(&self) -> &::std::option::Option<crate::types::UserIdentityInfo> {
208        &self.identity_info
209    }
210    /// <p>Information about the phone configuration for the user.</p>
211    pub fn phone_config(mut self, input: crate::types::UserPhoneConfig) -> Self {
212        self.phone_config = ::std::option::Option::Some(input);
213        self
214    }
215    /// <p>Information about the phone configuration for the user.</p>
216    pub fn set_phone_config(mut self, input: ::std::option::Option<crate::types::UserPhoneConfig>) -> Self {
217        self.phone_config = input;
218        self
219    }
220    /// <p>Information about the phone configuration for the user.</p>
221    pub fn get_phone_config(&self) -> &::std::option::Option<crate::types::UserPhoneConfig> {
222        &self.phone_config
223    }
224    /// <p>The identifier of the user account in the directory used for identity management.</p>
225    pub fn directory_user_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
226        self.directory_user_id = ::std::option::Option::Some(input.into());
227        self
228    }
229    /// <p>The identifier of the user account in the directory used for identity management.</p>
230    pub fn set_directory_user_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
231        self.directory_user_id = input;
232        self
233    }
234    /// <p>The identifier of the user account in the directory used for identity management.</p>
235    pub fn get_directory_user_id(&self) -> &::std::option::Option<::std::string::String> {
236        &self.directory_user_id
237    }
238    /// Appends an item to `security_profile_ids`.
239    ///
240    /// To override the contents of this collection use [`set_security_profile_ids`](Self::set_security_profile_ids).
241    ///
242    /// <p>The identifiers of the security profiles for the user.</p>
243    pub fn security_profile_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
244        let mut v = self.security_profile_ids.unwrap_or_default();
245        v.push(input.into());
246        self.security_profile_ids = ::std::option::Option::Some(v);
247        self
248    }
249    /// <p>The identifiers of the security profiles for the user.</p>
250    pub fn set_security_profile_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
251        self.security_profile_ids = input;
252        self
253    }
254    /// <p>The identifiers of the security profiles for the user.</p>
255    pub fn get_security_profile_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
256        &self.security_profile_ids
257    }
258    /// <p>The identifier of the routing profile for the user.</p>
259    pub fn routing_profile_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
260        self.routing_profile_id = ::std::option::Option::Some(input.into());
261        self
262    }
263    /// <p>The identifier of the routing profile for the user.</p>
264    pub fn set_routing_profile_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
265        self.routing_profile_id = input;
266        self
267    }
268    /// <p>The identifier of the routing profile for the user.</p>
269    pub fn get_routing_profile_id(&self) -> &::std::option::Option<::std::string::String> {
270        &self.routing_profile_id
271    }
272    /// <p>The identifier of the hierarchy group for the user.</p>
273    pub fn hierarchy_group_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
274        self.hierarchy_group_id = ::std::option::Option::Some(input.into());
275        self
276    }
277    /// <p>The identifier of the hierarchy group for the user.</p>
278    pub fn set_hierarchy_group_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
279        self.hierarchy_group_id = input;
280        self
281    }
282    /// <p>The identifier of the hierarchy group for the user.</p>
283    pub fn get_hierarchy_group_id(&self) -> &::std::option::Option<::std::string::String> {
284        &self.hierarchy_group_id
285    }
286    /// Adds a key-value pair to `tags`.
287    ///
288    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
289    ///
290    /// <p>The tags.</p>
291    pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
292        let mut hash_map = self.tags.unwrap_or_default();
293        hash_map.insert(k.into(), v.into());
294        self.tags = ::std::option::Option::Some(hash_map);
295        self
296    }
297    /// <p>The tags.</p>
298    pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
299        self.tags = input;
300        self
301    }
302    /// <p>The tags.</p>
303    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
304        &self.tags
305    }
306    /// Appends an item to `auto_accept_configs`.
307    ///
308    /// To override the contents of this collection use [`set_auto_accept_configs`](Self::set_auto_accept_configs).
309    ///
310    /// <p>The list of auto-accept configuration settings for each channel.</p>
311    pub fn auto_accept_configs(mut self, input: crate::types::AutoAcceptConfig) -> Self {
312        let mut v = self.auto_accept_configs.unwrap_or_default();
313        v.push(input);
314        self.auto_accept_configs = ::std::option::Option::Some(v);
315        self
316    }
317    /// <p>The list of auto-accept configuration settings for each channel.</p>
318    pub fn set_auto_accept_configs(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::AutoAcceptConfig>>) -> Self {
319        self.auto_accept_configs = input;
320        self
321    }
322    /// <p>The list of auto-accept configuration settings for each channel.</p>
323    pub fn get_auto_accept_configs(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::AutoAcceptConfig>> {
324        &self.auto_accept_configs
325    }
326    /// Appends an item to `after_contact_work_configs`.
327    ///
328    /// To override the contents of this collection use [`set_after_contact_work_configs`](Self::set_after_contact_work_configs).
329    ///
330    /// <p>The list of after contact work (ACW) timeout configuration settings for each channel.</p>
331    pub fn after_contact_work_configs(mut self, input: crate::types::AfterContactWorkConfigPerChannel) -> Self {
332        let mut v = self.after_contact_work_configs.unwrap_or_default();
333        v.push(input);
334        self.after_contact_work_configs = ::std::option::Option::Some(v);
335        self
336    }
337    /// <p>The list of after contact work (ACW) timeout configuration settings for each channel.</p>
338    pub fn set_after_contact_work_configs(
339        mut self,
340        input: ::std::option::Option<::std::vec::Vec<crate::types::AfterContactWorkConfigPerChannel>>,
341    ) -> Self {
342        self.after_contact_work_configs = input;
343        self
344    }
345    /// <p>The list of after contact work (ACW) timeout configuration settings for each channel.</p>
346    pub fn get_after_contact_work_configs(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::AfterContactWorkConfigPerChannel>> {
347        &self.after_contact_work_configs
348    }
349    /// Appends an item to `phone_number_configs`.
350    ///
351    /// To override the contents of this collection use [`set_phone_number_configs`](Self::set_phone_number_configs).
352    ///
353    /// <p>The list of phone number configuration settings for each channel.</p>
354    pub fn phone_number_configs(mut self, input: crate::types::PhoneNumberConfig) -> Self {
355        let mut v = self.phone_number_configs.unwrap_or_default();
356        v.push(input);
357        self.phone_number_configs = ::std::option::Option::Some(v);
358        self
359    }
360    /// <p>The list of phone number configuration settings for each channel.</p>
361    pub fn set_phone_number_configs(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::PhoneNumberConfig>>) -> Self {
362        self.phone_number_configs = input;
363        self
364    }
365    /// <p>The list of phone number configuration settings for each channel.</p>
366    pub fn get_phone_number_configs(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::PhoneNumberConfig>> {
367        &self.phone_number_configs
368    }
369    /// Appends an item to `persistent_connection_configs`.
370    ///
371    /// To override the contents of this collection use [`set_persistent_connection_configs`](Self::set_persistent_connection_configs).
372    ///
373    /// <p>The list of persistent connection configuration settings for each channel.</p>
374    pub fn persistent_connection_configs(mut self, input: crate::types::PersistentConnectionConfig) -> Self {
375        let mut v = self.persistent_connection_configs.unwrap_or_default();
376        v.push(input);
377        self.persistent_connection_configs = ::std::option::Option::Some(v);
378        self
379    }
380    /// <p>The list of persistent connection configuration settings for each channel.</p>
381    pub fn set_persistent_connection_configs(
382        mut self,
383        input: ::std::option::Option<::std::vec::Vec<crate::types::PersistentConnectionConfig>>,
384    ) -> Self {
385        self.persistent_connection_configs = input;
386        self
387    }
388    /// <p>The list of persistent connection configuration settings for each channel.</p>
389    pub fn get_persistent_connection_configs(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::PersistentConnectionConfig>> {
390        &self.persistent_connection_configs
391    }
392    /// Appends an item to `voice_enhancement_configs`.
393    ///
394    /// To override the contents of this collection use [`set_voice_enhancement_configs`](Self::set_voice_enhancement_configs).
395    ///
396    /// <p>The list of voice enhancement configuration settings for each channel.</p>
397    pub fn voice_enhancement_configs(mut self, input: crate::types::VoiceEnhancementConfig) -> Self {
398        let mut v = self.voice_enhancement_configs.unwrap_or_default();
399        v.push(input);
400        self.voice_enhancement_configs = ::std::option::Option::Some(v);
401        self
402    }
403    /// <p>The list of voice enhancement configuration settings for each channel.</p>
404    pub fn set_voice_enhancement_configs(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::VoiceEnhancementConfig>>) -> Self {
405        self.voice_enhancement_configs = input;
406        self
407    }
408    /// <p>The list of voice enhancement configuration settings for each channel.</p>
409    pub fn get_voice_enhancement_configs(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::VoiceEnhancementConfig>> {
410        &self.voice_enhancement_configs
411    }
412    /// <p>The timestamp when this resource was last modified.</p>
413    pub fn last_modified_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
414        self.last_modified_time = ::std::option::Option::Some(input);
415        self
416    }
417    /// <p>The timestamp when this resource was last modified.</p>
418    pub fn set_last_modified_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
419        self.last_modified_time = input;
420        self
421    }
422    /// <p>The timestamp when this resource was last modified.</p>
423    pub fn get_last_modified_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
424        &self.last_modified_time
425    }
426    /// <p>The Amazon Web Services Region where this resource was last modified.</p>
427    pub fn last_modified_region(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
428        self.last_modified_region = ::std::option::Option::Some(input.into());
429        self
430    }
431    /// <p>The Amazon Web Services Region where this resource was last modified.</p>
432    pub fn set_last_modified_region(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
433        self.last_modified_region = input;
434        self
435    }
436    /// <p>The Amazon Web Services Region where this resource was last modified.</p>
437    pub fn get_last_modified_region(&self) -> &::std::option::Option<::std::string::String> {
438        &self.last_modified_region
439    }
440    /// Consumes the builder and constructs a [`User`](crate::types::User).
441    pub fn build(self) -> crate::types::User {
442        crate::types::User {
443            id: self.id,
444            arn: self.arn,
445            username: self.username,
446            identity_info: self.identity_info,
447            phone_config: self.phone_config,
448            directory_user_id: self.directory_user_id,
449            security_profile_ids: self.security_profile_ids,
450            routing_profile_id: self.routing_profile_id,
451            hierarchy_group_id: self.hierarchy_group_id,
452            tags: self.tags,
453            auto_accept_configs: self.auto_accept_configs,
454            after_contact_work_configs: self.after_contact_work_configs,
455            phone_number_configs: self.phone_number_configs,
456            persistent_connection_configs: self.persistent_connection_configs,
457            voice_enhancement_configs: self.voice_enhancement_configs,
458            last_modified_time: self.last_modified_time,
459            last_modified_region: self.last_modified_region,
460        }
461    }
462}