{
  "metadata": {
    "apiVersion": "2013-12-02",
    "endpointPrefix": "kinesis",
    "jsonVersion": "1.1",
    "serviceAbbreviation": "Kinesis",
    "serviceFullName": "Amazon Kinesis",
    "signatureVersion": "v4",
    "targetPrefix": "Kinesis_20131202",
    "protocol": "json"
  },
  "operations": {
    "AddTagsToStream": {
      "input": {
        "type": "structure",
        "required": [
          "StreamName",
          "Tags"
        ],
        "members": {
          "StreamName": {},
          "Tags": {
            "type": "map",
            "key": {},
            "value": {}
          }
        }
      }
    },
    "CreateStream": {
      "input": {
        "type": "structure",
        "required": [
          "StreamName",
          "ShardCount"
        ],
        "members": {
          "StreamName": {},
          "ShardCount": {
            "type": "integer"
          }
        }
      }
    },
    "DeleteStream": {
      "input": {
        "type": "structure",
        "required": [
          "StreamName"
        ],
        "members": {
          "StreamName": {}
        }
      }
    },
    "DescribeStream": {
      "input": {
        "type": "structure",
        "required": [
          "StreamName"
        ],
        "members": {
          "StreamName": {},
          "Limit": {
            "type": "integer"
          },
          "ExclusiveStartShardId": {}
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "StreamDescription"
        ],
        "members": {
          "StreamDescription": {
            "type": "structure",
            "required": [
              "StreamName",
              "StreamARN",
              "StreamStatus",
              "Shards",
              "HasMoreShards"
            ],
            "members": {
              "StreamName": {},
              "StreamARN": {},
              "StreamStatus": {},
              "Shards": {
                "type": "list",
                "member": {
                  "type": "structure",
                  "required": [
                    "ShardId",
                    "HashKeyRange",
                    "SequenceNumberRange"
                  ],
                  "members": {
                    "ShardId": {},
                    "ParentShardId": {},
                    "AdjacentParentShardId": {},
                    "HashKeyRange": {
                      "type": "structure",
                      "required": [
                        "StartingHashKey",
                        "EndingHashKey"
                      ],
                      "members": {
                        "StartingHashKey": {},
                        "EndingHashKey": {}
                      }
                    },
                    "SequenceNumberRange": {
                      "type": "structure",
                      "required": [
                        "StartingSequenceNumber"
                      ],
                      "members": {
                        "StartingSequenceNumber": {},
                        "EndingSequenceNumber": {}
                      }
                    }
                  }
                }
              },
              "HasMoreShards": {
                "type": "boolean"
              }
            }
          }
        }
      }
    },
    "GetRecords": {
      "input": {
        "type": "structure",
        "required": [
          "ShardIterator"
        ],
        "members": {
          "ShardIterator": {},
          "Limit": {
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "Records"
        ],
        "members": {
          "Records": {
            "type": "list",
            "member": {
              "type": "structure",
              "required": [
                "SequenceNumber",
                "Data",
                "PartitionKey"
              ],
              "members": {
                "SequenceNumber": {},
                "Data": {
                  "type": "blob"
                },
                "PartitionKey": {}
              }
            }
          },
          "NextShardIterator": {}
        }
      }
    },
    "GetShardIterator": {
      "input": {
        "type": "structure",
        "required": [
          "StreamName",
          "ShardId",
          "ShardIteratorType"
        ],
        "members": {
          "StreamName": {},
          "ShardId": {},
          "ShardIteratorType": {},
          "StartingSequenceNumber": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "ShardIterator": {}
        }
      }
    },
    "ListStreams": {
      "input": {
        "type": "structure",
        "members": {
          "Limit": {
            "type": "integer"
          },
          "ExclusiveStartStreamName": {}
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "StreamNames",
          "HasMoreStreams"
        ],
        "members": {
          "StreamNames": {
            "type": "list",
            "member": {}
          },
          "HasMoreStreams": {
            "type": "boolean"
          }
        }
      }
    },
    "ListTagsForStream": {
      "input": {
        "type": "structure",
        "required": [
          "StreamName"
        ],
        "members": {
          "StreamName": {},
          "ExclusiveStartTagKey": {},
          "Limit": {
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "Tags",
          "HasMoreTags"
        ],
        "members": {
          "Tags": {
            "type": "list",
            "member": {
              "type": "structure",
              "required": [
                "Key"
              ],
              "members": {
                "Key": {},
                "Value": {}
              }
            }
          },
          "HasMoreTags": {
            "type": "boolean"
          }
        }
      }
    },
    "MergeShards": {
      "input": {
        "type": "structure",
        "required": [
          "StreamName",
          "ShardToMerge",
          "AdjacentShardToMerge"
        ],
        "members": {
          "StreamName": {},
          "ShardToMerge": {},
          "AdjacentShardToMerge": {}
        }
      }
    },
    "PutRecord": {
      "input": {
        "type": "structure",
        "required": [
          "StreamName",
          "Data",
          "PartitionKey"
        ],
        "members": {
          "StreamName": {},
          "Data": {
            "type": "blob"
          },
          "PartitionKey": {},
          "ExplicitHashKey": {},
          "SequenceNumberForOrdering": {}
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "ShardId",
          "SequenceNumber"
        ],
        "members": {
          "ShardId": {},
          "SequenceNumber": {}
        }
      }
    },
    "PutRecords": {
      "input": {
        "type": "structure",
        "required": [
          "Records",
          "StreamName"
        ],
        "members": {
          "Records": {
            "type": "list",
            "member": {
              "type": "structure",
              "required": [
                "Data",
                "PartitionKey"
              ],
              "members": {
                "Data": {
                  "type": "blob"
                },
                "ExplicitHashKey": {},
                "PartitionKey": {}
              }
            }
          },
          "StreamName": {}
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "Records"
        ],
        "members": {
          "FailedRecordCount": {
            "type": "integer"
          },
          "Records": {
            "type": "list",
            "member": {
              "type": "structure",
              "members": {
                "SequenceNumber": {},
                "ShardId": {},
                "ErrorCode": {},
                "ErrorMessage": {}
              }
            }
          }
        }
      }
    },
    "RemoveTagsFromStream": {
      "input": {
        "type": "structure",
        "required": [
          "StreamName",
          "TagKeys"
        ],
        "members": {
          "StreamName": {},
          "TagKeys": {
            "type": "list",
            "member": {}
          }
        }
      }
    },
    "SplitShard": {
      "input": {
        "type": "structure",
        "required": [
          "StreamName",
          "ShardToSplit",
          "NewStartingHashKey"
        ],
        "members": {
          "StreamName": {},
          "ShardToSplit": {},
          "NewStartingHashKey": {}
        }
      }
    }
  },
  "shapes": {}
}