diff --git a/docs/resources/kibana_data_view.md b/docs/resources/kibana_data_view.md index e248fd03e..2ac12cf65 100644 --- a/docs/resources/kibana_data_view.md +++ b/docs/resources/kibana_data_view.md @@ -88,7 +88,9 @@ Optional: Optional: +- `labeltemplate` (String) - `pattern` (String) +- `urltemplate` (String) diff --git a/internal/kibana/data_view/schema.go b/internal/kibana/data_view/schema.go index fe953264b..20199b3d3 100644 --- a/internal/kibana/data_view/schema.go +++ b/internal/kibana/data_view/schema.go @@ -147,6 +147,12 @@ func getSchema() schema.Schema { "pattern": schema.StringAttribute{ Optional: true, }, + "urltemplate": schema.StringAttribute{ + Optional: true, + }, + "labeltemplate": schema.StringAttribute{ + Optional: true, + }, }, }, }, @@ -334,8 +340,15 @@ func dataViewFromResponse(resp data_views.DataViewResponseObjectDataView) apiDat if params, ok := formatMap["params"]; ok { if paramsMap, ok := params.(map[string]interface{}); ok { + apiFormat.Params = &apiFieldFormatParams{} if pattern, ok := paramsMap["pattern"]; ok { - apiFormat.Params = &apiFieldFormatParams{Pattern: pattern.(string)} + apiFormat.Params.Pattern = utils.Pointer(pattern.(string)) + } + if urltemplate, ok := paramsMap["urlTemplate"]; ok { + apiFormat.Params.UrlTemplate = utils.Pointer(urltemplate.(string)) + } + if labeltemplate, ok := paramsMap["labelTemplate"]; ok { + apiFormat.Params.LabelTemplate = utils.Pointer(labeltemplate.(string)) } } } @@ -600,7 +613,9 @@ func tfFieldFormatsToAPI(ctx context.Context, fieldFormats types.Map) (map[strin } apiParams = &apiFieldFormatParams{ - Pattern: tfParams.Pattern.ValueString(), + Pattern: tfParams.Pattern.ValueStringPointer(), + UrlTemplate: tfParams.UrlTemplate.ValueStringPointer(), + LabelTemplate: tfParams.LabelTemplate.ValueStringPointer(), } } @@ -658,9 +673,13 @@ type apiFieldFormat struct { } type tfFieldFormatParamsV0 struct { - Pattern types.String `tfsdk:"pattern"` + Pattern types.String `tfsdk:"pattern"` + UrlTemplate types.String `tfsdk:"urltemplate"` + LabelTemplate types.String `tfsdk:"labeltemplate"` } type apiFieldFormatParams struct { - Pattern string `tfsdk:"pattern" json:"pattern"` + Pattern *string `tfsdk:"pattern" json:"pattern,omitempty"` + UrlTemplate *string `tfsdk:"urltemplate" json:"urlTemplate,omitempty"` + LabelTemplate *string `tfsdk:"labeltemplate" json:"labelTemplate,omitempty"` } diff --git a/internal/kibana/data_view/schema_test.go b/internal/kibana/data_view/schema_test.go index f47991717..d88862025 100644 --- a/internal/kibana/data_view/schema_test.go +++ b/internal/kibana/data_view/schema_test.go @@ -44,7 +44,9 @@ func Test_tfModelV0_ToCreateRequest(t *testing.T) { "field1": { ID: "field1", Params: &apiFieldFormatParams{ - Pattern: "0.00", + Pattern: utils.Pointer("0.00"), + UrlTemplate: utils.Pointer("https://test.com/{{value}}"), + LabelTemplate: utils.Pointer("{{value}}"), }, }, }, @@ -66,7 +68,9 @@ func Test_tfModelV0_ToCreateRequest(t *testing.T) { "field1": apiFieldFormat{ ID: "field1", Params: &apiFieldFormatParams{ - Pattern: "0.00", + Pattern: utils.Pointer("0.00"), + UrlTemplate: utils.Pointer("https://test.com/{{value}}"), + LabelTemplate: utils.Pointer("{{value}}"), }, }, }, @@ -161,7 +165,9 @@ func Test_tfModelV0_ToUpdateRequest(t *testing.T) { "field1": { ID: "field1", Params: &apiFieldFormatParams{ - Pattern: "0.00", + Pattern: utils.Pointer("0.00"), + UrlTemplate: utils.Pointer("https://test.com/{{value}}"), + LabelTemplate: utils.Pointer("{{value}}"), }, }, }, @@ -176,7 +182,9 @@ func Test_tfModelV0_ToUpdateRequest(t *testing.T) { "field1": apiFieldFormat{ ID: "field1", Params: &apiFieldFormatParams{ - Pattern: "0.00", + Pattern: utils.Pointer("0.00"), + UrlTemplate: utils.Pointer("https://test.com/{{value}}"), + LabelTemplate: utils.Pointer("{{value}}"), }, }, },