Skip to main content

aws_sdk_sagemaker/operation/update_notebook_instance/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::update_notebook_instance::_update_notebook_instance_input::UpdateNotebookInstanceInputBuilder;
3
4pub use crate::operation::update_notebook_instance::_update_notebook_instance_output::UpdateNotebookInstanceOutputBuilder;
5
6impl crate::operation::update_notebook_instance::builders::UpdateNotebookInstanceInputBuilder {
7    /// Sends a request with this input using the given client.
8    pub async fn send_with(
9        self,
10        client: &crate::Client,
11    ) -> ::std::result::Result<
12        crate::operation::update_notebook_instance::UpdateNotebookInstanceOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::update_notebook_instance::UpdateNotebookInstanceError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.update_notebook_instance();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `UpdateNotebookInstance`.
24///
25/// <p>Updates a notebook instance. NotebookInstance updates include upgrading or downgrading the ML compute instance used for your notebook instance to accommodate changes in your workload requirements.</p><note>
26/// <p>This API can attach lifecycle configurations to notebook instances. Lifecycle configuration scripts execute with root access and the notebook instance's IAM execution role privileges. Principals with this permission and access to lifecycle configurations can execute code with the execution role's credentials. See <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html">Customize a Notebook Instance Using a Lifecycle Configuration Script</a> for security best practices.</p>
27/// </note>
28#[derive(::std::clone::Clone, ::std::fmt::Debug)]
29pub struct UpdateNotebookInstanceFluentBuilder {
30    handle: ::std::sync::Arc<crate::client::Handle>,
31    inner: crate::operation::update_notebook_instance::builders::UpdateNotebookInstanceInputBuilder,
32    config_override: ::std::option::Option<crate::config::Builder>,
33}
34impl
35    crate::client::customize::internal::CustomizableSend<
36        crate::operation::update_notebook_instance::UpdateNotebookInstanceOutput,
37        crate::operation::update_notebook_instance::UpdateNotebookInstanceError,
38    > for UpdateNotebookInstanceFluentBuilder
39{
40    fn send(
41        self,
42        config_override: crate::config::Builder,
43    ) -> crate::client::customize::internal::BoxFuture<
44        crate::client::customize::internal::SendResult<
45            crate::operation::update_notebook_instance::UpdateNotebookInstanceOutput,
46            crate::operation::update_notebook_instance::UpdateNotebookInstanceError,
47        >,
48    > {
49        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
50    }
51}
52impl UpdateNotebookInstanceFluentBuilder {
53    /// Creates a new `UpdateNotebookInstanceFluentBuilder`.
54    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
55        Self {
56            handle,
57            inner: ::std::default::Default::default(),
58            config_override: ::std::option::Option::None,
59        }
60    }
61    /// Access the UpdateNotebookInstance as a reference.
62    pub fn as_input(&self) -> &crate::operation::update_notebook_instance::builders::UpdateNotebookInstanceInputBuilder {
63        &self.inner
64    }
65    /// Sends the request and returns the response.
66    ///
67    /// If an error occurs, an `SdkError` will be returned with additional details that
68    /// can be matched against.
69    ///
70    /// By default, any retryable failures will be retried twice. Retry behavior
71    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
72    /// set when configuring the client.
73    pub async fn send(
74        self,
75    ) -> ::std::result::Result<
76        crate::operation::update_notebook_instance::UpdateNotebookInstanceOutput,
77        ::aws_smithy_runtime_api::client::result::SdkError<
78            crate::operation::update_notebook_instance::UpdateNotebookInstanceError,
79            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
80        >,
81    > {
82        let input = self
83            .inner
84            .build()
85            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
86        let runtime_plugins = crate::operation::update_notebook_instance::UpdateNotebookInstance::operation_runtime_plugins(
87            self.handle.runtime_plugins.clone(),
88            &self.handle.conf,
89            self.config_override,
90        );
91        crate::operation::update_notebook_instance::UpdateNotebookInstance::orchestrate(&runtime_plugins, input).await
92    }
93
94    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
95    pub fn customize(
96        self,
97    ) -> crate::client::customize::CustomizableOperation<
98        crate::operation::update_notebook_instance::UpdateNotebookInstanceOutput,
99        crate::operation::update_notebook_instance::UpdateNotebookInstanceError,
100        Self,
101    > {
102        crate::client::customize::CustomizableOperation::new(self)
103    }
104    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
105        self.set_config_override(::std::option::Option::Some(config_override.into()));
106        self
107    }
108
109    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
110        self.config_override = config_override;
111        self
112    }
113    /// <p>The name of the notebook instance to update.</p>
114    pub fn notebook_instance_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
115        self.inner = self.inner.notebook_instance_name(input.into());
116        self
117    }
118    /// <p>The name of the notebook instance to update.</p>
119    pub fn set_notebook_instance_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
120        self.inner = self.inner.set_notebook_instance_name(input);
121        self
122    }
123    /// <p>The name of the notebook instance to update.</p>
124    pub fn get_notebook_instance_name(&self) -> &::std::option::Option<::std::string::String> {
125        self.inner.get_notebook_instance_name()
126    }
127    /// <p>The Amazon ML compute instance type.</p>
128    pub fn instance_type(mut self, input: crate::types::InstanceType) -> Self {
129        self.inner = self.inner.instance_type(input);
130        self
131    }
132    /// <p>The Amazon ML compute instance type.</p>
133    pub fn set_instance_type(mut self, input: ::std::option::Option<crate::types::InstanceType>) -> Self {
134        self.inner = self.inner.set_instance_type(input);
135        self
136    }
137    /// <p>The Amazon ML compute instance type.</p>
138    pub fn get_instance_type(&self) -> &::std::option::Option<crate::types::InstanceType> {
139        self.inner.get_instance_type()
140    }
141    /// <p>The IP address type for the notebook instance. Specify <code>ipv4</code> for IPv4-only connectivity or <code>dualstack</code> for both IPv4 and IPv6 connectivity. The notebook instance must be stopped before updating this setting. When you specify <code>dualstack</code>, the subnet must support IPv6 addressing.</p>
142    pub fn ip_address_type(mut self, input: crate::types::IpAddressType) -> Self {
143        self.inner = self.inner.ip_address_type(input);
144        self
145    }
146    /// <p>The IP address type for the notebook instance. Specify <code>ipv4</code> for IPv4-only connectivity or <code>dualstack</code> for both IPv4 and IPv6 connectivity. The notebook instance must be stopped before updating this setting. When you specify <code>dualstack</code>, the subnet must support IPv6 addressing.</p>
147    pub fn set_ip_address_type(mut self, input: ::std::option::Option<crate::types::IpAddressType>) -> Self {
148        self.inner = self.inner.set_ip_address_type(input);
149        self
150    }
151    /// <p>The IP address type for the notebook instance. Specify <code>ipv4</code> for IPv4-only connectivity or <code>dualstack</code> for both IPv4 and IPv6 connectivity. The notebook instance must be stopped before updating this setting. When you specify <code>dualstack</code>, the subnet must support IPv6 addressing.</p>
152    pub fn get_ip_address_type(&self) -> &::std::option::Option<crate::types::IpAddressType> {
153        self.inner.get_ip_address_type()
154    }
155    /// <p>The platform identifier of the notebook instance runtime environment.</p>
156    pub fn platform_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
157        self.inner = self.inner.platform_identifier(input.into());
158        self
159    }
160    /// <p>The platform identifier of the notebook instance runtime environment.</p>
161    pub fn set_platform_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
162        self.inner = self.inner.set_platform_identifier(input);
163        self
164    }
165    /// <p>The platform identifier of the notebook instance runtime environment.</p>
166    pub fn get_platform_identifier(&self) -> &::std::option::Option<::std::string::String> {
167        self.inner.get_platform_identifier()
168    }
169    /// <p>The Amazon Resource Name (ARN) of the IAM role that SageMaker AI can assume to access the notebook instance. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html">SageMaker AI Roles</a>.</p><note>
170    /// <p>To be able to pass this role to SageMaker AI, the caller of this API must have the <code>iam:PassRole</code> permission.</p>
171    /// </note>
172    pub fn role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
173        self.inner = self.inner.role_arn(input.into());
174        self
175    }
176    /// <p>The Amazon Resource Name (ARN) of the IAM role that SageMaker AI can assume to access the notebook instance. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html">SageMaker AI Roles</a>.</p><note>
177    /// <p>To be able to pass this role to SageMaker AI, the caller of this API must have the <code>iam:PassRole</code> permission.</p>
178    /// </note>
179    pub fn set_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
180        self.inner = self.inner.set_role_arn(input);
181        self
182    }
183    /// <p>The Amazon Resource Name (ARN) of the IAM role that SageMaker AI can assume to access the notebook instance. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html">SageMaker AI Roles</a>.</p><note>
184    /// <p>To be able to pass this role to SageMaker AI, the caller of this API must have the <code>iam:PassRole</code> permission.</p>
185    /// </note>
186    pub fn get_role_arn(&self) -> &::std::option::Option<::std::string::String> {
187        self.inner.get_role_arn()
188    }
189    /// <p>The name of a lifecycle configuration to associate with the notebook instance. For information about lifestyle configurations, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html">Step 2.1: (Optional) Customize a Notebook Instance</a>.</p>
190    pub fn lifecycle_config_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
191        self.inner = self.inner.lifecycle_config_name(input.into());
192        self
193    }
194    /// <p>The name of a lifecycle configuration to associate with the notebook instance. For information about lifestyle configurations, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html">Step 2.1: (Optional) Customize a Notebook Instance</a>.</p>
195    pub fn set_lifecycle_config_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
196        self.inner = self.inner.set_lifecycle_config_name(input);
197        self
198    }
199    /// <p>The name of a lifecycle configuration to associate with the notebook instance. For information about lifestyle configurations, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html">Step 2.1: (Optional) Customize a Notebook Instance</a>.</p>
200    pub fn get_lifecycle_config_name(&self) -> &::std::option::Option<::std::string::String> {
201        self.inner.get_lifecycle_config_name()
202    }
203    /// <p>Set to <code>true</code> to remove the notebook instance lifecycle configuration currently associated with the notebook instance. This operation is idempotent. If you specify a lifecycle configuration that is not associated with the notebook instance when you call this method, it does not throw an error.</p>
204    pub fn disassociate_lifecycle_config(mut self, input: bool) -> Self {
205        self.inner = self.inner.disassociate_lifecycle_config(input);
206        self
207    }
208    /// <p>Set to <code>true</code> to remove the notebook instance lifecycle configuration currently associated with the notebook instance. This operation is idempotent. If you specify a lifecycle configuration that is not associated with the notebook instance when you call this method, it does not throw an error.</p>
209    pub fn set_disassociate_lifecycle_config(mut self, input: ::std::option::Option<bool>) -> Self {
210        self.inner = self.inner.set_disassociate_lifecycle_config(input);
211        self
212    }
213    /// <p>Set to <code>true</code> to remove the notebook instance lifecycle configuration currently associated with the notebook instance. This operation is idempotent. If you specify a lifecycle configuration that is not associated with the notebook instance when you call this method, it does not throw an error.</p>
214    pub fn get_disassociate_lifecycle_config(&self) -> &::std::option::Option<bool> {
215        self.inner.get_disassociate_lifecycle_config()
216    }
217    /// <p>The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB. ML storage volumes are encrypted, so SageMaker AI can't determine the amount of available free space on the volume. Because of this, you can increase the volume size when you update a notebook instance, but you can't decrease the volume size. If you want to decrease the size of the ML storage volume in use, create a new notebook instance with the desired size.</p>
218    pub fn volume_size_in_gb(mut self, input: i32) -> Self {
219        self.inner = self.inner.volume_size_in_gb(input);
220        self
221    }
222    /// <p>The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB. ML storage volumes are encrypted, so SageMaker AI can't determine the amount of available free space on the volume. Because of this, you can increase the volume size when you update a notebook instance, but you can't decrease the volume size. If you want to decrease the size of the ML storage volume in use, create a new notebook instance with the desired size.</p>
223    pub fn set_volume_size_in_gb(mut self, input: ::std::option::Option<i32>) -> Self {
224        self.inner = self.inner.set_volume_size_in_gb(input);
225        self
226    }
227    /// <p>The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB. ML storage volumes are encrypted, so SageMaker AI can't determine the amount of available free space on the volume. Because of this, you can increase the volume size when you update a notebook instance, but you can't decrease the volume size. If you want to decrease the size of the ML storage volume in use, create a new notebook instance with the desired size.</p>
228    pub fn get_volume_size_in_gb(&self) -> &::std::option::Option<i32> {
229        self.inner.get_volume_size_in_gb()
230    }
231    /// <p>The Git repository to associate with the notebook instance as its default code repository. This can be either the name of a Git repository stored as a resource in your account, or the URL of a Git repository in <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html">Amazon Web Services CodeCommit</a> or in any other Git repository. When you open a notebook instance, it opens in the directory that contains this repository. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html">Associating Git Repositories with SageMaker AI Notebook Instances</a>.</p>
232    pub fn default_code_repository(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
233        self.inner = self.inner.default_code_repository(input.into());
234        self
235    }
236    /// <p>The Git repository to associate with the notebook instance as its default code repository. This can be either the name of a Git repository stored as a resource in your account, or the URL of a Git repository in <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html">Amazon Web Services CodeCommit</a> or in any other Git repository. When you open a notebook instance, it opens in the directory that contains this repository. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html">Associating Git Repositories with SageMaker AI Notebook Instances</a>.</p>
237    pub fn set_default_code_repository(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
238        self.inner = self.inner.set_default_code_repository(input);
239        self
240    }
241    /// <p>The Git repository to associate with the notebook instance as its default code repository. This can be either the name of a Git repository stored as a resource in your account, or the URL of a Git repository in <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html">Amazon Web Services CodeCommit</a> or in any other Git repository. When you open a notebook instance, it opens in the directory that contains this repository. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html">Associating Git Repositories with SageMaker AI Notebook Instances</a>.</p>
242    pub fn get_default_code_repository(&self) -> &::std::option::Option<::std::string::String> {
243        self.inner.get_default_code_repository()
244    }
245    ///
246    /// Appends an item to `AdditionalCodeRepositories`.
247    ///
248    /// To override the contents of this collection use [`set_additional_code_repositories`](Self::set_additional_code_repositories).
249    ///
250    /// <p>An array of up to three Git repositories to associate with the notebook instance. These can be either the names of Git repositories stored as resources in your account, or the URL of Git repositories in <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html">Amazon Web Services CodeCommit</a> or in any other Git repository. These repositories are cloned at the same level as the default repository of your notebook instance. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html">Associating Git Repositories with SageMaker AI Notebook Instances</a>.</p>
251    pub fn additional_code_repositories(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
252        self.inner = self.inner.additional_code_repositories(input.into());
253        self
254    }
255    /// <p>An array of up to three Git repositories to associate with the notebook instance. These can be either the names of Git repositories stored as resources in your account, or the URL of Git repositories in <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html">Amazon Web Services CodeCommit</a> or in any other Git repository. These repositories are cloned at the same level as the default repository of your notebook instance. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html">Associating Git Repositories with SageMaker AI Notebook Instances</a>.</p>
256    pub fn set_additional_code_repositories(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
257        self.inner = self.inner.set_additional_code_repositories(input);
258        self
259    }
260    /// <p>An array of up to three Git repositories to associate with the notebook instance. These can be either the names of Git repositories stored as resources in your account, or the URL of Git repositories in <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html">Amazon Web Services CodeCommit</a> or in any other Git repository. These repositories are cloned at the same level as the default repository of your notebook instance. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html">Associating Git Repositories with SageMaker AI Notebook Instances</a>.</p>
261    pub fn get_additional_code_repositories(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
262        self.inner.get_additional_code_repositories()
263    }
264    ///
265    /// Appends an item to `AcceleratorTypes`.
266    ///
267    /// To override the contents of this collection use [`set_accelerator_types`](Self::set_accelerator_types).
268    ///
269    /// <p>This parameter is no longer supported. Elastic Inference (EI) is no longer available.</p>
270    /// <p>This parameter was used to specify a list of the EI instance types to associate with this notebook instance.</p>
271    pub fn accelerator_types(mut self, input: crate::types::NotebookInstanceAcceleratorType) -> Self {
272        self.inner = self.inner.accelerator_types(input);
273        self
274    }
275    /// <p>This parameter is no longer supported. Elastic Inference (EI) is no longer available.</p>
276    /// <p>This parameter was used to specify a list of the EI instance types to associate with this notebook instance.</p>
277    pub fn set_accelerator_types(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::NotebookInstanceAcceleratorType>>) -> Self {
278        self.inner = self.inner.set_accelerator_types(input);
279        self
280    }
281    /// <p>This parameter is no longer supported. Elastic Inference (EI) is no longer available.</p>
282    /// <p>This parameter was used to specify a list of the EI instance types to associate with this notebook instance.</p>
283    pub fn get_accelerator_types(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::NotebookInstanceAcceleratorType>> {
284        self.inner.get_accelerator_types()
285    }
286    /// <p>This parameter is no longer supported. Elastic Inference (EI) is no longer available.</p>
287    /// <p>This parameter was used to specify a list of the EI instance types to remove from this notebook instance.</p>
288    pub fn disassociate_accelerator_types(mut self, input: bool) -> Self {
289        self.inner = self.inner.disassociate_accelerator_types(input);
290        self
291    }
292    /// <p>This parameter is no longer supported. Elastic Inference (EI) is no longer available.</p>
293    /// <p>This parameter was used to specify a list of the EI instance types to remove from this notebook instance.</p>
294    pub fn set_disassociate_accelerator_types(mut self, input: ::std::option::Option<bool>) -> Self {
295        self.inner = self.inner.set_disassociate_accelerator_types(input);
296        self
297    }
298    /// <p>This parameter is no longer supported. Elastic Inference (EI) is no longer available.</p>
299    /// <p>This parameter was used to specify a list of the EI instance types to remove from this notebook instance.</p>
300    pub fn get_disassociate_accelerator_types(&self) -> &::std::option::Option<bool> {
301        self.inner.get_disassociate_accelerator_types()
302    }
303    /// <p>The name or URL of the default Git repository to remove from this notebook instance. This operation is idempotent. If you specify a Git repository that is not associated with the notebook instance when you call this method, it does not throw an error.</p>
304    pub fn disassociate_default_code_repository(mut self, input: bool) -> Self {
305        self.inner = self.inner.disassociate_default_code_repository(input);
306        self
307    }
308    /// <p>The name or URL of the default Git repository to remove from this notebook instance. This operation is idempotent. If you specify a Git repository that is not associated with the notebook instance when you call this method, it does not throw an error.</p>
309    pub fn set_disassociate_default_code_repository(mut self, input: ::std::option::Option<bool>) -> Self {
310        self.inner = self.inner.set_disassociate_default_code_repository(input);
311        self
312    }
313    /// <p>The name or URL of the default Git repository to remove from this notebook instance. This operation is idempotent. If you specify a Git repository that is not associated with the notebook instance when you call this method, it does not throw an error.</p>
314    pub fn get_disassociate_default_code_repository(&self) -> &::std::option::Option<bool> {
315        self.inner.get_disassociate_default_code_repository()
316    }
317    /// <p>A list of names or URLs of the default Git repositories to remove from this notebook instance. This operation is idempotent. If you specify a Git repository that is not associated with the notebook instance when you call this method, it does not throw an error.</p>
318    pub fn disassociate_additional_code_repositories(mut self, input: bool) -> Self {
319        self.inner = self.inner.disassociate_additional_code_repositories(input);
320        self
321    }
322    /// <p>A list of names or URLs of the default Git repositories to remove from this notebook instance. This operation is idempotent. If you specify a Git repository that is not associated with the notebook instance when you call this method, it does not throw an error.</p>
323    pub fn set_disassociate_additional_code_repositories(mut self, input: ::std::option::Option<bool>) -> Self {
324        self.inner = self.inner.set_disassociate_additional_code_repositories(input);
325        self
326    }
327    /// <p>A list of names or URLs of the default Git repositories to remove from this notebook instance. This operation is idempotent. If you specify a Git repository that is not associated with the notebook instance when you call this method, it does not throw an error.</p>
328    pub fn get_disassociate_additional_code_repositories(&self) -> &::std::option::Option<bool> {
329        self.inner.get_disassociate_additional_code_repositories()
330    }
331    /// <p>Whether root access is enabled or disabled for users of the notebook instance. The default value is <code>Enabled</code>.</p><note>
332    /// <p>If you set this to <code>Disabled</code>, users don't have root access on the notebook instance, but lifecycle configuration scripts still run with root permissions.</p>
333    /// </note>
334    pub fn root_access(mut self, input: crate::types::RootAccess) -> Self {
335        self.inner = self.inner.root_access(input);
336        self
337    }
338    /// <p>Whether root access is enabled or disabled for users of the notebook instance. The default value is <code>Enabled</code>.</p><note>
339    /// <p>If you set this to <code>Disabled</code>, users don't have root access on the notebook instance, but lifecycle configuration scripts still run with root permissions.</p>
340    /// </note>
341    pub fn set_root_access(mut self, input: ::std::option::Option<crate::types::RootAccess>) -> Self {
342        self.inner = self.inner.set_root_access(input);
343        self
344    }
345    /// <p>Whether root access is enabled or disabled for users of the notebook instance. The default value is <code>Enabled</code>.</p><note>
346    /// <p>If you set this to <code>Disabled</code>, users don't have root access on the notebook instance, but lifecycle configuration scripts still run with root permissions.</p>
347    /// </note>
348    pub fn get_root_access(&self) -> &::std::option::Option<crate::types::RootAccess> {
349        self.inner.get_root_access()
350    }
351    /// <p>Information on the IMDS configuration of the notebook instance</p>
352    pub fn instance_metadata_service_configuration(mut self, input: crate::types::InstanceMetadataServiceConfiguration) -> Self {
353        self.inner = self.inner.instance_metadata_service_configuration(input);
354        self
355    }
356    /// <p>Information on the IMDS configuration of the notebook instance</p>
357    pub fn set_instance_metadata_service_configuration(
358        mut self,
359        input: ::std::option::Option<crate::types::InstanceMetadataServiceConfiguration>,
360    ) -> Self {
361        self.inner = self.inner.set_instance_metadata_service_configuration(input);
362        self
363    }
364    /// <p>Information on the IMDS configuration of the notebook instance</p>
365    pub fn get_instance_metadata_service_configuration(&self) -> &::std::option::Option<crate::types::InstanceMetadataServiceConfiguration> {
366        self.inner.get_instance_metadata_service_configuration()
367    }
368}