func expandAzureRmLoadBalancerNatRule(d *schema.ResourceData, lb *network.LoadBalancer) (*network.InboundNatRule, error) { properties := network.InboundNatRulePropertiesFormat{ 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))), } 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 } natRule := network.InboundNatRule{ Name: azure.String(d.Get("name").(string)), Properties: &properties, } return &natRule, nil }
func resourceArmAvailabilitySetCreate(d *schema.ResourceData, meta interface{}) error { client := meta.(*ArmClient) availSetClient := client.availSetClient log.Printf("[INFO] preparing arguments for Azure ARM Availability Set creation.") name := d.Get("name").(string) location := d.Get("location").(string) resGroup := d.Get("resource_group_name").(string) updateDomainCount := d.Get("platform_update_domain_count").(int) faultDomainCount := d.Get("platform_fault_domain_count").(int) tags := d.Get("tags").(map[string]interface{}) availSet := compute.AvailabilitySet{ Name: &name, Location: &location, Properties: &compute.AvailabilitySetProperties{ PlatformFaultDomainCount: azure.Int32(int32(faultDomainCount)), PlatformUpdateDomainCount: azure.Int32(int32(updateDomainCount)), }, Tags: expandTags(tags), } resp, err := availSetClient.CreateOrUpdate(resGroup, name, availSet) if err != nil { return err } d.SetId(*resp.ID) return resourceArmAvailabilitySetRead(d, meta) }
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 expandAzureRmLoadBalancerProbe(d *schema.ResourceData, lb *network.LoadBalancer) (*network.Probe, error) { properties := network.ProbePropertiesFormat{ NumberOfProbes: azure.Int32(int32(d.Get("number_of_probes").(int))), IntervalInSeconds: azure.Int32(int32(d.Get("interval_in_seconds").(int))), Port: azure.Int32(int32(d.Get("port").(int))), } if v, ok := d.GetOk("protocol"); ok { properties.Protocol = network.ProbeProtocol(v.(string)) } if v, ok := d.GetOk("request_path"); ok { properties.RequestPath = azure.String(v.(string)) } probe := network.Probe{ Name: azure.String(d.Get("name").(string)), Properties: &properties, } return &probe, nil }