Skip to content

Commit 50c6a0d

Browse files
committed
chore: add slider and 'form_type_metadata' argument to parameter
1 parent b80ab8f commit 50c6a0d

File tree

2 files changed

+15
-16
lines changed

2 files changed

+15
-16
lines changed

provider/formtype.go

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,27 +11,29 @@ type ParameterFormType string
1111
const (
1212
ParameterFormTypeDefault ParameterFormType = ""
1313
ParameterFormTypeRadio ParameterFormType = "radio"
14+
ParameterFormTypeSlider ParameterFormType = "slider"
1415
ParameterFormTypeInput ParameterFormType = "input"
1516
ParameterFormTypeDropdown ParameterFormType = "dropdown"
1617
ParameterFormTypeCheckbox ParameterFormType = "checkbox"
1718
ParameterFormTypeSwitch ParameterFormType = "switch"
1819
ParameterFormTypeMultiSelect ParameterFormType = "multi-select"
1920
ParameterFormTypeTagInput ParameterFormType = "tag-input"
20-
//ParameterFormTypeTextArea ParameterFormType = "textarea"
21-
ParameterFormTypeError ParameterFormType = "error"
21+
ParameterFormTypeTextArea ParameterFormType = "textarea"
22+
ParameterFormTypeError ParameterFormType = "error"
2223
)
2324

2425
func ParameterFormTypes() []ParameterFormType {
2526
return []ParameterFormType{
2627
ParameterFormTypeDefault,
2728
ParameterFormTypeRadio,
2829
ParameterFormTypeInput,
30+
ParameterFormTypeSlider,
2931
ParameterFormTypeDropdown,
3032
ParameterFormTypeCheckbox,
3133
ParameterFormTypeSwitch,
3234
ParameterFormTypeMultiSelect,
3335
ParameterFormTypeTagInput,
34-
//ParameterFormTypeTextArea,
36+
ParameterFormTypeTextArea,
3537
ParameterFormTypeError,
3638
}
3739
}
@@ -44,6 +46,8 @@ func ParameterFormTypes() []ParameterFormType {
4446
// | `string` `number` | Y | | `radio` | |
4547
// | `string` `number` | Y | `dropdown` | `dropdown` | |
4648
// | `string` `number` | N | | `input` | |
49+
// | `string` | N | 'textarea' | `textarea` | |
50+
// | `number` | N | 'slider' | `slider` | min/max validation |
4751
// | `bool` | Y | | `radio` | |
4852
// | `bool` | N | | `checkbox` | |
4953
// | `bool` | N | `switch` | `switch` | |
@@ -53,11 +57,11 @@ func ParameterFormTypes() []ParameterFormType {
5357
var formTypeTruthTable = map[string]map[bool][]ParameterFormType{
5458
"string": {
5559
true: {ParameterFormTypeRadio, ParameterFormTypeDropdown},
56-
false: {ParameterFormTypeInput},
60+
false: {ParameterFormTypeInput, ParameterFormTypeTextArea},
5761
},
5862
"number": {
5963
true: {ParameterFormTypeRadio, ParameterFormTypeDropdown},
60-
false: {ParameterFormTypeInput},
64+
false: {ParameterFormTypeInput, ParameterFormTypeSlider},
6165
},
6266
"bool": {
6367
true: {ParameterFormTypeRadio},
@@ -71,17 +75,6 @@ var formTypeTruthTable = map[string]map[bool][]ParameterFormType{
7175

7276
// ValidateFormType handles the truth table for the valid set of `type` and
7377
// `form_type` options.
74-
// | Type | Options | Specified Form Type | form_type | Notes |
75-
// |-------------------|---------|---------------------|----------------|--------------------------------|
76-
// | `string` `number` | Y | | `radio` | |
77-
// | `string` `number` | Y | `dropdown` | `dropdown` | |
78-
// | `string` `number` | N | | `input` | |
79-
// | `bool` | Y | | `radio` | |
80-
// | `bool` | N | | `checkbox` | |
81-
// | `bool` | N | `switch` | `switch` | |
82-
// | `list(string)` | Y | | `radio` | |
83-
// | `list(string)` | N | | `tag-select` | |
84-
// | `list(string)` | Y | `multi-select` | `multi-select` | Option values will be `string` |
8578
func ValidateFormType(paramType string, optionCount int, specifiedFormType ParameterFormType) (string, ParameterFormType, error) {
8679
allowed, ok := formTypeTruthTable[paramType][optionCount > 0]
8780
if !ok || len(allowed) == 0 {

provider/parameter.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,12 @@ func parameterDataSource() *schema.Resource {
276276
return nil, nil
277277
},
278278
},
279+
"form_type_metadata": {
280+
Type: schema.TypeString,
281+
Default: `{}`,
282+
Description: "JSON encoded string containing the metadata for controlling the appearance of this parameter in the UI.",
283+
Optional: true,
284+
},
279285
"option": {
280286
Type: schema.TypeList,
281287
Description: "Each `option` block defines a value for a user to select from.",

0 commit comments

Comments
 (0)