/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include namespace Aws { namespace StorageGateway { namespace Model { /** *

CreateSMBFileShareInput

See Also:

AWS * API Reference

*/ class CreateSMBFileShareRequest : public StorageGatewayRequest { public: AWS_STORAGEGATEWAY_API CreateSMBFileShareRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateSMBFileShare"; } AWS_STORAGEGATEWAY_API Aws::String SerializePayload() const override; AWS_STORAGEGATEWAY_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

A unique string value that you supply that is used by S3 File Gateway to * ensure idempotent file share creation.

*/ inline const Aws::String& GetClientToken() const{ return m_clientToken; } /** *

A unique string value that you supply that is used by S3 File Gateway to * ensure idempotent file share creation.

*/ inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; } /** *

A unique string value that you supply that is used by S3 File Gateway to * ensure idempotent file share creation.

*/ inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; } /** *

A unique string value that you supply that is used by S3 File Gateway to * ensure idempotent file share creation.

*/ inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); } /** *

A unique string value that you supply that is used by S3 File Gateway to * ensure idempotent file share creation.

*/ inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); } /** *

A unique string value that you supply that is used by S3 File Gateway to * ensure idempotent file share creation.

*/ inline CreateSMBFileShareRequest& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;} /** *

A unique string value that you supply that is used by S3 File Gateway to * ensure idempotent file share creation.

*/ inline CreateSMBFileShareRequest& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;} /** *

A unique string value that you supply that is used by S3 File Gateway to * ensure idempotent file share creation.

*/ inline CreateSMBFileShareRequest& WithClientToken(const char* value) { SetClientToken(value); return *this;} /** *

The ARN of the S3 File Gateway on which you want to create a file share.

*/ inline const Aws::String& GetGatewayARN() const{ return m_gatewayARN; } /** *

The ARN of the S3 File Gateway on which you want to create a file share.

*/ inline bool GatewayARNHasBeenSet() const { return m_gatewayARNHasBeenSet; } /** *

The ARN of the S3 File Gateway on which you want to create a file share.

*/ inline void SetGatewayARN(const Aws::String& value) { m_gatewayARNHasBeenSet = true; m_gatewayARN = value; } /** *

The ARN of the S3 File Gateway on which you want to create a file share.

*/ inline void SetGatewayARN(Aws::String&& value) { m_gatewayARNHasBeenSet = true; m_gatewayARN = std::move(value); } /** *

The ARN of the S3 File Gateway on which you want to create a file share.

*/ inline void SetGatewayARN(const char* value) { m_gatewayARNHasBeenSet = true; m_gatewayARN.assign(value); } /** *

The ARN of the S3 File Gateway on which you want to create a file share.

*/ inline CreateSMBFileShareRequest& WithGatewayARN(const Aws::String& value) { SetGatewayARN(value); return *this;} /** *

The ARN of the S3 File Gateway on which you want to create a file share.

*/ inline CreateSMBFileShareRequest& WithGatewayARN(Aws::String&& value) { SetGatewayARN(std::move(value)); return *this;} /** *

The ARN of the S3 File Gateway on which you want to create a file share.

*/ inline CreateSMBFileShareRequest& WithGatewayARN(const char* value) { SetGatewayARN(value); return *this;} /** *

Set to true to use Amazon S3 server-side encryption with your * own KMS key, or false to use a key managed by Amazon S3. * Optional.

Valid Values: true | false

*/ inline bool GetKMSEncrypted() const{ return m_kMSEncrypted; } /** *

Set to true to use Amazon S3 server-side encryption with your * own KMS key, or false to use a key managed by Amazon S3. * Optional.

Valid Values: true | false

*/ inline bool KMSEncryptedHasBeenSet() const { return m_kMSEncryptedHasBeenSet; } /** *

Set to true to use Amazon S3 server-side encryption with your * own KMS key, or false to use a key managed by Amazon S3. * Optional.

Valid Values: true | false

*/ inline void SetKMSEncrypted(bool value) { m_kMSEncryptedHasBeenSet = true; m_kMSEncrypted = value; } /** *

Set to true to use Amazon S3 server-side encryption with your * own KMS key, or false to use a key managed by Amazon S3. * Optional.

Valid Values: true | false

*/ inline CreateSMBFileShareRequest& WithKMSEncrypted(bool value) { SetKMSEncrypted(value); return *this;} /** *

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 KMSEncrypted is * true. Optional.

*/ inline const Aws::String& GetKMSKey() const{ return m_kMSKey; } /** *

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 KMSEncrypted is * true. Optional.

*/ inline bool KMSKeyHasBeenSet() const { return m_kMSKeyHasBeenSet; } /** *

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 KMSEncrypted is * true. Optional.

*/ inline void SetKMSKey(const Aws::String& value) { m_kMSKeyHasBeenSet = true; m_kMSKey = value; } /** *

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 KMSEncrypted is * true. Optional.

*/ inline void SetKMSKey(Aws::String&& value) { m_kMSKeyHasBeenSet = true; m_kMSKey = std::move(value); } /** *

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 KMSEncrypted is * true. Optional.

*/ inline void SetKMSKey(const char* value) { m_kMSKeyHasBeenSet = true; m_kMSKey.assign(value); } /** *

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 KMSEncrypted is * true. Optional.

*/ inline CreateSMBFileShareRequest& WithKMSKey(const Aws::String& value) { SetKMSKey(value); return *this;} /** *

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 KMSEncrypted is * true. Optional.

*/ inline CreateSMBFileShareRequest& WithKMSKey(Aws::String&& value) { SetKMSKey(std::move(value)); return *this;} /** *

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 KMSEncrypted is * true. Optional.

*/ inline CreateSMBFileShareRequest& WithKMSKey(const char* value) { SetKMSKey(value); return *this;} /** *

The ARN of the Identity and Access Management (IAM) role that an S3 File * Gateway assumes when it accesses the underlying storage.

*/ inline const Aws::String& GetRole() const{ return m_role; } /** *

The ARN of the Identity and Access Management (IAM) role that an S3 File * Gateway assumes when it accesses the underlying storage.

*/ inline bool RoleHasBeenSet() const { return m_roleHasBeenSet; } /** *

The ARN of the Identity and Access Management (IAM) role that an S3 File * Gateway assumes when it accesses the underlying storage.

*/ inline void SetRole(const Aws::String& value) { m_roleHasBeenSet = true; m_role = value; } /** *

The ARN of the Identity and Access Management (IAM) role that an S3 File * Gateway assumes when it accesses the underlying storage.

*/ inline void SetRole(Aws::String&& value) { m_roleHasBeenSet = true; m_role = std::move(value); } /** *

The ARN of the Identity and Access Management (IAM) role that an S3 File * Gateway assumes when it accesses the underlying storage.

*/ inline void SetRole(const char* value) { m_roleHasBeenSet = true; m_role.assign(value); } /** *

The ARN of the Identity and Access Management (IAM) role that an S3 File * Gateway assumes when it accesses the underlying storage.

*/ inline CreateSMBFileShareRequest& WithRole(const Aws::String& value) { SetRole(value); return *this;} /** *

The ARN of the Identity and Access Management (IAM) role that an S3 File * Gateway assumes when it accesses the underlying storage.

*/ inline CreateSMBFileShareRequest& WithRole(Aws::String&& value) { SetRole(std::move(value)); return *this;} /** *

The ARN of the Identity and Access Management (IAM) role that an S3 File * Gateway assumes when it accesses the underlying storage.

*/ inline CreateSMBFileShareRequest& WithRole(const char* value) { SetRole(value); return *this;} /** *

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 (/).

You can specify LocationARN as * a bucket ARN, access point ARN or access point alias, as shown in the following * examples.

Bucket ARN:

arn:aws:s3:::my-bucket/prefix/ *

Access point ARN:

* arn:aws:s3:region:account-id:accesspoint/access-point-name/prefix/ *

If you specify an access point, the bucket policy must be configured to * delegate access control to the access point. For information, see Delegating * access control to access points in the Amazon S3 User Guide.

*

Access point alias:

* test-ap-ab123cdef4gehijklmn5opqrstuvuse1a-s3alias

*/ inline const Aws::String& GetLocationARN() const{ return m_locationARN; } /** *

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 (/).

You can specify LocationARN as * a bucket ARN, access point ARN or access point alias, as shown in the following * examples.

Bucket ARN:

arn:aws:s3:::my-bucket/prefix/ *

Access point ARN:

* arn:aws:s3:region:account-id:accesspoint/access-point-name/prefix/ *

If you specify an access point, the bucket policy must be configured to * delegate access control to the access point. For information, see Delegating * access control to access points in the Amazon S3 User Guide.

*

Access point alias:

* test-ap-ab123cdef4gehijklmn5opqrstuvuse1a-s3alias

*/ inline bool LocationARNHasBeenSet() const { return m_locationARNHasBeenSet; } /** *

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 (/).

You can specify LocationARN as * a bucket ARN, access point ARN or access point alias, as shown in the following * examples.

Bucket ARN:

arn:aws:s3:::my-bucket/prefix/ *

Access point ARN:

* arn:aws:s3:region:account-id:accesspoint/access-point-name/prefix/ *

If you specify an access point, the bucket policy must be configured to * delegate access control to the access point. For information, see Delegating * access control to access points in the Amazon S3 User Guide.

*

Access point alias:

* test-ap-ab123cdef4gehijklmn5opqrstuvuse1a-s3alias

*/ inline void SetLocationARN(const Aws::String& value) { m_locationARNHasBeenSet = true; m_locationARN = value; } /** *

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 (/).

You can specify LocationARN as * a bucket ARN, access point ARN or access point alias, as shown in the following * examples.

Bucket ARN:

arn:aws:s3:::my-bucket/prefix/ *

Access point ARN:

* arn:aws:s3:region:account-id:accesspoint/access-point-name/prefix/ *

If you specify an access point, the bucket policy must be configured to * delegate access control to the access point. For information, see Delegating * access control to access points in the Amazon S3 User Guide.

*

Access point alias:

* test-ap-ab123cdef4gehijklmn5opqrstuvuse1a-s3alias

*/ inline void SetLocationARN(Aws::String&& value) { m_locationARNHasBeenSet = true; m_locationARN = std::move(value); } /** *

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 (/).

You can specify LocationARN as * a bucket ARN, access point ARN or access point alias, as shown in the following * examples.

Bucket ARN:

arn:aws:s3:::my-bucket/prefix/ *

Access point ARN:

* arn:aws:s3:region:account-id:accesspoint/access-point-name/prefix/ *

If you specify an access point, the bucket policy must be configured to * delegate access control to the access point. For information, see Delegating * access control to access points in the Amazon S3 User Guide.

*

Access point alias:

* test-ap-ab123cdef4gehijklmn5opqrstuvuse1a-s3alias

*/ inline void SetLocationARN(const char* value) { m_locationARNHasBeenSet = true; m_locationARN.assign(value); } /** *

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 (/).

You can specify LocationARN as * a bucket ARN, access point ARN or access point alias, as shown in the following * examples.

Bucket ARN:

arn:aws:s3:::my-bucket/prefix/ *

Access point ARN:

* arn:aws:s3:region:account-id:accesspoint/access-point-name/prefix/ *

If you specify an access point, the bucket policy must be configured to * delegate access control to the access point. For information, see Delegating * access control to access points in the Amazon S3 User Guide.

*

Access point alias:

* test-ap-ab123cdef4gehijklmn5opqrstuvuse1a-s3alias

*/ inline CreateSMBFileShareRequest& WithLocationARN(const Aws::String& value) { SetLocationARN(value); return *this;} /** *

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 (/).

You can specify LocationARN as * a bucket ARN, access point ARN or access point alias, as shown in the following * examples.

Bucket ARN:

arn:aws:s3:::my-bucket/prefix/ *

Access point ARN:

* arn:aws:s3:region:account-id:accesspoint/access-point-name/prefix/ *

If you specify an access point, the bucket policy must be configured to * delegate access control to the access point. For information, see Delegating * access control to access points in the Amazon S3 User Guide.

*

Access point alias:

* test-ap-ab123cdef4gehijklmn5opqrstuvuse1a-s3alias

*/ inline CreateSMBFileShareRequest& WithLocationARN(Aws::String&& value) { SetLocationARN(std::move(value)); return *this;} /** *

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 (/).

You can specify LocationARN as * a bucket ARN, access point ARN or access point alias, as shown in the following * examples.

Bucket ARN:

arn:aws:s3:::my-bucket/prefix/ *

Access point ARN:

* arn:aws:s3:region:account-id:accesspoint/access-point-name/prefix/ *

If you specify an access point, the bucket policy must be configured to * delegate access control to the access point. For information, see Delegating * access control to access points in the Amazon S3 User Guide.

*

Access point alias:

* test-ap-ab123cdef4gehijklmn5opqrstuvuse1a-s3alias

*/ inline CreateSMBFileShareRequest& WithLocationARN(const char* value) { SetLocationARN(value); return *this;} /** *

The default storage class for objects put into an Amazon S3 bucket by the S3 * File Gateway. The default value is S3_STANDARD. Optional.

*

Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING * | S3_STANDARD_IA | S3_ONEZONE_IA

*/ inline const Aws::String& GetDefaultStorageClass() const{ return m_defaultStorageClass; } /** *

The default storage class for objects put into an Amazon S3 bucket by the S3 * File Gateway. The default value is S3_STANDARD. Optional.

*

Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING * | S3_STANDARD_IA | S3_ONEZONE_IA

*/ inline bool DefaultStorageClassHasBeenSet() const { return m_defaultStorageClassHasBeenSet; } /** *

The default storage class for objects put into an Amazon S3 bucket by the S3 * File Gateway. The default value is S3_STANDARD. Optional.

*

Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING * | S3_STANDARD_IA | S3_ONEZONE_IA

*/ inline void SetDefaultStorageClass(const Aws::String& value) { m_defaultStorageClassHasBeenSet = true; m_defaultStorageClass = value; } /** *

The default storage class for objects put into an Amazon S3 bucket by the S3 * File Gateway. The default value is S3_STANDARD. Optional.

*

Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING * | S3_STANDARD_IA | S3_ONEZONE_IA

*/ inline void SetDefaultStorageClass(Aws::String&& value) { m_defaultStorageClassHasBeenSet = true; m_defaultStorageClass = std::move(value); } /** *

The default storage class for objects put into an Amazon S3 bucket by the S3 * File Gateway. The default value is S3_STANDARD. Optional.

*

Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING * | S3_STANDARD_IA | S3_ONEZONE_IA

*/ inline void SetDefaultStorageClass(const char* value) { m_defaultStorageClassHasBeenSet = true; m_defaultStorageClass.assign(value); } /** *

The default storage class for objects put into an Amazon S3 bucket by the S3 * File Gateway. The default value is S3_STANDARD. Optional.

*

Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING * | S3_STANDARD_IA | S3_ONEZONE_IA

*/ inline CreateSMBFileShareRequest& WithDefaultStorageClass(const Aws::String& value) { SetDefaultStorageClass(value); return *this;} /** *

The default storage class for objects put into an Amazon S3 bucket by the S3 * File Gateway. The default value is S3_STANDARD. Optional.

*

Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING * | S3_STANDARD_IA | S3_ONEZONE_IA

*/ inline CreateSMBFileShareRequest& WithDefaultStorageClass(Aws::String&& value) { SetDefaultStorageClass(std::move(value)); return *this;} /** *

The default storage class for objects put into an Amazon S3 bucket by the S3 * File Gateway. The default value is S3_STANDARD. Optional.

*

Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING * | S3_STANDARD_IA | S3_ONEZONE_IA

*/ inline CreateSMBFileShareRequest& WithDefaultStorageClass(const char* value) { SetDefaultStorageClass(value); return *this;} /** *

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 * private.

*/ inline const ObjectACL& GetObjectACL() const{ return m_objectACL; } /** *

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 * private.

*/ inline bool ObjectACLHasBeenSet() const { return m_objectACLHasBeenSet; } /** *

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 * private.

*/ inline void SetObjectACL(const ObjectACL& value) { m_objectACLHasBeenSet = true; m_objectACL = value; } /** *

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 * private.

*/ inline void SetObjectACL(ObjectACL&& value) { m_objectACLHasBeenSet = true; m_objectACL = std::move(value); } /** *

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 * private.

*/ inline CreateSMBFileShareRequest& WithObjectACL(const ObjectACL& value) { SetObjectACL(value); return *this;} /** *

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 * private.

*/ inline CreateSMBFileShareRequest& WithObjectACL(ObjectACL&& value) { SetObjectACL(std::move(value)); return *this;} /** *

A value that sets the write status of a file share. Set this value to * true to set the write status to read-only, otherwise set to * false.

Valid Values: true | false *

*/ inline bool GetReadOnly() const{ return m_readOnly; } /** *

A value that sets the write status of a file share. Set this value to * true to set the write status to read-only, otherwise set to * false.

Valid Values: true | false *

*/ inline bool ReadOnlyHasBeenSet() const { return m_readOnlyHasBeenSet; } /** *

A value that sets the write status of a file share. Set this value to * true to set the write status to read-only, otherwise set to * false.

Valid Values: true | false *

*/ inline void SetReadOnly(bool value) { m_readOnlyHasBeenSet = true; m_readOnly = value; } /** *

A value that sets the write status of a file share. Set this value to * true to set the write status to read-only, otherwise set to * false.

Valid Values: true | false *

*/ inline CreateSMBFileShareRequest& WithReadOnly(bool value) { SetReadOnly(value); return *this;} /** *

A value that enables guessing of the MIME type for uploaded objects based on * file extensions. Set this value to true to enable MIME type * guessing, otherwise set to false. The default value is * true.

Valid Values: true | false *

*/ inline bool GetGuessMIMETypeEnabled() const{ return m_guessMIMETypeEnabled; } /** *

A value that enables guessing of the MIME type for uploaded objects based on * file extensions. Set this value to true to enable MIME type * guessing, otherwise set to false. The default value is * true.

Valid Values: true | false *

*/ inline bool GuessMIMETypeEnabledHasBeenSet() const { return m_guessMIMETypeEnabledHasBeenSet; } /** *

A value that enables guessing of the MIME type for uploaded objects based on * file extensions. Set this value to true to enable MIME type * guessing, otherwise set to false. The default value is * true.

Valid Values: true | false *

*/ inline void SetGuessMIMETypeEnabled(bool value) { m_guessMIMETypeEnabledHasBeenSet = true; m_guessMIMETypeEnabled = value; } /** *

A value that enables guessing of the MIME type for uploaded objects based on * file extensions. Set this value to true to enable MIME type * guessing, otherwise set to false. The default value is * true.

Valid Values: true | false *

*/ inline CreateSMBFileShareRequest& WithGuessMIMETypeEnabled(bool value) { SetGuessMIMETypeEnabled(value); return *this;} /** *

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 * true, the requester pays the costs; otherwise, the S3 bucket owner * pays. However, the S3 bucket owner always pays the cost of storing data.

*

RequesterPays 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.

Valid Values: * true | false

*/ inline bool GetRequesterPays() const{ return m_requesterPays; } /** *

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 * true, the requester pays the costs; otherwise, the S3 bucket owner * pays. However, the S3 bucket owner always pays the cost of storing data.

*

RequesterPays 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.

Valid Values: * true | false

*/ inline bool RequesterPaysHasBeenSet() const { return m_requesterPaysHasBeenSet; } /** *

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 * true, the requester pays the costs; otherwise, the S3 bucket owner * pays. However, the S3 bucket owner always pays the cost of storing data.

*

RequesterPays 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.

Valid Values: * true | false

*/ inline void SetRequesterPays(bool value) { m_requesterPaysHasBeenSet = true; m_requesterPays = value; } /** *

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 * true, the requester pays the costs; otherwise, the S3 bucket owner * pays. However, the S3 bucket owner always pays the cost of storing data.

*

RequesterPays 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.

Valid Values: * true | false

*/ inline CreateSMBFileShareRequest& WithRequesterPays(bool value) { SetRequesterPays(value); return *this;} /** *

Set this value to true to enable access control list (ACL) on * the SMB file share. Set it to false to map file and directory * permissions to the POSIX permissions.

For more information, see Using * Microsoft Windows ACLs to control access to an SMB file share in the * Storage Gateway User Guide.

Valid Values: true | * false

*/ inline bool GetSMBACLEnabled() const{ return m_sMBACLEnabled; } /** *

Set this value to true to enable access control list (ACL) on * the SMB file share. Set it to false to map file and directory * permissions to the POSIX permissions.

For more information, see Using * Microsoft Windows ACLs to control access to an SMB file share in the * Storage Gateway User Guide.

Valid Values: true | * false

*/ inline bool SMBACLEnabledHasBeenSet() const { return m_sMBACLEnabledHasBeenSet; } /** *

Set this value to true to enable access control list (ACL) on * the SMB file share. Set it to false to map file and directory * permissions to the POSIX permissions.

For more information, see Using * Microsoft Windows ACLs to control access to an SMB file share in the * Storage Gateway User Guide.

Valid Values: true | * false

*/ inline void SetSMBACLEnabled(bool value) { m_sMBACLEnabledHasBeenSet = true; m_sMBACLEnabled = value; } /** *

Set this value to true to enable access control list (ACL) on * the SMB file share. Set it to false to map file and directory * permissions to the POSIX permissions.

For more information, see Using * Microsoft Windows ACLs to control access to an SMB file share in the * Storage Gateway User Guide.

Valid Values: true | * false

*/ inline CreateSMBFileShareRequest& WithSMBACLEnabled(bool value) { SetSMBACLEnabled(value); return *this;} /** *

The files and folders on this share will only be visible to users with read * access.

*/ inline bool GetAccessBasedEnumeration() const{ return m_accessBasedEnumeration; } /** *

The files and folders on this share will only be visible to users with read * access.

*/ inline bool AccessBasedEnumerationHasBeenSet() const { return m_accessBasedEnumerationHasBeenSet; } /** *

The files and folders on this share will only be visible to users with read * access.

*/ inline void SetAccessBasedEnumeration(bool value) { m_accessBasedEnumerationHasBeenSet = true; m_accessBasedEnumeration = value; } /** *

The files and folders on this share will only be visible to users with read * access.

*/ inline CreateSMBFileShareRequest& WithAccessBasedEnumeration(bool value) { SetAccessBasedEnumeration(value); return *this;} /** *

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: * DOMAIN\User1, user1, @group1, and * @DOMAIN\group1.

Use this option very carefully, * because any user in this list can do anything they like on the file share, * regardless of file permissions.

*/ inline const Aws::Vector& GetAdminUserList() const{ return m_adminUserList; } /** *

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: * DOMAIN\User1, user1, @group1, and * @DOMAIN\group1.

Use this option very carefully, * because any user in this list can do anything they like on the file share, * regardless of file permissions.

*/ inline bool AdminUserListHasBeenSet() const { return m_adminUserListHasBeenSet; } /** *

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: * DOMAIN\User1, user1, @group1, and * @DOMAIN\group1.

Use this option very carefully, * because any user in this list can do anything they like on the file share, * regardless of file permissions.

*/ inline void SetAdminUserList(const Aws::Vector& value) { m_adminUserListHasBeenSet = true; m_adminUserList = value; } /** *

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: * DOMAIN\User1, user1, @group1, and * @DOMAIN\group1.

Use this option very carefully, * because any user in this list can do anything they like on the file share, * regardless of file permissions.

*/ inline void SetAdminUserList(Aws::Vector&& value) { m_adminUserListHasBeenSet = true; m_adminUserList = std::move(value); } /** *

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: * DOMAIN\User1, user1, @group1, and * @DOMAIN\group1.

Use this option very carefully, * because any user in this list can do anything they like on the file share, * regardless of file permissions.

*/ inline CreateSMBFileShareRequest& WithAdminUserList(const Aws::Vector& value) { SetAdminUserList(value); return *this;} /** *

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: * DOMAIN\User1, user1, @group1, and * @DOMAIN\group1.

Use this option very carefully, * because any user in this list can do anything they like on the file share, * regardless of file permissions.

*/ inline CreateSMBFileShareRequest& WithAdminUserList(Aws::Vector&& value) { SetAdminUserList(std::move(value)); return *this;} /** *

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: * DOMAIN\User1, user1, @group1, and * @DOMAIN\group1.

Use this option very carefully, * because any user in this list can do anything they like on the file share, * regardless of file permissions.

*/ inline CreateSMBFileShareRequest& AddAdminUserList(const Aws::String& value) { m_adminUserListHasBeenSet = true; m_adminUserList.push_back(value); return *this; } /** *

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: * DOMAIN\User1, user1, @group1, and * @DOMAIN\group1.

Use this option very carefully, * because any user in this list can do anything they like on the file share, * regardless of file permissions.

*/ inline CreateSMBFileShareRequest& AddAdminUserList(Aws::String&& value) { m_adminUserListHasBeenSet = true; m_adminUserList.push_back(std::move(value)); return *this; } /** *

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: * DOMAIN\User1, user1, @group1, and * @DOMAIN\group1.

Use this option very carefully, * because any user in this list can do anything they like on the file share, * regardless of file permissions.

*/ inline CreateSMBFileShareRequest& AddAdminUserList(const char* value) { m_adminUserListHasBeenSet = true; m_adminUserList.push_back(value); return *this; } /** *

A list of users or groups in the Active Directory that are allowed to access * the file share. A group must be prefixed with the @ character. * Acceptable formats include: DOMAIN\User1, user1, * @group1, and @DOMAIN\group1. Can only be set if * Authentication is set to ActiveDirectory.

*/ inline const Aws::Vector& GetValidUserList() const{ return m_validUserList; } /** *

A list of users or groups in the Active Directory that are allowed to access * the file share. A group must be prefixed with the @ character. * Acceptable formats include: DOMAIN\User1, user1, * @group1, and @DOMAIN\group1. Can only be set if * Authentication is set to ActiveDirectory.

*/ inline bool ValidUserListHasBeenSet() const { return m_validUserListHasBeenSet; } /** *

A list of users or groups in the Active Directory that are allowed to access * the file share. A group must be prefixed with the @ character. * Acceptable formats include: DOMAIN\User1, user1, * @group1, and @DOMAIN\group1. Can only be set if * Authentication is set to ActiveDirectory.

*/ inline void SetValidUserList(const Aws::Vector& value) { m_validUserListHasBeenSet = true; m_validUserList = value; } /** *

A list of users or groups in the Active Directory that are allowed to access * the file share. A group must be prefixed with the @ character. * Acceptable formats include: DOMAIN\User1, user1, * @group1, and @DOMAIN\group1. Can only be set if * Authentication is set to ActiveDirectory.

*/ inline void SetValidUserList(Aws::Vector&& value) { m_validUserListHasBeenSet = true; m_validUserList = std::move(value); } /** *

A list of users or groups in the Active Directory that are allowed to access * the file share. A group must be prefixed with the @ character. * Acceptable formats include: DOMAIN\User1, user1, * @group1, and @DOMAIN\group1. Can only be set if * Authentication is set to ActiveDirectory.

*/ inline CreateSMBFileShareRequest& WithValidUserList(const Aws::Vector& value) { SetValidUserList(value); return *this;} /** *

A list of users or groups in the Active Directory that are allowed to access * the file share. A group must be prefixed with the @ character. * Acceptable formats include: DOMAIN\User1, user1, * @group1, and @DOMAIN\group1. Can only be set if * Authentication is set to ActiveDirectory.

*/ inline CreateSMBFileShareRequest& WithValidUserList(Aws::Vector&& value) { SetValidUserList(std::move(value)); return *this;} /** *

A list of users or groups in the Active Directory that are allowed to access * the file share. A group must be prefixed with the @ character. * Acceptable formats include: DOMAIN\User1, user1, * @group1, and @DOMAIN\group1. Can only be set if * Authentication is set to ActiveDirectory.

*/ inline CreateSMBFileShareRequest& AddValidUserList(const Aws::String& value) { m_validUserListHasBeenSet = true; m_validUserList.push_back(value); return *this; } /** *

A list of users or groups in the Active Directory that are allowed to access * the file share. A group must be prefixed with the @ character. * Acceptable formats include: DOMAIN\User1, user1, * @group1, and @DOMAIN\group1. Can only be set if * Authentication is set to ActiveDirectory.

*/ inline CreateSMBFileShareRequest& AddValidUserList(Aws::String&& value) { m_validUserListHasBeenSet = true; m_validUserList.push_back(std::move(value)); return *this; } /** *

A list of users or groups in the Active Directory that are allowed to access * the file share. A group must be prefixed with the @ character. * Acceptable formats include: DOMAIN\User1, user1, * @group1, and @DOMAIN\group1. Can only be set if * Authentication is set to ActiveDirectory.

*/ inline CreateSMBFileShareRequest& AddValidUserList(const char* value) { m_validUserListHasBeenSet = true; m_validUserList.push_back(value); return *this; } /** *

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: DOMAIN\User1, user1, * @group1, and @DOMAIN\group1. Can only be set if * Authentication is set to ActiveDirectory.

*/ inline const Aws::Vector& GetInvalidUserList() const{ return m_invalidUserList; } /** *

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: DOMAIN\User1, user1, * @group1, and @DOMAIN\group1. Can only be set if * Authentication is set to ActiveDirectory.

*/ inline bool InvalidUserListHasBeenSet() const { return m_invalidUserListHasBeenSet; } /** *

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: DOMAIN\User1, user1, * @group1, and @DOMAIN\group1. Can only be set if * Authentication is set to ActiveDirectory.

*/ inline void SetInvalidUserList(const Aws::Vector& value) { m_invalidUserListHasBeenSet = true; m_invalidUserList = value; } /** *

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: DOMAIN\User1, user1, * @group1, and @DOMAIN\group1. Can only be set if * Authentication is set to ActiveDirectory.

*/ inline void SetInvalidUserList(Aws::Vector&& value) { m_invalidUserListHasBeenSet = true; m_invalidUserList = std::move(value); } /** *

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: DOMAIN\User1, user1, * @group1, and @DOMAIN\group1. Can only be set if * Authentication is set to ActiveDirectory.

*/ inline CreateSMBFileShareRequest& WithInvalidUserList(const Aws::Vector& value) { SetInvalidUserList(value); return *this;} /** *

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: DOMAIN\User1, user1, * @group1, and @DOMAIN\group1. Can only be set if * Authentication is set to ActiveDirectory.

*/ inline CreateSMBFileShareRequest& WithInvalidUserList(Aws::Vector&& value) { SetInvalidUserList(std::move(value)); return *this;} /** *

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: DOMAIN\User1, user1, * @group1, and @DOMAIN\group1. Can only be set if * Authentication is set to ActiveDirectory.

*/ inline CreateSMBFileShareRequest& AddInvalidUserList(const Aws::String& value) { m_invalidUserListHasBeenSet = true; m_invalidUserList.push_back(value); return *this; } /** *

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: DOMAIN\User1, user1, * @group1, and @DOMAIN\group1. Can only be set if * Authentication is set to ActiveDirectory.

*/ inline CreateSMBFileShareRequest& AddInvalidUserList(Aws::String&& value) { m_invalidUserListHasBeenSet = true; m_invalidUserList.push_back(std::move(value)); return *this; } /** *

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: DOMAIN\User1, user1, * @group1, and @DOMAIN\group1. Can only be set if * Authentication is set to ActiveDirectory.

*/ inline CreateSMBFileShareRequest& AddInvalidUserList(const char* value) { m_invalidUserListHasBeenSet = true; m_invalidUserList.push_back(value); return *this; } /** *

The Amazon Resource Name (ARN) of the storage used for audit logs.

*/ inline const Aws::String& GetAuditDestinationARN() const{ return m_auditDestinationARN; } /** *

The Amazon Resource Name (ARN) of the storage used for audit logs.

*/ inline bool AuditDestinationARNHasBeenSet() const { return m_auditDestinationARNHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the storage used for audit logs.

*/ inline void SetAuditDestinationARN(const Aws::String& value) { m_auditDestinationARNHasBeenSet = true; m_auditDestinationARN = value; } /** *

The Amazon Resource Name (ARN) of the storage used for audit logs.

*/ inline void SetAuditDestinationARN(Aws::String&& value) { m_auditDestinationARNHasBeenSet = true; m_auditDestinationARN = std::move(value); } /** *

The Amazon Resource Name (ARN) of the storage used for audit logs.

*/ inline void SetAuditDestinationARN(const char* value) { m_auditDestinationARNHasBeenSet = true; m_auditDestinationARN.assign(value); } /** *

The Amazon Resource Name (ARN) of the storage used for audit logs.

*/ inline CreateSMBFileShareRequest& WithAuditDestinationARN(const Aws::String& value) { SetAuditDestinationARN(value); return *this;} /** *

The Amazon Resource Name (ARN) of the storage used for audit logs.

*/ inline CreateSMBFileShareRequest& WithAuditDestinationARN(Aws::String&& value) { SetAuditDestinationARN(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the storage used for audit logs.

*/ inline CreateSMBFileShareRequest& WithAuditDestinationARN(const char* value) { SetAuditDestinationARN(value); return *this;} /** *

The authentication method that users use to access the file share. The * default is ActiveDirectory.

Valid Values: * ActiveDirectory | GuestAccess

*/ inline const Aws::String& GetAuthentication() const{ return m_authentication; } /** *

The authentication method that users use to access the file share. The * default is ActiveDirectory.

Valid Values: * ActiveDirectory | GuestAccess

*/ inline bool AuthenticationHasBeenSet() const { return m_authenticationHasBeenSet; } /** *

The authentication method that users use to access the file share. The * default is ActiveDirectory.

Valid Values: * ActiveDirectory | GuestAccess

*/ inline void SetAuthentication(const Aws::String& value) { m_authenticationHasBeenSet = true; m_authentication = value; } /** *

The authentication method that users use to access the file share. The * default is ActiveDirectory.

Valid Values: * ActiveDirectory | GuestAccess

*/ inline void SetAuthentication(Aws::String&& value) { m_authenticationHasBeenSet = true; m_authentication = std::move(value); } /** *

The authentication method that users use to access the file share. The * default is ActiveDirectory.

Valid Values: * ActiveDirectory | GuestAccess

*/ inline void SetAuthentication(const char* value) { m_authenticationHasBeenSet = true; m_authentication.assign(value); } /** *

The authentication method that users use to access the file share. The * default is ActiveDirectory.

Valid Values: * ActiveDirectory | GuestAccess

*/ inline CreateSMBFileShareRequest& WithAuthentication(const Aws::String& value) { SetAuthentication(value); return *this;} /** *

The authentication method that users use to access the file share. The * default is ActiveDirectory.

Valid Values: * ActiveDirectory | GuestAccess

*/ inline CreateSMBFileShareRequest& WithAuthentication(Aws::String&& value) { SetAuthentication(std::move(value)); return *this;} /** *

The authentication method that users use to access the file share. The * default is ActiveDirectory.

Valid Values: * ActiveDirectory | GuestAccess

*/ inline CreateSMBFileShareRequest& WithAuthentication(const char* value) { SetAuthentication(value); return *this;} /** *

The case of an object name in an Amazon S3 bucket. For * ClientSpecified, the client determines the case sensitivity. For * CaseSensitive, the gateway determines the case sensitivity. The * default value is ClientSpecified.

*/ inline const CaseSensitivity& GetCaseSensitivity() const{ return m_caseSensitivity; } /** *

The case of an object name in an Amazon S3 bucket. For * ClientSpecified, the client determines the case sensitivity. For * CaseSensitive, the gateway determines the case sensitivity. The * default value is ClientSpecified.

*/ inline bool CaseSensitivityHasBeenSet() const { return m_caseSensitivityHasBeenSet; } /** *

The case of an object name in an Amazon S3 bucket. For * ClientSpecified, the client determines the case sensitivity. For * CaseSensitive, the gateway determines the case sensitivity. The * default value is ClientSpecified.

*/ inline void SetCaseSensitivity(const CaseSensitivity& value) { m_caseSensitivityHasBeenSet = true; m_caseSensitivity = value; } /** *

The case of an object name in an Amazon S3 bucket. For * ClientSpecified, the client determines the case sensitivity. For * CaseSensitive, the gateway determines the case sensitivity. The * default value is ClientSpecified.

*/ inline void SetCaseSensitivity(CaseSensitivity&& value) { m_caseSensitivityHasBeenSet = true; m_caseSensitivity = std::move(value); } /** *

The case of an object name in an Amazon S3 bucket. For * ClientSpecified, the client determines the case sensitivity. For * CaseSensitive, the gateway determines the case sensitivity. The * default value is ClientSpecified.

*/ inline CreateSMBFileShareRequest& WithCaseSensitivity(const CaseSensitivity& value) { SetCaseSensitivity(value); return *this;} /** *

The case of an object name in an Amazon S3 bucket. For * ClientSpecified, the client determines the case sensitivity. For * CaseSensitive, the gateway determines the case sensitivity. The * default value is ClientSpecified.

*/ inline CreateSMBFileShareRequest& WithCaseSensitivity(CaseSensitivity&& value) { SetCaseSensitivity(std::move(value)); return *this;} /** *

A list of up to 50 tags that can be assigned to the NFS file share. Each tag * is a key-value pair.

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.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

A list of up to 50 tags that can be assigned to the NFS file share. Each tag * is a key-value pair.

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.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

A list of up to 50 tags that can be assigned to the NFS file share. Each tag * is a key-value pair.

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.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

A list of up to 50 tags that can be assigned to the NFS file share. Each tag * is a key-value pair.

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.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

A list of up to 50 tags that can be assigned to the NFS file share. Each tag * is a key-value pair.

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.

*/ inline CreateSMBFileShareRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

A list of up to 50 tags that can be assigned to the NFS file share. Each tag * is a key-value pair.

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.

*/ inline CreateSMBFileShareRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

A list of up to 50 tags that can be assigned to the NFS file share. Each tag * is a key-value pair.

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.

*/ inline CreateSMBFileShareRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

A list of up to 50 tags that can be assigned to the NFS file share. Each tag * is a key-value pair.

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.

*/ inline CreateSMBFileShareRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

The name of the file share. Optional.

* FileShareName must be set if an S3 prefix name is set in * LocationARN, or if an access point or access point alias is * used.

*/ inline const Aws::String& GetFileShareName() const{ return m_fileShareName; } /** *

The name of the file share. Optional.

* FileShareName must be set if an S3 prefix name is set in * LocationARN, or if an access point or access point alias is * used.

*/ inline bool FileShareNameHasBeenSet() const { return m_fileShareNameHasBeenSet; } /** *

The name of the file share. Optional.

* FileShareName must be set if an S3 prefix name is set in * LocationARN, or if an access point or access point alias is * used.

*/ inline void SetFileShareName(const Aws::String& value) { m_fileShareNameHasBeenSet = true; m_fileShareName = value; } /** *

The name of the file share. Optional.

* FileShareName must be set if an S3 prefix name is set in * LocationARN, or if an access point or access point alias is * used.

*/ inline void SetFileShareName(Aws::String&& value) { m_fileShareNameHasBeenSet = true; m_fileShareName = std::move(value); } /** *

The name of the file share. Optional.

* FileShareName must be set if an S3 prefix name is set in * LocationARN, or if an access point or access point alias is * used.

*/ inline void SetFileShareName(const char* value) { m_fileShareNameHasBeenSet = true; m_fileShareName.assign(value); } /** *

The name of the file share. Optional.

* FileShareName must be set if an S3 prefix name is set in * LocationARN, or if an access point or access point alias is * used.

*/ inline CreateSMBFileShareRequest& WithFileShareName(const Aws::String& value) { SetFileShareName(value); return *this;} /** *

The name of the file share. Optional.

* FileShareName must be set if an S3 prefix name is set in * LocationARN, or if an access point or access point alias is * used.

*/ inline CreateSMBFileShareRequest& WithFileShareName(Aws::String&& value) { SetFileShareName(std::move(value)); return *this;} /** *

The name of the file share. Optional.

* FileShareName must be set if an S3 prefix name is set in * LocationARN, or if an access point or access point alias is * used.

*/ inline CreateSMBFileShareRequest& WithFileShareName(const char* value) { SetFileShareName(value); return *this;} /** *

Specifies refresh cache information for the file share.

*/ inline const CacheAttributes& GetCacheAttributes() const{ return m_cacheAttributes; } /** *

Specifies refresh cache information for the file share.

*/ inline bool CacheAttributesHasBeenSet() const { return m_cacheAttributesHasBeenSet; } /** *

Specifies refresh cache information for the file share.

*/ inline void SetCacheAttributes(const CacheAttributes& value) { m_cacheAttributesHasBeenSet = true; m_cacheAttributes = value; } /** *

Specifies refresh cache information for the file share.

*/ inline void SetCacheAttributes(CacheAttributes&& value) { m_cacheAttributesHasBeenSet = true; m_cacheAttributes = std::move(value); } /** *

Specifies refresh cache information for the file share.

*/ inline CreateSMBFileShareRequest& WithCacheAttributes(const CacheAttributes& value) { SetCacheAttributes(value); return *this;} /** *

Specifies refresh cache information for the file share.

*/ inline CreateSMBFileShareRequest& WithCacheAttributes(CacheAttributes&& value) { SetCacheAttributes(std::move(value)); return *this;} /** *

The notification policy of the file share. SettlingTimeInSeconds * controls the number of seconds to wait after the last point in time a client * wrote to a file before generating an ObjectUploaded 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.

* SettlingTimeInSeconds has no effect on the timing of the object * uploading to Amazon S3, only the timing of the notification.

The * following example sets NotificationPolicy on with * SettlingTimeInSeconds set to 60.

{\"Upload\": * {\"SettlingTimeInSeconds\": 60}}

The following example sets * NotificationPolicy off.

{}

*/ inline const Aws::String& GetNotificationPolicy() const{ return m_notificationPolicy; } /** *

The notification policy of the file share. SettlingTimeInSeconds * controls the number of seconds to wait after the last point in time a client * wrote to a file before generating an ObjectUploaded 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.

* SettlingTimeInSeconds has no effect on the timing of the object * uploading to Amazon S3, only the timing of the notification.

The * following example sets NotificationPolicy on with * SettlingTimeInSeconds set to 60.

{\"Upload\": * {\"SettlingTimeInSeconds\": 60}}

The following example sets * NotificationPolicy off.

{}

*/ inline bool NotificationPolicyHasBeenSet() const { return m_notificationPolicyHasBeenSet; } /** *

The notification policy of the file share. SettlingTimeInSeconds * controls the number of seconds to wait after the last point in time a client * wrote to a file before generating an ObjectUploaded 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.

* SettlingTimeInSeconds has no effect on the timing of the object * uploading to Amazon S3, only the timing of the notification.

The * following example sets NotificationPolicy on with * SettlingTimeInSeconds set to 60.

{\"Upload\": * {\"SettlingTimeInSeconds\": 60}}

The following example sets * NotificationPolicy off.

{}

*/ inline void SetNotificationPolicy(const Aws::String& value) { m_notificationPolicyHasBeenSet = true; m_notificationPolicy = value; } /** *

The notification policy of the file share. SettlingTimeInSeconds * controls the number of seconds to wait after the last point in time a client * wrote to a file before generating an ObjectUploaded 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.

* SettlingTimeInSeconds has no effect on the timing of the object * uploading to Amazon S3, only the timing of the notification.

The * following example sets NotificationPolicy on with * SettlingTimeInSeconds set to 60.

{\"Upload\": * {\"SettlingTimeInSeconds\": 60}}

The following example sets * NotificationPolicy off.

{}

*/ inline void SetNotificationPolicy(Aws::String&& value) { m_notificationPolicyHasBeenSet = true; m_notificationPolicy = std::move(value); } /** *

The notification policy of the file share. SettlingTimeInSeconds * controls the number of seconds to wait after the last point in time a client * wrote to a file before generating an ObjectUploaded 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.

* SettlingTimeInSeconds has no effect on the timing of the object * uploading to Amazon S3, only the timing of the notification.

The * following example sets NotificationPolicy on with * SettlingTimeInSeconds set to 60.

{\"Upload\": * {\"SettlingTimeInSeconds\": 60}}

The following example sets * NotificationPolicy off.

{}

*/ inline void SetNotificationPolicy(const char* value) { m_notificationPolicyHasBeenSet = true; m_notificationPolicy.assign(value); } /** *

The notification policy of the file share. SettlingTimeInSeconds * controls the number of seconds to wait after the last point in time a client * wrote to a file before generating an ObjectUploaded 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.

* SettlingTimeInSeconds has no effect on the timing of the object * uploading to Amazon S3, only the timing of the notification.

The * following example sets NotificationPolicy on with * SettlingTimeInSeconds set to 60.

{\"Upload\": * {\"SettlingTimeInSeconds\": 60}}

The following example sets * NotificationPolicy off.

{}

*/ inline CreateSMBFileShareRequest& WithNotificationPolicy(const Aws::String& value) { SetNotificationPolicy(value); return *this;} /** *

The notification policy of the file share. SettlingTimeInSeconds * controls the number of seconds to wait after the last point in time a client * wrote to a file before generating an ObjectUploaded 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.

* SettlingTimeInSeconds has no effect on the timing of the object * uploading to Amazon S3, only the timing of the notification.

The * following example sets NotificationPolicy on with * SettlingTimeInSeconds set to 60.

{\"Upload\": * {\"SettlingTimeInSeconds\": 60}}

The following example sets * NotificationPolicy off.

{}

*/ inline CreateSMBFileShareRequest& WithNotificationPolicy(Aws::String&& value) { SetNotificationPolicy(std::move(value)); return *this;} /** *

The notification policy of the file share. SettlingTimeInSeconds * controls the number of seconds to wait after the last point in time a client * wrote to a file before generating an ObjectUploaded 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.

* SettlingTimeInSeconds has no effect on the timing of the object * uploading to Amazon S3, only the timing of the notification.

The * following example sets NotificationPolicy on with * SettlingTimeInSeconds set to 60.

{\"Upload\": * {\"SettlingTimeInSeconds\": 60}}

The following example sets * NotificationPolicy off.

{}

*/ inline CreateSMBFileShareRequest& WithNotificationPolicy(const char* value) { SetNotificationPolicy(value); return *this;} /** *

Specifies the DNS name for the VPC endpoint that the SMB file share uses to * connect to Amazon S3.

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.

*/ inline const Aws::String& GetVPCEndpointDNSName() const{ return m_vPCEndpointDNSName; } /** *

Specifies the DNS name for the VPC endpoint that the SMB file share uses to * connect to Amazon S3.

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.

*/ inline bool VPCEndpointDNSNameHasBeenSet() const { return m_vPCEndpointDNSNameHasBeenSet; } /** *

Specifies the DNS name for the VPC endpoint that the SMB file share uses to * connect to Amazon S3.

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.

*/ inline void SetVPCEndpointDNSName(const Aws::String& value) { m_vPCEndpointDNSNameHasBeenSet = true; m_vPCEndpointDNSName = value; } /** *

Specifies the DNS name for the VPC endpoint that the SMB file share uses to * connect to Amazon S3.

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.

*/ inline void SetVPCEndpointDNSName(Aws::String&& value) { m_vPCEndpointDNSNameHasBeenSet = true; m_vPCEndpointDNSName = std::move(value); } /** *

Specifies the DNS name for the VPC endpoint that the SMB file share uses to * connect to Amazon S3.

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.

*/ inline void SetVPCEndpointDNSName(const char* value) { m_vPCEndpointDNSNameHasBeenSet = true; m_vPCEndpointDNSName.assign(value); } /** *

Specifies the DNS name for the VPC endpoint that the SMB file share uses to * connect to Amazon S3.

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.

*/ inline CreateSMBFileShareRequest& WithVPCEndpointDNSName(const Aws::String& value) { SetVPCEndpointDNSName(value); return *this;} /** *

Specifies the DNS name for the VPC endpoint that the SMB file share uses to * connect to Amazon S3.

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.

*/ inline CreateSMBFileShareRequest& WithVPCEndpointDNSName(Aws::String&& value) { SetVPCEndpointDNSName(std::move(value)); return *this;} /** *

Specifies the DNS name for the VPC endpoint that the SMB file share uses to * connect to Amazon S3.

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.

*/ inline CreateSMBFileShareRequest& WithVPCEndpointDNSName(const char* value) { SetVPCEndpointDNSName(value); return *this;} /** *

Specifies the Region of the S3 bucket where the SMB file share stores * files.

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.

*/ inline const Aws::String& GetBucketRegion() const{ return m_bucketRegion; } /** *

Specifies the Region of the S3 bucket where the SMB file share stores * files.

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.

*/ inline bool BucketRegionHasBeenSet() const { return m_bucketRegionHasBeenSet; } /** *

Specifies the Region of the S3 bucket where the SMB file share stores * files.

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.

*/ inline void SetBucketRegion(const Aws::String& value) { m_bucketRegionHasBeenSet = true; m_bucketRegion = value; } /** *

Specifies the Region of the S3 bucket where the SMB file share stores * files.

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.

*/ inline void SetBucketRegion(Aws::String&& value) { m_bucketRegionHasBeenSet = true; m_bucketRegion = std::move(value); } /** *

Specifies the Region of the S3 bucket where the SMB file share stores * files.

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.

*/ inline void SetBucketRegion(const char* value) { m_bucketRegionHasBeenSet = true; m_bucketRegion.assign(value); } /** *

Specifies the Region of the S3 bucket where the SMB file share stores * files.

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.

*/ inline CreateSMBFileShareRequest& WithBucketRegion(const Aws::String& value) { SetBucketRegion(value); return *this;} /** *

Specifies the Region of the S3 bucket where the SMB file share stores * files.

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.

*/ inline CreateSMBFileShareRequest& WithBucketRegion(Aws::String&& value) { SetBucketRegion(std::move(value)); return *this;} /** *

Specifies the Region of the S3 bucket where the SMB file share stores * files.

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.

*/ inline CreateSMBFileShareRequest& WithBucketRegion(const char* value) { SetBucketRegion(value); return *this;} /** *

Specifies whether opportunistic locking is enabled for the SMB file * share.

Enabling opportunistic locking on case-sensitive shares is * not recommended for workloads that involve access to files with the same name in * different case.

Valid Values: true | * false

*/ inline bool GetOplocksEnabled() const{ return m_oplocksEnabled; } /** *

Specifies whether opportunistic locking is enabled for the SMB file * share.

Enabling opportunistic locking on case-sensitive shares is * not recommended for workloads that involve access to files with the same name in * different case.

Valid Values: true | * false

*/ inline bool OplocksEnabledHasBeenSet() const { return m_oplocksEnabledHasBeenSet; } /** *

Specifies whether opportunistic locking is enabled for the SMB file * share.

Enabling opportunistic locking on case-sensitive shares is * not recommended for workloads that involve access to files with the same name in * different case.

Valid Values: true | * false

*/ inline void SetOplocksEnabled(bool value) { m_oplocksEnabledHasBeenSet = true; m_oplocksEnabled = value; } /** *

Specifies whether opportunistic locking is enabled for the SMB file * share.

Enabling opportunistic locking on case-sensitive shares is * not recommended for workloads that involve access to files with the same name in * different case.

Valid Values: true | * false

*/ inline CreateSMBFileShareRequest& WithOplocksEnabled(bool value) { SetOplocksEnabled(value); return *this;} private: Aws::String m_clientToken; bool m_clientTokenHasBeenSet = false; Aws::String m_gatewayARN; bool m_gatewayARNHasBeenSet = false; bool m_kMSEncrypted; bool m_kMSEncryptedHasBeenSet = false; Aws::String m_kMSKey; bool m_kMSKeyHasBeenSet = false; Aws::String m_role; bool m_roleHasBeenSet = false; Aws::String m_locationARN; bool m_locationARNHasBeenSet = false; Aws::String m_defaultStorageClass; bool m_defaultStorageClassHasBeenSet = false; ObjectACL m_objectACL; bool m_objectACLHasBeenSet = false; bool m_readOnly; bool m_readOnlyHasBeenSet = false; bool m_guessMIMETypeEnabled; bool m_guessMIMETypeEnabledHasBeenSet = false; bool m_requesterPays; bool m_requesterPaysHasBeenSet = false; bool m_sMBACLEnabled; bool m_sMBACLEnabledHasBeenSet = false; bool m_accessBasedEnumeration; bool m_accessBasedEnumerationHasBeenSet = false; Aws::Vector m_adminUserList; bool m_adminUserListHasBeenSet = false; Aws::Vector m_validUserList; bool m_validUserListHasBeenSet = false; Aws::Vector m_invalidUserList; bool m_invalidUserListHasBeenSet = false; Aws::String m_auditDestinationARN; bool m_auditDestinationARNHasBeenSet = false; Aws::String m_authentication; bool m_authenticationHasBeenSet = false; CaseSensitivity m_caseSensitivity; bool m_caseSensitivityHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::String m_fileShareName; bool m_fileShareNameHasBeenSet = false; CacheAttributes m_cacheAttributes; bool m_cacheAttributesHasBeenSet = false; Aws::String m_notificationPolicy; bool m_notificationPolicyHasBeenSet = false; Aws::String m_vPCEndpointDNSName; bool m_vPCEndpointDNSNameHasBeenSet = false; Aws::String m_bucketRegion; bool m_bucketRegionHasBeenSet = false; bool m_oplocksEnabled; bool m_oplocksEnabledHasBeenSet = false; }; } // namespace Model } // namespace StorageGateway } // namespace Aws