@@ -15,6 +15,7 @@ import (
15
15
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/clients"
16
16
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/services/loganalytics/parse"
17
17
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/services/loganalytics/validate"
18
+ "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/tags"
18
19
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/timeouts"
19
20
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils"
20
21
)
@@ -94,6 +95,8 @@ func resourceArmLogAnalyticsSavedSearch() *schema.Resource {
94
95
),
95
96
},
96
97
},
98
+
99
+ "tags" : tags .ForceNewSchema (),
97
100
},
98
101
}
99
102
}
@@ -130,6 +133,7 @@ func resourceArmLogAnalyticsSavedSearchCreate(d *schema.ResourceData, meta inter
130
133
DisplayName : utils .String (d .Get ("display_name" ).(string )),
131
134
Query : utils .String (d .Get ("query" ).(string )),
132
135
FunctionAlias : utils .String (d .Get ("function_alias" ).(string )),
136
+ Tags : expandArmSavedSearchTag (d .Get ("tags" ).(map [string ]interface {})), // expand tags because it's defined as object set in service
133
137
},
134
138
}
135
139
@@ -194,6 +198,11 @@ func resourceArmLogAnalyticsSavedSearchRead(d *schema.ResourceData, meta interfa
194
198
functionParams = strings .Split (* props .FunctionParameters , ", " )
195
199
}
196
200
d .Set ("function_parameters" , functionParams )
201
+
202
+ // flatten tags because it's defined as object set in service
203
+ if err := d .Set ("tags" , flattenArmSavedSearchTag (props .Tags )); err != nil {
204
+ return fmt .Errorf ("setting `tag`: %+v" , err )
205
+ }
197
206
}
198
207
199
208
return nil
@@ -214,3 +223,35 @@ func resourceArmLogAnalyticsSavedSearchDelete(d *schema.ResourceData, meta inter
214
223
215
224
return nil
216
225
}
226
+
227
+ func expandArmSavedSearchTag (input map [string ]interface {}) * []operationalinsights.Tag {
228
+ results := make ([]operationalinsights.Tag , 0 )
229
+ for key , value := range input {
230
+ result := operationalinsights.Tag {
231
+ Name : utils .String (key ),
232
+ Value : utils .String (value .(string )),
233
+ }
234
+ results = append (results , result )
235
+ }
236
+ return & results
237
+ }
238
+
239
+ func flattenArmSavedSearchTag (input * []operationalinsights.Tag ) map [string ]interface {} {
240
+ results := make (map [string ]interface {})
241
+ if input == nil {
242
+ return results
243
+ }
244
+
245
+ for _ , item := range * input {
246
+ var key string
247
+ if item .Name != nil {
248
+ key = * item .Name
249
+ }
250
+ var value string
251
+ if item .Value != nil {
252
+ value = * item .Value
253
+ }
254
+ results [key ] = value
255
+ }
256
+ return results
257
+ }
0 commit comments