/*
* 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 ModifyImageAttribute operation.
/// Modifies the specified attribute of the specified AMI. You can specify only one attribute
/// at a time.
///
///
///
/// To specify the attribute, you can use the Attribute
parameter, or one
/// of the following parameters: Description
, ImdsSupport
, or
/// LaunchPermission
.
///
///
///
/// Images with an Amazon Web Services Marketplace product code cannot be made public.
///
///
///
/// To enable the SriovNetSupport enhanced networking attribute of an image, enable SriovNetSupport
/// on an instance and create an AMI from the instance.
///
///
public partial class ModifyImageAttributeRequest : AmazonEC2Request
{
private string _attribute;
private string _description;
private string _imageId;
private string _imdsSupport;
private LaunchPermissionModifications _launchPermission;
private OperationType _operationType;
private List _organizationalUnitArns = new List();
private List _organizationArns = new List();
private List _productCodes = new List();
private List _userGroups = new List();
private List _userIds = new List();
private string _value;
///
/// Empty constructor used to set properties independently even when a simple constructor is available
///
public ModifyImageAttributeRequest() { }
///
/// Instantiates ModifyImageAttributeRequest with the parameterized properties
///
/// The ID of the AMI.
/// The name of the attribute to modify. Valid values: description
| imdsSupport
| launchPermission
public ModifyImageAttributeRequest(string imageId, string attribute)
{
_imageId = imageId;
_attribute = attribute;
}
///
/// Gets and sets the property Attribute.
///
/// The name of the attribute to modify.
///
///
///
/// Valid values: description
| imdsSupport
| launchPermission
///
///
///
public string 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 Description.
///
/// A new description for the AMI.
///
///
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 ImageId.
///
/// The ID of the AMI.
///
///
[AWSProperty(Required=true)]
public string ImageId
{
get { return this._imageId; }
set { this._imageId = value; }
}
// Check to see if ImageId property is set
internal bool IsSetImageId()
{
return this._imageId != null;
}
///
/// Gets and sets the property ImdsSupport.
///
/// Set to v2.0
to indicate that IMDSv2 is specified in the AMI. Instances
/// launched from this AMI will have HttpTokens
automatically set to required
/// so that, by default, the instance requires that IMDSv2 is used when requesting instance
/// metadata. In addition, HttpPutResponseHopLimit
is set to 2
.
/// For more information, see Configure
/// the AMI in the Amazon EC2 User Guide.
///
///
///
/// Do not use this parameter unless your AMI software supports IMDSv2. After you set
/// the value to v2.0
, you can't undo it. The only way to “reset” your AMI
/// is to create a new AMI from the underlying snapshot.
///
///
///
public string ImdsSupport
{
get { return this._imdsSupport; }
set { this._imdsSupport = value; }
}
// Check to see if ImdsSupport property is set
internal bool IsSetImdsSupport()
{
return this._imdsSupport != null;
}
///
/// Gets and sets the property LaunchPermission.
///
/// A new launch permission for the AMI.
///
///
public LaunchPermissionModifications LaunchPermission
{
get { return this._launchPermission; }
set { this._launchPermission = value; }
}
// Check to see if LaunchPermission property is set
internal bool IsSetLaunchPermission()
{
return this._launchPermission != null;
}
///
/// Gets and sets the property OperationType.
///
/// The operation type. This parameter can be used only when the Attribute
/// parameter is launchPermission
.
///
///
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 OrganizationalUnitArns.
///
/// The Amazon Resource Name (ARN) of an organizational unit (OU). This parameter can
/// be used only when the Attribute
parameter is launchPermission
.
///
///
public List OrganizationalUnitArns
{
get { return this._organizationalUnitArns; }
set { this._organizationalUnitArns = value; }
}
// Check to see if OrganizationalUnitArns property is set
internal bool IsSetOrganizationalUnitArns()
{
return this._organizationalUnitArns != null && this._organizationalUnitArns.Count > 0;
}
///
/// Gets and sets the property OrganizationArns.
///
/// The Amazon Resource Name (ARN) of an organization. This parameter can be used only
/// when the Attribute
parameter is launchPermission
.
///
///
public List OrganizationArns
{
get { return this._organizationArns; }
set { this._organizationArns = value; }
}
// Check to see if OrganizationArns property is set
internal bool IsSetOrganizationArns()
{
return this._organizationArns != null && this._organizationArns.Count > 0;
}
///
/// Gets and sets the property ProductCodes.
///
/// Not supported.
///
///
public List ProductCodes
{
get { return this._productCodes; }
set { this._productCodes = value; }
}
// Check to see if ProductCodes property is set
internal bool IsSetProductCodes()
{
return this._productCodes != null && this._productCodes.Count > 0;
}
///
/// Gets and sets the property UserGroups.
///
/// The user groups. This parameter can be used only when the Attribute
parameter
/// is launchPermission
.
///
///
public List UserGroups
{
get { return this._userGroups; }
set { this._userGroups = value; }
}
// Check to see if UserGroups property is set
internal bool IsSetUserGroups()
{
return this._userGroups != null && this._userGroups.Count > 0;
}
///
/// Gets and sets the property UserIds.
///
/// The Amazon Web Services account IDs. This parameter can be used only when the Attribute
/// parameter is launchPermission
.
///
///
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;
}
///
/// Gets and sets the property Value.
///
/// The value of the attribute being modified. This parameter can be used only when the
/// Attribute
parameter is description
or imdsSupport
.
///
///
public string Value
{
get { return this._value; }
set { this._value = value; }
}
// Check to see if Value property is set
internal bool IsSetValue()
{
return this._value != null;
}
}
}