/* * 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 ModifySnapshotAttribute operation. /// Adds or removes permission settings for the specified snapshot. You may add or remove /// specified Amazon Web Services account IDs from a snapshot's list of create volume /// permissions, but you cannot do both in a single operation. If you need to both add /// and remove account IDs for a snapshot, you must use multiple operations. You can make /// up to 500 modifications to a snapshot in a single operation. /// /// /// /// Encrypted snapshots and snapshots with Amazon Web Services Marketplace product codes /// cannot be made public. Snapshots encrypted with your default KMS key cannot be shared /// with other accounts. /// /// /// /// For more information about modifying snapshot permissions, see Share /// a snapshot in the Amazon Elastic Compute Cloud User Guide. /// /// public partial class ModifySnapshotAttributeRequest : AmazonEC2Request { private SnapshotAttributeName _attribute; private CreateVolumePermissionModifications _createVolumePermission; private List _groupNames = new List(); private OperationType _operationType; private string _snapshotId; private List _userIds = new List(); /// /// Empty constructor used to set properties independently even when a simple constructor is available /// public ModifySnapshotAttributeRequest() { } /// /// Instantiates ModifySnapshotAttributeRequest with the parameterized properties /// /// The ID of the snapshot. /// The snapshot attribute to modify. Only volume creation permissions can be modified. /// The type of operation to perform to the attribute. public ModifySnapshotAttributeRequest(string snapshotId, SnapshotAttributeName attribute, OperationType operationType) { _snapshotId = snapshotId; _attribute = attribute; _operationType = operationType; } /// /// Gets and sets the property Attribute. /// /// The snapshot attribute to modify. Only volume creation permissions can be modified. /// /// public SnapshotAttributeName Attribute { get { return this._attribute; } set { this._attribute = value; } } // Check to see if Attribute property is set internal bool IsSetAttribute() { return this._attribute != null; } /// /// Gets and sets the property CreateVolumePermission. /// /// A JSON representation of the snapshot attribute modification. /// /// public CreateVolumePermissionModifications CreateVolumePermission { get { return this._createVolumePermission; } set { this._createVolumePermission = value; } } // Check to see if CreateVolumePermission property is set internal bool IsSetCreateVolumePermission() { return this._createVolumePermission != null; } /// /// Gets and sets the property GroupNames. /// /// The group to modify for the snapshot. /// /// public List GroupNames { get { return this._groupNames; } set { this._groupNames = value; } } // Check to see if GroupNames property is set internal bool IsSetGroupNames() { return this._groupNames != null && this._groupNames.Count > 0; } /// /// Gets and sets the property OperationType. /// /// The type of operation to perform to the attribute. /// /// public OperationType OperationType { get { return this._operationType; } set { this._operationType = value; } } // Check to see if OperationType property is set internal bool IsSetOperationType() { return this._operationType != null; } /// /// Gets and sets the property SnapshotId. /// /// The ID of the snapshot. /// /// [AWSProperty(Required=true)] public string SnapshotId { get { return this._snapshotId; } set { this._snapshotId = value; } } // Check to see if SnapshotId property is set internal bool IsSetSnapshotId() { return this._snapshotId != null; } /// /// Gets and sets the property UserIds. /// /// The account ID to modify for the snapshot. /// /// public List UserIds { get { return this._userIds; } set { this._userIds = value; } } // Check to see if UserIds property is set internal bool IsSetUserIds() { return this._userIds != null && this._userIds.Count > 0; } } }