/*
* 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 ModifyInstanceMetadataOptions operation.
/// Modify the instance metadata parameters on a running or stopped instance. When you
/// modify the parameters on a stopped instance, they are applied when the instance is
/// started. When you modify the parameters on a running instance, the API responds with
/// a state of “pending”. After the parameter modifications are successfully applied to
/// the instance, the state of the modifications changes from “pending” to “applied” in
/// subsequent describe-instances API calls. For more information, see Instance
/// metadata and user data in the Amazon EC2 User Guide.
///
public partial class ModifyInstanceMetadataOptionsRequest : AmazonEC2Request
{
private InstanceMetadataEndpointState _httpEndpoint;
private InstanceMetadataProtocolState _httpProtocolIpv6;
private int? _httpPutResponseHopLimit;
private HttpTokensState _httpTokens;
private string _instanceId;
private InstanceMetadataTagsState _instanceMetadataTags;
///
/// Gets and sets the property HttpEndpoint.
///
/// Enables or disables the HTTP metadata endpoint on your instances. If this parameter
/// is not specified, the existing state is maintained.
///
///
///
/// If you specify a value of disabled
, you cannot access your instance metadata.
///
///
public InstanceMetadataEndpointState HttpEndpoint
{
get { return this._httpEndpoint; }
set { this._httpEndpoint = value; }
}
// Check to see if HttpEndpoint property is set
internal bool IsSetHttpEndpoint()
{
return this._httpEndpoint != null;
}
///
/// Gets and sets the property HttpProtocolIpv6.
///
/// Enables or disables the IPv6 endpoint for the instance metadata service. Applies only
/// if you enabled the HTTP metadata endpoint.
///
///
public InstanceMetadataProtocolState HttpProtocolIpv6
{
get { return this._httpProtocolIpv6; }
set { this._httpProtocolIpv6 = value; }
}
// Check to see if HttpProtocolIpv6 property is set
internal bool IsSetHttpProtocolIpv6()
{
return this._httpProtocolIpv6 != null;
}
///
/// Gets and sets the property HttpPutResponseHopLimit.
///
/// The desired HTTP PUT response hop limit for instance metadata requests. The larger
/// the number, the further instance metadata requests can travel. If no parameter is
/// specified, the existing state is maintained.
///
///
///
/// Possible values: Integers from 1 to 64
///
///
public int HttpPutResponseHopLimit
{
get { return this._httpPutResponseHopLimit.GetValueOrDefault(); }
set { this._httpPutResponseHopLimit = value; }
}
// Check to see if HttpPutResponseHopLimit property is set
internal bool IsSetHttpPutResponseHopLimit()
{
return this._httpPutResponseHopLimit.HasValue;
}
///
/// Gets and sets the property HttpTokens.
///
/// IMDSv2 uses token-backed sessions. Set the use of HTTP tokens to optional
/// (in other words, set the use of IMDSv2 to optional
) or required
/// (in other words, set the use of IMDSv2 to required
).
///
/// -
///
///
optional
- When IMDSv2 is optional, you can choose to retrieve instance
/// metadata with or without a session token in your request. If you retrieve the IAM
/// role credentials without a token, the IMDSv1 role credentials are returned. If you
/// retrieve the IAM role credentials using a valid session token, the IMDSv2 role credentials
/// are returned.
///
/// -
///
///
required
- When IMDSv2 is required, you must send a session token with
/// any instance metadata retrieval requests. In this state, retrieving the IAM role credentials
/// always returns IMDSv2 credentials; IMDSv1 credentials are not available.
///
///
///
/// Default: optional
///
///
public HttpTokensState HttpTokens
{
get { return this._httpTokens; }
set { this._httpTokens = value; }
}
// Check to see if HttpTokens property is set
internal bool IsSetHttpTokens()
{
return this._httpTokens != null;
}
///
/// Gets and sets the property InstanceId.
///
/// The ID of the instance.
///
///
[AWSProperty(Required=true)]
public string InstanceId
{
get { return this._instanceId; }
set { this._instanceId = value; }
}
// Check to see if InstanceId property is set
internal bool IsSetInstanceId()
{
return this._instanceId != null;
}
///
/// Gets and sets the property InstanceMetadataTags.
///
/// Set to enabled
to allow access to instance tags from the instance metadata.
/// Set to disabled
to turn off access to instance tags from the instance
/// metadata. For more information, see Work
/// with instance tags using the instance metadata.
///
///
///
/// Default: disabled
///
///
public InstanceMetadataTagsState InstanceMetadataTags
{
get { return this._instanceMetadataTags; }
set { this._instanceMetadataTags = value; }
}
// Check to see if InstanceMetadataTags property is set
internal bool IsSetInstanceMetadataTags()
{
return this._instanceMetadataTags != null;
}
}
}