func expandAzureRmLoadBalancerRule(d *schema.ResourceData, lb *network.LoadBalancer) (*network.LoadBalancingRule, error) { properties := network.LoadBalancingRulePropertiesFormat{ Protocol: network.TransportProtocol(d.Get("protocol").(string)), FrontendPort: azure.Int32(int32(d.Get("frontend_port").(int))), BackendPort: azure.Int32(int32(d.Get("backend_port").(int))), EnableFloatingIP: azure.Bool(d.Get("enable_floating_ip").(bool)), } if v, ok := d.GetOk("idle_timeout_in_minutes"); ok { properties.IdleTimeoutInMinutes = azure.Int32(int32(v.(int))) } if v := d.Get("load_distribution").(string); v != "" { properties.LoadDistribution = network.LoadDistribution(v) } if v := d.Get("frontend_ip_configuration_name").(string); v != "" { rule, _, exists := findLoadBalancerFrontEndIpConfigurationByName(lb, v) if !exists { return nil, fmt.Errorf("[ERROR] Cannot find FrontEnd IP Configuration with the name %s", v) } feip := network.SubResource{ ID: rule.ID, } properties.FrontendIPConfiguration = &feip } if v := d.Get("backend_address_pool_id").(string); v != "" { beAP := network.SubResource{ ID: &v, } properties.BackendAddressPool = &beAP } if v := d.Get("probe_id").(string); v != "" { pid := network.SubResource{ ID: &v, } properties.Probe = &pid } lbRule := network.LoadBalancingRule{ Name: azure.String(d.Get("name").(string)), LoadBalancingRulePropertiesFormat: &properties, } return &lbRule, nil }
func expandAzureRmVirtualMachineDiagnosticsProfile(d *schema.ResourceData) *compute.DiagnosticsProfile { bootDiagnostics := d.Get("boot_diagnostics").([]interface{}) diagnosticsProfile := &compute.DiagnosticsProfile{} if len(bootDiagnostics) > 0 { bootDiagnostic := bootDiagnostics[0].(map[string]interface{}) diagnostic := &compute.BootDiagnostics{ Enabled: riviera.Bool(bootDiagnostic["enabled"].(bool)), StorageURI: riviera.String(bootDiagnostic["storage_uri"].(string)), } diagnosticsProfile.BootDiagnostics = diagnostic return diagnosticsProfile } return nil }