code: public JsonObject prepare() {
  		if (channel != null) {
  			slackMessage.addProperty(CHANNEL, channel);
  		}
  
  		if (username != null) {
  			slackMessage.addProperty(USERNAME, username);
  		}
  
  		if (icon != null) {
  			if (icon.contains(HTTP)) {
  				slackMessage.addProperty(ICON_URL, icon);
  			} else {
  				slackMessage.addProperty(ICON_EMOJI, icon);
  			}
  		}
  
  		slackMessage.addProperty(UNFURL_MEDIA, unfurlMedia);
  		slackMessage.addProperty(UNFURL_LINKS, unfurlLinks);
  		slackMessage.addProperty(LINK_NAMES, linkNames);
  
  		if (text == null) {
  			throw new IllegalArgumentException("Missing Text field @ SlackMessage");
  		} else {
  			slackMessage.addProperty(TEXT, text);
  		}
  
  		if (!attach.isEmpty()) {
  			slackMessage.add(ATTACHMENTS, this.prepareAttach());
  		}
  
  		return slackMessage;
  	}
docs: Convert SlackMessage to JSON
  
  @return JsonObject