//-----------------------------------------------------------------------------
//
// Copyright 2016 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;
namespace Amazon.XRay.Recorder.Handlers.AwsSdk.Internal
{
///
/// Utility class for AWS SDK handler.
///
internal class AWSXRaySDKUtils
{
private static readonly String XRayServiceName = "XRay";
private static readonly ISet WhitelistedOperations = new HashSet { "GetSamplingRules", "GetSamplingTargets" };
// Collection to uniform service names across X-Ray SDKs.
private static readonly Dictionary FormattedServiceNames = new Dictionary()
{
{ "SimpleNotificationService" , "SNS" },
};
internal static bool IsBlacklistedOperation(String serviceName, string operation)
{
if (string.Equals(serviceName, XRayServiceName) && WhitelistedOperations.Contains(operation))
{
return true;
}
return false;
}
internal static string FormatServiceName(string serviceName)
{
if (FormattedServiceNames.TryGetValue(serviceName, out string formattedName))
{
return formattedName;
}
return serviceName;
}
}
}