{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2016-03-11",
    "endpointPrefix":"eventstream-rest-json",
    "jsonVersion":"1.1",
    "protocol":"rest-json",
    "serviceAbbreviation":"EventStreamRestJson",
    "serviceFullName":"Event Stream Rest Json",
    "serviceId":"EventStreamRestJson",
    "signatureVersion":"v4",
    "targetPrefix":"ProtocolTestsService",
    "timestampFormat":"unixTimestamp",
    "uid":"restjson-2016-03-11"
  },
  "operations":{
    "EventStreamOperation": {
      "name": "EventStreamOperation",
      "http": {
        "method": "POST",
        "requestUri": "/2016-03-11/eventStreamOperation"
      },
      "input": {
        "shape": "EventStreamOperationRequest"
      },
      "output": {
        "shape": "EventStreamOutput"
      }
    }
  },
  "shapes":{
    "EventStreamOperationRequest": {
      "type": "structure",
      "required": [
        "InputEventStream"
      ],
      "members": {
        "InputEventStream": {
          "shape": "InputEventStream"
        }
      },
      "payload":"InputEventStream"
    },
    "EventStreamOutput": {
      "type": "structure",
      "required": [
        "EventStream"
      ],
      "members": {
        "EventStream": {
          "shape": "EventStream"
        }
      }
    },
    "InputEventStream": {
      "type": "structure",
      "members": {
        "InputEvent": {
          "shape": "InputEvent"
        },
        "InputEventB": {
          "shape": "InputEvent"
        },
        "InputEventTwo": {
          "shape": "InputEventTwo"
        }
      },
      "eventstream": true
    },
    "InputEvent": {
      "type": "structure",
      "members": {
        "ExplicitPayloadMember": {
          "shape":"ExplicitPayloadMember",
          "eventpayload":true
        }
      },
      "event": true
    },
    "InputEventTwo": {
      "type": "structure",
      "members": {
        "ExplicitPayloadMember": {
          "shape":"ExplicitPayloadMember",
          "eventpayload":true
        }
      },
      "event": true
    },

    "ExplicitPayloadMember":{"type":"blob"},
    "EventStream": {
      "type": "structure",
      "members": {
        "TheEventOne": {
          "shape": "EventOne"
        },
        "LegacyGeneratedEvent": {
          "shape": "EventOne"
        },
        "EventTwo": {
          "shape": "EventTwo"
        },
        "SecondEventTwo": {
          "shape": "EventTwo"
        }
      },
      "eventstream": true
    },
    "EventOne": {
      "type": "structure",
      "members": {
        "Foo": {
          "shape": "String"
        }
      },
      "event": true
    },
    "EventTwo": {
      "type": "structure",
      "members": {
        "Bar": {
          "shape": "String"
        }
      },
      "event": true
    },
    "String": {
      "type":"string"
    }
  }
}
