@@ -11,14 +11,15 @@ import (
1111 "github.com/elastic/terraform-provider-elasticstack/generated/kbapi"
1212 "github.com/elastic/terraform-provider-elasticstack/internal/models"
1313 "github.com/elastic/terraform-provider-elasticstack/internal/utils"
14+ fwdiag "github.com/hashicorp/terraform-plugin-framework/diag"
1415 "github.com/hashicorp/terraform-plugin-log/tflog"
15- "github.com/hashicorp/terraform-plugin-sdk/v2/diag"
16+ sdkdiag "github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1617)
1718
18- func CreateConnector (ctx context.Context , client * Client , connectorOld models.KibanaActionConnector ) (string , diag .Diagnostics ) {
19+ func CreateConnector (ctx context.Context , client * Client , connectorOld models.KibanaActionConnector ) (string , fwdiag .Diagnostics ) {
1920 body , err := createConnectorRequestBody (connectorOld )
2021 if err != nil {
21- return "" , diag . FromErr ( err )
22+ return "" , fwdiag. Diagnostics { fwdiag . NewErrorDiagnostic ( "Failed to create connector request body" , err . Error ())}
2223 }
2324
2425 resp , err := client .API .PostActionsConnectorIdWithResponse (
@@ -35,40 +36,40 @@ func CreateConnector(ctx context.Context, client *Client, connectorOld models.Ki
3536 },
3637 )
3738 if err != nil {
38- return "" , diag . FromErr ( err )
39+ return "" , fwdiag. Diagnostics { fwdiag . NewErrorDiagnostic ( "HTTP request failed" , err . Error ())}
3940 }
4041
4142 switch resp .StatusCode () {
4243 case http .StatusOK :
4344 return resp .JSON200 .Id , nil
4445 default :
45- return "" , reportUnknownErrorSDK (resp .StatusCode (), resp .Body )
46+ return "" , reportUnknownError (resp .StatusCode (), resp .Body )
4647 }
4748}
4849
49- func UpdateConnector (ctx context.Context , client * Client , connectorOld models.KibanaActionConnector ) (string , diag .Diagnostics ) {
50+ func UpdateConnector (ctx context.Context , client * Client , connectorOld models.KibanaActionConnector ) (string , fwdiag .Diagnostics ) {
5051 body , err := updateConnectorRequestBody (connectorOld )
5152 if err != nil {
52- return "" , diag . FromErr ( err )
53+ return "" , fwdiag. Diagnostics { fwdiag . NewErrorDiagnostic ( "Failed to create update request body" , err . Error ())}
5354 }
5455
5556 resp , err := client .API .PutActionsConnectorIdWithResponse (ctx , connectorOld .SpaceID , connectorOld .ConnectorID , body )
5657 if err != nil {
57- return "" , diag . Errorf ( "unable to update connector: [%v] " , err )
58+ return "" , fwdiag. Diagnostics { fwdiag . NewErrorDiagnostic ( "Unable to update connector" , err . Error ())}
5859 }
5960
6061 switch resp .StatusCode () {
6162 case http .StatusOK :
6263 return resp .JSON200 .Id , nil
6364 default :
64- return "" , reportUnknownErrorSDK (resp .StatusCode (), resp .Body )
65+ return "" , reportUnknownError (resp .StatusCode (), resp .Body )
6566 }
6667}
6768
68- func GetConnector (ctx context.Context , client * Client , connectorID , spaceID string ) (* models.KibanaActionConnector , diag .Diagnostics ) {
69+ func GetConnector (ctx context.Context , client * Client , connectorID , spaceID string ) (* models.KibanaActionConnector , fwdiag .Diagnostics ) {
6970 resp , err := client .API .GetActionsConnectorIdWithResponse (ctx , spaceID , connectorID )
7071 if err != nil {
71- return nil , diag . Errorf ( "unable to get connector: [%v] " , err )
72+ return nil , fwdiag. Diagnostics { fwdiag . NewErrorDiagnostic ( "Unable to get connector" , err . Error ())}
7273 }
7374
7475 switch resp .StatusCode () {
@@ -77,14 +78,14 @@ func GetConnector(ctx context.Context, client *Client, connectorID, spaceID stri
7778 case http .StatusNotFound :
7879 return nil , nil
7980 default :
80- return nil , reportUnknownErrorSDK (resp .StatusCode (), resp .Body )
81+ return nil , reportUnknownError (resp .StatusCode (), resp .Body )
8182 }
8283}
8384
84- func SearchConnectors (ctx context.Context , client * Client , connectorName , spaceID , connectorTypeID string ) ([]* models.KibanaActionConnector , diag .Diagnostics ) {
85+ func SearchConnectors (ctx context.Context , client * Client , connectorName , spaceID , connectorTypeID string ) ([]* models.KibanaActionConnector , sdkdiag .Diagnostics ) {
8586 resp , err := client .API .GetActionsConnectorsWithResponse (ctx , spaceID )
8687 if err != nil {
87- return nil , diag .Errorf ("unable to get connectors: [%v]" , err )
88+ return nil , sdkdiag .Errorf ("unable to get connectors: [%v]" , err )
8889 }
8990
9091 if resp .StatusCode () != http .StatusOK {
@@ -101,9 +102,9 @@ func SearchConnectors(ctx context.Context, client *Client, connectorName, spaceI
101102 continue
102103 }
103104
104- c , diags := ConnectorResponseToModel (spaceID , & connector )
105- if diags .HasError () {
106- return nil , diags
105+ c , fwDiags := ConnectorResponseToModel (spaceID , & connector )
106+ if fwDiags .HasError () {
107+ return nil , utils . SDKDiagsFromFramework ( fwDiags )
107108 }
108109
109110 foundConnectors = append (foundConnectors , c )
@@ -115,9 +116,9 @@ func SearchConnectors(ctx context.Context, client *Client, connectorName, spaceI
115116 return foundConnectors , nil
116117}
117118
118- func ConnectorResponseToModel (spaceID string , connector * kbapi.ConnectorResponse ) (* models.KibanaActionConnector , diag .Diagnostics ) {
119+ func ConnectorResponseToModel (spaceID string , connector * kbapi.ConnectorResponse ) (* models.KibanaActionConnector , fwdiag .Diagnostics ) {
119120 if connector == nil {
120- return nil , diag . Errorf ( " connector response is nil" )
121+ return nil , fwdiag. Diagnostics { fwdiag . NewErrorDiagnostic ( "Invalid connector response" , "connector response is nil" )}
121122 }
122123
123124 var configJSON []byte
@@ -132,7 +133,7 @@ func ConnectorResponseToModel(spaceID string, connector *kbapi.ConnectorResponse
132133 var err error
133134 configJSON , err = json .Marshal (configMap )
134135 if err != nil {
135- return nil , diag . Errorf ( "unable to marshal config: %v " , err )
136+ return nil , fwdiag. Diagnostics { fwdiag . NewErrorDiagnostic ( "Unable to marshal config" , err . Error ())}
136137 }
137138
138139 // If we have a specific config type, marshal into and out of that to
@@ -141,7 +142,7 @@ func ConnectorResponseToModel(spaceID string, connector *kbapi.ConnectorResponse
141142 if ok {
142143 configJSONString , err := handler .remarshalConfig (string (configJSON ))
143144 if err != nil {
144- return nil , diag . Errorf ( "failed to remarshal config: %v " , err )
145+ return nil , fwdiag. Diagnostics { fwdiag . NewErrorDiagnostic ( "Failed to remarshal config" , err . Error ())}
145146 }
146147
147148 configJSON = []byte (configJSONString )
@@ -165,21 +166,21 @@ func ConnectorResponseToModel(spaceID string, connector *kbapi.ConnectorResponse
165166 return model , nil
166167}
167168
168- func DeleteConnector (ctx context.Context , client * Client , connectorID string , spaceID string ) diag .Diagnostics {
169+ func DeleteConnector (ctx context.Context , client * Client , connectorID string , spaceID string ) fwdiag .Diagnostics {
169170 resp , err := client .API .DeleteActionsConnectorIdWithResponse (ctx , spaceID , connectorID )
170171 if err != nil {
171- return diag . Errorf ( "unable to delete connector: [%v] " , err )
172+ return fwdiag. Diagnostics { fwdiag . NewErrorDiagnostic ( "Unable to delete connector" , err . Error ())}
172173 }
173174
174175 if resp .StatusCode () != http .StatusOK && resp .StatusCode () != http .StatusNoContent {
175- return reportUnknownErrorSDK (resp .StatusCode (), resp .Body )
176+ return reportUnknownError (resp .StatusCode (), resp .Body )
176177 }
177178
178179 return nil
179180}
180181
181182type connectorConfigHandler struct {
182- defaults func (plan , backend string ) (string , error )
183+ defaults func (plan string ) (string , error )
183184 remarshalConfig func (config string ) (string , error )
184185}
185186
@@ -246,13 +247,13 @@ var connectorConfigHandlers = map[string]connectorConfigHandler{
246247 },
247248}
248249
249- func ConnectorConfigWithDefaults (connectorTypeID , plan , backend , state string ) (string , error ) {
250+ func ConnectorConfigWithDefaults (connectorTypeID , plan string ) (string , error ) {
250251 handler , ok := connectorConfigHandlers [connectorTypeID ]
251252 if ! ok {
252253 return plan , errors .New ("unknown connector type ID: " + connectorTypeID )
253254 }
254255
255- return handler .defaults (plan , backend )
256+ return handler .defaults (plan )
256257}
257258
258259// User can omit optonal fields in config JSON.
@@ -271,7 +272,7 @@ func remarshalConfig[T any](plan string) (string, error) {
271272 return string (customJSON ), nil
272273}
273274
274- func connectorConfigWithDefaultsCasesWebhook (plan , _ string ) (string , error ) {
275+ func connectorConfigWithDefaultsCasesWebhook (plan string ) (string , error ) {
275276 var custom kbapi.CasesWebhookConfig
276277 if err := json .Unmarshal ([]byte (plan ), & custom ); err != nil {
277278 return "" , err
@@ -292,7 +293,7 @@ func connectorConfigWithDefaultsCasesWebhook(plan, _ string) (string, error) {
292293 return string (customJSON ), nil
293294}
294295
295- func connectorConfigWithDefaultsEmail (plan , _ string ) (string , error ) {
296+ func connectorConfigWithDefaultsEmail (plan string ) (string , error ) {
296297 var custom kbapi.EmailConfig
297298 if err := json .Unmarshal ([]byte (plan ), & custom ); err != nil {
298299 return "" , err
@@ -310,11 +311,11 @@ func connectorConfigWithDefaultsEmail(plan, _ string) (string, error) {
310311 return string (customJSON ), nil
311312}
312313
313- func connectorConfigWithDefaultsGemini (plan , _ string ) (string , error ) {
314+ func connectorConfigWithDefaultsGemini (plan string ) (string , error ) {
314315 return plan , nil
315316}
316317
317- func connectorConfigWithDefaultsIndex (plan , _ string ) (string , error ) {
318+ func connectorConfigWithDefaultsIndex (plan string ) (string , error ) {
318319 var custom kbapi.IndexConfig
319320 if err := json .Unmarshal ([]byte (plan ), & custom ); err != nil {
320321 return "" , err
@@ -329,32 +330,28 @@ func connectorConfigWithDefaultsIndex(plan, _ string) (string, error) {
329330 return string (customJSON ), nil
330331}
331332
332- func connectorConfigWithDefaultsJira (plan , _ string ) (string , error ) {
333+ func connectorConfigWithDefaultsJira (plan string ) (string , error ) {
333334 return remarshalConfig [kbapi.JiraConfig ](plan )
334335}
335336
336- func connectorConfigWithDefaultsOpsgenie (plan , _ string ) (string , error ) {
337+ func connectorConfigWithDefaultsOpsgenie (plan string ) (string , error ) {
337338 return plan , nil
338339}
339340
340- func connectorConfigWithDefaultsPagerduty (plan , _ string ) (string , error ) {
341+ func connectorConfigWithDefaultsPagerduty (plan string ) (string , error ) {
341342 return remarshalConfig [kbapi.PagerdutyConfig ](plan )
342343}
343344
344- func connectorConfigWithDefaultsResilient (plan , _ string ) (string , error ) {
345+ func connectorConfigWithDefaultsResilient (plan string ) (string , error ) {
345346 return plan , nil
346347}
347348
348- func connectorConfigWithDefaultsServicenow (plan , backend string ) (string , error ) {
349+ func connectorConfigWithDefaultsServicenow (plan string ) (string , error ) {
349350 var planConfig kbapi.ServicenowConfig
350351 if err := json .Unmarshal ([]byte (plan ), & planConfig ); err != nil {
351352 return "" , err
352353 }
353- var backendConfig kbapi.ServicenowConfig
354- if err := json .Unmarshal ([]byte (backend ), & backendConfig ); err != nil {
355- return "" , err
356- }
357- if planConfig .IsOAuth == nil && backendConfig .IsOAuth != nil && ! * backendConfig .IsOAuth {
354+ if planConfig .IsOAuth == nil {
358355 planConfig .IsOAuth = utils .Pointer (false )
359356 }
360357 if planConfig .UsesTableApi == nil {
@@ -367,7 +364,7 @@ func connectorConfigWithDefaultsServicenow(plan, backend string) (string, error)
367364 return string (customJSON ), nil
368365}
369366
370- func connectorConfigWithDefaultsServicenowItom (plan , _ string ) (string , error ) {
367+ func connectorConfigWithDefaultsServicenowItom (plan string ) (string , error ) {
371368 var custom kbapi.ServicenowItomConfig
372369 if err := json .Unmarshal ([]byte (plan ), & custom ); err != nil {
373370 return "" , err
@@ -382,11 +379,11 @@ func connectorConfigWithDefaultsServicenowItom(plan, _ string) (string, error) {
382379 return string (customJSON ), nil
383380}
384381
385- func connectorConfigWithDefaultsServicenowSir (plan , backend string ) (string , error ) {
386- return connectorConfigWithDefaultsServicenow (plan , backend )
382+ func connectorConfigWithDefaultsServicenowSir (plan string ) (string , error ) {
383+ return connectorConfigWithDefaultsServicenow (plan )
387384}
388385
389- func connectorConfigWithDefaultsSwimlane (plan , _ string ) (string , error ) {
386+ func connectorConfigWithDefaultsSwimlane (plan string ) (string , error ) {
390387 var custom kbapi.SwimlaneConfig
391388 if err := json .Unmarshal ([]byte (plan ), & custom ); err != nil {
392389 return "" , err
@@ -444,15 +441,15 @@ func connectorConfigWithDefaultsSwimlane(plan, _ string) (string, error) {
444441 return string (customJSON ), nil
445442}
446443
447- func connectorConfigWithDefaultsTines (plan , _ string ) (string , error ) {
444+ func connectorConfigWithDefaultsTines (plan string ) (string , error ) {
448445 return plan , nil
449446}
450447
451- func connectorConfigWithDefaultsWebhook (plan , _ string ) (string , error ) {
448+ func connectorConfigWithDefaultsWebhook (plan string ) (string , error ) {
452449 return plan , nil
453450}
454451
455- func connectorConfigWithDefaultsXmatters (plan , _ string ) (string , error ) {
452+ func connectorConfigWithDefaultsXmatters (plan string ) (string , error ) {
456453 var custom kbapi.XmattersConfig
457454 if err := json .Unmarshal ([]byte (plan ), & custom ); err != nil {
458455 return "" , err
0 commit comments