public SendMessageRequest withMessageGroupId(String messageGroupId) {
        setMessageGroupId(messageGroupId);
        return this;
    }
<p>
This parameter applies only to FIFO (first-in-first-out) queues.
</p>
<p>
The tag that specifies that a message belongs to a specific message group. Messages that belong to the same
message group are processed in a FIFO manner (however, messages in different message groups might be processed
out of order). To interleave multiple ordered streams within a single queue, use <code>MessageGroupId</code>
values (for example, session data for multiple users). In this scenario, multiple consumers can process the
queue, but the session data of each user is processed in a FIFO fashion.
</p>
<ul>
<li>
<p>
You must associate a non-empty <code>MessageGroupId</code> with a message. If you don't provide a
<code>MessageGroupId</code>, the action fails.
</p>
</li>
<li>
<p>
<code>ReceiveMessage</code> might return messages with multiple <code>MessageGroupId</code> values. For each
<code>MessageGroupId</code>, the messages are sorted by time sent. The caller can't specify a
<code>MessageGroupId</code>.
</p>
</li>
</ul>
<p>
The maximum length of <code>MessageGroupId</code> is 128 characters. Valid values: alphanumeric characters and
punctuation <code>(!"#$%&amp;'()*+,-./:;&lt;=&gt;?@[\]^_`{|}~)</code>.
</p>
<p>
For best practices of using <code>MessageGroupId</code>, see <a href=
"https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagegroupid-property.html"
>Using the MessageGroupId Property</a> in the <i>Amazon SQS Developer Guide</i>.
</p>
<important>
<p>
<code>MessageGroupId</code> is required for FIFO queues. You can't use it for Standard queues.
</p>
</important>

@param messageGroupId
       This parameter applies only to FIFO (first-in-first-out) queues.</p>
       <p>
       The tag that specifies that a message belongs to a specific message group. Messages that belong to the
       same message group are processed in a FIFO manner (however, messages in different message groups might be
       processed out of order). To interleave multiple ordered streams within a single queue, use
       <code>MessageGroupId</code> values (for example, session data for multiple users). In this scenario,
       multiple consumers can process the queue, but the session data of each user is processed in a FIFO
       fashion.
       </p>
       <ul>
       <li>
       <p>
       You must associate a non-empty <code>MessageGroupId</code> with a message. If you don't provide a
       <code>MessageGroupId</code>, the action fails.
       </p>
       </li>
       <li>
       <p>
       <code>ReceiveMessage</code> might return messages with multiple <code>MessageGroupId</code> values. For
       each <code>MessageGroupId</code>, the messages are sorted by time sent. The caller can't specify a
       <code>MessageGroupId</code>.
       </p>
       </li>
       </ul>
       <p>
       The maximum length of <code>MessageGroupId</code> is 128 characters. Valid values: alphanumeric characters
       and punctuation <code>(!"#$%&amp;'()*+,-./:;&lt;=&gt;?@[\]^_`{|}~)</code>.
       </p>
       <p>
       For best practices of using <code>MessageGroupId</code>, see <a href=
       "https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagegroupid-property.html"
       >Using the MessageGroupId Property</a> in the <i>Amazon SQS Developer Guide</i>.
       </p>
       <important>
       <p>
       <code>MessageGroupId</code> is required for FIFO queues. You can't use it for Standard queues.
       </p>
@return Returns a reference to this object so that method calls can be chained together.
aws-java-sdk-sqs/src/main/java/com/amazonaws/services/sqs/model/SendMessageRequest.java