public <T> ProtocolRequestMarshaller<T> createProtocolMarshaller(OperationInfo operationInfo, T origRequest) {
        return JsonProtocolMarshallerBuilder.<T>standard()
                .jsonGenerator(operationInfo.hasPayloadMembers() ? createGenerator() : StructuredJsonGenerator.NO_OP)
                .contentType(getContentType())
                .operationInfo(operationInfo)
                .originalRequest(origRequest)
                .marshallerOverride(MarshallLocation.PAYLOAD, MarshallingType.DATE,
                                    (val, generator) -> generator.writeValue(DateUtils.formatISO8601Date(val)))
                .emptyBodyMarshaller(EmptyBodyJsonMarshaller.NULL)
                .build();
    }
Protocol factory implementation for API Gateway clients.
aws-java-sdk-opensdk/src/main/java/com/amazonaws/opensdk/protect/protocol/ApiGatewayProtocolFactoryImpl.java