/*
* 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 UpdateSMBFileShare operation.
/// Updates a Server Message Block (SMB) file share. This operation is only supported
/// for S3 File Gateways.
///
///
///
/// To leave a file share field unchanged, set the corresponding input field to null.
///
///
///
/// File gateways require Security Token Service (Amazon Web Services STS) to be activated
/// to enable you to create a file share. Make sure that Amazon Web Services STS is activated
/// in the Amazon Web Services Region you are creating your file gateway in. If Amazon
/// Web Services STS is not activated in this 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.
///
///
///
/// File gateways don't support creating hard or symbolic links on a file share.
///
///
///
public partial class UpdateSMBFileShareRequest : AmazonStorageGatewayRequest
{
private bool? _accessBasedEnumeration;
private List _adminUserList = new List();
private string _auditDestinationARN;
private CacheAttributes _cacheAttributes;
private CaseSensitivity _caseSensitivity;
private string _defaultStorageClass;
private string _fileShareARN;
private string _fileShareName;
private bool? _guessMIMETypeEnabled;
private List _invalidUserList = new List();
private bool? _kmsEncrypted;
private string _kmsKey;
private string _notificationPolicy;
private ObjectACL _objectACL;
private bool? _oplocksEnabled;
private bool? _readOnly;
private bool? _requesterPays;
private bool? _smbaclEnabled;
private List _validUserList = new List();
///
/// Gets and sets the property AccessBasedEnumeration.
///
/// The files and folders on this share will only be visible to users with read access.
///
///
public bool AccessBasedEnumeration
{
get { return this._accessBasedEnumeration.GetValueOrDefault(); }
set { this._accessBasedEnumeration = value; }
}
// Check to see if AccessBasedEnumeration property is set
internal bool IsSetAccessBasedEnumeration()
{
return this._accessBasedEnumeration.HasValue;
}
///
/// Gets and sets the property AdminUserList.
///
/// A list of users or groups in the Active Directory that have administrator rights to
/// 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
.
///
///
[AWSProperty(Min=0, Max=100)]
public List AdminUserList
{
get { return this._adminUserList; }
set { this._adminUserList = value; }
}
// Check to see if AdminUserList property is set
internal bool IsSetAdminUserList()
{
return this._adminUserList != null && this._adminUserList.Count > 0;
}
///
/// 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 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
.
///
///
public CaseSensitivity CaseSensitivity
{
get { return this._caseSensitivity; }
set { this._caseSensitivity = value; }
}
// Check to see if CaseSensitivity property is set
internal bool IsSetCaseSensitivity()
{
return this._caseSensitivity != 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 FileShareARN.
///
/// The Amazon Resource Name (ARN) of the SMB file share that you want to update.
///
///
[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 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
.
///
///
[AWSProperty(Min=0, Max=100)]
public List InvalidUserList
{
get { return this._invalidUserList; }
set { this._invalidUserList = value; }
}
// Check to see if InvalidUserList property is set
internal bool IsSetInvalidUserList()
{
return this._invalidUserList != null && this._invalidUserList.Count > 0;
}
///
/// 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 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 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
///
///
public bool OplocksEnabled
{
get { return this._oplocksEnabled.GetValueOrDefault(); }
set { this._oplocksEnabled = value; }
}
// Check to see if OplocksEnabled property is set
internal bool IsSetOplocksEnabled()
{
return this._oplocksEnabled.HasValue;
}
///
/// Gets and sets the property ReadOnly.
///
/// A value that sets the write status of a file share. Set this value to true
/// to set 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 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
///
///
public bool SMBACLEnabled
{
get { return this._smbaclEnabled.GetValueOrDefault(); }
set { this._smbaclEnabled = value; }
}
// Check to see if SMBACLEnabled property is set
internal bool IsSetSMBACLEnabled()
{
return this._smbaclEnabled.HasValue;
}
///
/// Gets and sets the property 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
.
///
///
[AWSProperty(Min=0, Max=100)]
public List ValidUserList
{
get { return this._validUserList; }
set { this._validUserList = value; }
}
// Check to see if ValidUserList property is set
internal bool IsSetValidUserList()
{
return this._validUserList != null && this._validUserList.Count > 0;
}
}
}