private static void UnmarshallResult(XmlUnmarshallerContext context, EnableAvailabilityZonesForLoadBalancerResponse response) { int originalDepth = context.CurrentDepth; int targetDepth = originalDepth + 1; if (context.IsStartOfDocument) { targetDepth += 2; } while (context.Read()) { if (context.IsStartElement || context.IsAttribute) { if (context.TestExpression("AvailabilityZones/member", targetDepth)) { response.AvailabilityZones.Add(StringUnmarshaller.GetInstance().Unmarshall(context)); continue; } } else if (context.IsEndElement && context.CurrentDepth < originalDepth) { return; } } return; }
private static void UnmarshallResult(XmlUnmarshallerContext context, EnableAvailabilityZonesForLoadBalancerResponse response) { int originalDepth = context.CurrentDepth; int targetDepth = originalDepth + 1; if (context.IsStartOfDocument) { targetDepth += 2; } while (context.ReadAtDepth(originalDepth)) { if (context.IsStartElement || context.IsAttribute) { if (context.TestExpression("AvailabilityZones/member", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; var item = unmarshaller.Unmarshall(context); response.AvailabilityZones.Add(item); continue; } } } return; }
public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context) { EnableAvailabilityZonesForLoadBalancerResponse response = new EnableAvailabilityZonesForLoadBalancerResponse(); context.Read(); int targetDepth = context.CurrentDepth; while (context.ReadAtDepth(targetDepth)) { if (context.IsStartElement) { if (context.TestExpression("EnableAvailabilityZonesForLoadBalancerResult", 2)) { UnmarshallResult(context, response); continue; } if (context.TestExpression("ResponseMetadata", 2)) { response.ResponseMetadata = ResponseMetadataUnmarshaller.Instance.Unmarshall(context); } } } return(response); }
/// <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); }
/// <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); } }
public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context) { EnableAvailabilityZonesForLoadBalancerResponse response = new EnableAvailabilityZonesForLoadBalancerResponse(); while (context.Read()) { if (context.IsStartElement) { if (context.TestExpression("EnableAvailabilityZonesForLoadBalancerResult", 2)) { response.EnableAvailabilityZonesForLoadBalancerResult = EnableAvailabilityZonesForLoadBalancerResultUnmarshaller.GetInstance().Unmarshall(context); continue; } if (context.TestExpression("ResponseMetadata", 2)) { response.ResponseMetadata = ResponseMetadataUnmarshaller.GetInstance().Unmarshall(context); } } } return(response); }