Repository: slackapi/java-slack-sdk
Issue: Hint for a Modal Surface's Input block

### Issue Type

Place an `x` in one of the `[ ]`.

- [x] Bug
- [ ] Enhancement / Feature request
- [ ] Question
- [ ] Documentation

### Description
According to the [Slack Block kit Reference for Layout blocks](https://api.slack.com/reference/block-kit/blocks#input), the Input block available on the **Modals** surface allows to have the optional field **hint** as a **text object** with a type of **plain_text**; however **hint** is defined as a **String** in the **com.slack.api.model.block.InputBlock** class

The issue is reproducible in:
* Module Version: slack.api.model: 1.0.1
* JDK Version: openjdk version "1.8.0_242"
* OS Version etc: Ubuntu 18.04.4 LTS

The steps to reproduce are:

1. Define a new [Slack Modal View](https://github.com/slackapi/java-slack-sdk/blob/master/slack-api-model/src/main/java/com/slack/api/model/view/View.java)
2. Add an Input Block with a hint
```
import static com.slack.api.model.block.Blocks.*;
import static com.slack.api.model.block.composition.BlockCompositions.*;
import static com.slack.api.model.block.element.BlockElements.*;
import static com.slack.api.model.view.Views.*;
...
view(view -> view
                .callbackId("slack-view-sample")
                .type("modal")
                .notifyOnClose(true)
                .title(viewTitle(title -> title.type("plain_text").text("Slack View for InputBlock")))
                .submit(viewSubmit(submit -> submit.type("plain_text").text("Submit")))
                .close(viewClose(close -> close.type("plain_text").text("Cancel")))
                .blocks(asBlocks(
                        input(input -> input
                                .blockId("input-block")
                                .element(plainTextInput(pti -> pti.actionId("input-block-field").maxLength(255)))
                                .label(plainText(pt -> pt.text("Input Block")))
                                .hint("Maximum 255 characters")
                        )
                ))
    );
```
3. Add the Slack Modal View to an *App* command and invoke the command in Slack

The expected result is:
- The Slack Modal shows an input block with a hint

The actual results is:
- An error is returned when trying to create the Slack Modal Surface
`ViewsOpenResponse(ok=false, warning=null, error=invalid_arguments, needed=null, provided=null, view=null, responseMetadata=ErrorResponseMetadata(messages=[[ERROR] failed to match all allowed schemas [json-pointer:/view], [ERROR] must provide an object [json-pointer:/view/blocks/0/hint]]))`

### Requirements (place an `x` in each of the `[ ]`)
* [x] I've read and understood the [Contributing guidelines](https://github.com/slackapi/java-slack-sdk/blob/master/.github/contributing.md) and have done my best effort to follow them.
* [x] I've read and agree to the [Code of Conduct](https://slackhq.github.io/code-of-conduct).
* [x] I've searched for any related issues and avoided creating a duplicate issue.

Changed files:
slack-api-model/src/test/java/test_locally/api/model/block/BlocksTest.java, slack-api-model/src/test/java/test_locally/api/model/block/BlockKitTest.java, slack-api-model/src/main/java/com/slack/api/model/block/InputBlock.java

diff --git a/slack-api-model/src/main/java/com/slack/api/model/block/InputBlock.java b/slack-api-model/src/main/java/com/slack/api/model/block/InputBlock.java
index 8646214f..d6399802 100644
--- a/slack-api-model/src/main/java/com/slack/api/model/block/InputBlock.java
+++ b/slack-api-model/src/main/java/com/slack/api/model/block/InputBlock.java
@@ -36,7 +36,7 @@ public class InputBlock implements LayoutBlock {
      * It must be a a text object with a type of plain_text.
      * Maximum length for the text in this field is 2000 characters.
      */
-    private String hint;
+    private PlainTextObject hint;
 
     /**
      * A boolean that indicates whether the input element may be empty when a user submits the modal.
diff --git a/slack-api-model/src/test/java/test_locally/api/model/block/BlockKitTest.java b/slack-api-model/src/test/java/test_locally/api/model/block/BlockKitTest.java
index 0460013d..2beadb74 100644
--- a/slack-api-model/src/test/java/test_locally/api/model/block/BlockKitTest.java
+++ b/slack-api-model/src/test/java/test_locally/api/model/block/BlockKitTest.java
@@ -28,6 +28,10 @@ public class BlockKitTest {
                 "        \\"type\\": \\"plain_text\\",\\n" +
                 "        \\"text\\": \\"Label of input\\"\\n" +
                 "    },\\n" +
+                "    \\"hint\\": {\\n" +
+                "        \\"type\\": \\"plain_text\\",\\n" +
+                "        \\"text\\": \\"Hint of input\\"\\n" +
+                "    },\\n" +
                 "  \\"element\\": {\\n" +
                 "    \\"type\\": \\"plain_text_input\\",\\n" +
                 "    \\"action_id\\": \\"plain_input\\",\\n" +
@@ -42,6 +46,7 @@ public class BlockKitTest {
         InputBlock inputBlock = (InputBlock) message.getBlocks().get(0);
         assertThat(inputBlock.getLabel(), is(notNullValue()));
         assertThat(inputBlock.getElement(), is(notNullValue()));
+        assertThat(inputBlock.getHint(),is(notNullValue()));
     }
 
     @Test
diff --git a/slack-api-model/src/test/java/test_locally/api/model/block/BlocksTest.java b/slack-api-model/src/test/java/test_locally/api/model/block/BlocksTest.java
index e0a802c1..c1a098e1 100644
--- a/slack-api-model/src/test/java/test_locally/api/model/block/BlocksTest.java
+++ b/slack-api-model/src/test/java/test_locally/api/model/block/BlocksTest.java
@@ -242,6 +242,11 @@ public class BlocksTest {
                     "      \\"type\\": \\"plain_text\\",\\n" +
                     "      \\"text\\": \\"Choose the conversation to publish your result to:\\",\\n" +
                     "      \\"emoji\\": true\\n" +
+                    "    },\\n" +
+                    "    \\"hint\\": {\\n" +
+                    "      \\"type\\": \\"plain_text\\",\\n" +
+                    "      \\"text\\": \\"Choose the conversation to publish your result to:\\",\\n" +
+                    "      \\"emoji\\": true\\n" +
                     "    }\\n" +
                     "  }\\n" +
                     "]}";