I am planning to use azurerm_api_management with the help of terraform. https://www.terraform.io/docs/providers/azurerm/r/api_management.html
For custom hostnames support should be there, see here https://www.terraform.io/docs/providers/azurerm/d/api_management.html argument hostname_configuration defines how you can specify custom hostnames for different APIM endpoints.
As for VNET integration, seems they're working on it: https://github.com/terraform-providers/terraform-provider-azurerm/pull/2582