/// <summary> /// Adds the specified Availability Zones to the set of Availability Zones for the specified load balancer. /// The load balancer evenly distributes requests across all its registered Availability Zones that contain instances. /// </summary> /// <param name="loadBalancer">The name associated with the load balancer.</param> /// <param name="zones">The Availability Zones to add to the load balancer.</param> /// <param name="settings">The <see cref="LoadBalancingSettings"/> used during the request to AWS.</param> /// <param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param> public async Task <bool> EnableAvailabilityZones(string loadBalancer, IList <string> zones, LoadBalancingSettings settings, CancellationToken cancellationToken = default(CancellationToken)) { if (String.IsNullOrEmpty(loadBalancer)) { throw new ArgumentNullException("loadBalancer"); } if ((zones == null) || (zones.Count == 0)) { throw new ArgumentNullException("zones"); } //Create Request AmazonElasticLoadBalancingClient client = this.CreateClient(settings); EnableAvailabilityZonesForLoadBalancerRequest request = new EnableAvailabilityZonesForLoadBalancerRequest(); request.LoadBalancerName = loadBalancer; foreach (string zone in zones) { request.AvailabilityZones.Add(zone); } //Check Response EnableAvailabilityZonesForLoadBalancerResponse response = await client.EnableAvailabilityZonesForLoadBalancerAsync(request, cancellationToken); if (response.HttpStatusCode == HttpStatusCode.OK) { _Log.Verbose("Successfully enabled zones '{0}'", string.Join(",", zones)); return(true); } else { _Log.Error("Failed to enabled zones '{0}'", string.Join(",", zones)); return(false); } }
/// <summary> /// <para> Adds one or more EC2 Availability Zones to the LoadBalancer. </para> <para> The LoadBalancer evenly distributes requests across all /// its registered Availability Zones that contain instances. As a result, the client must ensure that its LoadBalancer is appropriately scaled /// for each registered Availability Zone. </para> <para><b>NOTE:</b> The new EC2 Availability Zones to be added must be in the same EC2 Region /// as the Availability Zones for which the LoadBalancer was created. </para> /// </summary> /// /// <param name="enableAvailabilityZonesForLoadBalancerRequest">Container for the necessary parameters to execute the /// EnableAvailabilityZonesForLoadBalancer service method on AmazonElasticLoadBalancing.</param> /// /// <returns>The response from the EnableAvailabilityZonesForLoadBalancer service method, as returned by AmazonElasticLoadBalancing.</returns> /// /// <exception cref="LoadBalancerNotFoundException"/> public EnableAvailabilityZonesForLoadBalancerResponse EnableAvailabilityZonesForLoadBalancer(EnableAvailabilityZonesForLoadBalancerRequest enableAvailabilityZonesForLoadBalancerRequest) { IRequest <EnableAvailabilityZonesForLoadBalancerRequest> request = new EnableAvailabilityZonesForLoadBalancerRequestMarshaller().Marshall(enableAvailabilityZonesForLoadBalancerRequest); EnableAvailabilityZonesForLoadBalancerResponse response = Invoke <EnableAvailabilityZonesForLoadBalancerRequest, EnableAvailabilityZonesForLoadBalancerResponse> (request, this.signer, EnableAvailabilityZonesForLoadBalancerResponseUnmarshaller.GetInstance()); return(response); }
private static IDictionary <string, string> ConvertEnableAvailabilityZonesForLoadBalancer(EnableAvailabilityZonesForLoadBalancerRequest request) { IDictionary <string, string> dictionary = new Dictionary <string, string>(); dictionary["Action"] = "EnableAvailabilityZonesForLoadBalancer"; if (request.IsSetLoadBalancerName()) { dictionary["LoadBalancerName"] = request.LoadBalancerName; } List <string> availabilityZones = request.AvailabilityZones; int num = 1; foreach (string str in availabilityZones) { dictionary["AvailabilityZones" + ".member." + num] = str; num++; } return(dictionary); }
public EnableAvailabilityZonesForLoadBalancerResponse EnableAvailabilityZonesForLoadBalancer(EnableAvailabilityZonesForLoadBalancerRequest request) { return(this.Invoke <EnableAvailabilityZonesForLoadBalancerResponse>(ConvertEnableAvailabilityZonesForLoadBalancer(request))); }
/** * Convert EnableAvailabilityZonesForLoadBalancerRequest to name value pairs */ private static IDictionary <string, string> ConvertEnableAvailabilityZonesForLoadBalancer(EnableAvailabilityZonesForLoadBalancerRequest request) { IDictionary <string, string> parameters = new Dictionary <string, string>(); parameters["Action"] = "EnableAvailabilityZonesForLoadBalancer"; if (request.IsSetLoadBalancerName()) { parameters["LoadBalancerName"] = request.LoadBalancerName; } List <string> enableAvailabilityZonesForLoadBalancerRequestAvailabilityZonesList = request.AvailabilityZones; int enableAvailabilityZonesForLoadBalancerRequestAvailabilityZonesListIndex = 1; foreach (string enableAvailabilityZonesForLoadBalancerRequestAvailabilityZones in enableAvailabilityZonesForLoadBalancerRequestAvailabilityZonesList) { parameters[String.Concat("AvailabilityZones", ".member.", enableAvailabilityZonesForLoadBalancerRequestAvailabilityZonesListIndex)] = enableAvailabilityZonesForLoadBalancerRequestAvailabilityZones; enableAvailabilityZonesForLoadBalancerRequestAvailabilityZonesListIndex++; } return(parameters); }