From 924f8bde80b0ef5096b743fcb047a38d0cc965c3 Mon Sep 17 00:00:00 2001 From: Patrick Conheady Date: Thu, 23 Jan 2020 23:11:38 +1100 Subject: [PATCH] azurerm_api_management: Expose subnet_id, vnet_type and private_ip properties --- .../resource_arm_api_management.go | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/azurerm/internal/services/apimanagement/resource_arm_api_management.go b/azurerm/internal/services/apimanagement/resource_arm_api_management.go index b4ab08c42860..61c7ab80ea42 100644 --- a/azurerm/internal/services/apimanagement/resource_arm_api_management.go +++ b/azurerm/internal/services/apimanagement/resource_arm_api_management.go @@ -62,6 +62,14 @@ func resourceArmApiManagementService() *schema.Resource { }, }, + "private_ip_addresses": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "publisher_name": { Type: schema.TypeString, Required: true, @@ -460,6 +468,21 @@ func resourceArmApiManagementService() *schema.Resource { Type: schema.TypeString, Computed: true, }, + + "vnet_type": { + Type: schema.TypeString, + Optional: true, + ValidateFunc: validation.StringInSlice([]string{ + "External", + "Internal", + "None", + }, false), + }, + + "subnet_id": { + Type: schema.TypeString, + Optional: true, + }, }, } } @@ -514,6 +537,12 @@ func resourceArmApiManagementServiceCreateUpdate(d *schema.ResourceData, meta in CustomProperties: customProperties, Certificates: certificates, HostnameConfigurations: hostnameConfigurations, + VirtualNetworkType: virtualNetworkTypeStringToType(utils.String(d.Get("vnet_type").(string))), + VirtualNetworkConfiguration: &apimanagement.VirtualNetworkConfiguration{ + Vnetid: utils.String(""), + Subnetname: utils.String(""), + SubnetResourceID: utils.String(d.Get("subnet_id").(string)), + }, }, Tags: tags.Expand(t), Sku: sku, @@ -657,6 +686,7 @@ func resourceArmApiManagementServiceRead(d *schema.ResourceData, meta interface{ d.Set("management_api_url", props.ManagementAPIURL) d.Set("scm_url", props.ScmURL) d.Set("public_ip_addresses", props.PublicIPAddresses) + d.Set("private_ip_addresses", props.PrivateIPAddresses) if err := d.Set("security", flattenApiManagementCustomProperties(props.CustomProperties)); err != nil { return fmt.Errorf("Error setting `security`: %+v", err) @@ -1366,3 +1396,15 @@ func flattenApiManagementPolicies(d *schema.ResourceData, input apimanagement.Po return []interface{}{output} } + +func virtualNetworkTypeStringToType(s *string) apimanagement.VirtualNetworkType { + switch *s { + case "External": + return apimanagement.VirtualNetworkTypeExternal + case "Internal": + return apimanagement.VirtualNetworkTypeInternal + case "None": + return apimanagement.VirtualNetworkTypeNone + } + return apimanagement.VirtualNetworkTypeNone +}