/*
* 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.
*/
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using Amazon.Runtime.Internal.Auth;
namespace Amazon.Runtime.Internal
{
///
/// Class containing the data to use with endpoint discovery
///
/// This class is only intended for internal use inside the AWS client libraries.
/// Callers shouldn't ever interact directly with objects of this class.
///
///
public abstract class EndpointDiscoveryDataBase
{
private bool _required;
private SortedDictionary _identifiers;
protected EndpointDiscoveryDataBase(bool required)
{
_required = required;
_identifiers = new SortedDictionary();
}
///
/// Gets/sets and flag indicating if endpoint discovery is required for the request.
///
public virtual bool Required
{
get
{
return _required;
}
protected set
{
_required = value;
}
}
///
/// Sorted dictionary of the identifiers that must be sent with the endpoint discovery request. These
/// identifiers are used to construct the cache key for the cache that stores discovered endpoints. A
/// sorted dictionary is used instead of a dictionary to ensure the cache key comes out in the same order
/// each time it is constructed.
///
public virtual SortedDictionary Identifiers
{
get
{
return _identifiers;
}
protected set
{
_identifiers = value;
}
}
}
///
/// Represents the data to be used with endpoint discovery operations
///
/// This class is only intended for internal use inside the AWS client libraries.
/// Callers shouldn't ever interact directly with objects of this class.
///
///
public class EndpointDiscoveryData : EndpointDiscoveryDataBase
{
public EndpointDiscoveryData(bool required) : base(required) { }
}
}