1/*
2* Copyright 2010-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3*
4* Licensed under the Apache License, Version 2.0 (the "License").
5* You may not use this file except in compliance with the License.
6* A copy of the License is located at
7*
8* http://aws.amazon.com/apache2.0
9*
10* or in the "license" file accompanying this file. This file is distributed
11* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12* express or implied. See the License for the specific language governing
13* permissions and limitations under the License.
14*/
15
16#include <aws/s3/model/BucketLocationConstraint.h>
17#include <aws/core/utils/HashingUtils.h>
18#include <aws/core/Globals.h>
19#include <aws/core/utils/EnumParseOverflowContainer.h>
20
21using namespace Aws::Utils;
22
23
24namespace Aws
25{
26 namespace S3
27 {
28 namespace Model
29 {
30 namespace BucketLocationConstraintMapper
31 {
32
33 static const int EU_HASH = HashingUtils::HashString("EU");
34 static const int eu_west_1_HASH = HashingUtils::HashString("eu-west-1");
35 static const int us_west_1_HASH = HashingUtils::HashString("us-west-1");
36 static const int us_west_2_HASH = HashingUtils::HashString("us-west-2");
37 static const int ap_south_1_HASH = HashingUtils::HashString("ap-south-1");
38 static const int ap_southeast_1_HASH = HashingUtils::HashString("ap-southeast-1");
39 static const int ap_southeast_2_HASH = HashingUtils::HashString("ap-southeast-2");
40 static const int ap_northeast_1_HASH = HashingUtils::HashString("ap-northeast-1");
41 static const int sa_east_1_HASH = HashingUtils::HashString("sa-east-1");
42 static const int cn_north_1_HASH = HashingUtils::HashString("cn-north-1");
43 static const int eu_central_1_HASH = HashingUtils::HashString("eu-central-1");
44 static const int eu_west_3_HASH = HashingUtils::HashString("eu-west-3");
45 static const int eu_west_2_HASH = HashingUtils::HashString("eu-west-2");
46 static const int ap_northeast_2_HASH = HashingUtils::HashString("ap-northeast-2");
47 static const int ca_central_1_HASH = HashingUtils::HashString("ca-central-1");
48 static const int us_gov_west_1_HASH = HashingUtils::HashString("us-gov-west-1");
49 static const int us_east_1_HASH = HashingUtils::HashString("us-east-1");
50 static const int us_east_2_HASH = HashingUtils::HashString("us-east-2");
51 static const int cn_northwest_1_HASH = HashingUtils::HashString("cn-northwest-1");
52
53
54 BucketLocationConstraint GetBucketLocationConstraintForName(const Aws::String& name)
55 {
56 int hashCode = HashingUtils::HashString(name.c_str());
57 if (hashCode == EU_HASH)
58 {
59 return BucketLocationConstraint::EU;
60 }
61 else if (hashCode == eu_west_1_HASH)
62 {
63 return BucketLocationConstraint::eu_west_1;
64 }
65 else if (hashCode == us_west_1_HASH)
66 {
67 return BucketLocationConstraint::us_west_1;
68 }
69 else if (hashCode == us_west_2_HASH)
70 {
71 return BucketLocationConstraint::us_west_2;
72 }
73 else if (hashCode == ap_south_1_HASH)
74 {
75 return BucketLocationConstraint::ap_south_1;
76 }
77 else if (hashCode == ap_southeast_1_HASH)
78 {
79 return BucketLocationConstraint::ap_southeast_1;
80 }
81 else if (hashCode == ap_southeast_2_HASH)
82 {
83 return BucketLocationConstraint::ap_southeast_2;
84 }
85 else if (hashCode == ap_northeast_1_HASH)
86 {
87 return BucketLocationConstraint::ap_northeast_1;
88 }
89 else if (hashCode == sa_east_1_HASH)
90 {
91 return BucketLocationConstraint::sa_east_1;
92 }
93 else if (hashCode == cn_north_1_HASH)
94 {
95 return BucketLocationConstraint::cn_north_1;
96 }
97 else if (hashCode == eu_central_1_HASH)
98 {
99 return BucketLocationConstraint::eu_central_1;
100 }
101 else if (hashCode == eu_west_3_HASH)
102 {
103 return BucketLocationConstraint::eu_west_3;
104 }
105 else if (hashCode == eu_west_2_HASH)
106 {
107 return BucketLocationConstraint::eu_west_2;
108 }
109 else if (hashCode == ap_northeast_2_HASH)
110 {
111 return BucketLocationConstraint::ap_northeast_2;
112 }
113 else if (hashCode == ca_central_1_HASH)
114 {
115 return BucketLocationConstraint::ca_central_1;
116 }
117 else if (hashCode == us_gov_west_1_HASH)
118 {
119 return BucketLocationConstraint::us_gov_west_1;
120 }
121 else if (hashCode == us_east_1_HASH)
122 {
123 return BucketLocationConstraint::us_east_1;
124 }
125 else if (hashCode == us_east_2_HASH)
126 {
127 return BucketLocationConstraint::us_east_2;
128 }
129 else if (hashCode == cn_northwest_1_HASH)
130 {
131 return BucketLocationConstraint::cn_northwest_1;
132 }
133 EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer();
134 if(overflowContainer)
135 {
136 overflowContainer->StoreOverflow(hashCode, name);
137 return static_cast<BucketLocationConstraint>(hashCode);
138 }
139
140 return BucketLocationConstraint::NOT_SET;
141 }
142
143 Aws::String GetNameForBucketLocationConstraint(BucketLocationConstraint enumValue)
144 {
145 switch(enumValue)
146 {
147 case BucketLocationConstraint::EU:
148 return "EU";
149 case BucketLocationConstraint::eu_west_1:
150 return "eu-west-1";
151 case BucketLocationConstraint::us_west_1:
152 return "us-west-1";
153 case BucketLocationConstraint::us_west_2:
154 return "us-west-2";
155 case BucketLocationConstraint::ap_south_1:
156 return "ap-south-1";
157 case BucketLocationConstraint::ap_southeast_1:
158 return "ap-southeast-1";
159 case BucketLocationConstraint::ap_southeast_2:
160 return "ap-southeast-2";
161 case BucketLocationConstraint::ap_northeast_1:
162 return "ap-northeast-1";
163 case BucketLocationConstraint::sa_east_1:
164 return "sa-east-1";
165 case BucketLocationConstraint::cn_north_1:
166 return "cn-north-1";
167 case BucketLocationConstraint::eu_central_1:
168 return "eu-central-1";
169 case BucketLocationConstraint::eu_west_3:
170 return "eu-west-3";
171 case BucketLocationConstraint::eu_west_2:
172 return "eu-west-2";
173 case BucketLocationConstraint::ap_northeast_2:
174 return "ap-northeast-2";
175 case BucketLocationConstraint::ca_central_1:
176 return "ca-central-1";
177 case BucketLocationConstraint::us_gov_west_1:
178 return "us-gov-west-1";
179 case BucketLocationConstraint::us_east_1:
180 return "us-east-1";
181 case BucketLocationConstraint::us_east_2:
182 return "us-east-2";
183 case BucketLocationConstraint::cn_northwest_1:
184 return "cn-northwest-1";
185 default:
186 EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer();
187 if(overflowContainer)
188 {
189 return overflowContainer->RetrieveOverflow(static_cast<int>(enumValue));
190 }
191
192 return {};
193 }
194 }
195
196 } // namespace BucketLocationConstraintMapper
197 } // namespace Model
198 } // namespace S3
199} // namespace Aws
200