From 1aae463ee5fbc9b01551af8421a73c726c9d96ce Mon Sep 17 00:00:00 2001 From: "Elena Xin (Centific Technologies Inc)" Date: Tue, 31 Oct 2023 17:21:07 +0800 Subject: [PATCH 1/3] fix issue 19970 --- .../api_management_diagnostic_resource.go | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/internal/services/apimanagement/api_management_diagnostic_resource.go b/internal/services/apimanagement/api_management_diagnostic_resource.go index 02aa56bbe4ef..89cfbc44e36f 100644 --- a/internal/services/apimanagement/api_management_diagnostic_resource.go +++ b/internal/services/apimanagement/api_management_diagnostic_resource.go @@ -15,6 +15,7 @@ import ( "github.com/hashicorp/go-azure-sdk/resource-manager/apimanagement/2021-08-01/logger" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" + "github.com/hashicorp/terraform-provider-azurerm/internal/features" "github.com/hashicorp/terraform-provider-azurerm/internal/services/apimanagement/schemaz" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/set" @@ -114,7 +115,12 @@ func resourceApiManagementDiagnostic() *pluginsdk.Resource { "operation_name_format": { Type: pluginsdk.TypeString, Optional: true, - Default: string(diagnostic.OperationNameFormatName), + Default: func() interface{} { + if !features.FourPointOh() { + return string(diagnostic.OperationNameFormatName) + } + return nil + }(), ValidateFunc: validation.StringInSlice([]string{ string(diagnostic.OperationNameFormatName), string(diagnostic.OperationNameFormatUrl), @@ -147,11 +153,18 @@ func resourceApiManagementDiagnosticCreateUpdate(d *pluginsdk.ResourceData, meta parameters := diagnostic.DiagnosticContract{ Properties: &diagnostic.DiagnosticContractProperties{ - LoggerId: d.Get("api_management_logger_id").(string), - OperationNameFormat: pointer.To(diagnostic.OperationNameFormat(d.Get("operation_name_format").(string))), + LoggerId: d.Get("api_management_logger_id").(string), }, } + if d.Get("identifier") == "applicationinsights" { + if operationNameFormat, ok := d.GetOk("operation_name_format"); ok { + parameters.Properties.OperationNameFormat = pointer.To(diagnostic.OperationNameFormat(operationNameFormat.(string))) + } else { + parameters.Properties.OperationNameFormat = pointer.To(diagnostic.OperationNameFormatName) + } + } + if samplingPercentage, ok := d.GetOk("sampling_percentage"); ok { parameters.Properties.Sampling = &diagnostic.SamplingSettings{ SamplingType: pointer.To(diagnostic.SamplingTypeFixed), @@ -259,7 +272,7 @@ func resourceApiManagementDiagnosticRead(d *pluginsdk.ResourceData, meta interfa d.Set("backend_request", nil) d.Set("backend_response", nil) } - format := string(diagnostic.OperationNameFormatName) + format := "" if props.OperationNameFormat != nil { format = string(pointer.From(props.OperationNameFormat)) } From 3ad9d833da79955f29d07192cb6426c76aa78ad6 Mon Sep 17 00:00:00 2001 From: "Elena Xin (Centific Technologies Inc)" Date: Wed, 1 Nov 2023 09:58:54 +0800 Subject: [PATCH 2/3] update code --- .../api_management_diagnostic_resource.go | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/internal/services/apimanagement/api_management_diagnostic_resource.go b/internal/services/apimanagement/api_management_diagnostic_resource.go index 89cfbc44e36f..1cab23a80919 100644 --- a/internal/services/apimanagement/api_management_diagnostic_resource.go +++ b/internal/services/apimanagement/api_management_diagnostic_resource.go @@ -157,11 +157,19 @@ func resourceApiManagementDiagnosticCreateUpdate(d *pluginsdk.ResourceData, meta }, } - if d.Get("identifier") == "applicationinsights" { - if operationNameFormat, ok := d.GetOk("operation_name_format"); ok { - parameters.Properties.OperationNameFormat = pointer.To(diagnostic.OperationNameFormat(operationNameFormat.(string))) - } else { - parameters.Properties.OperationNameFormat = pointer.To(diagnostic.OperationNameFormatName) + if !features.FourPointOh() { + if d.Get("identifier") == "applicationinsights" { + if operationNameFormat, ok := d.GetOk("operation_name_format"); ok { + parameters.Properties.OperationNameFormat = pointer.To(diagnostic.OperationNameFormat(operationNameFormat.(string))) + } else { + parameters.Properties.OperationNameFormat = pointer.To(diagnostic.OperationNameFormatName) + } + } + } else { + if d.Get("identifier") == "applicationinsights" { + if operationNameFormat, ok := d.GetOk("operation_name_format"); ok { + parameters.Properties.OperationNameFormat = pointer.To(diagnostic.OperationNameFormat(operationNameFormat.(string))) + } } } @@ -272,7 +280,11 @@ func resourceApiManagementDiagnosticRead(d *pluginsdk.ResourceData, meta interfa d.Set("backend_request", nil) d.Set("backend_response", nil) } + format := "" + if !features.FourPointOh() { + format = string(diagnostic.OperationNameFormatName) + } if props.OperationNameFormat != nil { format = string(pointer.From(props.OperationNameFormat)) } From 1d2c28bda58b8e31ed510c8453820c3e974abf85 Mon Sep 17 00:00:00 2001 From: Steph Date: Wed, 1 Nov 2023 08:11:40 +0100 Subject: [PATCH 3/3] simplify FourPointOh wrapping --- .../api_management_diagnostic_resource.go | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/internal/services/apimanagement/api_management_diagnostic_resource.go b/internal/services/apimanagement/api_management_diagnostic_resource.go index 1cab23a80919..e71c85e88fd6 100644 --- a/internal/services/apimanagement/api_management_diagnostic_resource.go +++ b/internal/services/apimanagement/api_management_diagnostic_resource.go @@ -157,19 +157,11 @@ func resourceApiManagementDiagnosticCreateUpdate(d *pluginsdk.ResourceData, meta }, } - if !features.FourPointOh() { - if d.Get("identifier") == "applicationinsights" { - if operationNameFormat, ok := d.GetOk("operation_name_format"); ok { - parameters.Properties.OperationNameFormat = pointer.To(diagnostic.OperationNameFormat(operationNameFormat.(string))) - } else { - parameters.Properties.OperationNameFormat = pointer.To(diagnostic.OperationNameFormatName) - } - } - } else { - if d.Get("identifier") == "applicationinsights" { - if operationNameFormat, ok := d.GetOk("operation_name_format"); ok { - parameters.Properties.OperationNameFormat = pointer.To(diagnostic.OperationNameFormat(operationNameFormat.(string))) - } + if d.Get("identifier") == "applicationinsights" { + if operationNameFormat, ok := d.GetOk("operation_name_format"); ok { + parameters.Properties.OperationNameFormat = pointer.To(diagnostic.OperationNameFormat(operationNameFormat.(string))) + } else if !features.FourPointOh() { + parameters.Properties.OperationNameFormat = pointer.To(diagnostic.OperationNameFormatName) } }