{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2016-03-11",
    "endpointPrefix":"restjson",
    "jsonVersion":"1.1",
    "protocol":"rest-json",
    "serviceAbbreviation":"RestJsonProtocolTests",
    "serviceFullName":"AWS DR Tools Rest JSON Protocol Tests",
    "serviceId":"ProtocolRestJson",
    "signatureVersion":"v4",
    "targetPrefix":"ProtocolTestsService",
    "uid":"restjson-2016-03-11"
  },
  "operations":{
    "AllTypes":{
      "name":"AllTypes",
      "http":{
        "method":"POST",
        "requestUri":"/2016-03-11/allTypes"
      },
      "input":{"shape":"AllTypesStructure"},
      "output":{"shape":"AllTypesStructure"},
      "errors":[
        {"shape":"EmptyModeledException"},
        {"shape":"ExplicitPayloadAndHeadersException"},
        {"shape":"ImplicitPayloadException"}
      ]
    },
    "DeleteOperation":{
      "name":"DeleteOperation",
      "http":{
        "method":"DELETE",
        "requestUri":"/2016-03-11/deleteOperation"
      }
    },
    "FurtherNestedContainers":{
      "name":"FurtherNestedContainers",
      "http":{
        "method":"POST",
        "requestUri":"/2016-03-11/furtherNestedContainers"
      },
      "input":{"shape":"FurtherNestedContainersStructure"},
      "output":{"shape":"FurtherNestedContainersStructure"}
    },
    "GetOperationWithBody":{
      "name":"GetOperationWithBody",
      "http":{
        "method":"GET",
        "requestUri":"/2016-03-11/getOperationWithBody"
      },
      "input":{"shape":"GetOperationWithBodyInput"}
    },
    "HeadOperation":{
      "name":"HeadOperation",
      "http":{
        "method":"HEAD",
        "requestUri":"/2016-03-11/headOperation"
      }
    },
    "IdempotentOperation":{
      "name":"IdempotentOperation",
      "http":{
        "method":"POST",
        "requestUri":"/2016-03-11/idempotentOperation/{PathParam}"
      },
      "input":{"shape":"IdempotentOperationStructure"}
    },
    "JsonValuesOperation":{
      "name":"JsonValuesOperation",
      "http":{
        "method":"POST",
        "requestUri":"/2016-03-11/JsonValuesStructure"
      },
      "input":{"shape":"JsonValuesStructure"},
      "output":{"shape":"JsonValuesStructure"},
      "errors":[
        {"shape":"EmptyModeledException"}
      ]
    },
    "MapOfStringToListOfStringInQueryParams":{
      "name":"MapOfStringToListOfStringInQueryParams",
      "http":{
        "method":"POST",
        "requestUri":"/2016-03-11/mapOfStringToListOfStringInQueryParams"
      },
      "input":{"shape":"MapOfStringToListOfStringInQueryParamsInput"}
    },
    "MembersInHeaders":{
      "name":"MembersInHeaders",
      "http":{
        "method":"POST",
        "requestUri":"/2016-03-11/membersInHeaders"
      },
      "input":{"shape":"MembersInHeadersStructure"},
      "output":{"shape":"MembersInHeadersStructure"}
    },
    "MembersInQueryParams":{
      "name":"MembersInQueryParams",
      "http":{
        "method":"GET",
        "requestUri":"/2016-03-11/membersInQueryParams?StaticQueryParam=foo"
      },
      "input":{"shape":"MembersInQueryParamsInput"},
      "output":{"shape":"MembersInQueryParamsInput"}
    },
    "MultiLocationOperation":{
      "name":"MultiLocationOperation",
      "http":{
        "method":"POST",
        "requestUri":"/2016-03-11/multiLocationOperation/{PathParam}"
      },
      "input":{"shape":"MultiLocationOperationInput"},
      "output":{"shape":"MultiLocationOperationInput"}
    },
    "NestedContainers":{
      "name":"NestedContainers",
      "http":{
        "method":"POST",
        "requestUri":"/2016-03-11/nestedContainers"
      },
      "input":{"shape":"NestedContainersStructure"},
      "output":{"shape":"NestedContainersStructure"}
    },
    "OperationWithExplicitPayloadBlob":{
      "name":"OperationWithExplicitPayloadBlob",
      "http":{
        "method":"POST",
        "requestUri":"/2016-03-11/operationWithExplicitPayloadBlob"
      },
      "input":{"shape":"OperationWithExplicitPayloadBlobInput"},
      "output":{"shape":"OperationWithExplicitPayloadBlobInput"}
    },
    "OperationWithExplicitPayloadString":{
      "name":"OperationWithExplicitPayloadString",
      "http":{
        "method":"POST",
        "requestUri":"/2016-03-11/operationWithExplicitPayloadString"
      },
      "input":{"shape":"OperationWithExplicitPayloadStringInput"},
      "output":{"shape":"OperationWithExplicitPayloadStringInput"}
    },
    "OperationWithExplicitPayloadStructure":{
      "name":"OperationWithExplicitPayloadStructure",
      "http":{
        "method":"POST",
        "requestUri":"/2016-03-11/operationWithExplicitPayloadStructure"
      },
      "input":{"shape":"OperationWithExplicitPayloadStructureInput"},
      "output":{"shape":"OperationWithExplicitPayloadStructureInput"}
    },
    "OperationWithGreedyLabel":{
      "name":"OperationWithGreedyLabel",
      "http":{
        "method":"POST",
        "requestUri":"/2016-03-11/operationWithGreedyLabel/{NonGreedyPathParam}/{GreedyPathParam+}"
      },
      "input":{"shape":"OperationWithGreedyLabelInput"}
    },
    "OperationWithModeledContentType":{
      "name":"OperationWithModeledContentType",
      "http":{
        "method":"POST",
        "requestUri":"/2016-03-11/operationWithModeledContentType"
      },
      "input":{"shape":"OperationWithModeledContentTypeInput"}
    },
    "OperationWithNoInputOrOutput":{
      "name":"OperationWithNoInputOrOutput",
      "http":{
        "method":"POST",
        "requestUri":"/2016-03-11/operationWithNoInputOrOutput"
      }
    },
    "QueryParamWithoutValue":{
      "name":"QueryParamWithoutValue",
      "http":{
        "method":"POST",
        "requestUri":"/2016-03-11/queryParamWithoutValue?param"
      },
      "input":{"shape":"QueryParamWithoutValueInput"}
    },
    "StatusCodeInOutputOperation":{
      "name":"StatusCodeInOutputOperation",
      "http":{
        "method":"GET",
        "requestUri":"/2016-03-11/statusCodeInOutput"
      },
      "output":{"shape":"StatusCodeInOutputStructure"}
    },
    "StreamingInputOperation":{
      "name":"StreamingInputOperation",
      "http":{
        "method":"POST",
        "requestUri":"/2016-03-11/streamingInputOperation"
      },
      "input":{"shape":"StructureWithStreamingMember"}
    },
    "StreamingInputOperationChunkedEncoding":{
      "name":"StreamingInputOperationChunkedEncoding",
      "http":{
        "method":"POST",
        "requestUri":"/2016-03-11/streamingInputOperationChunkedEncoding"
      },
      "input":{"shape":"StructureWithStreamingMemberChunkedEncoding"},
      "authtype":"v4-unsigned-body"
    },
    "StreamingOutputOperation":{
      "name":"StreamingOutputOperation",
      "http":{
        "method":"POST",
        "requestUri":"/2016-03-11/streamingOutputOperation"
      },
      "output":{"shape":"StructureWithStreamingMember"}
    },
    "EventStreamOperation": {
      "name": "EventStreamOperation",
      "http": {
        "method": "POST",
        "requestUri": "/2016-03-11/eventStreamOperation"
      },
      "input": {
        "shape": "EventStreamOperationRequest"
      },
      "output": {
        "shape": "EventStreamOutput"
      }
    },
    "EventStreamStringPayloadOperation": {
      "name": "EventStreamStringPayloadOperation",
      "http": {
        "method": "POST",
        "requestUri": "/2016-03-11/eventStreamStringPayloadOperation"
      },
      "input": {
        "shape": "EventStreamStringPayloadOperationRequest"
      },
      "output": {
        "shape": "EventStreamOutput"
      }
    },
    "DocumentInputOperation":{
      "name":"DocumentInputOperation",
      "http":{
        "method":"POST",
        "requestUri":"/2016-03-11/documentInputOperation"
      },
      "input":{"shape":"StructureWithDocumentMember"}
    }
  },
  "shapes":{
    "AllTypesStructure":{
      "type":"structure",
      "members":{
        "StringMember":{"shape":"String"},
        "IntegerMember":{"shape":"Integer"},
        "BooleanMember":{"shape":"Boolean"},
        "FloatMember":{"shape":"Float"},
        "DoubleMember":{"shape":"Double"},
        "LongMember":{"shape":"Long"},
        "ShortMember":{"shape":"Short"},
        "BigDecimalMember":{"shape":"NumericValue"},
        "SimpleList":{"shape":"ListOfStrings"},
        "ListOfMaps":{"shape":"ListOfMapStringToString"},
        "ListOfStructs":{"shape":"ListOfSimpleStructs"},
        "MapOfStringToIntegerList":{"shape":"MapOfStringToIntegerList"},
        "MapOfStringToString":{"shape":"MapOfStringToString"},
        "MapOfStringToStruct":{"shape":"MapOfStringToSimpleStruct"},
        "TimestampMember":{"shape":"Timestamp"},
        "StructWithNestedTimestampMember":{"shape":"StructWithTimestamp"},
        "TimestampFormatMember":{"shape":"IsoTimestamp"},
        "BlobArg":{"shape":"BlobType"},
        "StructWithNestedBlob":{"shape":"StructWithNestedBlobType"},
        "BlobMap":{"shape":"BlobMapType"},
        "ListOfBlobs":{"shape":"ListOfBlobsType"},
        "RecursiveStruct":{"shape":"RecursiveStructType"},
        "PolymorphicTypeWithSubTypes":{"shape":"BaseType"},
        "PolymorphicTypeWithoutSubTypes":{"shape":"SubTypeOne"},
        "EnumMember":{"shape":"EnumType"},
        "ListOfEnums":{"shape":"ListOfEnums"},
        "MapOfEnumToEnum":{"shape":"MapOfEnumToEnum"},
        "ListOfTimeStamp":{"shape":"ListOfTimeStamp"},
        "MapOfTimeStamp":{"shape":"MapOfTimeStamp"},
        "MyDocument":{"shape":"MyDocument"},
        "UnionMember":{"shape":"AllTypesUnionStructure"}
      }
    },
    "BaseType":{
      "type":"structure",
      "members":{
        "BaseMember":{"shape":"String"}
      }
    },
    "BlobMapType":{
      "type":"map",
      "key":{"shape":"String"},
      "value":{"shape":"BlobType"}
    },
    "BlobType":{"type":"blob"},
    "Boolean":{"type":"boolean"},
    "Double":{"type":"double"},
    "EmptyModeledException":{
      "type":"structure",
      "members":{
      },
      "exception":true
    },
    "EnumType":{
      "type":"string",
      "enum":[
        "EnumValue1",
        "EnumValue2"
      ]
    },
    "ExplicitPayloadAndHeadersException":{
      "type":"structure",
      "members":{
        "StringHeader":{
          "shape":"String",
          "location":"header",
          "locationName":"x-amz-string"
        },
        "IntegerHeader":{
          "shape":"Integer",
          "location":"header",
          "locationName":"x-amz-integer"
        },
        "LongHeader":{
          "shape":"Long",
          "location":"header",
          "locationName":"x-amz-long"
        },
        "ShortHeader":{
          "shape":"Short",
          "location":"header",
          "locationName":"x-amz-short"
        },
        "DoubleHeader":{
          "shape":"Double",
          "location":"header",
          "locationName":"x-amz-double"
        },
        "FloatHeader":{
          "shape":"Float",
          "location":"header",
          "locationName":"x-amz-float"
        },
        "TimestampHeader":{
          "shape":"Timestamp",
          "location":"header",
          "locationName":"x-amz-timestamp"
        },
        "BooleanHeader":{
          "shape":"Boolean",
          "location":"header",
          "locationName":"x-amz-boolean"
        },
        "PayloadMember":{"shape":"SimpleStruct"}
      },
      "exception":true,
      "payload":"PayloadMember"
    },
    "Float":{"type":"float"},
    "FurtherNestedContainersStructure":{
      "type":"structure",
      "members":{
        "ListOfNested":{"shape":"ListOfNested"}
      }
    },
    "GetOperationWithBodyInput":{
      "type":"structure",
      "members":{
        "StringMember":{"shape":"String"}
      }
    },
    "IdempotentOperationStructure":{
      "type":"structure",
      "required":["PathIdempotentToken"],
      "members":{
        "PathIdempotentToken":{
          "shape":"String",
          "idempotencyToken":true,
          "location":"uri",
          "locationName":"PathParam"
        },
        "QueryIdempotentToken":{
          "shape":"String",
          "idempotencyToken":true,
          "location":"querystring",
          "locationName":"QueryParam"
        },
        "HeaderIdempotentToken":{
          "shape":"String",
          "idempotencyToken":true,
          "location":"header",
          "locationName":"x-amz-idempotent-header"
        }
      }
    },
    "ImplicitPayloadException":{
      "type":"structure",
      "members":{
        "StringMember":{"shape":"String"},
        "IntegerMember":{"shape":"Integer"},
        "LongMember":{"shape":"Long"},
        "ShortMember":{"shape":"Short"},
        "DoubleMember":{"shape":"Double"},
        "FloatMember":{"shape":"Float"},
        "TimestampMember":{"shape":"Timestamp"},
        "BooleanMember":{"shape":"Boolean"},
        "BlobMember":{"shape":"BlobType"},
        "ListMember":{"shape":"ListOfStrings"},
        "MapMember":{"shape":"MapOfStringToString"},
        "SimpleStructMember":{"shape":"SimpleStruct"}
      },
      "exception":true
    },
    "Integer":{"type":"integer"},
    // Shape is customized to BigDecimal in customization.config
    "NumericValue": {
      "type": "string",
      "pattern":"([0-9]*\\.)?[0-9]+"
    },
    "IsoTimestamp":{
      "type":"timestamp",
      "timestampFormat":"iso8601"
    },
    "UnixTimestamp":{
      "type":"timestamp",
      "timestampFormat":"unixTimestamp"
    },
    "JsonValuesStructure":{
      "type":"structure",
      "members":{
        "JsonValueHeaderMember":{
          "shape":"String",
          "jsonvalue":true,
          "location":"header",
          "locationName":"Encoded-Header"
        },
        "JsonValueMember":{
          "shape":"String",
          "jsonvalue":true
        }
      }
    },
    "ListOfAllTypesStructs":{
      "type":"list",
      "member":{"shape":"AllTypesStructure"}
    },
    "ListOfBlobsType":{
      "type":"list",
      "member":{"shape":"BlobType"}
    },
    "ListOfEnums":{
      "type":"list",
      "member":{"shape":"EnumType"}
    },
    "ListOfIntegers":{
      "type":"list",
      "member":{"shape":"Integer"}
    },
    "ListOfListOfListsOfStrings":{
      "type":"list",
      "member":{"shape":"ListOfListsOfStrings"}
    },
    "ListOfListsOfAllTypesStructs":{
      "type":"list",
      "member":{"shape":"ListOfAllTypesStructs"}
    },
    "ListOfListsOfStrings":{
      "type":"list",
      "member":{"shape":"ListOfStrings"}
    },
    "ListOfListsOfStructs":{
      "type":"list",
      "member":{"shape":"ListOfSimpleStructs"}
    },
    "ListOfMapStringToString":{
      "type":"list",
      "member":{"shape":"MapOfStringToString"}
    },
    "ListOfNested":{
      "type":"list",
      "member":{"shape":"NestedContainersStructure"}
    },
    "ListOfSimpleStructs":{
      "type":"list",
      "member":{"shape":"SimpleStruct"}
    },
    "ListOfStrings":{
      "type":"list",
      "member":{"shape":"String"}
    },
    "Long":{"type":"long"},
    "Short":{"type":"short"},
    "MapOfEnumToEnum":{
      "type":"map",
      "key":{"shape":"EnumType"},
      "value":{"shape":"EnumType"}
    },
    "MapOfStringToIntegerList":{
      "type":"map",
      "key":{"shape":"String"},
      "value":{"shape":"ListOfIntegers"}
    },
    "MapOfStringToListOfListsOfStrings":{
      "type":"map",
      "key":{"shape":"String"},
      "value":{"shape":"ListOfListsOfStrings"}
    },
    "MapOfStringToListOfStringInQueryParamsInput":{
      "type":"structure",
      "members":{
        "MapOfStringToListOfStrings":{
          "shape":"MapOfStringToListOfStrings",
          "location":"querystring"
        }
      }
    },
    "MapOfStringToListOfStrings":{
      "type":"map",
      "key":{"shape":"String"},
      "value":{"shape":"ListOfStrings"}
    },
    "MapOfStringToSimpleStruct":{
      "type":"map",
      "key":{"shape":"String"},
      "value":{"shape":"SimpleStruct"}
    },
    "MapOfStringToString":{
      "type":"map",
      "key":{"shape":"String"},
      "value":{"shape":"String"}
    },
    "MembersInHeadersStructure":{
      "type":"structure",
      "members":{
        "StringMember":{
          "shape":"String",
          "location":"header",
          "locationName":"x-amz-string"
        },
        "ListOfStringsMember":{
          "shape":"ListOfStrings",
          "location":"header",
          "locationName":"x-amz-string-list"
        },
        "BooleanMember":{
          "shape":"Boolean",
          "location":"header",
          "locationName":"x-amz-boolean"
        },
        "IntegerMember":{
          "shape":"Integer",
          "location":"header",
          "locationName":"x-amz-integer"
        },
        "LongMember":{
          "shape":"Long",
          "location":"header",
          "locationName":"x-amz-long"
        },
        "ShortMember":{
          "shape":"Short",
          "location":"header",
          "locationName":"x-amz-short"
        },
        "FloatMember":{
          "shape":"Float",
          "location":"header",
          "locationName":"x-amz-float"
        },
        "DoubleMember":{
          "shape":"Double",
          "location":"header",
          "locationName":"x-amz-double"
        },
        "TimestampMember":{
          "shape":"Timestamp",
          "location":"header",
          "locationName":"x-amz-timestamp"
        },
        "IsoTimestampMember":{
          "shape":"IsoTimestamp",
          "location":"header",
          "locationName":"x-amz-iso-timestamp"
        }
      }
    },
    "MembersInQueryParamsInput":{
      "type":"structure",
      "members":{
        "StringQueryParam":{
          "shape":"String",
          "location":"querystring",
          "locationName":"String"
        },
        "BooleanQueryParam":{
          "shape":"Boolean",
          "location":"querystring",
          "locationName":"Boolean"
        },
        "IntegerQueryParam":{
          "shape":"Integer",
          "location":"querystring",
          "locationName":"Integer"
        },
        "LongQueryParam":{
          "shape":"Long",
          "location":"querystring",
          "locationName":"Long"
        },
        "ShortQueryParam":{
          "shape":"Short",
          "location":"querystring",
          "locationName":"Short"
        },
        "FloatQueryParam":{
          "shape":"Float",
          "location":"querystring",
          "locationName":"Float"
        },
        "DoubleQueryParam":{
          "shape":"Double",
          "location":"querystring",
          "locationName":"Double"
        },
        "TimestampQueryParam":{
          "shape":"Timestamp",
          "location":"querystring",
          "locationName":"Timestamp"
        },
        "ListOfStrings":{
          "shape":"ListOfStrings",
          "location":"querystring",
          "locationName":"item"
        },
        "MapOfStringToString":{
          "shape":"MapOfStringToString",
          "location":"querystring"
        }
      }
    },
    "MultiLocationOperationInput":{
      "type":"structure",
      "required":["PathParam"],
      "members":{
        "PathParam":{
          "shape":"String",
          "location":"uri",
          "locationName":"PathParam"
        },
        "QueryParamOne":{
          "shape":"String",
          "location":"querystring",
          "locationName":"QueryParamOne"
        },
        "QueryParamTwo":{
          "shape":"String",
          "location":"querystring",
          "locationName":"QueryParamTwo"
        },
        "StringHeaderMember":{
          "shape":"String",
          "location":"header",
          "locationName":"x-amz-header-string"
        },
        "TimestampHeaderMember":{
          "shape":"Timestamp",
          "location":"header",
          "locationName":"x-amz-timearg"
        },
        "PayloadStructParam":{"shape":"PayloadStructType"}
      }
    },
    "NestedContainersStructure":{
      "type":"structure",
      "members":{
        "ListOfListsOfStrings":{"shape":"ListOfListsOfStrings"},
        "ListOfListsOfStructs":{"shape":"ListOfListsOfStructs"},
        "ListOfListsOfAllTypesStructs":{"shape":"ListOfListsOfAllTypesStructs"},
        "ListOfListOfListsOfStrings":{"shape":"ListOfListOfListsOfStrings"},
        "MapOfStringToListOfListsOfStrings":{"shape":"MapOfStringToListOfListsOfStrings"},
        "StringMember":{"shape":"String"}
      }
    },
    "OperationWithExplicitPayloadBlobInput":{
      "type":"structure",
      "members":{
        "PayloadMember":{"shape":"BlobType"}
      },
      "payload":"PayloadMember"
    },
    "OperationWithExplicitPayloadStringInput":{
      "type":"structure",
      "members":{
        "PayloadMember":{"shape":"String"}
      },
      "payload":"PayloadMember"
    },
    "OperationWithExplicitPayloadStructureInput":{
      "type":"structure",
      "members":{
        "PayloadMember":{"shape":"SimpleStruct"}
      },
      "payload":"PayloadMember"
    },
    "OperationWithGreedyLabelInput":{
      "type":"structure",
      "required":[
        "NonGreedyPathParam",
        "GreedyPathParam"
      ],
      "members":{
        "NonGreedyPathParam":{
          "shape":"String",
          "location":"uri",
          "locationName":"NonGreedyPathParam"
        },
        "GreedyPathParam":{
          "shape":"String",
          "location":"uri",
          "locationName":"GreedyPathParam"
        }
      }
    },
    "OperationWithModeledContentTypeInput":{
      "type":"structure",
      "members":{
        "ContentType":{
          "shape":"String",
          "location":"header",
          "locationName":"Content-Type"
        }
      }
    },
    "PayloadStructType":{
      "type":"structure",
      "members":{
        "PayloadMemberOne":{"shape":"String"},
        "PayloadMemberTwo":{"shape":"String"}
      }
    },
    "QueryParamWithoutValueInput":{
      "type":"structure",
      "members":{
      }
    },
    "RecursiveListType":{
      "type":"list",
      "member":{"shape":"RecursiveStructType"}
    },
    "RecursiveMapType":{
      "type":"map",
      "key":{"shape":"String"},
      "value":{"shape":"RecursiveStructType"}
    },
    "RecursiveStructType":{
      "type":"structure",
      "members":{
        "NoRecurse":{"shape":"String"},
        "RecursiveStruct":{"shape":"RecursiveStructType"},
        "RecursiveList":{"shape":"RecursiveListType"},
        "RecursiveMap":{"shape":"RecursiveMapType"}
      }
    },
    "SimpleStruct":{
      "type":"structure",
      "members":{
        "StringMember":{"shape":"String"}
      }
    },
    "StatusCodeInOutputStructure":{
      "type":"structure",
      "members":{
        "StatusCodeMember":{
          "shape":"Integer",
          "location":"statusCode"
        }
      }
    },
    "StreamType":{
      "type":"blob",
      "streaming":true,
      "requiresLength":true
    },
    "StreamTypeChunkedEncoding":{
      "type":"blob",
      "streaming":true,
      "requiresLength":false
    },
    "String":{"type":"string"},
    "StructWithNestedBlobType":{
      "type":"structure",
      "members":{
        "NestedBlob":{"shape":"BlobType"}
      }
    },
    "StructWithTimestamp":{
      "type":"structure",
      "members":{
        "NestedTimestamp":{"shape":"Timestamp"}
      }
    },
    "StructureWithStreamingMember":{
      "type":"structure",
      "members":{
        "StreamingMember":{"shape":"StreamType"}
      },
      "payload":"StreamingMember"
    },
    "StructureWithStreamingMemberChunkedEncoding":{
      "type":"structure",
      "members":{
        "StreamingMember":{"shape":"StreamTypeChunkedEncoding"}
      },
      "payload":"StreamingMember"
    },
    "SubTypeOne":{
      "type":"structure",
      "members":{
        "SubTypeOneMember":{"shape":"String"}
      }
    },
    "Timestamp":{"type":"timestamp"},
    "ListOfTimeStamp":{
      "type":"list",
      "member":{"shape":"UnixTimestamp"}
    },
    "MapOfTimeStamp":{
      "type":"map",
      "key":{"shape":"String"},
      "value":{"shape":"UnixTimestamp"}
    },
    "EventStreamOperationRequest": {
      "type": "structure",
      "required": [
        "InputEventStream"
      ],
      "members": {
        "InputEventStream": {
          "shape": "InputEventStream"
        }
      },
      "payload":"InputEventStream"
    },
    "EventStreamStringPayloadOperationRequest": {
      "type": "structure",
      "required": [
        "InputEventStream"
      ],
      "members": {
        "InputEventStreamStringPayload": {
          "shape": "InputEventStreamStringPayload"
        }
      },
      "payload":"InputEventStreamStringPayload"
    },
    "EventStreamOutput": {
      "type": "structure",
      "required": [
        "EventStream"
      ],
      "members": {
        "EventStream": {
          "shape": "EventStream"
        }
      }
    },
    "InputEventStream": {
      "type": "structure",
      "members": {
        "InputEvent": {
          "shape": "InputEvent"
        }
      },
      "eventstream": true
    },
    "InputEventStreamStringPayload": {
      "type": "structure",
      "members": {
        "InputEvent": {
          "shape": "InputEventStringPayload"
        }
      },
      "eventstream": true
    },
    "InputEvent": {
      "type": "structure",
      "members": {
        "ExplicitPayloadMember": {
          "shape":"ExplicitPayloadMember",
          "eventpayload":true
        },
        "HeaderMember": {
          "shape": "String",
          "eventheader": true
        }
      },
      "event": true
    },
    "InputEventStringPayload": {
      "type": "structure",
      "members": {
        "ExplicitPayloadStringMember": {
          "shape":"String",
          "eventpayload":true
        },
        "HeaderMember": {
          "shape": "String",
          "eventheader": true
        }
      },
      "event": true
    },
    "ExplicitPayloadMember":{"type":"blob"},
    "EventStream": {
      "type": "structure",
      "members": {
        "EventOne": {
          "shape": "EventOne"
        },
        "EventTwo": {
          "shape": "EventTwo"
        }
      },
      "eventstream": true
    },
    "EventOne": {
      "type": "structure",
      "members": {
        "Foo": {
          "shape": "String"
        }
      },
      "event": true
    },
    "EventTwo": {
      "type": "structure",
      "members": {
        "Bar": {
          "shape": "String"
        }
      },
      "event": true
    },
    "MyDocument": {
      "type": "structure",
      "document": true
    },
    "StructureWithDocumentMember":{
      "type":"structure",
      "members":{
        "DocumentMember":{"shape":"MyDocument"}
      }
    },
    "AllTypesUnionStructure": {
      "type": "structure",
      "union": true,
      "members": {
        "StringMember": {
          "shape": "String"
        },
        "IntegerMember": {
          "shape": "Integer"
        },
        "BooleanMember": {
          "shape": "Boolean"
        },
        "FloatMember": {
          "shape": "Float"
        },
        "DoubleMember": {
          "shape": "Double"
        },
        "LongMember": {
          "shape": "Long"
        },
        "ShortMember": {
          "shape": "Short"
        },
        "EnumMember": {
          "shape": "EnumType"
        },
        "SimpleList": {
          "shape": "ListOfStrings"
        },
        "ListOfEnums": {
          "shape": "ListOfEnums"
        },
        "ListOfMaps": {
          "shape": "ListOfMapStringToString"
        },
        "ListOfStructs": {
          "shape": "ListOfSimpleStructs"
        },
        "MapOfStringToIntegerList": {
          "shape": "MapOfStringToIntegerList"
        },
        "MapOfStringToString": {
          "shape": "MapOfStringToString"
        },
        "MapOfStringToStruct": {
          "shape": "MapOfStringToSimpleStruct"
        },
        "MapOfEnumToEnum": {
          "shape": "MapOfEnumToEnum"
        },
        "TimestampMember": {
          "shape": "Timestamp"
        },
        "StructWithNestedTimestampMember": {
          "shape": "StructWithTimestamp"
        },
        "BlobArg": {
          "shape": "BlobType"
        },
        "StructWithNestedBlob": {
          "shape": "StructWithNestedBlobType"
        },
        "BlobMap": {
          "shape": "BlobMapType"
        },
        "ListOfBlobs": {
          "shape": "ListOfBlobsType"
        },
        "RecursiveStruct": {
          "shape": "RecursiveStructType"
        },
        "PolymorphicTypeWithSubTypes": {
          "shape": "BaseType"
        },
        "PolymorphicTypeWithoutSubTypes": {
          "shape": "SubTypeOne"
        },
        "SetPrefixedMember": {
          "shape": "String"
        },
        "UnionMember": {
          "shape": "AllTypesUnionStructure"
        }
      }
    }
  }
}
