1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #include <aws/core/client/AWSError.h> 7 #include <aws/core/utils/HashingUtils.h> 8 #include <aws/cur/CostandUsageReportServiceErrors.h> 9 10 using namespace Aws::Client; 11 using namespace Aws::Utils; 12 using namespace Aws::CostandUsageReportService; 13 14 namespace Aws 15 { 16 namespace CostandUsageReportService 17 { 18 namespace CostandUsageReportServiceErrorMapper 19 { 20 21 static const int INTERNAL_ERROR_HASH = HashingUtils::HashString("InternalErrorException"); 22 static const int REPORT_LIMIT_REACHED_HASH = HashingUtils::HashString("ReportLimitReachedException"); 23 static const int DUPLICATE_REPORT_NAME_HASH = HashingUtils::HashString("DuplicateReportNameException"); 24 25 GetErrorForName(const char * errorName)26AWSError<CoreErrors> GetErrorForName(const char* errorName) 27 { 28 int hashCode = HashingUtils::HashString(errorName); 29 30 if (hashCode == INTERNAL_ERROR_HASH) 31 { 32 return AWSError<CoreErrors>(static_cast<CoreErrors>(CostandUsageReportServiceErrors::INTERNAL_ERROR), false); 33 } 34 else if (hashCode == REPORT_LIMIT_REACHED_HASH) 35 { 36 return AWSError<CoreErrors>(static_cast<CoreErrors>(CostandUsageReportServiceErrors::REPORT_LIMIT_REACHED), false); 37 } 38 else if (hashCode == DUPLICATE_REPORT_NAME_HASH) 39 { 40 return AWSError<CoreErrors>(static_cast<CoreErrors>(CostandUsageReportServiceErrors::DUPLICATE_REPORT_NAME), false); 41 } 42 return AWSError<CoreErrors>(CoreErrors::UNKNOWN, false); 43 } 44 45 } // namespace CostandUsageReportServiceErrorMapper 46 } // namespace CostandUsageReportService 47 } // namespace Aws 48