/*
* 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 ec2-2016-11-15.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.EC2.Model
{
///
/// Container for the parameters to the CreateSnapshots operation.
/// Creates crash-consistent snapshots of multiple EBS volumes and stores the data in
/// S3. Volumes are chosen by specifying an instance. Any attached volumes will produce
/// one snapshot each that is crash-consistent across the instance.
///
///
///
/// You can include all of the volumes currently attached to the instance, or you can
/// exclude the root volume or specific data (non-root) volumes from the multi-volume
/// snapshot set.
///
///
///
/// You can create multi-volume snapshots of instances in a Region and instances on an
/// Outpost. If you create snapshots from an instance in a Region, the snapshots must
/// be stored in the same Region as the instance. If you create snapshots from an instance
/// on an Outpost, the snapshots can be stored on the same Outpost as the instance, or
/// in the Region for that Outpost.
///
///
public partial class CreateSnapshotsRequest : AmazonEC2Request
{
private CopyTagsFromSource _copyTagsFromSource;
private string _description;
private InstanceSpecification _instanceSpecification;
private string _outpostArn;
private List _tagSpecifications = new List();
///
/// Gets and sets the property CopyTagsFromSource.
///
/// Copies the tags from the specified volume to corresponding snapshot.
///
///
public CopyTagsFromSource CopyTagsFromSource
{
get { return this._copyTagsFromSource; }
set { this._copyTagsFromSource = value; }
}
// Check to see if CopyTagsFromSource property is set
internal bool IsSetCopyTagsFromSource()
{
return this._copyTagsFromSource != null;
}
///
/// Gets and sets the property Description.
///
/// A description propagated to every snapshot specified by the instance.
///
///
public string Description
{
get { return this._description; }
set { this._description = value; }
}
// Check to see if Description property is set
internal bool IsSetDescription()
{
return this._description != null;
}
///
/// Gets and sets the property InstanceSpecification.
///
/// The instance to specify which volumes should be included in the snapshots.
///
///
[AWSProperty(Required=true)]
public InstanceSpecification InstanceSpecification
{
get { return this._instanceSpecification; }
set { this._instanceSpecification = value; }
}
// Check to see if InstanceSpecification property is set
internal bool IsSetInstanceSpecification()
{
return this._instanceSpecification != null;
}
///
/// Gets and sets the property OutpostArn.
///
/// The Amazon Resource Name (ARN) of the Outpost on which to create the local snapshots.
///
/// -
///
/// To create snapshots from an instance in a Region, omit this parameter. The snapshots
/// are created in the same Region as the instance.
///
///
-
///
/// To create snapshots from an instance on an Outpost and store the snapshots in the
/// Region, omit this parameter. The snapshots are created in the Region for the Outpost.
///
///
-
///
/// To create snapshots from an instance on an Outpost and store the snapshots on an Outpost,
/// specify the ARN of the destination Outpost. The snapshots must be created on the same
/// Outpost as the instance.
///
///
///
/// For more information, see
/// Create multi-volume local snapshots from instances on an Outpost in the Amazon
/// Elastic Compute Cloud User Guide.
///
///
public string OutpostArn
{
get { return this._outpostArn; }
set { this._outpostArn = value; }
}
// Check to see if OutpostArn property is set
internal bool IsSetOutpostArn()
{
return this._outpostArn != null;
}
///
/// Gets and sets the property TagSpecifications.
///
/// Tags to apply to every snapshot specified by the instance.
///
///
public List TagSpecifications
{
get { return this._tagSpecifications; }
set { this._tagSpecifications = value; }
}
// Check to see if TagSpecifications property is set
internal bool IsSetTagSpecifications()
{
return this._tagSpecifications != null && this._tagSpecifications.Count > 0;
}
}
}