Skip to content

Instantly share code, notes, and snippets.

@sposmen
Forked from chrishamant/kinesis-2013-11-04.js
Last active December 29, 2015 10:29
Show Gist options
  • Save sposmen/7657693 to your computer and use it in GitHub Desktop.
Save sposmen/7657693 to your computer and use it in GitHub Desktop.
DEPRECATED - Actually AWS-SDK-JS has kinesis support

Its relatively easy to stub in support for new services using their sdks. I have an application I'm trying this service out with and have stubbed rudimentary support for this service.

Just fetch this library locally, install the deps and npm link it.

  • copy kinesis-2013-11-04.js to lib/services/api/kinesis-2013-11-04.js
  • copy kinesis.js to lib/services/kinesis.js
  • you'll also need to add the line 'require('./services/kinesis');' to lib/services.js Since this is a json based api this pretty much works how I want it - only nag is I have to manually base64 encode/decode a Buffer for the 'Data' field of 'putRecord'

The service definition is really woefully incomplete with only input parameters specified for 'createStream','describeStream','getNextRecords','getShardIterator','listStreams' and 'putRecord' - you'll have to add the parameters for the other operations yourself if needed. I didn't waste too much time doing this cause I'm pretty sure this stuff just gets automagically generated from a service definition somehow. Hopefully they'll add this new definition in soon!

module.exports = {
format: 'json',
apiVersion: '2013-11-04',
endpointPrefix: 'kinesis',
jsonVersion: '1.1',
serviceFullName: 'Amazon Kinesis',
signatureVersion: 'v4',
targetPrefix: 'Kinesis_20131104',
timestampFormat: 'iso8601',
operations: {
createStream : {
name: 'CreateStream',
input: {
type: 'structure',
members: {
ShardCount : {
required : true,
type : 'integer'
},
StreamName : {
required : true
}
}
},
output: {
type: 'structure',
members: {}
}
},
deleteStream : {
name: 'DeleteStream',
input: {
type: 'structure',
members: {}
},
output: {
type: 'structure',
members: {}
}
},
describeStream : {
name: 'DescribeStream',
input: {
type: 'structure',
members: {
ExclusiveStartShardId : {
required : false
},
Limit : {
required : false
},
StreamName : {
required : true
}
}
},
output: {
type: 'structure',
members: {}
}
},
getNextRecords : {
name: 'GetNextRecords',
input: {
type: 'structure',
members: {
Limit : {
required : false
},
ShardIterator : {
required : true
}
}
},
output: {
type: 'structure',
members: {}
}
},
getShardIterator : {
name: 'GetShardIterator',
input: {
type: 'structure',
members: {
StartingSequenceNumber : {
required : false
},
ShardId : {
required : true
},
ShardIteratorType : {
required : true
},
StreamName : {
required : true
}
}
},
output: {
type: 'structure',
members: {}
}
},
listStreams : {
name: 'ListStreams',
input: {
type: 'structure',
members: {}
},
output: {
type: 'structure',
members: {}
}
},
mergeShards : {
name: 'MergeShards',
input: {
type: 'structure',
members: {}
},
output: {
type: 'structure',
members: {}
}
},
putRecord : {
name: 'PutRecord',
input: {
type: 'structure',
members: {
Data : {
required : true,
type : 'base64'
},
PartitionKey : {
required : true
},
StreamName : {
required : true
},
ExclusiveMinimumSequenceNumber : {
required : false
},
ExplicitHashKey : {
required : false
}
}
},
output: {
type: 'structure',
members: {}
}
},
splitShard : {
name: 'SplitShard',
input: {
type: 'structure',
members: {}
},
output: {
type: 'structure',
members: {}
}
}
},
pagination: {
}
};
var AWS = require('../core');
AWS.Kinesis = AWS.Service.defineService('kinesis', ['2013-11-04']);
module.exports = AWS.Kinesis;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment