/// <summary> /// Creates or updates a policy for an Application Auto Scaling scalable target. /// /// /// <para> /// Each scalable target is identified by a service namespace, resource ID, and scalable /// dimension. A scaling policy applies to the scalable target identified by those three /// attributes. You cannot create a scaling policy without first registering a scalable /// target using <a>RegisterScalableTarget</a>. /// </para> /// /// <para> /// To update a policy, specify its policy name and the parameters that you want to change. /// Any parameters that you don't specify are not changed by this update request. /// </para> /// /// <para> /// You can view the scaling policies for a service namespace using <a>DescribeScalingPolicies</a>. /// If you are no longer using a scaling policy, you can delete it using <a>DeleteScalingPolicy</a>. /// </para> /// </summary> /// <param name="request">Container for the necessary parameters to execute the PutScalingPolicy service method.</param> /// /// <returns>The response from the PutScalingPolicy service method, as returned by ApplicationAutoScaling.</returns> /// <exception cref="Amazon.ApplicationAutoScaling.Model.ConcurrentUpdateException"> /// Concurrent updates caused an exception, for example, if you request an update to an /// Application Auto Scaling resource that already has a pending update. /// </exception> /// <exception cref="Amazon.ApplicationAutoScaling.Model.InternalServiceException"> /// The service encountered an internal error. /// </exception> /// <exception cref="Amazon.ApplicationAutoScaling.Model.LimitExceededException"> /// Your account exceeded a limit. This exception is thrown when a per-account resource /// limit is exceeded. For more information, see <a href="http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_as-app">Application /// Auto Scaling Limits</a>. /// </exception> /// <exception cref="Amazon.ApplicationAutoScaling.Model.ObjectNotFoundException"> /// The specified object could not be found. For any <code>Put</code> or <code>Register</code> /// API operation, which depends on the existence of a scalable target, this exception /// is thrown if the scalable target with the specified service namespace, resource ID, /// and scalable dimension does not exist. For any <code>Delete</code> or <code>Deregister</code> /// API operation, this exception is thrown if the resource that is to be deleted or deregistered /// cannot be found. /// </exception> /// <exception cref="Amazon.ApplicationAutoScaling.Model.ValidationException"> /// An exception was thrown for a validation issue. Review the available parameters for /// the API request. /// </exception> public PutScalingPolicyResponse PutScalingPolicy(PutScalingPolicyRequest request) { var marshaller = new PutScalingPolicyRequestMarshaller(); var unmarshaller = PutScalingPolicyResponseUnmarshaller.Instance; return Invoke<PutScalingPolicyRequest,PutScalingPolicyResponse>(request, marshaller, unmarshaller); }
/// <summary> /// Initiates the asynchronous execution of the PutScalingPolicy operation. /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the PutScalingPolicy operation on AmazonApplicationAutoScalingClient.</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 EndPutScalingPolicy /// operation.</returns> public IAsyncResult BeginPutScalingPolicy(PutScalingPolicyRequest request, AsyncCallback callback, object state) { var marshaller = new PutScalingPolicyRequestMarshaller(); var unmarshaller = PutScalingPolicyResponseUnmarshaller.Instance; return BeginInvoke<PutScalingPolicyRequest>(request, marshaller, unmarshaller, callback, state); }
/// <summary> /// Initiates the asynchronous execution of the PutScalingPolicy operation. /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the PutScalingPolicy 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<PutScalingPolicyResponse> PutScalingPolicyAsync(PutScalingPolicyRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var marshaller = new PutScalingPolicyRequestMarshaller(); var unmarshaller = PutScalingPolicyResponseUnmarshaller.Instance; return InvokeAsync<PutScalingPolicyRequest,PutScalingPolicyResponse>(request, marshaller, unmarshaller, cancellationToken); }