// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`CreateTapePool`](crate::operation::create_tape_pool::builders::CreateTapePoolFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`pool_name(impl Into<String>)`](crate::operation::create_tape_pool::builders::CreateTapePoolFluentBuilder::pool_name) / [`set_pool_name(Option<String>)`](crate::operation::create_tape_pool::builders::CreateTapePoolFluentBuilder::set_pool_name):<br>required: **true**<br><p>The name of the new custom tape pool.</p><br>
/// - [`storage_class(TapeStorageClass)`](crate::operation::create_tape_pool::builders::CreateTapePoolFluentBuilder::storage_class) / [`set_storage_class(Option<TapeStorageClass>)`](crate::operation::create_tape_pool::builders::CreateTapePoolFluentBuilder::set_storage_class):<br>required: **true**<br><p>The storage class that is associated with the new custom pool. When you use your backup application to eject the tape, the tape is archived directly into the storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds to the pool.</p><br>
/// - [`retention_lock_type(RetentionLockType)`](crate::operation::create_tape_pool::builders::CreateTapePoolFluentBuilder::retention_lock_type) / [`set_retention_lock_type(Option<RetentionLockType>)`](crate::operation::create_tape_pool::builders::CreateTapePoolFluentBuilder::set_retention_lock_type):<br>required: **false**<br><p>Tape retention lock can be configured in two modes. When configured in governance mode, Amazon Web Services accounts with specific IAM permissions are authorized to remove the tape retention lock from archived virtual tapes. When configured in compliance mode, the tape retention lock cannot be removed by any user, including the root Amazon Web Services account.</p><br>
/// - [`retention_lock_time_in_days(i32)`](crate::operation::create_tape_pool::builders::CreateTapePoolFluentBuilder::retention_lock_time_in_days) / [`set_retention_lock_time_in_days(Option<i32>)`](crate::operation::create_tape_pool::builders::CreateTapePoolFluentBuilder::set_retention_lock_time_in_days):<br>required: **false**<br><p>Tape retention lock time is set in days. Tape retention lock can be enabled for up to 100 years (36,500 days).</p><br>
/// - [`tags(Tag)`](crate::operation::create_tape_pool::builders::CreateTapePoolFluentBuilder::tags) / [`set_tags(Option<Vec::<Tag>>)`](crate::operation::create_tape_pool::builders::CreateTapePoolFluentBuilder::set_tags):<br>required: **false**<br><p>A list of up to 50 tags that can be assigned to tape pool. Each tag is a key-value pair.</p><note> <p>Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / @. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256.</p> </note><br>
/// - On success, responds with [`CreateTapePoolOutput`](crate::operation::create_tape_pool::CreateTapePoolOutput) with field(s):
/// - [`pool_arn(Option<String>)`](crate::operation::create_tape_pool::CreateTapePoolOutput::pool_arn): <p>The unique Amazon Resource Name (ARN) that represents the custom tape pool. Use the <code>ListTapePools</code> operation to return a list of tape pools for your account and Amazon Web Services Region.</p>
/// - On failure, responds with [`SdkError<CreateTapePoolError>`](crate::operation::create_tape_pool::CreateTapePoolError)
pub fn create_tape_pool(&self) -> crate::operation::create_tape_pool::builders::CreateTapePoolFluentBuilder {
crate::operation::create_tape_pool::builders::CreateTapePoolFluentBuilder::new(self.handle.clone())
}
}