code: @Override
      public TagStreamResult tagStream(TagStreamRequest request) {
          request = beforeClientExecution(request);
          return executeTagStream(request);
      }
docs: <p>
  Adds one or more tags to a stream. A <i>tag</i> is a key-value pair (the value is optional) that you can define
  and assign to AWS resources. If you specify a tag that already exists, the tag value is replaced with the value
  that you specify in the request. For more information, see <a
  href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Using Cost Allocation
  Tags</a> in the <i>AWS Billing and Cost Management User Guide</i>.
  </p>
  <p>
  You must provide either the <code>StreamName</code> or the <code>StreamARN</code>.
  </p>
  <p>
  This operation requires permission for the <code>KinesisVideo:TagStream</code> action.
  </p>
  <p>
  Kinesis video streams support up to 50 tags.
  </p>
  
  @param tagStreamRequest
  @return Result of the TagStream operation returned by the service.
  @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 InvalidArgumentException
  The value for this input parameter is invalid.
  @throws ResourceNotFoundException
  Amazon Kinesis Video Streams can't find the stream that you specified.
  @throws NotAuthorizedException
  The caller is not authorized to perform this operation.
  @throws InvalidResourceFormatException
  The format of the <code>StreamARN</code> is invalid.
  @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.TagStream
  @see <a href="http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/TagStream" target="_top">AWS API
  Documentation</a>