using System;
using System.Collections.Generic;
using System.Diagnostics;
namespace ServiceClientGenerator.DefaultConfiguration
{
///
/// Model representing the default configuration modes as built
/// from the sdk-default-configurations.json file.
///
public class DefaultConfigurationModel
{
public List Modes { get; set; }
= new List();
///
/// Provides documentation on each configuration option, ie
/// .
///
/// Key is a Property in , value is the
/// Documentation describing the configuration option that Property represents.
///
public Dictionary ConfigurationOptionDocumentation { get; set; }
= new Dictionary();
}
[DebuggerDisplay("{"+ nameof(Name) + "}")]
public class DefaultConfigurationMode
{
///
/// Identifies a specific configuration mode. Example legacy, mobile, cross-region, etc
///
public string Name { get; set; }
///
/// Description of this Configuration Mode
///
public string Documentation { get; set; }
///
/// A retry mode specifies how the SDK attempts retries.
/// See https://docs.aws.amazon.com/sdkref/latest/guide/setting-global-retry_mode.html
///
public RequestRetryMode RetryMode { get; set; }
///
/// Specifies how the SDK determines the AWS service endpoint that it uses to talk to the AWS Security Token Service (AWS STS).
/// See https://docs.aws.amazon.com/sdkref/latest/guide/setting-global-sts_regional_endpoints.html
///
public StsRegionalEndpointsValue StsRegionalEndpoints { get; set; }
///
/// Specifies how the SDK determines the AWS service endpoint that it uses to talk to the Amazon S3 for the us-east-1 region
///
public S3UsEast1RegionalEndpointValue S3UsEast1RegionalEndpoint { get; set; }
///
/// The amount of time after making an initial connect attempt on a socket, where if the client does not
/// receive a completion of the connect handshake, the client gives up and fails the operation.
///
public TimeSpan? ConnectTimeout { get; set; }
///
/// The maximum amount of time that a TLS handshake is allowed to take from the time the CLIENT HELLO message is sent to
/// the client and server have fully negotiated ciphers and exchanged keys
///
public TimeSpan? TlsNegotiationTimeout { get; set; }
///
/// How long an application will attempt to read the first byte over an established,
/// open connection after write request before timing out.
///
public TimeSpan? TimeToFirstByteTimeout { get; set; }
///
/// This timeout measures the time between when the first byte is sent over an established,
/// open connection and when the last byte is received from the service.
/// If the response is not received by the timeout, then the request is considered timed out.
///
public TimeSpan? HttpRequestTimeout { get; set; }
}
///
/// RetryMode determines which request retry mode is used for requests that do
/// not complete successfully.
///
/// This is a copy of Amazon.Runtime.RequestRetryMode
public enum RequestRetryMode
{
///
/// Legacy request retry strategy.
///
Legacy,
///
/// Standardized request retry strategy that is consistent across all SDKs.
///
Standard,
///
/// An experimental request retry strategy that builds on the Standard strategy
/// and introduces congestion control through client side rate limiting.
///
Adaptive
}
///
/// Sts Regional Endpoints Value determines whether or not
/// to send the sts request to the regional endpoint or to
/// the global sts endpoint
///
/// This is a copy of Amazon.Runtime.StsRegionalEndpointsValue
public enum StsRegionalEndpointsValue
{
///
/// Send the request to the global sts endpoint
/// if the region is a legacy global region
///
Legacy,
///
/// Send the request to the regional endpoint
///
Regional
}
///
/// S3 US East 1 endpoint value determines whether or not
/// to send the us-east-1 s3 requests to the regional endpoint or to
/// the legacy global endpoint
///
/// This is a copy of Amazon.Runtime.S3UsEast1RegionalEndpointValue
public enum S3UsEast1RegionalEndpointValue
{
///
/// Sends the requests to the legacy global s3 endpoint for us-east-1
///
Legacy,
///
/// Sends the request to the regional s3 endpoint for us-east-1
///
Regional
}
}