/*
* 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
{
///
/// A description of the data repository task. You use data repository tasks to perform
/// bulk transfer operations between an Amazon FSx for Lustre file system and a linked
/// data repository. An Amazon File Cache resource uses a task to automatically release
/// files from the cache.
///
public partial class DataRepositoryTask
{
private long? _capacityToRelease;
private DateTime? _creationTime;
private DateTime? _endTime;
private DataRepositoryTaskFailureDetails _failureDetails;
private string _fileCacheId;
private string _fileSystemId;
private DataRepositoryTaskLifecycle _lifecycle;
private List _paths = new List();
private CompletionReport _report;
private string _resourceARN;
private DateTime? _startTime;
private DataRepositoryTaskStatus _status;
private List _tags = new List();
private string _taskId;
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 CreationTime.
///
[AWSProperty(Required=true)]
public DateTime CreationTime
{
get { return this._creationTime.GetValueOrDefault(); }
set { this._creationTime = value; }
}
// Check to see if CreationTime property is set
internal bool IsSetCreationTime()
{
return this._creationTime.HasValue;
}
///
/// Gets and sets the property EndTime.
///
/// The time the system completed processing the task, populated after the task is complete.
///
///
public DateTime EndTime
{
get { return this._endTime.GetValueOrDefault(); }
set { this._endTime = value; }
}
// Check to see if EndTime property is set
internal bool IsSetEndTime()
{
return this._endTime.HasValue;
}
///
/// Gets and sets the property FailureDetails.
///
/// Failure message describing why the task failed, it is populated only when Lifecycle
/// is set to FAILED
.
///
///
public DataRepositoryTaskFailureDetails FailureDetails
{
get { return this._failureDetails; }
set { this._failureDetails = value; }
}
// Check to see if FailureDetails property is set
internal bool IsSetFailureDetails()
{
return this._failureDetails != null;
}
///
/// Gets and sets the property FileCacheId.
///
/// The system-generated, unique ID of the cache.
///
///
[AWSProperty(Min=11, Max=21)]
public string FileCacheId
{
get { return this._fileCacheId; }
set { this._fileCacheId = value; }
}
// Check to see if FileCacheId property is set
internal bool IsSetFileCacheId()
{
return this._fileCacheId != null;
}
///
/// Gets and sets the property FileSystemId.
///
/// The globally unique ID of the file system.
///
///
[AWSProperty(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 Lifecycle.
///
/// The lifecycle status of the data repository task, as follows:
///
/// -
///
///
PENDING
- The task has not started.
///
/// -
///
///
EXECUTING
- The task is in process.
///
/// -
///
///
FAILED
- The task was not able to be completed. For example, there may
/// be files the task failed to process. The DataRepositoryTaskFailureDetails property
/// provides more information about task failures.
///
/// -
///
///
SUCCEEDED
- The task has completed successfully.
///
/// -
///
///
CANCELED
- The task was canceled and it did not complete.
///
/// -
///
///
CANCELING
- The task is in process of being canceled.
///
///
///
/// You cannot delete an FSx for Lustre file system if there are data repository tasks
/// for the file system in the PENDING
or EXECUTING
states.
/// Please retry when the data repository task is finished (with a status of CANCELED
,
/// SUCCEEDED
, or FAILED
). You can use the DescribeDataRepositoryTask
/// action to monitor the task status. Contact the FSx team if you need to delete your
/// file system immediately.
///
///
///
[AWSProperty(Required=true)]
public DataRepositoryTaskLifecycle Lifecycle
{
get { return this._lifecycle; }
set { this._lifecycle = value; }
}
// Check to see if Lifecycle property is set
internal bool IsSetLifecycle()
{
return this._lifecycle != null;
}
///
/// Gets and sets the property Paths.
///
/// An array of paths that specify the data for the data repository task to process. For
/// example, in an EXPORT_TO_REPOSITORY task, the paths specify which data to export to
/// the linked data repository.
///
///
///
/// (Default) If Paths
is not specified, Amazon FSx uses the file system
/// root directory.
///
///
[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.
///
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 ResourceARN.
///
[AWSProperty(Min=8, Max=512)]
public string ResourceARN
{
get { return this._resourceARN; }
set { this._resourceARN = value; }
}
// Check to see if ResourceARN property is set
internal bool IsSetResourceARN()
{
return this._resourceARN != null;
}
///
/// Gets and sets the property StartTime.
///
/// The time the system began processing the task.
///
///
public DateTime StartTime
{
get { return this._startTime.GetValueOrDefault(); }
set { this._startTime = value; }
}
// Check to see if StartTime property is set
internal bool IsSetStartTime()
{
return this._startTime.HasValue;
}
///
/// Gets and sets the property Status.
///
/// Provides the status of the number of files that the task has processed successfully
/// and failed to process.
///
///
public DataRepositoryTaskStatus Status
{
get { return this._status; }
set { this._status = value; }
}
// Check to see if Status property is set
internal bool IsSetStatus()
{
return this._status != 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 TaskId.
///
/// The system-generated, unique 17-digit ID of the data repository task.
///
///
[AWSProperty(Required=true, Min=12, Max=128)]
public string TaskId
{
get { return this._taskId; }
set { this._taskId = value; }
}
// Check to see if TaskId property is set
internal bool IsSetTaskId()
{
return this._taskId != null;
}
///
/// Gets and sets the property Type.
///
/// The type of data repository task.
///
/// -
///
///
EXPORT_TO_REPOSITORY
tasks export from your Amazon FSx for Lustre file
/// system to a linked data repository.
///
/// -
///
///
IMPORT_METADATA_FROM_REPOSITORY
tasks import metadata changes from a
/// linked S3 bucket to your Amazon FSx for Lustre file system.
///
/// -
///
///
AUTO_RELEASE_DATA
tasks automatically release files from an Amazon File
/// Cache resource.
///
/// -
///
///
RELEASE_DATA_FROM_FILESYSTEM
tasks are not supported.
///
///
///
[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;
}
}
}