/*
* 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.Collections.ObjectModel;
using System.Text;
using Amazon.Runtime.Internal;
using Amazon.Runtime.Internal.Auth;
namespace Amazon.Runtime
{
public abstract partial class AmazonWebServiceRequest : IAmazonWebServiceRequest
{
///
/// This flag specifies if SigV4 will be used for the current request.
///
[Obsolete("UseSigV4 is deprecated. Use SignatureVersion directly instead.")]
bool IAmazonWebServiceRequest.UseSigV4
{
get { return UseSigV4; }
set { UseSigV4 = value; }
}
///
/// This flag specifies if SigV4 will be used for the current request.
/// Returns true if the request will use SigV4.
/// Setting it to false will use SigV2.
///
[Obsolete("UseSigV4 is deprecated. Use SignatureVersion directly instead.")]
protected bool UseSigV4
{
get { return ((IAmazonWebServiceRequest)this).SignatureVersion == SignatureVersion.SigV4; }
set { ((IAmazonWebServiceRequest)this).SignatureVersion = value ? SignatureVersion.SigV4 : SignatureVersion.SigV2; }
}
///
/// Specifies which signature version will be used for the current request.
///
SignatureVersion IAmazonWebServiceRequest.SignatureVersion
{
get;
set;
}
///
/// Gets or Sets a value indicating if "Expect: 100-continue" HTTP header will be
/// sent by the client for this request. The default value is false.
///
protected virtual bool Expect100Continue
{
get { return false; }
}
internal bool GetExpect100Continue()
{
return this.Expect100Continue;
}
protected virtual bool IncludeSHA256Header
{
get { return true; }
}
internal bool GetIncludeSHA256Header()
{
return this.IncludeSHA256Header;
}
///
/// Gets the signer to use for this request.
/// A null return value indicates to use the configured
/// signer for the service that this request is part of.
///
/// A signer for this request, or null.
protected virtual AbstractAWSSigner CreateSigner()
{
return null;
}
internal AbstractAWSSigner GetSigner()
{
return CreateSigner();
}
///
/// Checksum validation behavior for validating the integrity of this request's response
///
protected internal virtual CoreChecksumResponseBehavior CoreChecksumMode => CoreChecksumResponseBehavior.DISABLED;
///
/// Checksum algorithms that are supported for validating the integrity of this request's response
///
protected internal virtual ReadOnlyCollection ChecksumResponseAlgorithms => new List(0).AsReadOnly();
}
}