Skip to content

Commit 5bb98f1

Browse files
Merge pull request #66 from awslabs/FB-EC2Fixes
Fb ec2 fixes
2 parents 6da5a22 + 3e8ffe9 commit 5bb98f1

File tree

7 files changed

+68
-13
lines changed

7 files changed

+68
-13
lines changed

code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/domainmodels/c2j/C2jShapeMember.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public class C2jShapeMember {
2525
String documentation;
2626
String location;
2727
String locationName;
28+
String queryName;
2829
C2jXmlNamespace xmlNamespace;
2930
boolean deprecated;
3031
boolean flattened;

code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/domainmodels/codegeneration/Shape.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,10 @@ public boolean isBlob() {
7373
return "blob".equals(type.toLowerCase());
7474
}
7575

76+
public boolean isBoolean() {
77+
return "boolean".equals(type.toLowerCase());
78+
}
79+
7680
public boolean isPrimitive() {
7781
return !isMap() && !isList() && !isStructure() && !isString() && !isEnum() && !isBlob() && !isTimeStamp();
7882
}

code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/domainmodels/codegeneration/ShapeMember.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public class ShapeMember {
2626
String documentation;
2727
String location;
2828
String locationName;
29+
String queryName;
2930
String xmlnsUri;
3031
boolean isFlattened;
3132

code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/generators/cpp/ec2/Ec2CppClientGenerator.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,10 @@ public SdkFileEntry[] generateSourceFiles(ServiceModel serviceModel) throws Exce
9090
diskImageSizeTooLarge.setName("DiskImageSizeTooLarge");
9191
diskImageSizeTooLarge.setText("DiskImageSizeTooLarge");
9292
serviceErrors.add(diskImageSizeTooLarge);
93+
final Error dryRunOperation = new Error();
94+
dryRunOperation.setName("DryRunOperation");
95+
dryRunOperation.setText("DryRunOperation");
96+
serviceErrors.add(dryRunOperation);
9397
final Error encryptedVolumesNotSupported = new Error();
9498
encryptedVolumesNotSupported.setName("EncryptedVolumesNotSupported");
9599
encryptedVolumesNotSupported.setText("EncryptedVolumesNotSupported");

code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/transform/C2jModelToGeneratorModelTransformer.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,7 @@ ShapeMember convertMember(C2jShapeMember c2jShapeMember, boolean required) {
225225
shapeMember.setShape(referencedShape);
226226
shapeMember.setLocationName(c2jShapeMember.getLocationName());
227227
shapeMember.setLocation(c2jShapeMember.getLocation());
228+
shapeMember.setQueryName(c2jShapeMember.getQueryName());
228229
shapeMember.setStreaming(c2jShapeMember.isStreaming());
229230
shapeMember.setIdempotencyToken(c2jShapeMember.isIdempotencyToken());
230231
if(shapeMember.isStreaming()) {

code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/queryxml/QueryRequestSource.vm

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,20 +42,29 @@ Aws::String ${typeInfo.className}::SerializePayload() const
4242
${spaces}for(auto& item : $memberVarName)
4343
${spaces}{
4444
#if($member.value.shape.flattened)
45-
#if($member.value.shape.listMember.locationName)
45+
#if($member.value.shape.listMember.queryName)
46+
#set($location = $member.value.shape.listMember.queryName)
47+
#elseif($member.value.shape.listMember.locationName)
4648
#set($location = $member.value.shape.listMember.locationName)
49+
#if($metadata.protocol == "ec2")
50+
#set($location = $CppViewHelper.capitalizeFirstChar($location))
51+
#end
4752
#else
4853
#set($location = $member.key)
4954
#end
5055
#else
51-
#if($member.value.locationName)
56+
#if($member.value.queryName)
57+
#set($location = $member.value.queryName)
58+
#elseif($member.value.locationName)
5259
#set($location = $member.value.locationName)
53-
#else
54-
#set($location = $member.key + ".member")
55-
#end
5660
#if($metadata.protocol == "ec2")
5761
#set($location = $CppViewHelper.capitalizeFirstChar($location))
5862
#end
63+
#elseif($metadata.protocol == "ec2")
64+
#set($location = $member.key)
65+
#else
66+
#set($location = $member.key + ".member")
67+
#end
5968
#end
6069
#if($member.value.shape.listMember.shape.structure)
6170
${spaces} item.OutputToStream(ss, "${location}.", ${varName}Count, "");
@@ -69,6 +78,8 @@ Aws::String ${typeInfo.className}::SerializePayload() const
6978
${spaces} << StringUtils::URLEncode(${member.value.shape.listMember.shape.name}Mapper::GetNameFor${member.value.shape.listMember.shape.name}(item).c_str()) << "&";
7079
#elseif($member.value.shape.listMember.shape.double)
7180
${spaces} << StringUtils::URLEncode(item) << "&";
81+
#elseif($member.value.shape.listMember.shape.boolean)
82+
${spaces} << std::boolalpha << item << "&";
7283
#else
7384
${spaces} << item << "&";
7485
#end
@@ -104,7 +115,9 @@ Aws::String ${typeInfo.className}::SerializePayload() const
104115
#elseif($member.value.shape.mapKey.shape.structure)
105116
${spaces} item.first.OutputToStream(ss, "${mapLocationName}.", ${varName}Count, ".${keyLocationName}");
106117
#elseif($member.value.shape.mapKey.shape.double)
107-
${spaces}ss << StringUtils::URLEncode(item.first) << "&";
118+
${spaces} << StringUtils::URLEncode(item.first) << "&";
119+
#elseif($member.value.shape.mapKey.shape.boolean)
120+
${spaces} << std::boolalpha << item.first << "&";
108121
#else
109122
${spaces} << item.first << "&";
110123
#end
@@ -121,20 +134,24 @@ Aws::String ${typeInfo.className}::SerializePayload() const
121134
${spaces} item.second.OutputToStream(ss, "${mapLocationName}.", ${varName}Count, ".${valueLocationName}");
122135
#elseif($member.value.shape.mapValue.shape.double)
123136
${spaces} << StringUtils::URLEncode(item.second) << "&";
137+
#elseif($member.value.shape.mapValue.shape.boolean)
138+
${spaces} << std::boolalpha << item.second << "&";
124139
#else
125140
${spaces} << item.second << "&";
126141
#end
127142
${spaces} ${varName}Count++;
128143
${spaces}}
129144
#else
130-
#if($member.value.locationName)
145+
#if($member.value.queryName)
146+
#set($location = $member.value.queryName)
147+
#elseif($member.value.locationName)
131148
#set($location = $member.value.locationName)
132-
#else
133-
#set($location = $member.key)
134-
#end
135149
#if($metadata.protocol == "ec2")
136150
#set($location = $CppViewHelper.capitalizeFirstChar($location))
137151
#end
152+
#else
153+
#set($location = $member.key)
154+
#end
138155
#if($member.value.shape.blob)
139156
${spaces}ss << "${location}=" << HashingUtils::Base64Encode(${memberVarName}) << "&";
140157
#elseif($member.value.shape.timeStamp)
@@ -147,6 +164,8 @@ Aws::String ${typeInfo.className}::SerializePayload() const
147164
${spaces}${memberVarName}.OutputToStream(ss, "${location}");
148165
#elseif($member.value.shape.double)
149166
${spaces}ss << "${location}=" << StringUtils::URLEncode(${memberVarName}) << "&";
167+
#elseif($member.value.shape.boolean)
168+
${spaces}ss << "${location}=" << std::boolalpha << ${memberVarName} << "&";
150169
#else
151170
${spaces}ss << "${location}=" << ${memberVarName} << "&";
152171
#end

code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/queryxml/QueryXmlSubObjectSource.vm

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ void ${typeInfo.className}::OutputToStream(Aws::OStream& oStream, const char* lo
7171
${spaces}oStream << location << index << locationValue << ".${memberName}=" << StringUtils::URLEncode(HashingUtils::Base64Encode(${memberVarName}).c_str()) << "&";
7272
#elseif($member.shape.double)
7373
${spaces}oStream << location << index << locationValue << ".${memberName}=" << StringUtils::URLEncode(${memberVarName}) << "&";
74+
#elseif($member.shape.boolean)
75+
${spaces}oStream << location << index << locationValue << ".${memberName}=" << std::boolalpha << ${memberVarName} << "&";
7476
#elseif($member.shape.primitive)
7577
${spaces}oStream << location << index << locationValue << ".${memberName}=" << ${memberVarName} << "&";
7678
#elseif($member.shape.enum)
@@ -80,10 +82,12 @@ void ${typeInfo.className}::OutputToStream(Aws::OStream& oStream, const char* lo
8082
${spaces}for(auto& item : ${memberVarName})
8183
${spaces}{
8284
#if($metadata.protocol == "ec2")
83-
#if($member.locationName)
85+
#if($member.queryName)
86+
#set($location = $member.queryName)
87+
#elseif($member.locationName)
8488
#set($location = $CppViewHelper.capitalizeFirstChar($member.locationName))
8589
#else
86-
#set($location = $CppViewHelper.capitalizeFirstChar($memberName))
90+
#set($location = $memberName)
8791
#end
8892
#else
8993
#if($member.shape.listMember.locationName)
@@ -104,6 +108,8 @@ void ${typeInfo.className}::OutputToStream(Aws::OStream& oStream, const char* lo
104108
${spaces} oStream << location << index << locationValue << ".${location}." << ${lowerCaseVarName}Idx++ << "=" << StringUtils::URLEncode(HashingUtils::Base64Encode(item).c_str()) << "&";
105109
#elseif($member.shape.listMember.shape.double)
106110
${spaces} oStream << location << index << locationValue << ".${location}." << ${lowerCaseVarName}Idx++ << "=" << StringUtils::URLEncode(item) << "&";
111+
#elseif($member.shape.listMember.shape.boolean)
112+
${spaces} oStream << location << index << locationValue << ".${location}." << ${lowerCaseVarName}Idx++ << "=" << std::boolalpha << item << "&";
107113
#elseif($member.shape.listMember.shape.primitive)
108114
${spaces} oStream << location << index << locationValue << ".${location}." << ${lowerCaseVarName}Idx++ << "=" << item << "&";
109115
#elseif($member.shape.listMember.shape.enum)
@@ -140,6 +146,8 @@ void ${typeInfo.className}::OutputToStream(Aws::OStream& oStream, const char* lo
140146
${spaces} item.first.OutputToStream(oStream, "${mapLocationName}.", ${lowerCaseVarName}Idx, ".${mapKeyLocationName}");
141147
#elseif($member.shape.mapKey.shape.double)
142148
${spaces} << StringUtils::URLEncode(item.first) << "&";
149+
#elseif($member.shape.mapKey.shape.boolean)
150+
${spaces} << std::boolalpha << item.first << "&";
143151
#else
144152
${spaces} << item.first << "&";
145153
#end
@@ -158,6 +166,8 @@ void ${typeInfo.className}::OutputToStream(Aws::OStream& oStream, const char* lo
158166
${spaces} item.second.OutputToStream(oStream, ${lowerCaseVarName}Ss.str().c_str());
159167
#elseif($member.shape.mapValue.shape.double)
160168
${spaces} << StringUtils::URLEncode(item.second) << "&";
169+
#elseif($member.shape.mapValue.shape.boolean)
170+
${spaces} << std::boolalpha << item.second << "&";
161171
#else
162172
${spaces} << item.second << "&";
163173
#end
@@ -197,6 +207,8 @@ void ${typeInfo.className}::OutputToStream(Aws::OStream& oStream, const char* lo
197207
${spaces}oStream << location << ".${memberName}=" << StringUtils::URLEncode(HashingUtils::Base64Encode(${memberVarName}).c_str()) << "&";
198208
#elseif($member.shape.double)
199209
${spaces}oStream << location << ".${memberName}=" << StringUtils::URLEncode(${memberVarName}) << "&";
210+
#elseif($member.shape.boolean)
211+
${spaces}oStream << location << ".${memberName}=" << std::boolalpha << ${memberVarName} << "&";
200212
#elseif($member.shape.primitive)
201213
${spaces}oStream << location << ".${memberName}=" << ${memberVarName} << "&";
202214
#elseif($member.shape.enum)
@@ -205,8 +217,15 @@ void ${typeInfo.className}::OutputToStream(Aws::OStream& oStream, const char* lo
205217
${spaces}unsigned ${lowerCaseVarName}Idx = 1;
206218
${spaces}for(auto& item : ${memberVarName})
207219
${spaces}{
208-
#if($member.shape.listMember.locationName)
220+
#if($member.shape.listMember.queryName)
221+
#set($location = $member.shape.listMember.queryName)
222+
#elseif($member.shape.listMember.locationName)
209223
#set($location = $member.shape.listMember.locationName)
224+
#if($metadata.protocol == "ec2")
225+
#set($location = $CppViewHelper.capitalizeFirstChar($location))
226+
#end
227+
#elseif($metadata.protocol == "ec2")
228+
#set($location = $memberName)
210229
#else
211230
#set($location = $memberName + ".member")
212231
#end
@@ -222,6 +241,8 @@ void ${typeInfo.className}::OutputToStream(Aws::OStream& oStream, const char* lo
222241
${spaces} oStream << location << ".${location}." << ${lowerCaseVarName}Idx++ << "=" << StringUtils::URLEncode(HashingUtils::Base64Encode(item).c_str()) << "&";
223242
#elseif($member.shape.listMember.shape.double)
224243
${spaces} oStream << location << ".${location}." << ${lowerCaseVarName}Idx++ << "=" << StringUtils::URLEncode(item) << "&";
244+
#elseif($member.shape.listMember.shape.boolean)
245+
${spaces} oStream << location << ".${location}." << ${lowerCaseVarName}Idx++ << "=" << std::boolalpha << item << "&";
225246
#elseif($member.shape.listMember.shape.primitive)
226247
${spaces} oStream << location << ".${location}." << ${lowerCaseVarName}Idx++ << "=" << item << "&";
227248
#elseif($member.shape.listMember.shape.enum)
@@ -256,6 +277,8 @@ void ${typeInfo.className}::OutputToStream(Aws::OStream& oStream, const char* lo
256277
${spaces} << StringUtils::URLEncode(${member.shape.mapKey.shape.name}Mapper::GetNameFor${member.shape.mapKey.shape.name}(item.first).c_str()) << "&";
257278
#elseif($member.shape.mapKey.shape.double)
258279
${spaces} << StringUtils::URLEncode(item.first) << "&";
280+
#elseif($member.shape.mapKey.shape.boolean)
281+
${spaces} << std::boolalpha << item.first << "&";
259282
#else
260283
${spaces} << item.first << "&";
261284
#end
@@ -274,6 +297,8 @@ void ${typeInfo.className}::OutputToStream(Aws::OStream& oStream, const char* lo
274297
${spaces} item.second.OutputToStream(oStream, ${lowerCaseVarName}Ss.str().c_str());
275298
#elseif($member.shape.mapValue.shape.double)
276299
${spaces} << StringUtils::URLEncode(item.second) << "&";
300+
#elseif($member.shape.mapValue.shape.boolean)
301+
${spaces} << std::boolalpha << item.second << "&";
277302
#else
278303
${spaces} << item.second << "&";
279304
#end

0 commit comments

Comments
 (0)