code: func (b *Broker) receiveMessage(qURL *string) (*awssqs.ReceiveMessageOutput, error) {
  	var waitTimeSeconds int
  	var visibilityTimeout *int
  	if b.GetConfig().SQS != nil {
  		waitTimeSeconds = b.GetConfig().SQS.WaitTimeSeconds
  		visibilityTimeout = b.GetConfig().SQS.VisibilityTimeout
  	} else {
  		waitTimeSeconds = 0
  	}
  	input := &awssqs.ReceiveMessageInput{
  		AttributeNames: []*string{
  			aws.String(awssqs.MessageSystemAttributeNameSentTimestamp),
  		},
  		MessageAttributeNames: []*string{
  			aws.String(awssqs.QueueAttributeNameAll),
  		},
  		QueueUrl:            qURL,
  		MaxNumberOfMessages: aws.Int64(1),
  		WaitTimeSeconds:     aws.Int64(int64(waitTimeSeconds)),
  	}
  	if visibilityTimeout != nil {
  		input.VisibilityTimeout = aws.Int64(int64(*visibilityTimeout))
  	}
  	result, err := b.service.ReceiveMessage(input)
  	if err != nil {
  		return nil, err
  	}
  	return result, err
  }
docs: // receiveMessage is a method receives a message from specified queue url