public object Execute(ExecutorContext context) { var cmdletContext = context as CmdletContext; // create request var request = new Amazon.ElasticLoadBalancing.Model.DisableAvailabilityZonesForLoadBalancerRequest(); if (cmdletContext.AvailabilityZone != null) { request.AvailabilityZones = cmdletContext.AvailabilityZone; } if (cmdletContext.LoadBalancerName != null) { request.LoadBalancerName = cmdletContext.LoadBalancerName; } CmdletOutput output; // issue call var client = Client ?? CreateClient(_CurrentCredentials, _RegionEndpoint); try { var response = CallAWSServiceOperation(client, request); object pipelineOutput = null; pipelineOutput = cmdletContext.Select(response, this); output = new CmdletOutput { PipelineOutput = pipelineOutput, ServiceResponse = response }; } catch (Exception e) { output = new CmdletOutput { ErrorResponse = e }; } return(output); }
/// <summary> /// Initiates the asynchronous execution of the DisableAvailabilityZonesForLoadBalancer operation. /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the DisableAvailabilityZonesForLoadBalancer operation.</param> /// <param name="cancellationToken"> /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// </param> /// <returns>The task object representing the asynchronous operation.</returns> public Task<DisableAvailabilityZonesForLoadBalancerResponse> DisableAvailabilityZonesForLoadBalancerAsync(DisableAvailabilityZonesForLoadBalancerRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var marshaller = new DisableAvailabilityZonesForLoadBalancerRequestMarshaller(); var unmarshaller = DisableAvailabilityZonesForLoadBalancerResponseUnmarshaller.Instance; return InvokeAsync<DisableAvailabilityZonesForLoadBalancerRequest,DisableAvailabilityZonesForLoadBalancerResponse>(request, marshaller, unmarshaller, cancellationToken); }
internal DisableAvailabilityZonesForLoadBalancerResponse DisableAvailabilityZonesForLoadBalancer(DisableAvailabilityZonesForLoadBalancerRequest request) { var marshaller = new DisableAvailabilityZonesForLoadBalancerRequestMarshaller(); var unmarshaller = DisableAvailabilityZonesForLoadBalancerResponseUnmarshaller.Instance; return Invoke<DisableAvailabilityZonesForLoadBalancerRequest,DisableAvailabilityZonesForLoadBalancerResponse>(request, marshaller, unmarshaller); }
/// <summary> /// <para> Removes the specified EC2 Availability Zones from the set of configured Availability Zones for the LoadBalancer. </para> <para> There /// must be at least one Availability Zone registered with a LoadBalancer at all times. A client cannot remove all the Availability Zones from a /// LoadBalancer. Once an Availability Zone is removed, all the instances registered with the LoadBalancer that are in the removed Availability /// Zone go into the OutOfService state. Upon Availability Zone removal, the LoadBalancer attempts to equally balance the traffic among its /// remaining usable Availability Zones. Trying to remove an Availability Zone that was not associated with the LoadBalancer does nothing. /// </para> <para><b>NOTE:</b> In order for this call to be successful, the client must have created the LoadBalancer. The client must provide /// the same account credentials as those that were used to create the LoadBalancer. </para> /// </summary> /// /// <param name="disableAvailabilityZonesForLoadBalancerRequest">Container for the necessary parameters to execute the /// DisableAvailabilityZonesForLoadBalancer service method on AmazonElasticLoadBalancing.</param> /// /// <returns>The response from the DisableAvailabilityZonesForLoadBalancer service method, as returned by AmazonElasticLoadBalancing.</returns> /// /// <exception cref="LoadBalancerNotFoundException"/> /// <exception cref="InvalidConfigurationRequestException"/> public DisableAvailabilityZonesForLoadBalancerResponse DisableAvailabilityZonesForLoadBalancer(DisableAvailabilityZonesForLoadBalancerRequest disableAvailabilityZonesForLoadBalancerRequest) { IAsyncResult asyncResult = invokeDisableAvailabilityZonesForLoadBalancer(disableAvailabilityZonesForLoadBalancerRequest, null, null, true); return EndDisableAvailabilityZonesForLoadBalancer(asyncResult); }
/// <summary> /// Initiates the asynchronous execution of the DisableAvailabilityZonesForLoadBalancer operation. /// <seealso cref="Amazon.ElasticLoadBalancing.AmazonElasticLoadBalancing.DisableAvailabilityZonesForLoadBalancer"/> /// </summary> /// /// <param name="disableAvailabilityZonesForLoadBalancerRequest">Container for the necessary parameters to execute the /// DisableAvailabilityZonesForLoadBalancer operation on AmazonElasticLoadBalancing.</param> /// <param name="callback">An AsyncCallback delegate that is invoked when the operation completes.</param> /// <param name="state">A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback /// procedure using the AsyncState property.</param> /// /// <returns>An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking /// EndDisableAvailabilityZonesForLoadBalancer operation.</returns> public IAsyncResult BeginDisableAvailabilityZonesForLoadBalancer(DisableAvailabilityZonesForLoadBalancerRequest disableAvailabilityZonesForLoadBalancerRequest, AsyncCallback callback, object state) { return invokeDisableAvailabilityZonesForLoadBalancer(disableAvailabilityZonesForLoadBalancerRequest, callback, state, false); }
IAsyncResult invokeDisableAvailabilityZonesForLoadBalancer(DisableAvailabilityZonesForLoadBalancerRequest disableAvailabilityZonesForLoadBalancerRequest, AsyncCallback callback, object state, bool synchronized) { IRequest irequest = new DisableAvailabilityZonesForLoadBalancerRequestMarshaller().Marshall(disableAvailabilityZonesForLoadBalancerRequest); var unmarshaller = DisableAvailabilityZonesForLoadBalancerResponseUnmarshaller.GetInstance(); AsyncResult result = new AsyncResult(irequest, callback, state, synchronized, signer, unmarshaller); Invoke(result); return result; }
/// <summary> /// <para> Removes the specified EC2 Availability Zones from the set of configured Availability Zones for the load balancer. </para> <para> /// There must be at least one Availability Zone registered with a load balancer at all times. Once an Availability Zone is removed, all the /// instances registered with the load balancer that are in the removed Availability Zone go into the <i>OutOfService</i> state. Upon /// Availability Zone removal, the load balancer attempts to equally balance the traffic among its remaining usable Availability Zones. Trying /// to remove an Availability Zone that was not associated with the load balancer does nothing. </para> <para>For more information, see <a href="http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/US_ShrinkLBApp04.html">Disable an Availability Zone from a /// Load-Balanced Application</a> in the <i>Elastic Load Balancing Developer Guide</i> .</para> /// </summary> /// /// <param name="disableAvailabilityZonesForLoadBalancerRequest">Container for the necessary parameters to execute the /// DisableAvailabilityZonesForLoadBalancer service method on AmazonElasticLoadBalancing.</param> /// /// <returns>The response from the DisableAvailabilityZonesForLoadBalancer service method, as returned by AmazonElasticLoadBalancing.</returns> /// /// <exception cref="T:Amazon.ElasticLoadBalancing.Model.InvalidConfigurationRequestException" /> /// <exception cref="T:Amazon.ElasticLoadBalancing.Model.LoadBalancerNotFoundException" /> /// <param name="cancellationToken"> /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// </param> public async Task<DisableAvailabilityZonesForLoadBalancerResponse> DisableAvailabilityZonesForLoadBalancerAsync(DisableAvailabilityZonesForLoadBalancerRequest disableAvailabilityZonesForLoadBalancerRequest, CancellationToken cancellationToken = default(CancellationToken)) { var marshaller = new DisableAvailabilityZonesForLoadBalancerRequestMarshaller(); var unmarshaller = DisableAvailabilityZonesForLoadBalancerResponseUnmarshaller.GetInstance(); var response = await Invoke<IRequest, DisableAvailabilityZonesForLoadBalancerRequest, DisableAvailabilityZonesForLoadBalancerResponse>(disableAvailabilityZonesForLoadBalancerRequest, marshaller, unmarshaller, signer, cancellationToken) .ConfigureAwait(continueOnCapturedContext: false); return response; }
internal DisableAvailabilityZonesForLoadBalancerResponse DisableAvailabilityZonesForLoadBalancer(DisableAvailabilityZonesForLoadBalancerRequest request) { var task = DisableAvailabilityZonesForLoadBalancerAsync(request); try { return task.Result; } catch(AggregateException e) { throw e.InnerException; } }
/// <summary> /// <para> Removes the specified EC2 Availability Zones from the set of /// configured Availability Zones for the LoadBalancer. </para> <para> /// There must be at least one Availability Zone registered with a /// LoadBalancer at all times. A client cannot remove all the Availability /// Zones from a LoadBalancer. Once an Availability Zone is removed, all /// the instances registered with the LoadBalancer that are in the removed /// Availability Zone go into the OutOfService state. Upon Availability /// Zone removal, the LoadBalancer attempts to equally balance the traffic /// among its remaining usable Availability Zones. Trying to remove an /// Availability Zone that was not associated with the LoadBalancer does /// nothing. </para> <para><b>NOTE:</b> In order for this call to be /// successful, the client must have created the LoadBalancer. The client /// must provide the same account credentials as those that were used to /// create the LoadBalancer. </para> /// </summary> /// /// <param name="disableAvailabilityZonesForLoadBalancerRequest">Container /// for the necessary parameters to execute the /// DisableAvailabilityZonesForLoadBalancer service method on /// AmazonElasticLoadBalancing.</param> /// /// <returns>The response from the DisableAvailabilityZonesForLoadBalancer /// service method, as returned by AmazonElasticLoadBalancing.</returns> /// /// <exception cref="LoadBalancerNotFoundException"/> /// <exception cref="InvalidConfigurationRequestException"/> public DisableAvailabilityZonesForLoadBalancerResponse DisableAvailabilityZonesForLoadBalancer(DisableAvailabilityZonesForLoadBalancerRequest disableAvailabilityZonesForLoadBalancerRequest) { IRequest<DisableAvailabilityZonesForLoadBalancerRequest> request = new DisableAvailabilityZonesForLoadBalancerRequestMarshaller().Marshall(disableAvailabilityZonesForLoadBalancerRequest); DisableAvailabilityZonesForLoadBalancerResponse response = Invoke<DisableAvailabilityZonesForLoadBalancerRequest, DisableAvailabilityZonesForLoadBalancerResponse> (request, this.signer, DisableAvailabilityZonesForLoadBalancerResponseUnmarshaller.GetInstance()); return response; }
/// <summary> /// Initiates the asynchronous execution of the DisableAvailabilityZonesForLoadBalancer operation. /// <seealso cref="Amazon.ElasticLoadBalancing.IAmazonElasticLoadBalancing.DisableAvailabilityZonesForLoadBalancer"/> /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the DisableAvailabilityZonesForLoadBalancer operation.</param> /// <param name="cancellationToken"> /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// </param> /// <returns>The task object representing the asynchronous operation.</returns> public Task<DisableAvailabilityZonesForLoadBalancerResponse> DisableAvailabilityZonesForLoadBalancerAsync(DisableAvailabilityZonesForLoadBalancerRequest request, CancellationToken cancellationToken = default(CancellationToken)) { var marshaller = new DisableAvailabilityZonesForLoadBalancerRequestMarshaller(); var unmarshaller = DisableAvailabilityZonesForLoadBalancerResponseUnmarshaller.GetInstance(); return Invoke<IRequest, DisableAvailabilityZonesForLoadBalancerRequest, DisableAvailabilityZonesForLoadBalancerResponse>(request, marshaller, unmarshaller, signer, cancellationToken); }
/// <summary> /// <para> Removes the specified EC2 Availability Zones from the set of configured Availability Zones for the load balancer. </para> <para> /// There must be at least one Availability Zone registered with a load balancer at all times. Once an Availability Zone is removed, all the /// instances registered with the load balancer that are in the removed Availability Zone go into the <i>OutOfService</i> state. Upon /// Availability Zone removal, the load balancer attempts to equally balance the traffic among its remaining usable Availability Zones. Trying /// to remove an Availability Zone that was not associated with the load balancer does nothing. </para> <para>For more information, see <a href="http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/US_ShrinkLBApp04.html">Disable an Availability Zone from a /// Load-Balanced Application</a> in the <i>Elastic Load Balancing Developer Guide</i> .</para> /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the /// DisableAvailabilityZonesForLoadBalancer service method on AmazonElasticLoadBalancing.</param> /// /// <returns>The response from the DisableAvailabilityZonesForLoadBalancer service method, as returned by AmazonElasticLoadBalancing.</returns> /// /// <exception cref="T:Amazon.ElasticLoadBalancing.Model.InvalidConfigurationRequestException" /> /// <exception cref="T:Amazon.ElasticLoadBalancing.Model.LoadBalancerNotFoundException" /> public DisableAvailabilityZonesForLoadBalancerResponse DisableAvailabilityZonesForLoadBalancer(DisableAvailabilityZonesForLoadBalancerRequest request) { var task = DisableAvailabilityZonesForLoadBalancerAsync(request); try { return task.Result; } catch(AggregateException e) { ExceptionDispatchInfo.Capture(e.InnerException).Throw(); return null; } }
IAsyncResult invokeDisableAvailabilityZonesForLoadBalancer(DisableAvailabilityZonesForLoadBalancerRequest request, AsyncCallback callback, object state, bool synchronized) { var marshaller = new DisableAvailabilityZonesForLoadBalancerRequestMarshaller(); var unmarshaller = DisableAvailabilityZonesForLoadBalancerResponseUnmarshaller.Instance; return Invoke(request, callback, state, synchronized, marshaller, unmarshaller, signer); }
/// <summary> /// Initiates the asynchronous execution of the DisableAvailabilityZonesForLoadBalancer operation. /// <seealso cref="Amazon.ElasticLoadBalancing.IAmazonElasticLoadBalancing"/> /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the DisableAvailabilityZonesForLoadBalancer operation on AmazonElasticLoadBalancingClient.</param> /// <param name="callback">An AsyncCallback delegate that is invoked when the operation completes.</param> /// <param name="state">A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback /// procedure using the AsyncState property.</param> /// /// <returns>An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDisableAvailabilityZonesForLoadBalancer /// operation.</returns> public IAsyncResult BeginDisableAvailabilityZonesForLoadBalancer(DisableAvailabilityZonesForLoadBalancerRequest request, AsyncCallback callback, object state) { var marshaller = new DisableAvailabilityZonesForLoadBalancerRequestMarshaller(); var unmarshaller = DisableAvailabilityZonesForLoadBalancerResponseUnmarshaller.Instance; return BeginInvoke<DisableAvailabilityZonesForLoadBalancerRequest>(request, marshaller, unmarshaller, callback, state); }
private Amazon.ElasticLoadBalancing.Model.DisableAvailabilityZonesForLoadBalancerResponse CallAWSServiceOperation(IAmazonElasticLoadBalancing client, Amazon.ElasticLoadBalancing.Model.DisableAvailabilityZonesForLoadBalancerRequest request) { Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Elastic Load Balancing", "DisableAvailabilityZonesForLoadBalancer"); try { #if DESKTOP return(client.DisableAvailabilityZonesForLoadBalancer(request)); #elif CORECLR return(client.DisableAvailabilityZonesForLoadBalancerAsync(request).GetAwaiter().GetResult()); #else #error "Unknown build edition" #endif } catch (AmazonServiceException exc) { var webException = exc.InnerException as System.Net.WebException; if (webException != null) { throw new Exception(Utils.Common.FormatNameResolutionFailureMessage(client.Config, webException.Message), webException); } throw; } }
/// <summary> /// Removes the specified Availability Zones from the set of Availability Zones for the specified load balancer. /// There must be at least one Availability Zone registered with a load balancer at all times. After an Availability Zone is removed, /// all instances registered with the load balancer that are in the removed Availability Zone go into the OutOfService state. /// Then, the load balancer attempts to equally balance the traffic among its remaining Availability Zones. /// </summary> /// <param name="loadBalancer">The name associated with the load balancer.</param> /// <param name="zones">The Availability Zones to remove from the load balancer.</param> /// <param name="settings">The <see cref="LoadBalancingSettings"/> used during the request to AWS.</param> public bool DisableAvailabilityZones(string loadBalancer, IList<string> zones, LoadBalancingSettings settings) { 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); DisableAvailabilityZonesForLoadBalancerRequest request = new DisableAvailabilityZonesForLoadBalancerRequest(); request.LoadBalancerName = loadBalancer; foreach (string zone in zones) { request.AvailabilityZones.Add(zone); } //Check Response DisableAvailabilityZonesForLoadBalancerResponse response = client.DisableAvailabilityZonesForLoadBalancer(request); if (response.HttpStatusCode == HttpStatusCode.OK) { _Log.Verbose("Successfully disabled zones '{0}'", string.Join(",", zones)); return true; } else { _Log.Error("Failed to disabled zones '{0}'", string.Join(",", zones)); return false; } }