/*
* 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 fsx-2018-03-01.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.FSx.Model
{
///
/// Container for the parameters to the CreateDataRepositoryTask operation.
/// Creates an Amazon FSx for Lustre data repository task. You use data repository tasks
/// to perform bulk operations between your Amazon FSx file system and its linked data
/// repositories. An example of a data repository task is exporting any data and metadata
/// changes, including POSIX metadata, to files, directories, and symbolic links (symlinks)
/// from your FSx file system to a linked data repository. A CreateDataRepositoryTask
/// operation will fail if a data repository is not linked to the FSx file system. To
/// learn more about data repository tasks, see Data
/// Repository Tasks. To learn more about linking a data repository to your file system,
/// see Linking
/// your file system to an S3 bucket.
///
public partial class CreateDataRepositoryTaskRequest : AmazonFSxRequest
{
private long? _capacityToRelease;
private string _clientRequestToken;
private string _fileSystemId;
private List _paths = new List();
private CompletionReport _report;
private List _tags = new List();
private DataRepositoryTaskType _type;
///
/// Gets and sets the property CapacityToRelease.
///
/// Specifies the amount of data to release, in GiB, by an Amazon File Cache AUTO_RELEASE_DATA
/// task that automatically releases files from the cache.
///
///
[AWSProperty(Min=1, Max=2147483647)]
public long CapacityToRelease
{
get { return this._capacityToRelease.GetValueOrDefault(); }
set { this._capacityToRelease = value; }
}
// Check to see if CapacityToRelease property is set
internal bool IsSetCapacityToRelease()
{
return this._capacityToRelease.HasValue;
}
///
/// Gets and sets the property ClientRequestToken.
///
[AWSProperty(Min=1, Max=63)]
public string ClientRequestToken
{
get { return this._clientRequestToken; }
set { this._clientRequestToken = value; }
}
// Check to see if ClientRequestToken property is set
internal bool IsSetClientRequestToken()
{
return this._clientRequestToken != null;
}
///
/// Gets and sets the property FileSystemId.
///
[AWSProperty(Required=true, Min=11, Max=21)]
public string FileSystemId
{
get { return this._fileSystemId; }
set { this._fileSystemId = value; }
}
// Check to see if FileSystemId property is set
internal bool IsSetFileSystemId()
{
return this._fileSystemId != null;
}
///
/// Gets and sets the property Paths.
///
/// A list of paths for the data repository task to use when the task is processed. If
/// a path that you provide isn't valid, the task fails.
///
/// -
///
/// For export tasks, the list contains paths on the Amazon FSx file system from which
/// the files are exported to the Amazon S3 bucket. The default path is the file system
/// root directory. The paths you provide need to be relative to the mount point of the
/// file system. If the mount point is
/mnt/fsx
and /mnt/fsx/path1
/// is a directory or file on the file system you want to export, then the path to provide
/// is path1
.
///
/// -
///
/// For import tasks, the list contains paths in the Amazon S3 bucket from which POSIX
/// metadata changes are imported to the Amazon FSx file system. The path can be an S3
/// bucket or prefix in the format
s3://myBucket/myPrefix
(where myPrefix
/// is optional).
///
///
///
[AWSProperty(Max=100)]
public List Paths
{
get { return this._paths; }
set { this._paths = value; }
}
// Check to see if Paths property is set
internal bool IsSetPaths()
{
return this._paths != null && this._paths.Count > 0;
}
///
/// Gets and sets the property Report.
///
/// Defines whether or not Amazon FSx provides a CompletionReport once the task has completed.
/// A CompletionReport provides a detailed report on the files that Amazon FSx processed
/// that meet the criteria specified by the Scope
parameter. For more information,
/// see Working
/// with Task Completion Reports.
///
///
[AWSProperty(Required=true)]
public CompletionReport Report
{
get { return this._report; }
set { this._report = value; }
}
// Check to see if Report property is set
internal bool IsSetReport()
{
return this._report != null;
}
///
/// Gets and sets the property Tags.
///
[AWSProperty(Min=1, Max=50)]
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 Type.
///
/// Specifies the type of data repository task to create.
///
///
[AWSProperty(Required=true)]
public DataRepositoryTaskType Type
{
get { return this._type; }
set { this._type = value; }
}
// Check to see if Type property is set
internal bool IsSetType()
{
return this._type != null;
}
}
}