diff --git a/.changes/next-release/feature-AWSSDKforJavav2-70d4f4f.json b/.changes/next-release/feature-AWSSDKforJavav2-70d4f4f.json new file mode 100644 index 000000000000..9018d95ec927 --- /dev/null +++ b/.changes/next-release/feature-AWSSDKforJavav2-70d4f4f.json @@ -0,0 +1,6 @@ +{ + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "duy310", + "description": "Added support for short type in Code generator." +} diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/internal/TypeUtils.java b/codegen/src/main/java/software/amazon/awssdk/codegen/internal/TypeUtils.java index ccbb8a39338f..09140af64262 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/internal/TypeUtils.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/internal/TypeUtils.java @@ -83,6 +83,7 @@ public static final class TypeKey { MARSHALLING_TYPE_MAPPINGS.put("Boolean", "BOOLEAN"); MARSHALLING_TYPE_MAPPINGS.put("BigDecimal", "BIG_DECIMAL"); MARSHALLING_TYPE_MAPPINGS.put("InputStream", "STREAM"); + MARSHALLING_TYPE_MAPPINGS.put("Short", "SHORT"); MARSHALLING_TYPE_MAPPINGS.put(null, "NULL"); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/alltypesrequest.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/alltypesrequest.java index 26d9a08bf55f..f90a32c4811a 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/alltypesrequest.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/alltypesrequest.java @@ -63,6 +63,10 @@ public final class AllTypesRequest extends JsonProtocolTestsRequest implements .memberName("LongMember").getter(getter(AllTypesRequest::longMember)).setter(setter(Builder::longMember)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("LongMember").build()).build(); + private static final SdkField SHORT_MEMBER_FIELD = SdkField. builder(MarshallingType.SHORT) + .memberName("ShortMember").getter(getter(AllTypesRequest::shortMember)).setter(setter(Builder::shortMember)) + .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ShortMember").build()).build(); + private static final SdkField> SIMPLE_LIST_FIELD = SdkField .> builder(MarshallingType.LIST) .memberName("SimpleList") @@ -422,7 +426,7 @@ SdkField. builder(MarshallingType.SDK_BYTES) private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(STRING_MEMBER_FIELD, INTEGER_MEMBER_FIELD, BOOLEAN_MEMBER_FIELD, FLOAT_MEMBER_FIELD, DOUBLE_MEMBER_FIELD, LONG_MEMBER_FIELD, - SIMPLE_LIST_FIELD, LIST_OF_ENUMS_FIELD, LIST_OF_MAPS_FIELD, LIST_OF_STRUCTS_FIELD, + SHORT_MEMBER_FIELD, SIMPLE_LIST_FIELD, LIST_OF_ENUMS_FIELD, LIST_OF_MAPS_FIELD, LIST_OF_STRUCTS_FIELD, LIST_OF_MAP_OF_ENUM_TO_STRING_FIELD, LIST_OF_MAP_OF_STRING_TO_STRUCT_FIELD, MAP_OF_STRING_TO_INTEGER_LIST_FIELD, MAP_OF_STRING_TO_STRING_FIELD, MAP_OF_STRING_TO_SIMPLE_STRUCT_FIELD, MAP_OF_ENUM_TO_ENUM_FIELD, MAP_OF_ENUM_TO_STRING_FIELD, MAP_OF_STRING_TO_ENUM_FIELD, MAP_OF_ENUM_TO_SIMPLE_STRUCT_FIELD, @@ -443,6 +447,8 @@ SdkField. builder(MarshallingType.SDK_BYTES) private final Long longMember; + private final Short shortMember; + private final List simpleList; private final List listOfEnums; @@ -503,6 +509,7 @@ private AllTypesRequest(BuilderImpl builder) { this.floatMember = builder.floatMember; this.doubleMember = builder.doubleMember; this.longMember = builder.longMember; + this.shortMember = builder.shortMember; this.simpleList = builder.simpleList; this.listOfEnums = builder.listOfEnums; this.listOfMaps = builder.listOfMaps; @@ -585,6 +592,15 @@ public final Long longMember() { return longMember; } + /** + * Returns the value of the ShortMember property for this object. + * + * @return The value of the ShortMember property for this object. + */ + public final Short shortMember() { + return shortMember; + } + /** * Returns true if the SimpleList property was specified by the sender (it may be empty), or false if the sender did * not specify the value (it will be empty). For responses returned by the SDK, the sender is the AWS service. @@ -1232,6 +1248,7 @@ public final int hashCode() { hashCode = 31 * hashCode + Objects.hashCode(floatMember()); hashCode = 31 * hashCode + Objects.hashCode(doubleMember()); hashCode = 31 * hashCode + Objects.hashCode(longMember()); + hashCode = 31 * hashCode + Objects.hashCode(shortMember()); hashCode = 31 * hashCode + Objects.hashCode(hasSimpleList() ? simpleList() : null); hashCode = 31 * hashCode + Objects.hashCode(hasListOfEnums() ? listOfEnumsAsStrings() : null); hashCode = 31 * hashCode + Objects.hashCode(hasListOfMaps() ? listOfMaps() : null); @@ -1282,6 +1299,7 @@ public final boolean equalsBySdkFields(Object obj) { return Objects.equals(stringMember(), other.stringMember()) && Objects.equals(integerMember(), other.integerMember()) && Objects.equals(booleanMember(), other.booleanMember()) && Objects.equals(floatMember(), other.floatMember()) && Objects.equals(doubleMember(), other.doubleMember()) && Objects.equals(longMember(), other.longMember()) + && Objects.equals(shortMember(), other.shortMember()) && hasSimpleList() == other.hasSimpleList() && Objects.equals(simpleList(), other.simpleList()) && hasListOfEnums() == other.hasListOfEnums() && Objects.equals(listOfEnumsAsStrings(), other.listOfEnumsAsStrings()) @@ -1336,6 +1354,7 @@ public final String toString() { .add("FloatMember", floatMember()) .add("DoubleMember", doubleMember()) .add("LongMember", longMember()) + .add("ShortMember", shortMember()) .add("SimpleList", hasSimpleList() ? simpleList() : null) .add("ListOfEnums", hasListOfEnums() ? listOfEnumsAsStrings() : null) .add("ListOfMaps", hasListOfMaps() ? listOfMaps() : null) @@ -1375,6 +1394,8 @@ public final Optional getValueForField(String fieldName, Class clazz) return Optional.ofNullable(clazz.cast(doubleMember())); case "LongMember": return Optional.ofNullable(clazz.cast(longMember())); + case "ShortMember": + return Optional.ofNullable(clazz.cast(shortMember())); case "SimpleList": return Optional.ofNullable(clazz.cast(simpleList())); case "ListOfEnums": @@ -1500,6 +1521,15 @@ public interface Builder extends JsonProtocolTestsRequest.Builder, SdkPojo, Copy */ Builder longMember(Long longMember); + /** + * Sets the value of the ShortMember property for this object. + * + * @param shortMember + * The new value for the ShortMember property for this object. + * @return Returns a reference to this object so that method calls can be chained together. + */ + Builder shortMember(Short shortMember); + /** * Sets the value of the SimpleList property for this object. * @@ -2027,6 +2057,8 @@ static final class BuilderImpl extends JsonProtocolTestsRequest.BuilderImpl impl private Long longMember; + private Short shortMember; + private List simpleList = DefaultSdkAutoConstructList.getInstance(); private List listOfEnums = DefaultSdkAutoConstructList.getInstance(); @@ -2090,6 +2122,7 @@ private BuilderImpl(AllTypesRequest model) { floatMember(model.floatMember); doubleMember(model.doubleMember); longMember(model.longMember); + shortMember(model.shortMember); simpleList(model.simpleList); listOfEnumsWithStrings(model.listOfEnums); listOfMaps(model.listOfMaps); @@ -2202,6 +2235,20 @@ public final void setLongMember(Long longMember) { this.longMember = longMember; } + public final Short getShortMember() { + return shortMember; + } + + @Override + public final Builder shortMember(Short shortMember) { + this.shortMember = shortMember; + return this; + } + + public final void setShortMember(Short shortMember) { + this.shortMember = shortMember; + } + public final Collection getSimpleList() { if (simpleList instanceof SdkAutoConstructList) { return null; diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/alltypesresponse.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/alltypesresponse.java index c592f18756c8..4a9a04eca8bb 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/alltypesresponse.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/alltypesresponse.java @@ -62,6 +62,10 @@ public final class AllTypesResponse extends JsonProtocolTestsResponse implements .memberName("LongMember").getter(getter(AllTypesResponse::longMember)).setter(setter(Builder::longMember)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("LongMember").build()).build(); + private static final SdkField SHORT_MEMBER_FIELD = SdkField. builder(MarshallingType.SHORT) + .memberName("ShortMember").getter(getter(AllTypesResponse::shortMember)).setter(setter(Builder::shortMember)) + .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ShortMember").build()).build(); + private static final SdkField> SIMPLE_LIST_FIELD = SdkField .> builder(MarshallingType.LIST) .memberName("SimpleList") @@ -421,7 +425,7 @@ SdkField. builder(MarshallingType.SDK_BYTES) private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(STRING_MEMBER_FIELD, INTEGER_MEMBER_FIELD, BOOLEAN_MEMBER_FIELD, FLOAT_MEMBER_FIELD, DOUBLE_MEMBER_FIELD, LONG_MEMBER_FIELD, - SIMPLE_LIST_FIELD, LIST_OF_ENUMS_FIELD, LIST_OF_MAPS_FIELD, LIST_OF_STRUCTS_FIELD, + SHORT_MEMBER_FIELD, SIMPLE_LIST_FIELD, LIST_OF_ENUMS_FIELD, LIST_OF_MAPS_FIELD, LIST_OF_STRUCTS_FIELD, LIST_OF_MAP_OF_ENUM_TO_STRING_FIELD, LIST_OF_MAP_OF_STRING_TO_STRUCT_FIELD, MAP_OF_STRING_TO_INTEGER_LIST_FIELD, MAP_OF_STRING_TO_STRING_FIELD, MAP_OF_STRING_TO_SIMPLE_STRUCT_FIELD, MAP_OF_ENUM_TO_ENUM_FIELD, MAP_OF_ENUM_TO_STRING_FIELD, MAP_OF_STRING_TO_ENUM_FIELD, MAP_OF_ENUM_TO_SIMPLE_STRUCT_FIELD, @@ -442,6 +446,8 @@ SdkField. builder(MarshallingType.SDK_BYTES) private final Long longMember; + private final Short shortMember; + private final List simpleList; private final List listOfEnums; @@ -502,6 +508,7 @@ private AllTypesResponse(BuilderImpl builder) { this.floatMember = builder.floatMember; this.doubleMember = builder.doubleMember; this.longMember = builder.longMember; + this.shortMember = builder.shortMember; this.simpleList = builder.simpleList; this.listOfEnums = builder.listOfEnums; this.listOfMaps = builder.listOfMaps; @@ -584,6 +591,15 @@ public final Long longMember() { return longMember; } + /** + * Returns the value of the ShortMember property for this object. + * + * @return The value of the ShortMember property for this object. + */ + public final Short shortMember() { + return shortMember; + } + /** * Returns true if the SimpleList property was specified by the sender (it may be empty), or false if the sender did * not specify the value (it will be empty). For responses returned by the SDK, the sender is the AWS service. @@ -1231,6 +1247,7 @@ public final int hashCode() { hashCode = 31 * hashCode + Objects.hashCode(floatMember()); hashCode = 31 * hashCode + Objects.hashCode(doubleMember()); hashCode = 31 * hashCode + Objects.hashCode(longMember()); + hashCode = 31 * hashCode + Objects.hashCode(shortMember()); hashCode = 31 * hashCode + Objects.hashCode(hasSimpleList() ? simpleList() : null); hashCode = 31 * hashCode + Objects.hashCode(hasListOfEnums() ? listOfEnumsAsStrings() : null); hashCode = 31 * hashCode + Objects.hashCode(hasListOfMaps() ? listOfMaps() : null); @@ -1281,6 +1298,7 @@ public final boolean equalsBySdkFields(Object obj) { return Objects.equals(stringMember(), other.stringMember()) && Objects.equals(integerMember(), other.integerMember()) && Objects.equals(booleanMember(), other.booleanMember()) && Objects.equals(floatMember(), other.floatMember()) && Objects.equals(doubleMember(), other.doubleMember()) && Objects.equals(longMember(), other.longMember()) + && Objects.equals(shortMember(), other.shortMember()) && hasSimpleList() == other.hasSimpleList() && Objects.equals(simpleList(), other.simpleList()) && hasListOfEnums() == other.hasListOfEnums() && Objects.equals(listOfEnumsAsStrings(), other.listOfEnumsAsStrings()) @@ -1335,6 +1353,7 @@ public final String toString() { .add("FloatMember", floatMember()) .add("DoubleMember", doubleMember()) .add("LongMember", longMember()) + .add("ShortMember", shortMember()) .add("SimpleList", hasSimpleList() ? simpleList() : null) .add("ListOfEnums", hasListOfEnums() ? listOfEnumsAsStrings() : null) .add("ListOfMaps", hasListOfMaps() ? listOfMaps() : null) @@ -1374,6 +1393,8 @@ public final Optional getValueForField(String fieldName, Class clazz) return Optional.ofNullable(clazz.cast(doubleMember())); case "LongMember": return Optional.ofNullable(clazz.cast(longMember())); + case "ShortMember": + return Optional.ofNullable(clazz.cast(shortMember())); case "SimpleList": return Optional.ofNullable(clazz.cast(simpleList())); case "ListOfEnums": @@ -1499,6 +1520,15 @@ public interface Builder extends JsonProtocolTestsResponse.Builder, SdkPojo, Cop */ Builder longMember(Long longMember); + /** + * Sets the value of the ShortMember property for this object. + * + * @param shortMember + * The new value for the ShortMember property for this object. + * @return Returns a reference to this object so that method calls can be chained together. + */ + Builder shortMember(Short shortMember); + /** * Sets the value of the SimpleList property for this object. * @@ -2020,6 +2050,8 @@ static final class BuilderImpl extends JsonProtocolTestsResponse.BuilderImpl imp private Long longMember; + private Short shortMember; + private List simpleList = DefaultSdkAutoConstructList.getInstance(); private List listOfEnums = DefaultSdkAutoConstructList.getInstance(); @@ -2083,6 +2115,7 @@ private BuilderImpl(AllTypesResponse model) { floatMember(model.floatMember); doubleMember(model.doubleMember); longMember(model.longMember); + shortMember(model.shortMember); simpleList(model.simpleList); listOfEnumsWithStrings(model.listOfEnums); listOfMaps(model.listOfMaps); @@ -2195,6 +2228,20 @@ public final void setLongMember(Long longMember) { this.longMember = longMember; } + public final Short getShortMember() { + return shortMember; + } + + @Override + public final Builder shortMember(Short shortMember) { + this.shortMember = shortMember; + return this; + } + + public final void setShortMember(Short shortMember) { + this.shortMember = shortMember; + } + public final Collection getSimpleList() { if (simpleList instanceof SdkAutoConstructList) { return null; diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/service-2.json b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/service-2.json index 2d978f9ecaae..84b2ba6b5233 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/service-2.json +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/service-2.json @@ -114,6 +114,7 @@ "FloatMember":{"shape":"Float"}, "DoubleMember":{"shape":"Double"}, "LongMember":{"shape":"Long"}, + "ShortMember":{"shape":"Short"}, "SimpleList":{"shape":"ListOfStrings"}, "ListOfEnums":{"shape":"ListOfEnums"}, "ListOfMaps":{"shape":"ListOfMapStringToString"}, @@ -246,6 +247,7 @@ "member":{"shape":"MapOfStringToSimpleStruct"} }, "Long":{"type":"long"}, + "Short":{"type":"short"}, "MapOfStringToIntegerList":{ "type":"map", "key":{"shape":"String"}, diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/paginators/service-2.json b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/paginators/service-2.json index c306bea55f81..ccb98392ccad 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/paginators/service-2.json +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/paginators/service-2.json @@ -111,6 +111,7 @@ "FloatMember":{"shape":"Float"}, "DoubleMember":{"shape":"Double"}, "LongMember":{"shape":"Long"}, + "ShortMember":{"shape":"Short"}, "SimpleList":{"shape":"ListOfStrings"}, "ListOfEnums":{"shape":"ListOfEnums"}, "ListOfMaps":{"shape":"ListOfMapStringToString"}, @@ -198,6 +199,7 @@ "member":{"shape":"EnumType"} }, "Long":{"type":"long"}, + "Short":{"type":"short"}, "MapOfStringToIntegerList":{ "type":"map", "key":{"shape":"String"}, diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/transform/service-2.json b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/transform/service-2.json index 76b14e72e509..8295417202cc 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/transform/service-2.json +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/transform/service-2.json @@ -92,6 +92,7 @@ "FloatMember":{"shape":"Float"}, "DoubleMember":{"shape":"Double"}, "LongMember":{"shape":"Long"}, + "ShortMember":{"shape":"Short"}, "SimpleList":{"shape":"ListOfStrings"}, "ListOfEnums":{"shape":"ListOfEnums"}, "ListOfMaps":{"shape":"ListOfMapStringToString"}, @@ -179,6 +180,7 @@ "member":{"shape":"EnumType"} }, "Long":{"type":"long"}, + "Short":{"type":"short"}, "MapOfStringToIntegerList":{ "type":"map", "key":{"shape":"String"}, diff --git a/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/marshall/HeaderMarshaller.java b/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/marshall/HeaderMarshaller.java index c8af60708ac0..8d7fac6d7d21 100644 --- a/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/marshall/HeaderMarshaller.java +++ b/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/marshall/HeaderMarshaller.java @@ -34,6 +34,8 @@ public final class HeaderMarshaller { public static final JsonMarshaller LONG = new SimpleHeaderMarshaller<>(ValueToStringConverter.FROM_LONG); + public static final JsonMarshaller SHORT = new SimpleHeaderMarshaller<>(ValueToStringConverter.FROM_SHORT); + public static final JsonMarshaller DOUBLE = new SimpleHeaderMarshaller<>(ValueToStringConverter.FROM_DOUBLE); public static final JsonMarshaller FLOAT = new SimpleHeaderMarshaller<>(ValueToStringConverter.FROM_FLOAT); diff --git a/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/marshall/JsonProtocolMarshaller.java b/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/marshall/JsonProtocolMarshaller.java index 18adefe81d61..4ab5cf587542 100644 --- a/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/marshall/JsonProtocolMarshaller.java +++ b/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/marshall/JsonProtocolMarshaller.java @@ -89,6 +89,7 @@ private static JsonMarshallerRegistry createMarshallerRegistry() { .payloadMarshaller(MarshallingType.STRING, SimpleTypeJsonMarshaller.STRING) .payloadMarshaller(MarshallingType.INTEGER, SimpleTypeJsonMarshaller.INTEGER) .payloadMarshaller(MarshallingType.LONG, SimpleTypeJsonMarshaller.LONG) + .payloadMarshaller(MarshallingType.SHORT, SimpleTypeJsonMarshaller.SHORT) .payloadMarshaller(MarshallingType.DOUBLE, SimpleTypeJsonMarshaller.DOUBLE) .payloadMarshaller(MarshallingType.FLOAT, SimpleTypeJsonMarshaller.FLOAT) .payloadMarshaller(MarshallingType.BIG_DECIMAL, SimpleTypeJsonMarshaller.BIG_DECIMAL) @@ -103,6 +104,7 @@ private static JsonMarshallerRegistry createMarshallerRegistry() { .headerMarshaller(MarshallingType.STRING, HeaderMarshaller.STRING) .headerMarshaller(MarshallingType.INTEGER, HeaderMarshaller.INTEGER) .headerMarshaller(MarshallingType.LONG, HeaderMarshaller.LONG) + .headerMarshaller(MarshallingType.SHORT, HeaderMarshaller.SHORT) .headerMarshaller(MarshallingType.DOUBLE, HeaderMarshaller.DOUBLE) .headerMarshaller(MarshallingType.FLOAT, HeaderMarshaller.FLOAT) .headerMarshaller(MarshallingType.BOOLEAN, HeaderMarshaller.BOOLEAN) @@ -112,6 +114,7 @@ private static JsonMarshallerRegistry createMarshallerRegistry() { .queryParamMarshaller(MarshallingType.STRING, QueryParamMarshaller.STRING) .queryParamMarshaller(MarshallingType.INTEGER, QueryParamMarshaller.INTEGER) .queryParamMarshaller(MarshallingType.LONG, QueryParamMarshaller.LONG) + .queryParamMarshaller(MarshallingType.SHORT, QueryParamMarshaller.SHORT) .queryParamMarshaller(MarshallingType.DOUBLE, QueryParamMarshaller.DOUBLE) .queryParamMarshaller(MarshallingType.FLOAT, QueryParamMarshaller.FLOAT) .queryParamMarshaller(MarshallingType.BOOLEAN, QueryParamMarshaller.BOOLEAN) @@ -123,6 +126,7 @@ private static JsonMarshallerRegistry createMarshallerRegistry() { .pathParamMarshaller(MarshallingType.STRING, SimpleTypePathMarshaller.STRING) .pathParamMarshaller(MarshallingType.INTEGER, SimpleTypePathMarshaller.INTEGER) .pathParamMarshaller(MarshallingType.LONG, SimpleTypePathMarshaller.LONG) + .pathParamMarshaller(MarshallingType.SHORT, SimpleTypePathMarshaller.SHORT) .pathParamMarshaller(MarshallingType.NULL, SimpleTypePathMarshaller.NULL) .greedyPathParamMarshaller(MarshallingType.STRING, SimpleTypePathMarshaller.GREEDY_STRING) diff --git a/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/marshall/QueryParamMarshaller.java b/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/marshall/QueryParamMarshaller.java index 3d491fb6f392..f6a40bcd03a8 100644 --- a/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/marshall/QueryParamMarshaller.java +++ b/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/marshall/QueryParamMarshaller.java @@ -34,6 +34,8 @@ public final class QueryParamMarshaller { public static final JsonMarshaller LONG = new SimpleQueryParamMarshaller<>(ValueToStringConverter.FROM_LONG); + public static final JsonMarshaller SHORT = new SimpleQueryParamMarshaller<>(ValueToStringConverter.FROM_SHORT); + public static final JsonMarshaller DOUBLE = new SimpleQueryParamMarshaller<>( ValueToStringConverter.FROM_DOUBLE); diff --git a/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/marshall/SimpleTypeJsonMarshaller.java b/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/marshall/SimpleTypeJsonMarshaller.java index 756691904224..9275de790348 100644 --- a/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/marshall/SimpleTypeJsonMarshaller.java +++ b/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/marshall/SimpleTypeJsonMarshaller.java @@ -65,6 +65,13 @@ public void marshall(Long val, StructuredJsonGenerator jsonGenerator, JsonMarsha } }; + public static final JsonMarshaller SHORT = new BaseJsonMarshaller() { + @Override + public void marshall(Short val, StructuredJsonGenerator jsonGenerator, JsonMarshallerContext context) { + jsonGenerator.writeValue(val); + } + }; + public static final JsonMarshaller FLOAT = new BaseJsonMarshaller() { @Override public void marshall(Float val, StructuredJsonGenerator jsonGenerator, JsonMarshallerContext context) { diff --git a/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/marshall/SimpleTypePathMarshaller.java b/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/marshall/SimpleTypePathMarshaller.java index 8b48a9ab1b61..d653788a37ae 100644 --- a/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/marshall/SimpleTypePathMarshaller.java +++ b/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/marshall/SimpleTypePathMarshaller.java @@ -32,6 +32,9 @@ public final class SimpleTypePathMarshaller { public static final JsonMarshaller LONG = new SimplePathMarshaller<>(ValueToStringConverter.FROM_LONG, PathMarshaller.NON_GREEDY); + public static final JsonMarshaller SHORT = + new SimplePathMarshaller<>(ValueToStringConverter.FROM_SHORT, PathMarshaller.NON_GREEDY); + /** * Marshallers for Strings bound to a greedy path param. No URL encoding is done on the string * so that it preserves the path structure. diff --git a/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/unmarshall/HeaderUnmarshaller.java b/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/unmarshall/HeaderUnmarshaller.java index a18d1adabaf1..cd088e2c6e7c 100644 --- a/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/unmarshall/HeaderUnmarshaller.java +++ b/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/unmarshall/HeaderUnmarshaller.java @@ -34,6 +34,7 @@ final class HeaderUnmarshaller { new SimpleHeaderUnmarshaller<>(HeaderUnmarshaller::unmarshallStringHeader); public static final JsonUnmarshaller INTEGER = new SimpleHeaderUnmarshaller<>(StringToValueConverter.TO_INTEGER); public static final JsonUnmarshaller LONG = new SimpleHeaderUnmarshaller<>(StringToValueConverter.TO_LONG); + public static final JsonUnmarshaller SHORT = new SimpleHeaderUnmarshaller<>(StringToValueConverter.TO_SHORT); public static final JsonUnmarshaller DOUBLE = new SimpleHeaderUnmarshaller<>(StringToValueConverter.TO_DOUBLE); public static final JsonUnmarshaller BOOLEAN = new SimpleHeaderUnmarshaller<>(StringToValueConverter.TO_BOOLEAN); public static final JsonUnmarshaller FLOAT = new SimpleHeaderUnmarshaller<>(StringToValueConverter.TO_FLOAT); diff --git a/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/unmarshall/JsonProtocolUnmarshaller.java b/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/unmarshall/JsonProtocolUnmarshaller.java index 7d1c564454d4..ba7f5630f324 100644 --- a/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/unmarshall/JsonProtocolUnmarshaller.java +++ b/core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/unmarshall/JsonProtocolUnmarshaller.java @@ -72,6 +72,7 @@ private static JsonUnmarshallerRegistry createUnmarshallerRegistry( .headerUnmarshaller(MarshallingType.STRING, HeaderUnmarshaller.STRING) .headerUnmarshaller(MarshallingType.INTEGER, HeaderUnmarshaller.INTEGER) .headerUnmarshaller(MarshallingType.LONG, HeaderUnmarshaller.LONG) + .headerUnmarshaller(MarshallingType.SHORT, HeaderUnmarshaller.SHORT) .headerUnmarshaller(MarshallingType.DOUBLE, HeaderUnmarshaller.DOUBLE) .headerUnmarshaller(MarshallingType.BOOLEAN, HeaderUnmarshaller.BOOLEAN) .headerUnmarshaller(MarshallingType.INSTANT, HeaderUnmarshaller.createInstantHeaderUnmarshaller(instantStringToValue)) @@ -80,6 +81,7 @@ private static JsonUnmarshallerRegistry createUnmarshallerRegistry( .payloadUnmarshaller(MarshallingType.STRING, new SimpleTypeJsonUnmarshaller<>(StringToValueConverter.TO_STRING)) .payloadUnmarshaller(MarshallingType.INTEGER, new SimpleTypeJsonUnmarshaller<>(StringToValueConverter.TO_INTEGER)) .payloadUnmarshaller(MarshallingType.LONG, new SimpleTypeJsonUnmarshaller<>(StringToValueConverter.TO_LONG)) + .payloadUnmarshaller(MarshallingType.SHORT, new SimpleTypeJsonUnmarshaller<>(StringToValueConverter.TO_SHORT)) .payloadUnmarshaller(MarshallingType.FLOAT, new SimpleTypeJsonUnmarshaller<>(StringToValueConverter.TO_FLOAT)) .payloadUnmarshaller(MarshallingType.DOUBLE, new SimpleTypeJsonUnmarshaller<>(StringToValueConverter.TO_DOUBLE)) .payloadUnmarshaller(MarshallingType.BIG_DECIMAL, new SimpleTypeJsonUnmarshaller<>( diff --git a/core/protocols/aws-query-protocol/src/main/java/software/amazon/awssdk/protocols/query/internal/marshall/QueryProtocolMarshaller.java b/core/protocols/aws-query-protocol/src/main/java/software/amazon/awssdk/protocols/query/internal/marshall/QueryProtocolMarshaller.java index 518ed1685e54..96e7904c9bd0 100644 --- a/core/protocols/aws-query-protocol/src/main/java/software/amazon/awssdk/protocols/query/internal/marshall/QueryProtocolMarshaller.java +++ b/core/protocols/aws-query-protocol/src/main/java/software/amazon/awssdk/protocols/query/internal/marshall/QueryProtocolMarshaller.java @@ -89,6 +89,7 @@ private static QueryMarshallerRegistry.Builder commonRegistry() { .marshaller(MarshallingType.BOOLEAN, SimpleTypeQueryMarshaller.BOOLEAN) .marshaller(MarshallingType.DOUBLE, SimpleTypeQueryMarshaller.DOUBLE) .marshaller(MarshallingType.LONG, SimpleTypeQueryMarshaller.LONG) + .marshaller(MarshallingType.SHORT, SimpleTypeQueryMarshaller.SHORT) .marshaller(MarshallingType.INSTANT, SimpleTypeQueryMarshaller.INSTANT) .marshaller(MarshallingType.SDK_BYTES, SimpleTypeQueryMarshaller.SDK_BYTES) .marshaller(MarshallingType.NULL, SimpleTypeQueryMarshaller.NULL) diff --git a/core/protocols/aws-query-protocol/src/main/java/software/amazon/awssdk/protocols/query/internal/marshall/SimpleTypeQueryMarshaller.java b/core/protocols/aws-query-protocol/src/main/java/software/amazon/awssdk/protocols/query/internal/marshall/SimpleTypeQueryMarshaller.java index 98fcdb53ea9d..652cefcdabf6 100644 --- a/core/protocols/aws-query-protocol/src/main/java/software/amazon/awssdk/protocols/query/internal/marshall/SimpleTypeQueryMarshaller.java +++ b/core/protocols/aws-query-protocol/src/main/java/software/amazon/awssdk/protocols/query/internal/marshall/SimpleTypeQueryMarshaller.java @@ -48,6 +48,8 @@ public final class SimpleTypeQueryMarshaller implements QueryMarshaller { public static final QueryMarshaller DOUBLE = new SimpleTypeQueryMarshaller<>(ValueToStringConverter.FROM_DOUBLE); public static final QueryMarshaller LONG = new SimpleTypeQueryMarshaller<>(ValueToStringConverter.FROM_LONG); + + public static final QueryMarshaller SHORT = new SimpleTypeQueryMarshaller<>(ValueToStringConverter.FROM_SHORT); public static final QueryMarshaller INSTANT = new SimpleTypeQueryMarshaller<>(InstantToString.create(defaultTimestampFormats())); diff --git a/core/protocols/aws-query-protocol/src/main/java/software/amazon/awssdk/protocols/query/internal/unmarshall/QueryProtocolUnmarshaller.java b/core/protocols/aws-query-protocol/src/main/java/software/amazon/awssdk/protocols/query/internal/unmarshall/QueryProtocolUnmarshaller.java index 8b4359bb8cdc..e1554e320c4e 100644 --- a/core/protocols/aws-query-protocol/src/main/java/software/amazon/awssdk/protocols/query/internal/unmarshall/QueryProtocolUnmarshaller.java +++ b/core/protocols/aws-query-protocol/src/main/java/software/amazon/awssdk/protocols/query/internal/unmarshall/QueryProtocolUnmarshaller.java @@ -46,6 +46,7 @@ public final class QueryProtocolUnmarshaller implements XmlErrorUnmarshaller { .unmarshaller(MarshallingType.STRING, new SimpleTypeQueryUnmarshaller<>(StringToValueConverter.TO_STRING)) .unmarshaller(MarshallingType.INTEGER, new SimpleTypeQueryUnmarshaller<>(StringToValueConverter.TO_INTEGER)) .unmarshaller(MarshallingType.LONG, new SimpleTypeQueryUnmarshaller<>(StringToValueConverter.TO_LONG)) + .unmarshaller(MarshallingType.SHORT, new SimpleTypeQueryUnmarshaller<>(StringToValueConverter.TO_SHORT)) .unmarshaller(MarshallingType.FLOAT, new SimpleTypeQueryUnmarshaller<>(StringToValueConverter.TO_FLOAT)) .unmarshaller(MarshallingType.DOUBLE, new SimpleTypeQueryUnmarshaller<>(StringToValueConverter.TO_DOUBLE)) .unmarshaller(MarshallingType.BOOLEAN, new SimpleTypeQueryUnmarshaller<>(StringToValueConverter.TO_BOOLEAN)) diff --git a/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/marshall/HeaderMarshaller.java b/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/marshall/HeaderMarshaller.java index 8ad1c8264242..8d377395d488 100644 --- a/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/marshall/HeaderMarshaller.java +++ b/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/marshall/HeaderMarshaller.java @@ -31,6 +31,8 @@ public final class HeaderMarshaller { public static final XmlMarshaller LONG = new SimpleHeaderMarshaller<>(ValueToStringConverter.FROM_LONG); + public static final XmlMarshaller SHORT = new SimpleHeaderMarshaller<>(ValueToStringConverter.FROM_SHORT); + public static final XmlMarshaller DOUBLE = new SimpleHeaderMarshaller<>(ValueToStringConverter.FROM_DOUBLE); public static final XmlMarshaller FLOAT = new SimpleHeaderMarshaller<>(ValueToStringConverter.FROM_FLOAT); diff --git a/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/marshall/QueryParamMarshaller.java b/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/marshall/QueryParamMarshaller.java index f7f905892af6..43bde6641d14 100644 --- a/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/marshall/QueryParamMarshaller.java +++ b/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/marshall/QueryParamMarshaller.java @@ -34,6 +34,8 @@ public final class QueryParamMarshaller { public static final XmlMarshaller LONG = new SimpleQueryParamMarshaller<>(ValueToStringConverter.FROM_LONG); + public static final XmlMarshaller SHORT = new SimpleQueryParamMarshaller<>(ValueToStringConverter.FROM_SHORT); + public static final XmlMarshaller DOUBLE = new SimpleQueryParamMarshaller<>(ValueToStringConverter.FROM_DOUBLE); public static final XmlMarshaller FLOAT = new SimpleQueryParamMarshaller<>(ValueToStringConverter.FROM_FLOAT); diff --git a/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/marshall/SimpleTypePathMarshaller.java b/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/marshall/SimpleTypePathMarshaller.java index 9e2620ee5e93..939885fd5ff0 100644 --- a/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/marshall/SimpleTypePathMarshaller.java +++ b/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/marshall/SimpleTypePathMarshaller.java @@ -32,6 +32,9 @@ public final class SimpleTypePathMarshaller { public static final XmlMarshaller LONG = new SimplePathMarshaller<>(ValueToStringConverter.FROM_LONG, PathMarshaller.NON_GREEDY); + public static final XmlMarshaller SHORT = + new SimplePathMarshaller<>(ValueToStringConverter.FROM_SHORT, PathMarshaller.NON_GREEDY); + /** * Marshallers for Strings bound to a greedy path param. No URL encoding is done on the string * so that it preserves the path structure. diff --git a/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/marshall/XmlPayloadMarshaller.java b/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/marshall/XmlPayloadMarshaller.java index b7a78f3ea4ca..ebf247c23812 100644 --- a/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/marshall/XmlPayloadMarshaller.java +++ b/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/marshall/XmlPayloadMarshaller.java @@ -43,6 +43,8 @@ public class XmlPayloadMarshaller { public static final XmlMarshaller LONG = new BasePayloadMarshaller<>(ValueToStringConverter.FROM_LONG); + public static final XmlMarshaller SHORT = new BasePayloadMarshaller<>(ValueToStringConverter.FROM_SHORT); + public static final XmlMarshaller FLOAT = new BasePayloadMarshaller<>(ValueToStringConverter.FROM_FLOAT); public static final XmlMarshaller DOUBLE = new BasePayloadMarshaller<>(ValueToStringConverter.FROM_DOUBLE); diff --git a/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/marshall/XmlProtocolMarshaller.java b/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/marshall/XmlProtocolMarshaller.java index 10b07ea0d795..0095e27e3860 100644 --- a/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/marshall/XmlProtocolMarshaller.java +++ b/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/marshall/XmlProtocolMarshaller.java @@ -155,6 +155,7 @@ private static XmlMarshallerRegistry createMarshallerRegistry() { .payloadMarshaller(MarshallingType.STRING, XmlPayloadMarshaller.STRING) .payloadMarshaller(MarshallingType.INTEGER, XmlPayloadMarshaller.INTEGER) .payloadMarshaller(MarshallingType.LONG, XmlPayloadMarshaller.LONG) + .payloadMarshaller(MarshallingType.SHORT, XmlPayloadMarshaller.SHORT) .payloadMarshaller(MarshallingType.FLOAT, XmlPayloadMarshaller.FLOAT) .payloadMarshaller(MarshallingType.DOUBLE, XmlPayloadMarshaller.DOUBLE) .payloadMarshaller(MarshallingType.BIG_DECIMAL, XmlPayloadMarshaller.BIG_DECIMAL) @@ -169,6 +170,7 @@ private static XmlMarshallerRegistry createMarshallerRegistry() { .headerMarshaller(MarshallingType.STRING, HeaderMarshaller.STRING) .headerMarshaller(MarshallingType.INTEGER, HeaderMarshaller.INTEGER) .headerMarshaller(MarshallingType.LONG, HeaderMarshaller.LONG) + .headerMarshaller(MarshallingType.SHORT, HeaderMarshaller.SHORT) .headerMarshaller(MarshallingType.DOUBLE, HeaderMarshaller.DOUBLE) .headerMarshaller(MarshallingType.FLOAT, HeaderMarshaller.FLOAT) .headerMarshaller(MarshallingType.BOOLEAN, HeaderMarshaller.BOOLEAN) @@ -179,6 +181,7 @@ private static XmlMarshallerRegistry createMarshallerRegistry() { .queryParamMarshaller(MarshallingType.STRING, QueryParamMarshaller.STRING) .queryParamMarshaller(MarshallingType.INTEGER, QueryParamMarshaller.INTEGER) .queryParamMarshaller(MarshallingType.LONG, QueryParamMarshaller.LONG) + .queryParamMarshaller(MarshallingType.SHORT, QueryParamMarshaller.SHORT) .queryParamMarshaller(MarshallingType.DOUBLE, QueryParamMarshaller.DOUBLE) .queryParamMarshaller(MarshallingType.FLOAT, QueryParamMarshaller.FLOAT) .queryParamMarshaller(MarshallingType.BOOLEAN, QueryParamMarshaller.BOOLEAN) @@ -190,6 +193,7 @@ private static XmlMarshallerRegistry createMarshallerRegistry() { .pathParamMarshaller(MarshallingType.STRING, SimpleTypePathMarshaller.STRING) .pathParamMarshaller(MarshallingType.INTEGER, SimpleTypePathMarshaller.INTEGER) .pathParamMarshaller(MarshallingType.LONG, SimpleTypePathMarshaller.LONG) + .pathParamMarshaller(MarshallingType.SHORT, SimpleTypePathMarshaller.SHORT) .pathParamMarshaller(MarshallingType.NULL, SimpleTypePathMarshaller.NULL) .greedyPathParamMarshaller(MarshallingType.STRING, SimpleTypePathMarshaller.GREEDY_STRING) diff --git a/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/unmarshall/HeaderUnmarshaller.java b/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/unmarshall/HeaderUnmarshaller.java index ac23dcad2220..08a2da0981aa 100644 --- a/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/unmarshall/HeaderUnmarshaller.java +++ b/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/unmarshall/HeaderUnmarshaller.java @@ -32,6 +32,7 @@ public final class HeaderUnmarshaller { public static final XmlUnmarshaller STRING = new SimpleHeaderUnmarshaller<>(StringToValueConverter.TO_STRING); public static final XmlUnmarshaller INTEGER = new SimpleHeaderUnmarshaller<>(StringToValueConverter.TO_INTEGER); public static final XmlUnmarshaller LONG = new SimpleHeaderUnmarshaller<>(StringToValueConverter.TO_LONG); + public static final XmlUnmarshaller SHORT = new SimpleHeaderUnmarshaller<>(StringToValueConverter.TO_SHORT); public static final XmlUnmarshaller FLOAT = new SimpleHeaderUnmarshaller<>(StringToValueConverter.TO_FLOAT); public static final XmlUnmarshaller DOUBLE = new SimpleHeaderUnmarshaller<>(StringToValueConverter.TO_DOUBLE); public static final XmlUnmarshaller BOOLEAN = new SimpleHeaderUnmarshaller<>(StringToValueConverter.TO_BOOLEAN); diff --git a/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/unmarshall/XmlPayloadUnmarshaller.java b/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/unmarshall/XmlPayloadUnmarshaller.java index c26a77e5f773..b9f695092d9f 100644 --- a/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/unmarshall/XmlPayloadUnmarshaller.java +++ b/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/unmarshall/XmlPayloadUnmarshaller.java @@ -37,6 +37,7 @@ public final class XmlPayloadUnmarshaller { public static final XmlUnmarshaller STRING = new SimpleTypePayloadUnmarshaller<>(StringToValueConverter.TO_STRING); public static final XmlUnmarshaller INTEGER = new SimpleTypePayloadUnmarshaller<>(StringToValueConverter.TO_INTEGER); public static final XmlUnmarshaller LONG = new SimpleTypePayloadUnmarshaller<>(StringToValueConverter.TO_LONG); + public static final XmlUnmarshaller SHORT = new SimpleTypePayloadUnmarshaller<>(StringToValueConverter.TO_SHORT); public static final XmlUnmarshaller FLOAT = new SimpleTypePayloadUnmarshaller<>(StringToValueConverter.TO_FLOAT); public static final XmlUnmarshaller DOUBLE = new SimpleTypePayloadUnmarshaller<>(StringToValueConverter.TO_DOUBLE); public static final XmlUnmarshaller BIG_DECIMAL = diff --git a/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/unmarshall/XmlProtocolUnmarshaller.java b/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/unmarshall/XmlProtocolUnmarshaller.java index ad3ffddc9365..d65dbacc708c 100644 --- a/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/unmarshall/XmlProtocolUnmarshaller.java +++ b/core/protocols/aws-xml-protocol/src/main/java/software/amazon/awssdk/protocols/xml/internal/unmarshall/XmlProtocolUnmarshaller.java @@ -144,6 +144,7 @@ private static XmlUnmarshallerRegistry createUnmarshallerRegistry() { .headerUnmarshaller(MarshallingType.STRING, HeaderUnmarshaller.STRING) .headerUnmarshaller(MarshallingType.INTEGER, HeaderUnmarshaller.INTEGER) .headerUnmarshaller(MarshallingType.LONG, HeaderUnmarshaller.LONG) + .headerUnmarshaller(MarshallingType.SHORT, HeaderUnmarshaller.SHORT) .headerUnmarshaller(MarshallingType.DOUBLE, HeaderUnmarshaller.DOUBLE) .headerUnmarshaller(MarshallingType.BOOLEAN, HeaderUnmarshaller.BOOLEAN) .headerUnmarshaller(MarshallingType.INSTANT, HeaderUnmarshaller.INSTANT) @@ -153,6 +154,7 @@ private static XmlUnmarshallerRegistry createUnmarshallerRegistry() { .payloadUnmarshaller(MarshallingType.STRING, XmlPayloadUnmarshaller.STRING) .payloadUnmarshaller(MarshallingType.INTEGER, XmlPayloadUnmarshaller.INTEGER) .payloadUnmarshaller(MarshallingType.LONG, XmlPayloadUnmarshaller.LONG) + .payloadUnmarshaller(MarshallingType.SHORT, XmlPayloadUnmarshaller.SHORT) .payloadUnmarshaller(MarshallingType.FLOAT, XmlPayloadUnmarshaller.FLOAT) .payloadUnmarshaller(MarshallingType.DOUBLE, XmlPayloadUnmarshaller.DOUBLE) .payloadUnmarshaller(MarshallingType.BIG_DECIMAL, XmlPayloadUnmarshaller.BIG_DECIMAL) diff --git a/core/protocols/protocol-core/src/main/java/software/amazon/awssdk/protocols/core/StringToValueConverter.java b/core/protocols/protocol-core/src/main/java/software/amazon/awssdk/protocols/core/StringToValueConverter.java index e1fe1d2ec73e..251456f50d5f 100644 --- a/core/protocols/protocol-core/src/main/java/software/amazon/awssdk/protocols/core/StringToValueConverter.java +++ b/core/protocols/protocol-core/src/main/java/software/amazon/awssdk/protocols/core/StringToValueConverter.java @@ -76,6 +76,8 @@ default T convert(String s, SdkField sdkField) { public static final SimpleStringToValue TO_LONG = Long::parseLong; + public static final SimpleStringToValue TO_SHORT = Short::parseShort; + public static final SimpleStringToValue TO_FLOAT = Float::parseFloat; public static final SimpleStringToValue TO_DOUBLE = Double::parseDouble; diff --git a/core/protocols/protocol-core/src/main/java/software/amazon/awssdk/protocols/core/ValueToStringConverter.java b/core/protocols/protocol-core/src/main/java/software/amazon/awssdk/protocols/core/ValueToStringConverter.java index 8dc35eb35bdd..508fbf618452 100644 --- a/core/protocols/protocol-core/src/main/java/software/amazon/awssdk/protocols/core/ValueToStringConverter.java +++ b/core/protocols/protocol-core/src/main/java/software/amazon/awssdk/protocols/core/ValueToStringConverter.java @@ -76,6 +76,8 @@ default String convert(T t, SdkField field) { public static final SimpleValueToString FROM_LONG = Object::toString; + public static final SimpleValueToString FROM_SHORT = Object::toString; + public static final SimpleValueToString FROM_FLOAT = Object::toString; public static final SimpleValueToString FROM_DOUBLE = Object::toString; diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/protocol/MarshallingType.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/protocol/MarshallingType.java index f2bf6a4eabe5..7319c438efd5 100644 --- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/protocol/MarshallingType.java +++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/protocol/MarshallingType.java @@ -60,6 +60,8 @@ public interface MarshallingType { MarshallingType> MAP = newType(Map.class); + MarshallingType SHORT = newType(Short.class); + Class getTargetClass(); static MarshallingType newType(Class clzz) { diff --git a/test/codegen-generated-classes-test/src/main/resources/codegen-resources/customresponsemetadata/service-2.json b/test/codegen-generated-classes-test/src/main/resources/codegen-resources/customresponsemetadata/service-2.json index 754f4aef4607..e5d71e6238c4 100644 --- a/test/codegen-generated-classes-test/src/main/resources/codegen-resources/customresponsemetadata/service-2.json +++ b/test/codegen-generated-classes-test/src/main/resources/codegen-resources/customresponsemetadata/service-2.json @@ -224,6 +224,7 @@ "FloatMember":{"shape":"Float"}, "DoubleMember":{"shape":"Double"}, "LongMember":{"shape":"Long"}, + "ShortMember":{"shape":"Short"}, "EnumMember":{"shape":"EnumType"}, "SimpleList":{"shape":"ListOfStrings"}, "ListOfEnums":{"shape":"ListOfEnums"}, @@ -343,6 +344,7 @@ "member":{"shape":"EnumType"} }, "Long":{"type":"long"}, + "Short":{"type":"short"}, "MapOfStringToIntegerList":{ "type":"map", "key":{"shape":"String"}, @@ -405,6 +407,11 @@ "location":"header", "locationName":"x-amz-long" }, + "ShortMember":{ + "shape":"Short", + "location":"header", + "locationName":"x-amz-short" + }, "FloatMember":{ "shape":"Float", "location":"header", @@ -445,6 +452,11 @@ "location":"querystring", "locationName":"Long" }, + "ShortQueryParam":{ + "shape":"Short", + "location":"querystring", + "locationName":"Short" + }, "FloatQueryParam":{ "shape":"Float", "location":"querystring", diff --git a/test/codegen-generated-classes-test/src/main/resources/codegen-resources/query/service-2.json b/test/codegen-generated-classes-test/src/main/resources/codegen-resources/query/service-2.json index dd33760a8e8e..161000b0e994 100644 --- a/test/codegen-generated-classes-test/src/main/resources/codegen-resources/query/service-2.json +++ b/test/codegen-generated-classes-test/src/main/resources/codegen-resources/query/service-2.json @@ -178,6 +178,7 @@ "FloatMember":{"shape":"Float"}, "DoubleMember":{"shape":"Double"}, "LongMember":{"shape":"Long"}, + "ShortMember":{"shape":"Short"}, "EnumMember":{"shape":"EnumType"}, "SimpleList":{"shape":"ListOfStrings"}, "ListOfEnums":{"shape":"ListOfEnums"}, @@ -292,6 +293,7 @@ "member":{"shape":"EnumType"} }, "Long":{"type":"long"}, + "Short":{"type":"short"}, "MapOfStringToIntegerList":{ "type":"map", "key":{"shape":"String"}, @@ -354,6 +356,11 @@ "location":"header", "locationName":"x-amz-long" }, + "ShortMember":{ + "shape":"Short", + "location":"header", + "locationName":"x-amz-short" + }, "FloatMember":{ "shape":"Float", "location":"header", @@ -394,6 +401,11 @@ "location":"querystring", "locationName":"Long" }, + "ShortQueryParam":{ + "shape":"Short", + "location":"querystring", + "locationName":"Short" + }, "FloatQueryParam":{ "shape":"Float", "location":"querystring", diff --git a/test/codegen-generated-classes-test/src/main/resources/codegen-resources/waiters/service-2.json b/test/codegen-generated-classes-test/src/main/resources/codegen-resources/waiters/service-2.json index a5e3a6c46462..4e651925d5b0 100644 --- a/test/codegen-generated-classes-test/src/main/resources/codegen-resources/waiters/service-2.json +++ b/test/codegen-generated-classes-test/src/main/resources/codegen-resources/waiters/service-2.json @@ -219,6 +219,7 @@ "FloatMember":{"shape":"Float"}, "DoubleMember":{"shape":"Double"}, "LongMember":{"shape":"Long"}, + "ShortMember":{"shape":"Short"}, "BigDecimalMember":{"shape":"NumericValue"}, "SimpleList":{"shape":"ListOfStrings"}, "ListOfMaps":{"shape":"ListOfMapStringToString"}, @@ -286,6 +287,11 @@ "location":"header", "locationName":"x-amz-long" }, + "ShortHeader":{ + "shape":"Short", + "location":"header", + "locationName":"x-amz-short" + }, "DoubleHeader":{ "shape":"Double", "location":"header", @@ -354,6 +360,7 @@ "StringMember":{"shape":"String"}, "IntegerMember":{"shape":"Integer"}, "LongMember":{"shape":"Long"}, + "ShortMember":{"shape":"Short"}, "DoubleMember":{"shape":"Double"}, "FloatMember":{"shape":"Float"}, "TimestampMember":{"shape":"Timestamp"}, @@ -439,6 +446,7 @@ "member":{"shape":"String"} }, "Long":{"type":"long"}, + "Short":{"type":"short"}, "MapOfEnumToEnum":{ "type":"map", "key":{"shape":"EnumType"}, @@ -501,6 +509,11 @@ "location":"header", "locationName":"x-amz-long" }, + "ShortMember":{ + "shape":"Short", + "location":"header", + "locationName":"x-amz-short" + }, "FloatMember":{ "shape":"Float", "location":"header", @@ -546,6 +559,11 @@ "location":"querystring", "locationName":"Long" }, + "ShortQueryParam":{ + "shape":"Short", + "location":"querystring", + "locationName":"Short" + }, "FloatQueryParam":{ "shape":"Float", "location":"querystring", diff --git a/test/codegen-generated-classes-test/src/main/resources/codegen-resources/xml/service-2.json b/test/codegen-generated-classes-test/src/main/resources/codegen-resources/xml/service-2.json index 44a7a4395de4..0113b97ea7ba 100644 --- a/test/codegen-generated-classes-test/src/main/resources/codegen-resources/xml/service-2.json +++ b/test/codegen-generated-classes-test/src/main/resources/codegen-resources/xml/service-2.json @@ -198,6 +198,7 @@ "FloatMember":{"shape":"Float"}, "DoubleMember":{"shape":"Double"}, "LongMember":{"shape":"Long"}, + "ShortMember":{"shape":"Short"}, "EnumMember":{"shape":"EnumType"}, "SimpleList":{"shape":"ListOfStrings"}, "ListOfEnums":{"shape":"ListOfEnums"}, @@ -312,6 +313,7 @@ "member":{"shape":"EnumType"} }, "Long":{"type":"long"}, + "Short":{"type":"short"}, "MapOfStringToIntegerList":{ "type":"map", "key":{"shape":"String"}, @@ -374,6 +376,11 @@ "location":"header", "locationName":"x-amz-long" }, + "ShortMember":{ + "shape":"Short", + "location":"header", + "locationName":"x-amz-short" + }, "FloatMember":{ "shape":"Float", "location":"header", @@ -414,6 +421,11 @@ "location":"querystring", "locationName":"Long" }, + "ShortQueryParam":{ + "shape":"Short", + "location":"querystring", + "locationName":"Short" + }, "FloatQueryParam":{ "shape":"Float", "location":"querystring", diff --git a/test/protocol-tests-core/src/main/java/software/amazon/awssdk/protocol/reflect/ShapeModelReflector.java b/test/protocol-tests-core/src/main/java/software/amazon/awssdk/protocol/reflect/ShapeModelReflector.java index 88eb31d98837..dc7400bdac32 100644 --- a/test/protocol-tests-core/src/main/java/software/amazon/awssdk/protocol/reflect/ShapeModelReflector.java +++ b/test/protocol-tests-core/src/main/java/software/amazon/awssdk/protocol/reflect/ShapeModelReflector.java @@ -221,6 +221,8 @@ private Object getSimpleMemberValue(JsonNode currentNode, MemberModel memberMode switch (memberModel.getVariable().getSimpleType()) { case "Long": return currentNode.asLong(); + case "Short": + return (short) currentNode.asInt(); case "Integer": return currentNode.asInt(); case "String": diff --git a/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/json-core-input.json b/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/json-core-input.json index 3ffc5434c5b5..6a5e2905c85d 100644 --- a/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/json-core-input.json +++ b/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/json-core-input.json @@ -9,7 +9,8 @@ "FloatMember": 1.234, "DoubleMember": 5.678, "BigDecimalMember": 1177.61699999, - "LongMember": 2147483647 + "LongMember": 2147483647, + "ShortMember": 5 } }, "when": { @@ -19,7 +20,7 @@ "then": { "serializedAs": { "body": { - "jsonEquals": "{\"StringMember\":\"someVal\",\"IntegerMember\":42,\"FloatMember\":1.234,\"DoubleMember\":5.678,\"BigDecimalMember\":\"1177.61699999\",\"LongMember\":2147483647}" + "jsonEquals": "{\"StringMember\":\"someVal\",\"IntegerMember\":42,\"FloatMember\":1.234,\"DoubleMember\":5.678,\"BigDecimalMember\":\"1177.61699999\",\"LongMember\":2147483647,\"ShortMember\":5}" } } } diff --git a/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/json-core-output.json b/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/json-core-output.json index 512ca8e72063..f76074b34a82 100644 --- a/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/json-core-output.json +++ b/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/json-core-output.json @@ -5,7 +5,7 @@ "given": { "response": { "status_code": 200, - "body": "{\"StringMember\": \"myname\", \"IntegerMember\": 123, \"FloatMember\": 1.2, \"DoubleMember\": 1.3, \"LongMember\": 200,\"BigDecimalMember\":1177.61699999}" + "body": "{\"StringMember\": \"myname\", \"IntegerMember\": 123, \"FloatMember\": 1.2, \"DoubleMember\": 1.3, \"LongMember\": 200,\"BigDecimalMember\":1177.61699999, \"ShortMember\":5}" } }, "when": { @@ -19,7 +19,8 @@ "FloatMember": 1.2, "DoubleMember": 1.3, "LongMember": 200, - "BigDecimalMember": 1177.61699999 + "BigDecimalMember": 1177.61699999, + "ShortMember": 5 } } }, diff --git a/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/query-input.json b/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/query-input.json index f53b37d10fdb..fc9683dcd37b 100644 --- a/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/query-input.json +++ b/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/query-input.json @@ -52,7 +52,8 @@ "integerMember": 50, "floatMember": 1.234, "doubleMember": 5.678, - "longMember": 100 + "longMember": 100, + "shortMember": 4 } }, "when": { @@ -67,7 +68,8 @@ "integerMember": 50, "floatMember": 1.234, "doubleMember": 5.678, - "longMember": 100 + "longMember": 100, + "shortMember": 4 } } } diff --git a/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/query-output.json b/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/query-output.json index 16393491838b..4329d6d52c1a 100644 --- a/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/query-output.json +++ b/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/query-output.json @@ -4,7 +4,7 @@ "given": { "response": { "status_code": 200, - "body": "stringVal421.2345.67890012015-01-25T08:00:12Zrequest-id" + "body": "stringVal421.2345.678900152015-01-25T08:00:12Zrequest-id" } }, "when": { @@ -18,6 +18,7 @@ "floatMember": 1.234, "doubleMember": 5.678, "longMember": 9001, + "shortMember": 5, "timestampMember": 1422172812000 } } diff --git a/test/protocol-tests/src/main/resources/codegen-resources/awsjson/service-2.json b/test/protocol-tests/src/main/resources/codegen-resources/awsjson/service-2.json index e0ab7d7fa4da..e9d1a8f65503 100644 --- a/test/protocol-tests/src/main/resources/codegen-resources/awsjson/service-2.json +++ b/test/protocol-tests/src/main/resources/codegen-resources/awsjson/service-2.json @@ -72,6 +72,7 @@ "DoubleMember":{"shape":"Double"}, "BigDecimalMember":{"shape":"NumericValue"}, "LongMember":{"shape":"Long"}, + "ShortMember":{"shape":"Short"}, "SimpleList":{"shape":"ListOfStrings"}, "ListOfMaps":{"shape":"ListOfMapStringToString"}, "ListOfStructs":{"shape":"ListOfSimpleStructs"}, @@ -121,6 +122,7 @@ ] }, "Float":{"type":"float"}, + "Short":{"type":"short"}, "FurtherNestedContainersStructure":{ "type":"structure", "members":{ @@ -142,6 +144,7 @@ "StringMember":{"shape":"String"}, "IntegerMember":{"shape":"Integer"}, "LongMember":{"shape":"Long"}, + "ShortMember":{"shape":"Short"}, "DoubleMember":{"shape":"Double"}, "FloatMember":{"shape":"Float"}, "TimestampMember":{"shape":"Timestamp"}, diff --git a/test/protocol-tests/src/main/resources/codegen-resources/ec2/service-2.json b/test/protocol-tests/src/main/resources/codegen-resources/ec2/service-2.json index 680b1a4644ea..50176eaf6da4 100644 --- a/test/protocol-tests/src/main/resources/codegen-resources/ec2/service-2.json +++ b/test/protocol-tests/src/main/resources/codegen-resources/ec2/service-2.json @@ -53,6 +53,7 @@ "floatMember":{"shape":"Float"}, "doubleMember":{"shape":"Double"}, "longMember":{"shape":"Long"}, + "shortMember":{"shape":"Short"}, "simpleStructMember":{"shape":"SimpleStruct"}, "simpleList":{"shape":"ListOfStrings"}, "listOfStructs":{"shape":"ListOfSimpleStructs"}, @@ -134,6 +135,7 @@ "member":{"shape":"String"} }, "Long":{"type":"long"}, + "Short":{"type":"short"}, "SimpleStruct":{ "type":"structure", "members":{ @@ -153,6 +155,7 @@ "StringMember":{"shape":"String"}, "IntegerMember":{"shape":"Integer"}, "LongMember":{"shape":"Long"}, + "ShortMember":{"shape":"Short"}, "DoubleMember":{"shape":"Double"}, "FloatMember":{"shape":"Float"}, "TimestampMember":{"shape":"Timestamp"}, diff --git a/test/protocol-tests/src/main/resources/codegen-resources/query/service-2.json b/test/protocol-tests/src/main/resources/codegen-resources/query/service-2.json index 1b6ca8ae1d40..934ce562522c 100644 --- a/test/protocol-tests/src/main/resources/codegen-resources/query/service-2.json +++ b/test/protocol-tests/src/main/resources/codegen-resources/query/service-2.json @@ -78,6 +78,7 @@ "floatMember":{"shape":"Float"}, "doubleMember":{"shape":"Double"}, "longMember":{"shape":"Long"}, + "shortMember":{"shape":"Short"}, "simpleStructMember":{"shape":"SimpleStruct"}, "simpleList":{"shape":"ListOfStrings"}, "listOfStructs":{"shape":"ListOfSimpleStructs"}, @@ -157,6 +158,7 @@ "member":{"shape":"String"} }, "Long":{"type":"long"}, + "Short":{"type":"short"}, "MapOfStringToString":{ "type":"map", "key":{"shape":"String"}, @@ -217,6 +219,7 @@ "StringMember":{"shape":"String"}, "IntegerMember":{"shape":"Integer"}, "LongMember":{"shape":"Long"}, + "ShortMember":{"shape":"Short"}, "DoubleMember":{"shape":"Double"}, "FloatMember":{"shape":"Float"}, "TimestampMember":{"shape":"Timestamp"}, diff --git a/test/protocol-tests/src/main/resources/codegen-resources/restjson/service-2.json b/test/protocol-tests/src/main/resources/codegen-resources/restjson/service-2.json index 8beae49151fe..d4990c104381 100644 --- a/test/protocol-tests/src/main/resources/codegen-resources/restjson/service-2.json +++ b/test/protocol-tests/src/main/resources/codegen-resources/restjson/service-2.json @@ -219,6 +219,7 @@ "FloatMember":{"shape":"Float"}, "DoubleMember":{"shape":"Double"}, "LongMember":{"shape":"Long"}, + "ShortMember":{"shape":"Short"}, "BigDecimalMember":{"shape":"NumericValue"}, "SimpleList":{"shape":"ListOfStrings"}, "ListOfMaps":{"shape":"ListOfMapStringToString"}, @@ -286,6 +287,11 @@ "location":"header", "locationName":"x-amz-long" }, + "ShortHeader":{ + "shape":"Short", + "location":"header", + "locationName":"x-amz-short" + }, "DoubleHeader":{ "shape":"Double", "location":"header", @@ -354,6 +360,7 @@ "StringMember":{"shape":"String"}, "IntegerMember":{"shape":"Integer"}, "LongMember":{"shape":"Long"}, + "ShortMember":{"shape":"Short"}, "DoubleMember":{"shape":"Double"}, "FloatMember":{"shape":"Float"}, "TimestampMember":{"shape":"Timestamp"}, @@ -439,6 +446,7 @@ "member":{"shape":"String"} }, "Long":{"type":"long"}, + "Short":{"type":"short"}, "MapOfEnumToEnum":{ "type":"map", "key":{"shape":"EnumType"}, @@ -501,6 +509,11 @@ "location":"header", "locationName":"x-amz-long" }, + "ShortMember":{ + "shape":"Short", + "location":"header", + "locationName":"x-amz-short" + }, "FloatMember":{ "shape":"Float", "location":"header", @@ -546,6 +559,11 @@ "location":"querystring", "locationName":"Long" }, + "ShortQueryParam":{ + "shape":"Short", + "location":"querystring", + "locationName":"Short" + }, "FloatQueryParam":{ "shape":"Float", "location":"querystring", diff --git a/test/protocol-tests/src/main/resources/codegen-resources/restxml/service-2.json b/test/protocol-tests/src/main/resources/codegen-resources/restxml/service-2.json index bd1e5514dd4b..cac67bf99cae 100644 --- a/test/protocol-tests/src/main/resources/codegen-resources/restxml/service-2.json +++ b/test/protocol-tests/src/main/resources/codegen-resources/restxml/service-2.json @@ -139,6 +139,7 @@ "floatMember":{"shape":"Float"}, "doubleMember":{"shape":"Double"}, "longMember":{"shape":"Long"}, + "shortMember":{"shape":"Short"}, "simpleStructMember":{"shape":"SimpleStruct"}, "simpleList":{"shape":"ListOfStrings"}, "listOfStructs":{"shape":"ListOfSimpleStructs"}, @@ -239,6 +240,7 @@ "member":{"shape":"String"} }, "Long":{"type":"long"}, + "Short":{"type":"short"}, "MapOfStringToListOfStringInQueryParamsInput":{ "type":"structure", "members":{ @@ -281,6 +283,11 @@ "location":"header", "locationName":"x-amz-long" }, + "ShortMember":{ + "shape":"Short", + "location":"header", + "locationName":"x-amz-short" + }, "FloatMember":{ "shape":"Float", "location":"header", @@ -326,6 +333,11 @@ "location":"querystring", "locationName":"Long" }, + "ShortQueryParam":{ + "shape":"Short", + "location":"querystring", + "locationName":"Short" + }, "FloatQueryParam":{ "shape":"Float", "location":"querystring", @@ -529,6 +541,7 @@ "StringMember":{"shape":"String"}, "IntegerMember":{"shape":"Integer"}, "LongMember":{"shape":"Long"}, + "ShortMember":{"shape":"Short"}, "DoubleMember":{"shape":"Double"}, "FloatMember":{"shape":"Float"}, "TimestampMember":{"shape":"Timestamp"}, @@ -558,6 +571,11 @@ "location":"header", "locationName":"x-amz-long" }, + "ShortHeader":{ + "shape":"Short", + "location":"header", + "locationName":"x-amz-short" + }, "DoubleHeader":{ "shape":"Double", "location":"header",