/// <summary>
        /// Unmarshaller the response from the service to the response class.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context)
        {
            SuspendProcessesResponse response = new SuspendProcessesResponse();

            context.Read();
            int targetDepth = context.CurrentDepth;

            while (context.ReadAtDepth(targetDepth))
            {
                if (context.IsStartElement)
                {
                    if (context.TestExpression("SuspendProcessesResult", 2))
                    {
                        UnmarshallResult(context, response);
                        continue;
                    }

                    if (context.TestExpression("ResponseMetadata", 2))
                    {
                        response.ResponseMetadata = ResponseMetadataUnmarshaller.Instance.Unmarshall(context);
                    }
                }
            }

            return(response);
        }
        /// <summary>
        /// <para> Suspends Auto Scaling processes for an Auto Scaling group. To suspend specific process types, specify them by name with the
        /// <c>ScalingProcesses.member.N</c> parameter. To suspend all process types, omit the <c>ScalingProcesses.member.N</c> parameter. </para>
        /// <para><b>IMPORTANT:</b> Suspending either of the two primary process types, Launch or Terminate, can prevent other process types from
        /// functioning properly. For more information about processes and their dependencies, see ProcessType. </para> <para> To resume processes that
        /// have been suspended, use ResumeProcesses. </para>
        /// </summary>
        ///
        /// <param name="suspendProcessesRequest">Container for the necessary parameters to execute the SuspendProcesses service method on
        ///           AmazonAutoScaling.</param>
        ///
        public SuspendProcessesResponse SuspendProcesses(SuspendProcessesRequest suspendProcessesRequest)
        {
            IRequest <SuspendProcessesRequest> request  = new SuspendProcessesRequestMarshaller().Marshall(suspendProcessesRequest);
            SuspendProcessesResponse           response = Invoke <SuspendProcessesRequest, SuspendProcessesResponse> (request, this.signer, SuspendProcessesResponseUnmarshaller.GetInstance());

            return(response);
        }
        public static SuspendProcessesResponse Unmarshall(UnmarshallerContext context)
        {
            SuspendProcessesResponse suspendProcessesResponse = new SuspendProcessesResponse();

            suspendProcessesResponse.HttpResponse = context.HttpResponse;
            suspendProcessesResponse.RequestId    = context.StringValue("SuspendProcesses.RequestId");

            return(suspendProcessesResponse);
        }
        public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context)
        {
            SuspendProcessesResponse response = new SuspendProcessesResponse();

            while (context.Read())
            {
                if (context.IsStartElement)
                {
                    if (context.TestExpression("ResponseMetadata", 2))
                    {
                        response.ResponseMetadata = ResponseMetadataUnmarshaller.GetInstance().Unmarshall(context);
                    }
                }
            }


            return(response);
        }
        private static void UnmarshallResult(XmlUnmarshallerContext context, SuspendProcessesResponse response)
        {
            int originalDepth = context.CurrentDepth;
            int targetDepth   = originalDepth + 1;

            if (context.IsStartOfDocument)
            {
                targetDepth += 2;
            }

            while (context.ReadAtDepth(originalDepth))
            {
                if (context.IsStartElement || context.IsAttribute)
                {
                }
            }

            return;
        }