/// <summary>
        /// detact this instance from the ASG
        /// and decrement the ASG desired
        /// </summary>
        /// <returns></returns>
        private bool DetachFromAutoScalingGroup()
        {
            bool returnValue = false;

            using (AmazonAutoScalingClient scalingClient = new AmazonAutoScalingClient())
            {
                DetachInstancesRequest detachRequest = new DetachInstancesRequest
                {
                    AutoScalingGroupName           = _AutoScalingGroupName,
                    InstanceIds                    = new List <string>(new string[] { _InstanceId }),
                    ShouldDecrementDesiredCapacity = true
                };
                try
                {
                    DetachInstancesResponse detachResponse = scalingClient.DetachInstancesAsync(detachRequest).Result;
                    if (detachResponse.HttpStatusCode == System.Net.HttpStatusCode.OK)
                    {
                        returnValue = true;
                    }
                }
                catch (Exception)
                {
                    //Yes AWS throws Exceptions and System.AggregrateExceptions
                    //so for now this is the right way to handle it
                    returnValue = false;
                }
            }
            return(returnValue);
        }
        /// <summary>
        /// 本接口(DetachInstances)用于从伸缩组移出 CVM 实例,本接口不会销毁实例。
        /// </summary>
        /// <param name="req">参考<see cref="DetachInstancesRequest"/></param>
        /// <returns>参考<see cref="DetachInstancesResponse"/>实例</returns>
        public async Task <DetachInstancesResponse> DetachInstances(DetachInstancesRequest req)
        {
            JsonResponseModel <DetachInstancesResponse> rsp = null;

            try
            {
                var strResp = await this.InternalRequest(req, "DetachInstances");

                rsp = JsonConvert.DeserializeObject <JsonResponseModel <DetachInstancesResponse> >(strResp);
            }
            catch (JsonSerializationException e)
            {
                throw new TencentCloudSDKException(e.Message);
            }
            return(rsp.Response);
        }