Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

azurerm_api_management_api - correctly setting the soap API type when soap_pass_through is true #5081

Merged
merged 1 commit into from Dec 19, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
23 changes: 15 additions & 8 deletions azurerm/resource_arm_api_management_api.go
Expand Up @@ -216,6 +216,18 @@ func resourceArmApiManagementApiCreateUpdate(d *schema.ResourceData, meta interf
}
}

var apiType apimanagement.APIType
var soapApiType apimanagement.SoapAPIType

soapPassThrough := d.Get("soap_pass_through").(bool)
if soapPassThrough {
apiType = apimanagement.Soap
soapApiType = apimanagement.SoapPassThrough
} else {
apiType = apimanagement.HTTP
soapApiType = apimanagement.SoapToRest
}

// If import is used, we need to send properties to Azure API in two operations.
// First we execute import and then updated the other props.
if vs, hasImport := d.GetOk("import"); hasImport {
Expand All @@ -227,6 +239,8 @@ func resourceArmApiManagementApiCreateUpdate(d *schema.ResourceData, meta interf
log.Printf("[DEBUG] Importing API Management API %q of type %q", name, contentFormat)
apiParams := apimanagement.APICreateOrUpdateParameter{
APICreateOrUpdateProperties: &apimanagement.APICreateOrUpdateProperties{
APIType: apiType,
SoapAPIType: soapApiType,
ContentFormat: apimanagement.ContentFormat(contentFormat),
ContentValue: utils.String(contentValue),
Path: utils.String(path),
Expand Down Expand Up @@ -266,17 +280,10 @@ func resourceArmApiManagementApiCreateUpdate(d *schema.ResourceData, meta interf
subscriptionKeyParameterNamesRaw := d.Get("subscription_key_parameter_names").([]interface{})
subscriptionKeyParameterNames := expandApiManagementApiSubscriptionKeyParamNames(subscriptionKeyParameterNamesRaw)

var apiType apimanagement.APIType
soapPassThrough := d.Get("soap_pass_through").(bool)
if soapPassThrough {
apiType = apimanagement.APIType(apimanagement.SoapPassThrough)
} else {
apiType = apimanagement.APIType(apimanagement.SoapToRest)
}

params := apimanagement.APICreateOrUpdateParameter{
APICreateOrUpdateProperties: &apimanagement.APICreateOrUpdateProperties{
APIType: apiType,
SoapAPIType: soapApiType,
Description: utils.String(description),
DisplayName: utils.String(displayName),
Path: utils.String(path),
Expand Down