code: @Override
      public CreateStreamResult createStream(CreateStreamRequest request) {
          request = beforeClientExecution(request);
          return executeCreateStream(request);
      }
docs: <p>
  Creates a new Kinesis video stream.
  </p>
  <p>
  When you create a new stream, Kinesis Video Streams assigns it a version number. When you change the stream's
  metadata, Kinesis Video Streams updates the version.
  </p>
  <p>
  <code>CreateStream</code> is an asynchronous operation.
  </p>
  <p>
  For information about how the service works, see <a
  href="https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/how-it-works.html">How it Works</a>.
  </p>
  <p>
  You must have permissions for the <code>KinesisVideo:CreateStream</code> action.
  </p>
  
  @param createStreamRequest
  @return Result of the CreateStream operation returned by the service.
  @throws AccountStreamLimitExceededException
  The number of streams created for the account is too high.
  @throws DeviceStreamLimitExceededException
  Not implemented.
  @throws ResourceInUseException
  The stream is currently not available for this operation.
  @throws InvalidDeviceException
  Not implemented.
  @throws InvalidArgumentException
  The value for this input parameter is invalid.
  @throws ClientLimitExceededException
  Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client
  calls. Try making the call later.
  @throws TagsPerResourceExceededLimitException
  You have exceeded the limit of tags that you can associate with the resource. Kinesis video streams
  support up to 50 tags.
  @sample AmazonKinesisVideo.CreateStream
  @see <a href="http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/CreateStream" target="_top">AWS API
  Documentation</a>