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

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

            while (context.ReadAtDepth(targetDepth))
            {
                if (context.TestExpression("NextPageToken", targetDepth))
                {
                    var unmarshaller = StringUnmarshaller.Instance;
                    response.NextPageToken = unmarshaller.Unmarshall(context);
                    continue;
                }
                if (context.TestExpression("RecordDetail", targetDepth))
                {
                    var unmarshaller = RecordDetailUnmarshaller.Instance;
                    response.RecordDetail = unmarshaller.Unmarshall(context);
                    continue;
                }
                if (context.TestExpression("RecordOutputs", targetDepth))
                {
                    var unmarshaller = new ListUnmarshaller <RecordOutput, RecordOutputUnmarshaller>(RecordOutputUnmarshaller.Instance);
                    response.RecordOutputs = unmarshaller.Unmarshall(context);
                    continue;
                }
            }

            return(response);
        }
        public static DescribeRecordResponse Unmarshall(UnmarshallerContext _ctx)
        {
            DescribeRecordResponse describeRecordResponse = new DescribeRecordResponse();

            describeRecordResponse.HttpResponse    = _ctx.HttpResponse;
            describeRecordResponse.RequestId       = _ctx.StringValue("DescribeRecord.RequestId");
            describeRecordResponse.RecordId        = _ctx.StringValue("DescribeRecord.RecordId");
            describeRecordResponse.AppId           = _ctx.StringValue("DescribeRecord.AppId");
            describeRecordResponse.BoardId         = _ctx.IntegerValue("DescribeRecord.BoardId");
            describeRecordResponse.RecordStartTime = _ctx.LongValue("DescribeRecord.RecordStartTime");
            describeRecordResponse.StartTime       = _ctx.LongValue("DescribeRecord.StartTime");
            describeRecordResponse.EndTime         = _ctx.LongValue("DescribeRecord.EndTime");
            describeRecordResponse.State           = _ctx.IntegerValue("DescribeRecord.State");
            describeRecordResponse.OssPath         = _ctx.StringValue("DescribeRecord.OssPath");
            describeRecordResponse.OssBucket       = _ctx.StringValue("DescribeRecord.OssBucket");
            describeRecordResponse.OssEndpoint     = _ctx.StringValue("DescribeRecord.OssEndpoint");

            return(describeRecordResponse);
        }