code: @Override
      public TagDeliveryStreamResult tagDeliveryStream(TagDeliveryStreamRequest request) {
          request = beforeClientExecution(request);
          return executeTagDeliveryStream(request);
      }
docs: <p>
  Adds or updates tags for the specified delivery stream. A tag is a key-value pair 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. Tags are metadata. For example, you can add friendly names and descriptions or other
  types of information that can help you distinguish the delivery stream. For more information about tags, 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>
  Each delivery stream can have up to 50 tags.
  </p>
  <p>
  This operation has a limit of five transactions per second per account.
  </p>
  
  @param tagDeliveryStreamRequest
  @return Result of the TagDeliveryStream operation returned by the service.
  @throws ResourceNotFoundException
  The specified resource could not be found.
  @throws ResourceInUseException
  The resource is already in use and not available for this operation.
  @throws InvalidArgumentException
  The specified input parameter has a value that is not valid.
  @throws LimitExceededException
  You have already reached the limit for a requested resource.
  @sample AmazonKinesisFirehose.TagDeliveryStream
  @see <a href="http://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/TagDeliveryStream" target="_top">AWS API
  Documentation</a>