/*
* 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 UpdateNFSFileShare operation.
/// Updates a Network File System (NFS) file share. This operation is only supported in
/// S3 File Gateways.
///
///
///
/// To leave a file share field unchanged, set the corresponding input field to null.
///
///
///
/// Updates the following file share settings:
///
/// -
///
/// Default storage class for your S3 bucket
///
///
-
///
/// Metadata defaults for your S3 bucket
///
///
-
///
/// Allowed NFS clients for your file share
///
///
-
///
/// Squash settings
///
///
-
///
/// Write status of your file share
///
///
///
public partial class UpdateNFSFileShareRequest : AmazonStorageGatewayRequest
{
private string _auditDestinationARN;
private CacheAttributes _cacheAttributes;
private List _clientList = new List();
private string _defaultStorageClass;
private string _fileShareARN;
private string _fileShareName;
private bool? _guessMIMETypeEnabled;
private bool? _kmsEncrypted;
private string _kmsKey;
private NFSFileShareDefaults _nfsFileShareDefaults;
private string _notificationPolicy;
private ObjectACL _objectACL;
private bool? _readOnly;
private bool? _requesterPays;
private string _squash;
///
/// 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 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 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.
///
/// The Amazon Resource Name (ARN) of the file share to be updated.
///
///
[AWSProperty(Required=true, 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 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 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 NFSFileShareDefaults.
///
/// The default values for the file share. 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 Squash.
///
/// The user mapped 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;
}
}
}