1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
    /// Constructs a fluent builder for the [`CreateSMBFileShare`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`client_token(impl Into<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::client_token) / [`set_client_token(Option<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_client_token):<br>required: **true**<br><p>A unique string value that you supply that is used by S3 File Gateway to ensure idempotent file share creation.</p><br>
    ///   - [`gateway_arn(impl Into<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::gateway_arn) / [`set_gateway_arn(Option<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_gateway_arn):<br>required: **true**<br><p>The ARN of the S3 File Gateway on which you want to create a file share.</p><br>
    ///   - [`kms_encrypted(bool)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::kms_encrypted) / [`set_kms_encrypted(Option<bool>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_kms_encrypted):<br>required: **false**<br><p>Set to <code>true</code> to use Amazon S3 server-side encryption with your own KMS key, or <code>false</code> to use a key managed by Amazon S3. Optional.</p> <p>Valid Values: <code>true</code> | <code>false</code></p><br>
    ///   - [`kms_key(impl Into<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::kms_key) / [`set_kms_key(Option<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_kms_key):<br>required: **false**<br><p>The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when <code>KMSEncrypted</code> is <code>true</code>. Optional.</p><br>
    ///   - [`role(impl Into<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::role) / [`set_role(Option<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_role):<br>required: **true**<br><p>The ARN of the Identity and Access Management (IAM) role that an S3 File Gateway assumes when it accesses the underlying storage.</p><br>
    ///   - [`location_arn(impl Into<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::location_arn) / [`set_location_arn(Option<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_location_arn):<br>required: **true**<br><p>A custom ARN for the backend storage used for storing data for file shares. It includes a resource ARN with an optional prefix concatenation. The prefix must end with a forward slash (/).</p><note>  <p>You can specify LocationARN as a bucket ARN, access point ARN or access point alias, as shown in the following examples.</p>  <p>Bucket ARN:</p>  <p><code>arn:aws:s3:::my-bucket/prefix/</code></p>  <p>Access point ARN:</p>  <p><code>arn:aws:s3:region:account-id:accesspoint/access-point-name/prefix/</code></p>  <p>If you specify an access point, the bucket policy must be configured to delegate access control to the access point. For information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-policies.html#access-points-delegating-control">Delegating access control to access points</a> in the <i>Amazon S3 User Guide</i>.</p>  <p>Access point alias:</p>  <p><code>test-ap-ab123cdef4gehijklmn5opqrstuvuse1a-s3alias</code></p> </note><br>
    ///   - [`default_storage_class(impl Into<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::default_storage_class) / [`set_default_storage_class(Option<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_default_storage_class):<br>required: **false**<br><p>The default storage class for objects put into an Amazon S3 bucket by the S3 File Gateway. The default value is <code>S3_STANDARD</code>. Optional.</p> <p>Valid Values: <code>S3_STANDARD</code> | <code>S3_INTELLIGENT_TIERING</code> | <code>S3_STANDARD_IA</code> | <code>S3_ONEZONE_IA</code></p><br>
    ///   - [`object_acl(ObjectAcl)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::object_acl) / [`set_object_acl(Option<ObjectAcl>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_object_acl):<br>required: **false**<br><p>A value that sets the access control list (ACL) permission for objects in the S3 bucket that a S3 File Gateway puts objects into. The default value is <code>private</code>.</p><br>
    ///   - [`read_only(bool)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::read_only) / [`set_read_only(Option<bool>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_read_only):<br>required: **false**<br><p>A value that sets the write status of a file share. Set this value to <code>true</code> to set the write status to read-only, otherwise set to <code>false</code>.</p> <p>Valid Values: <code>true</code> | <code>false</code></p><br>
    ///   - [`guess_mime_type_enabled(bool)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::guess_mime_type_enabled) / [`set_guess_mime_type_enabled(Option<bool>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_guess_mime_type_enabled):<br>required: **false**<br><p>A value that enables guessing of the MIME type for uploaded objects based on file extensions. Set this value to <code>true</code> to enable MIME type guessing, otherwise set to <code>false</code>. The default value is <code>true</code>.</p> <p>Valid Values: <code>true</code> | <code>false</code></p><br>
    ///   - [`requester_pays(bool)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::requester_pays) / [`set_requester_pays(Option<bool>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_requester_pays):<br>required: **false**<br><p>A value that sets who pays the cost of the request and the cost associated with data download from the S3 bucket. If this value is set to <code>true</code>, the requester pays the costs; otherwise, the S3 bucket owner pays. However, the S3 bucket owner always pays the cost of storing data.</p><note>  <p><code>RequesterPays</code> is a configuration for the S3 bucket that backs the file share, so make sure that the configuration on the file share is the same as the S3 bucket configuration.</p> </note> <p>Valid Values: <code>true</code> | <code>false</code></p><br>
    ///   - [`smbacl_enabled(bool)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::smbacl_enabled) / [`set_smbacl_enabled(Option<bool>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_smbacl_enabled):<br>required: **false**<br><p>Set this value to <code>true</code> to enable access control list (ACL) on the SMB file share. Set it to <code>false</code> to map file and directory permissions to the POSIX permissions.</p> <p>For more information, see <a href="https://docs.aws.amazon.com/storagegateway/latest/userguide/smb-acl.html">Using Microsoft Windows ACLs to control access to an SMB file share</a> in the <i>Storage Gateway User Guide</i>.</p> <p>Valid Values: <code>true</code> | <code>false</code></p><br>
    ///   - [`access_based_enumeration(bool)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::access_based_enumeration) / [`set_access_based_enumeration(Option<bool>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_access_based_enumeration):<br>required: **false**<br><p>The files and folders on this share will only be visible to users with read access.</p><br>
    ///   - [`admin_user_list(impl Into<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::admin_user_list) / [`set_admin_user_list(Option<Vec::<String>>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_admin_user_list):<br>required: **false**<br><p>A list of users or groups in the Active Directory that will be granted administrator privileges on the file share. These users can do all file operations as the super-user. Acceptable formats include: <code>DOMAIN\User1</code>, <code>user1</code>, <code>@group1</code>, and <code>@DOMAIN\group1</code>.</p><important>  <p>Use this option very carefully, because any user in this list can do anything they like on the file share, regardless of file permissions.</p> </important><br>
    ///   - [`valid_user_list(impl Into<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::valid_user_list) / [`set_valid_user_list(Option<Vec::<String>>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_valid_user_list):<br>required: **false**<br><p>A list of users or groups in the Active Directory that are allowed to access the file <code></code> share. A group must be prefixed with the @ character. Acceptable formats include: <code>DOMAIN\User1</code>, <code>user1</code>, <code>@group1</code>, and <code>@DOMAIN\group1</code>. Can only be set if Authentication is set to <code>ActiveDirectory</code>.</p><br>
    ///   - [`invalid_user_list(impl Into<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::invalid_user_list) / [`set_invalid_user_list(Option<Vec::<String>>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_invalid_user_list):<br>required: **false**<br><p>A list of users or groups in the Active Directory that are not allowed to access the file share. A group must be prefixed with the @ character. Acceptable formats include: <code>DOMAIN\User1</code>, <code>user1</code>, <code>@group1</code>, and <code>@DOMAIN\group1</code>. Can only be set if Authentication is set to <code>ActiveDirectory</code>.</p><br>
    ///   - [`audit_destination_arn(impl Into<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::audit_destination_arn) / [`set_audit_destination_arn(Option<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_audit_destination_arn):<br>required: **false**<br><p>The Amazon Resource Name (ARN) of the storage used for audit logs.</p><br>
    ///   - [`authentication(impl Into<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::authentication) / [`set_authentication(Option<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_authentication):<br>required: **false**<br><p>The authentication method that users use to access the file share. The default is <code>ActiveDirectory</code>.</p> <p>Valid Values: <code>ActiveDirectory</code> | <code>GuestAccess</code></p><br>
    ///   - [`case_sensitivity(CaseSensitivity)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::case_sensitivity) / [`set_case_sensitivity(Option<CaseSensitivity>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_case_sensitivity):<br>required: **false**<br><p>The case of an object name in an Amazon S3 bucket. For <code>ClientSpecified</code>, the client determines the case sensitivity. For <code>CaseSensitive</code>, the gateway determines the case sensitivity. The default value is <code>ClientSpecified</code>.</p><br>
    ///   - [`tags(Tag)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::tags) / [`set_tags(Option<Vec::<Tag>>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_tags):<br>required: **false**<br><p>A list of up to 50 tags that can be assigned to the NFS file share. 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>
    ///   - [`file_share_name(impl Into<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::file_share_name) / [`set_file_share_name(Option<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_file_share_name):<br>required: **false**<br><p>The name of the file share. Optional.</p><note>  <p><code>FileShareName</code> must be set if an S3 prefix name is set in <code>LocationARN</code>, or if an access point or access point alias is used.</p> </note><br>
    ///   - [`cache_attributes(CacheAttributes)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::cache_attributes) / [`set_cache_attributes(Option<CacheAttributes>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_cache_attributes):<br>required: **false**<br><p>Specifies refresh cache information for the file share.</p><br>
    ///   - [`notification_policy(impl Into<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::notification_policy) / [`set_notification_policy(Option<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_notification_policy):<br>required: **false**<br><p>The notification policy of the file share. <code>SettlingTimeInSeconds</code> controls the number of seconds to wait after the last point in time a client wrote to a file before generating an <code>ObjectUploaded</code> notification. Because clients can make many small writes to files, it's best to set this parameter for as long as possible to avoid generating multiple notifications for the same file in a small time period.</p><note>  <p><code>SettlingTimeInSeconds</code> has no effect on the timing of the object uploading to Amazon S3, only the timing of the notification.</p> </note> <p>The following example sets <code>NotificationPolicy</code> on with <code>SettlingTimeInSeconds</code> set to 60.</p> <p><code>{\"Upload\": {\"SettlingTimeInSeconds\": 60}}</code></p> <p>The following example sets <code>NotificationPolicy</code> off.</p> <p><code>{}</code></p><br>
    ///   - [`vpc_endpoint_dns_name(impl Into<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::vpc_endpoint_dns_name) / [`set_vpc_endpoint_dns_name(Option<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_vpc_endpoint_dns_name):<br>required: **false**<br><p>Specifies the DNS name for the VPC endpoint that the SMB file share uses to connect to Amazon S3.</p><note>  <p>This parameter is required for SMB file shares that connect to Amazon S3 through a VPC endpoint, a VPC access point, or an access point alias that points to a VPC access point.</p> </note><br>
    ///   - [`bucket_region(impl Into<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::bucket_region) / [`set_bucket_region(Option<String>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_bucket_region):<br>required: **false**<br><p>Specifies the Region of the S3 bucket where the SMB file share stores files.</p><note>  <p>This parameter is required for SMB file shares that connect to Amazon S3 through a VPC endpoint, a VPC access point, or an access point alias that points to a VPC access point.</p> </note><br>
    ///   - [`oplocks_enabled(bool)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::oplocks_enabled) / [`set_oplocks_enabled(Option<bool>)`](crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::set_oplocks_enabled):<br>required: **false**<br><p>Specifies whether opportunistic locking is enabled for the SMB file share.</p><note>  <p>Enabling opportunistic locking on case-sensitive shares is not recommended for workloads that involve access to files with the same name in different case.</p> </note> <p>Valid Values: <code>true</code> | <code>false</code></p><br>
    /// - On success, responds with [`CreateSmbFileShareOutput`](crate::operation::create_smb_file_share::CreateSmbFileShareOutput) with field(s):
    ///   - [`file_share_arn(Option<String>)`](crate::operation::create_smb_file_share::CreateSmbFileShareOutput::file_share_arn): <p>The Amazon Resource Name (ARN) of the newly created file share.</p>
    /// - On failure, responds with [`SdkError<CreateSMBFileShareError>`](crate::operation::create_smb_file_share::CreateSMBFileShareError)
    pub fn create_smb_file_share(&self) -> crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder {
        crate::operation::create_smb_file_share::builders::CreateSMBFileShareFluentBuilder::new(self.handle.clone())
    }
}