/* * 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; } } }