/*
* 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
{
///
/// The metadata options for the instance.
///
public partial class InstanceMetadataOptionsResponse
{
private InstanceMetadataEndpointState _httpEndpoint;
private InstanceMetadataProtocolState _httpProtocolIpv6;
private int? _httpPutResponseHopLimit;
private HttpTokensState _httpTokens;
private InstanceMetadataTagsState _instanceMetadataTags;
private InstanceMetadataOptionsState _state;
///
/// Gets and sets the property HttpEndpoint.
///
/// Indicates whether the HTTP metadata endpoint on your instances is enabled or disabled.
///
///
///
/// If the value is 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.
///
/// Indicates whether the IPv6 endpoint for the instance metadata service is enabled or
/// disabled.
///
///
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.
///
///
///
/// Default: 1
///
///
///
/// 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. Indicates whether the use of HTTP tokens is optional
/// (in other words, indicates whether the use of IMDSv2 is optional
) or
/// required
(in other words, indicates whether the use of IMDSv2 is 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 InstanceMetadataTags.
///
/// Indicates whether access to instance tags from the instance metadata is enabled or
/// disabled. For more information, see Work
/// with instance tags using the instance metadata.
///
///
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;
}
///
/// Gets and sets the property State.
///
/// The state of the metadata option changes.
///
///
///
/// pending
- The metadata options are being updated and the instance is
/// not ready to process metadata traffic with the new selection.
///
///
///
/// applied
- The metadata options have been successfully applied on the
/// instance.
///
///
public InstanceMetadataOptionsState State
{
get { return this._state; }
set { this._state = value; }
}
// Check to see if State property is set
internal bool IsSetState()
{
return this._state != null;
}
}
}