'use strict'
const WKResource = require('./../resource').WKResource
const ResourceAttribute = require('./../resourceattribute').ResourceAttribute
const ResourceAttributeArray = require('./../resourceattribute').ResourceAttributeArray
const tag = require('./../tag')
const types = require('./../types')
/** @module Kinesis */
/** @memberof module:Kinesis
* @extends WKResource
* @property {String} Name Required: No. The name of the Amazon Kinesis stream. If you don't specify a name, AWS CloudFormation generates a unique physical
ID and uses that ID for the stream name. For more information, see
Name Type.ImportantIf you specify a name, you cannot do updates that require this resource to be replaced.
You can still do updates that require no or some interruption. If you must replace the resource, specify a new name.
Update requires: Replacement
* @property {Number} ShardCount Required: Yes. The number of shards that the stream uses. For greater provisioned throughput,
increase the number of shards.Update requires: Replacement
* @property {AWSCloudFormationResourceTags} Tags Required: No. An arbitrary set of tags (key–value pairs) to associate with the Amazon Kinesis
stream.Update requires: No interruption
*/
class Stream extends WKResource {
constructor (name, propertiesObject) {
let resourceType = 'AWS::Kinesis::Stream'
let properties = {
Name: new ResourceAttribute('Name', String, 'No', null),
ShardCount: new ResourceAttribute('ShardCount', Number, 'Yes', null),
Tags: new tag.TagSet()
}
super(name, resourceType, properties, propertiesObject)
}
}
module.exports = { Stream: Stream
}