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)26 AWSError<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