/*
* 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
{
///
/// The Unix file permissions and ownership information assigned, by default, to native
/// S3 objects when an S3 File Gateway discovers them in S3 buckets. This operation is
/// only supported in S3 File Gateways.
///
public partial class NFSFileShareInfo
{
private string _auditDestinationARN;
private string _bucketRegion;
private CacheAttributes _cacheAttributes;
private List _clientList = new List();
private string _defaultStorageClass;
private string _fileShareARN;
private string _fileShareId;
private string _fileShareName;
private string _fileShareStatus;
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 string _path;
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.
///
/// 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.
///
[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 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 FileShareARN.
///
[AWSProperty(Min=50, Max=500)]
public string FileShareARN
{
get { return this._fileShareARN; }
set { this._fileShareARN = value; }
}
// Check to see if FileShareARN property is set
internal bool IsSetFileShareARN()
{
return this._fileShareARN != null;
}
///
/// Gets and sets the property FileShareId.
///
[AWSProperty(Min=12, Max=30)]
public string FileShareId
{
get { return this._fileShareId; }
set { this._fileShareId = value; }
}
// Check to see if FileShareId property is set
internal bool IsSetFileShareId()
{
return this._fileShareId != 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 FileShareStatus.
///
[AWSProperty(Min=3, Max=50)]
public string FileShareStatus
{
get { return this._fileShareStatus; }
set { this._fileShareStatus = value; }
}
// Check to see if FileShareStatus property is set
internal bool IsSetFileShareStatus()
{
return this._fileShareStatus != null;
}
///
/// Gets and sets the property GatewayARN.
///
[AWSProperty(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.
///
[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.
///
[AWSProperty(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.
///
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.
///
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 Path.
///
public string Path
{
get { return this._path; }
set { this._path = value; }
}
// Check to see if Path property is set
internal bool IsSetPath()
{
return this._path != 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.
///
[AWSProperty(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.
///
[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 assigned to the NFS file share, sorted alphabetically by key
/// name. Each tag is a key-value pair. For a gateway with more than 10 tags assigned,
/// you can view all tags using the ListTagsForResource
API operation.
///
///
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;
}
}
}