/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the storagegateway-2013-06-30.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.StorageGateway.Model
{
///
/// Container for the parameters to the CreateNFSFileShare operation.
/// Creates a Network File System (NFS) file share on an existing S3 File Gateway. In
/// Storage Gateway, a file share is a file system mount point backed by Amazon S3 cloud
/// storage. Storage Gateway exposes file shares using an NFS interface. This operation
/// is only supported for S3 File Gateways.
///
///
///
/// S3 File gateway requires Security Token Service (Amazon Web Services STS) to be activated
/// to enable you to create a file share. Make sure Amazon Web Services STS is activated
/// in the Amazon Web Services Region you are creating your S3 File Gateway in. If Amazon
/// Web Services STS is not activated in the Amazon Web Services Region, activate it.
/// For information about how to activate Amazon Web Services STS, see Activating
/// and deactivating Amazon Web Services STS in an Amazon Web Services Region in the
/// Identity and Access Management User Guide.
///
///
///
/// S3 File Gateways do not support creating hard or symbolic links on a file share.
///
///
///
public partial class CreateNFSFileShareRequest : AmazonStorageGatewayRequest
{
private string _auditDestinationARN;
private string _bucketRegion;
private CacheAttributes _cacheAttributes;
private List _clientList = new List();
private string _clientToken;
private string _defaultStorageClass;
private string _fileShareName;
private string _gatewayARN;
private bool? _guessMIMETypeEnabled;
private bool? _kmsEncrypted;
private string _kmsKey;
private string _locationARN;
private NFSFileShareDefaults _nfsFileShareDefaults;
private string _notificationPolicy;
private ObjectACL _objectACL;
private bool? _readOnly;
private bool? _requesterPays;
private string _role;
private string _squash;
private List _tags = new List();
private string _vpcEndpointDNSName;
///
/// Gets and sets the property AuditDestinationARN.
///
/// The Amazon Resource Name (ARN) of the storage used for audit logs.
///
///
[AWSProperty(Max=1024)]
public string AuditDestinationARN
{
get { return this._auditDestinationARN; }
set { this._auditDestinationARN = value; }
}
// Check to see if AuditDestinationARN property is set
internal bool IsSetAuditDestinationARN()
{
return this._auditDestinationARN != null;
}
///
/// Gets and sets the property BucketRegion.
///
/// Specifies the Region of the S3 bucket where the NFS file share stores files.
///
///
///
/// This parameter is required for NFS 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.
///
///
///
[AWSProperty(Min=1, Max=25)]
public string BucketRegion
{
get { return this._bucketRegion; }
set { this._bucketRegion = value; }
}
// Check to see if BucketRegion property is set
internal bool IsSetBucketRegion()
{
return this._bucketRegion != null;
}
///
/// Gets and sets the property CacheAttributes.
///
/// Specifies refresh cache information for the file share.
///
///
public CacheAttributes CacheAttributes
{
get { return this._cacheAttributes; }
set { this._cacheAttributes = value; }
}
// Check to see if CacheAttributes property is set
internal bool IsSetCacheAttributes()
{
return this._cacheAttributes != null;
}
///
/// Gets and sets the property ClientList.
///
/// The list of clients that are allowed to access the S3 File Gateway. The list must
/// contain either valid IP addresses or valid CIDR blocks.
///
///
[AWSProperty(Min=1, Max=100)]
public List ClientList
{
get { return this._clientList; }
set { this._clientList = value; }
}
// Check to see if ClientList property is set
internal bool IsSetClientList()
{
return this._clientList != null && this._clientList.Count > 0;
}
///
/// Gets and sets the property ClientToken.
///
/// A unique string value that you supply that is used by S3 File Gateway to ensure idempotent
/// file share creation.
///
///
[AWSProperty(Required=true, Min=5, Max=100)]
public string ClientToken
{
get { return this._clientToken; }
set { this._clientToken = value; }
}
// Check to see if ClientToken property is set
internal bool IsSetClientToken()
{
return this._clientToken != null;
}
///
/// Gets and sets the property 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
///
///
[AWSProperty(Min=5, Max=50)]
public string DefaultStorageClass
{
get { return this._defaultStorageClass; }
set { this._defaultStorageClass = value; }
}
// Check to see if DefaultStorageClass property is set
internal bool IsSetDefaultStorageClass()
{
return this._defaultStorageClass != null;
}
///
/// Gets and sets the property 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.
///
///
///
[AWSProperty(Min=1, Max=255)]
public string FileShareName
{
get { return this._fileShareName; }
set { this._fileShareName = value; }
}
// Check to see if FileShareName property is set
internal bool IsSetFileShareName()
{
return this._fileShareName != null;
}
///
/// Gets and sets the property GatewayARN.
///
/// The Amazon Resource Name (ARN) of the S3 File Gateway on which you want to create
/// a file share.
///
///
[AWSProperty(Required=true, Min=50, Max=500)]
public string GatewayARN
{
get { return this._gatewayARN; }
set { this._gatewayARN = value; }
}
// Check to see if GatewayARN property is set
internal bool IsSetGatewayARN()
{
return this._gatewayARN != null;
}
///
/// Gets and sets the property 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
///
///
public bool GuessMIMETypeEnabled
{
get { return this._guessMIMETypeEnabled.GetValueOrDefault(); }
set { this._guessMIMETypeEnabled = value; }
}
// Check to see if GuessMIMETypeEnabled property is set
internal bool IsSetGuessMIMETypeEnabled()
{
return this._guessMIMETypeEnabled.HasValue;
}
///
/// Gets and sets the property 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
///
///
public bool KMSEncrypted
{
get { return this._kmsEncrypted.GetValueOrDefault(); }
set { this._kmsEncrypted = value; }
}
// Check to see if KMSEncrypted property is set
internal bool IsSetKMSEncrypted()
{
return this._kmsEncrypted.HasValue;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Min=7, Max=2048)]
public string KMSKey
{
get { return this._kmsKey; }
set { this._kmsKey = value; }
}
// Check to see if KMSKey property is set
internal bool IsSetKMSKey()
{
return this._kmsKey != null;
}
///
/// Gets and sets the property 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
///
///
///
[AWSProperty(Required=true, Min=16, Max=1400)]
public string LocationARN
{
get { return this._locationARN; }
set { this._locationARN = value; }
}
// Check to see if LocationARN property is set
internal bool IsSetLocationARN()
{
return this._locationARN != null;
}
///
/// Gets and sets the property NFSFileShareDefaults.
///
/// File share default values. Optional.
///
///
public NFSFileShareDefaults NFSFileShareDefaults
{
get { return this._nfsFileShareDefaults; }
set { this._nfsFileShareDefaults = value; }
}
// Check to see if NFSFileShareDefaults property is set
internal bool IsSetNFSFileShareDefaults()
{
return this._nfsFileShareDefaults != null;
}
///
/// Gets and sets the property 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.
///
///
///
/// {}
///
///
[AWSProperty(Min=2, Max=100)]
public string NotificationPolicy
{
get { return this._notificationPolicy; }
set { this._notificationPolicy = value; }
}
// Check to see if NotificationPolicy property is set
internal bool IsSetNotificationPolicy()
{
return this._notificationPolicy != null;
}
///
/// Gets and sets the property 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
.
///
///
public ObjectACL ObjectACL
{
get { return this._objectACL; }
set { this._objectACL = value; }
}
// Check to see if ObjectACL property is set
internal bool IsSetObjectACL()
{
return this._objectACL != null;
}
///
/// Gets and sets the property 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
///
///
public bool ReadOnly
{
get { return this._readOnly.GetValueOrDefault(); }
set { this._readOnly = value; }
}
// Check to see if ReadOnly property is set
internal bool IsSetReadOnly()
{
return this._readOnly.HasValue;
}
///
/// Gets and sets the property 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
///
///
public bool RequesterPays
{
get { return this._requesterPays.GetValueOrDefault(); }
set { this._requesterPays = value; }
}
// Check to see if RequesterPays property is set
internal bool IsSetRequesterPays()
{
return this._requesterPays.HasValue;
}
///
/// Gets and sets the property Role.
///
/// The ARN of the Identity and Access Management (IAM) role that an S3 File Gateway assumes
/// when it accesses the underlying storage.
///
///
[AWSProperty(Required=true, Min=20, Max=2048)]
public string Role
{
get { return this._role; }
set { this._role = value; }
}
// Check to see if Role property is set
internal bool IsSetRole()
{
return this._role != null;
}
///
/// Gets and sets the property Squash.
///
/// A value that maps a user to anonymous user.
///
///
///
/// Valid values are the following:
///
/// -
///
///
RootSquash
: Only root is mapped to anonymous user.
///
/// -
///
///
NoSquash
: No one is mapped to anonymous user.
///
/// -
///
///
AllSquash
: Everyone is mapped to anonymous user.
///
///
///
[AWSProperty(Min=5, Max=15)]
public string Squash
{
get { return this._squash; }
set { this._squash = value; }
}
// Check to see if Squash property is set
internal bool IsSetSquash()
{
return this._squash != null;
}
///
/// Gets and sets the property 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.
///
///
///
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
///
/// Gets and sets the property VPCEndpointDNSName.
///
/// Specifies the DNS name for the VPC endpoint that the NFS file share uses to connect
/// to Amazon S3.
///
///
///
/// This parameter is required for NFS 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.
///
///
///
[AWSProperty(Min=1, Max=255)]
public string VPCEndpointDNSName
{
get { return this._vpcEndpointDNSName; }
set { this._vpcEndpointDNSName = value; }
}
// Check to see if VPCEndpointDNSName property is set
internal bool IsSetVPCEndpointDNSName()
{
return this._vpcEndpointDNSName != null;
}
}
}