{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2017-09-30",
    "endpointPrefix":"kinesisvideo",
    "protocol":"rest-json",
    "serviceAbbreviation":"Kinesis Video Media",
    "serviceFullName":"Amazon Kinesis Video Streams Media",
    "serviceId":"Kinesis Video Media",
    "signatureVersion":"v4",
    "uid":"kinesis-video-media-2017-09-30"
  },
  "operations":{
    "GetMedia":{
      "name":"GetMedia",
      "http":{
        "method":"POST",
        "requestUri":"/getMedia"
      },
      "input":{"shape":"GetMediaInput"},
      "output":{"shape":"GetMediaOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"NotAuthorizedException"},
        {"shape":"InvalidEndpointException"},
        {"shape":"ClientLimitExceededException"},
        {"shape":"ConnectionLimitExceededException"},
        {"shape":"InvalidArgumentException"}
      ]
    }
  },
  "shapes":{
    "ClientLimitExceededException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"ErrorMessage"}
      },
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "ConnectionLimitExceededException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"ErrorMessage"}
      },
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "ContentType":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"^[a-zA-Z0-9_\\.\\-]+$"
    },
    "ContinuationToken":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"^[a-zA-Z0-9_\\.\\-]+$"
    },
    "ErrorMessage":{"type":"string"},
    "FragmentNumberString":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"^[0-9]+$"
    },
    "GetMediaInput":{
      "type":"structure",
      "required":["StartSelector"],
      "members":{
        "StreamName":{"shape":"StreamName"},
        "StreamARN":{"shape":"ResourceARN"},
        "StartSelector":{"shape":"StartSelector"}
      }
    },
    "GetMediaOutput":{
      "type":"structure",
      "members":{
        "ContentType":{
          "shape":"ContentType",
          "location":"header",
          "locationName":"Content-Type"
        },
        "Payload":{"shape":"Payload"}
      },
      "payload":"Payload"
    },
    "InvalidArgumentException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"ErrorMessage"}
      },
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "InvalidEndpointException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"ErrorMessage"}
      },
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "NotAuthorizedException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"ErrorMessage"}
      },
      "error":{"httpStatusCode":401},
      "exception":true
    },
    "Payload":{
      "type":"blob",
      "streaming":true
    },
    "ResourceARN":{
      "type":"string",
      "max":1024,
      "min":1,
      "pattern":"arn:aws:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+"
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"ErrorMessage"}
      },
      "error":{"httpStatusCode":404},
      "exception":true
    },
    "StartSelector":{
      "type":"structure",
      "required":["StartSelectorType"],
      "members":{
        "StartSelectorType":{"shape":"StartSelectorType"},
        "AfterFragmentNumber":{"shape":"FragmentNumberString"},
        "StartTimestamp":{"shape":"Timestamp"},
        "ContinuationToken":{"shape":"ContinuationToken"}
      }
    },
    "StartSelectorType":{
      "type":"string",
      "enum":[
        "FRAGMENT_NUMBER",
        "SERVER_TIMESTAMP",
        "PRODUCER_TIMESTAMP",
        "NOW",
        "EARLIEST",
        "CONTINUATION_TOKEN"
      ]
    },
    "StreamName":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[a-zA-Z0-9_.-]+"
    },
    "Timestamp":{"type":"timestamp"}
  }
}
