public static QuerySnapshotJobListResponse Unmarshall(UnmarshallerContext context)
        {
            QuerySnapshotJobListResponse querySnapshotJobListResponse = new QuerySnapshotJobListResponse();

            querySnapshotJobListResponse.HttpResponse = context.HttpResponse;
            querySnapshotJobListResponse.RequestId    = context.StringValue("QuerySnapshotJobList.RequestId");

            List <string> nonExistSnapshotJobIds = new List <string>();

            for (int i = 0; i < context.Length("QuerySnapshotJobList.NonExistSnapshotJobIds.Length"); i++)
            {
                nonExistSnapshotJobIds.Add(context.StringValue("QuerySnapshotJobList.NonExistSnapshotJobIds[" + i + "]"));
            }
            querySnapshotJobListResponse.NonExistSnapshotJobIds = nonExistSnapshotJobIds;

            List <QuerySnapshotJobListResponse.SnapshotJob> snapshotJobList = new List <QuerySnapshotJobListResponse.SnapshotJob>();

            for (int i = 0; i < context.Length("QuerySnapshotJobList.SnapshotJobList.Length"); i++)
            {
                QuerySnapshotJobListResponse.SnapshotJob snapshotJob = new QuerySnapshotJobListResponse.SnapshotJob();
                snapshotJob.Id           = context.StringValue("QuerySnapshotJobList.SnapshotJobList[" + i + "].Id");
                snapshotJob.UserData     = context.StringValue("QuerySnapshotJobList.SnapshotJobList[" + i + "].UserData");
                snapshotJob.PipelineId   = context.StringValue("QuerySnapshotJobList.SnapshotJobList[" + i + "].PipelineId");
                snapshotJob.State        = context.StringValue("QuerySnapshotJobList.SnapshotJobList[" + i + "].State");
                snapshotJob.Code         = context.StringValue("QuerySnapshotJobList.SnapshotJobList[" + i + "].Code");
                snapshotJob.Message      = context.StringValue("QuerySnapshotJobList.SnapshotJobList[" + i + "].Message");
                snapshotJob.CreationTime = context.StringValue("QuerySnapshotJobList.SnapshotJobList[" + i + "].CreationTime");

                QuerySnapshotJobListResponse.SnapshotJob.Input_ input = new QuerySnapshotJobListResponse.SnapshotJob.Input_();
                input.Bucket      = context.StringValue("QuerySnapshotJobList.SnapshotJobList[" + i + "].Input.Bucket");
                input.Location    = context.StringValue("QuerySnapshotJobList.SnapshotJobList[" + i + "].Input.Location");
                input.Object      = context.StringValue("QuerySnapshotJobList.SnapshotJobList[" + i + "].Input.Object");
                snapshotJob.Input = input;

                QuerySnapshotJobListResponse.SnapshotJob.SnapshotConfig_ snapshotConfig = new QuerySnapshotJobListResponse.SnapshotJob.SnapshotConfig_();
                snapshotConfig.Time = context.StringValue("QuerySnapshotJobList.SnapshotJobList[" + i + "].SnapshotConfig.Time");

                QuerySnapshotJobListResponse.SnapshotJob.SnapshotConfig_.OutputFile_ outputFile = new QuerySnapshotJobListResponse.SnapshotJob.SnapshotConfig_.OutputFile_();
                outputFile.Bucket          = context.StringValue("QuerySnapshotJobList.SnapshotJobList[" + i + "].SnapshotConfig.OutputFile.Bucket");
                outputFile.Location        = context.StringValue("QuerySnapshotJobList.SnapshotJobList[" + i + "].SnapshotConfig.OutputFile.Location");
                outputFile.Object          = context.StringValue("QuerySnapshotJobList.SnapshotJobList[" + i + "].SnapshotConfig.OutputFile.Object");
                snapshotConfig.OutputFile  = outputFile;
                snapshotJob.SnapshotConfig = snapshotConfig;

                snapshotJobList.Add(snapshotJob);
            }
            querySnapshotJobListResponse.SnapshotJobList = snapshotJobList;

            return(querySnapshotJobListResponse);
        }
        public static QuerySnapshotJobListResponse Unmarshall(UnmarshallerContext context)
        {
            QuerySnapshotJobListResponse querySnapshotJobListResponse = new QuerySnapshotJobListResponse()
            {
                HttpResponse = context.HttpResponse,
                RequestId    = context.StringValue("QuerySnapshotJobList.RequestId")
            };
            List <string> nonExistSnapshotJobIds = new List <string>();

            for (int i = 0; i < context.Length("QuerySnapshotJobList.NonExistSnapshotJobIds.Length"); i++)
            {
                nonExistSnapshotJobIds.Add(context.StringValue($"QuerySnapshotJobList.NonExistSnapshotJobIds[{i}]"));
            }
            querySnapshotJobListResponse.NonExistSnapshotJobIds = nonExistSnapshotJobIds;

            List <QuerySnapshotJobListResponse.SnapshotJob> snapshotJobList = new List <QuerySnapshotJobListResponse.SnapshotJob>();

            for (int i = 0; i < context.Length("QuerySnapshotJobList.SnapshotJobList.Length"); i++)
            {
                QuerySnapshotJobListResponse.SnapshotJob snapshotJob = new QuerySnapshotJobListResponse.SnapshotJob()
                {
                    Id           = context.StringValue($"QuerySnapshotJobList.SnapshotJobList[{i}].Id"),
                    UserData     = context.StringValue($"QuerySnapshotJobList.SnapshotJobList[{i}].UserData"),
                    PipelineId   = context.StringValue($"QuerySnapshotJobList.SnapshotJobList[{i}].PipelineId"),
                    State        = context.StringValue($"QuerySnapshotJobList.SnapshotJobList[{i}].State"),
                    Code         = context.StringValue($"QuerySnapshotJobList.SnapshotJobList[{i}].Code"),
                    Count        = context.StringValue($"QuerySnapshotJobList.SnapshotJobList[{i}].Count"),
                    Message      = context.StringValue($"QuerySnapshotJobList.SnapshotJobList[{i}].Message"),
                    CreationTime = context.StringValue($"QuerySnapshotJobList.SnapshotJobList[{i}].CreationTime")
                };
                QuerySnapshotJobListResponse.SnapshotJob.Input_ input = new QuerySnapshotJobListResponse.SnapshotJob.Input_()
                {
                    Bucket   = context.StringValue($"QuerySnapshotJobList.SnapshotJobList[{i}].Input.Bucket"),
                    Location = context.StringValue($"QuerySnapshotJobList.SnapshotJobList[{i}].Input.Location"),
                    Object   = context.StringValue($"QuerySnapshotJobList.SnapshotJobList[{i}].Input.Object")
                };
                snapshotJob.Input = input;

                QuerySnapshotJobListResponse.SnapshotJob.SnapshotConfig_ snapshotConfig = new QuerySnapshotJobListResponse.SnapshotJob.SnapshotConfig_()
                {
                    Time      = context.StringValue($"QuerySnapshotJobList.SnapshotJobList[{i}].SnapshotConfig.Time"),
                    Interval  = context.StringValue($"QuerySnapshotJobList.SnapshotJobList[{i}].SnapshotConfig.Interval"),
                    Num       = context.StringValue($"QuerySnapshotJobList.SnapshotJobList[{i}].SnapshotConfig.Num"),
                    Width     = context.StringValue($"QuerySnapshotJobList.SnapshotJobList[{i}].SnapshotConfig.Width"),
                    Height    = context.StringValue($"QuerySnapshotJobList.SnapshotJobList[{i}].SnapshotConfig.Height"),
                    FrameType = context.StringValue($"QuerySnapshotJobList.SnapshotJobList[{i}].SnapshotConfig.FrameType")
                };
                QuerySnapshotJobListResponse.SnapshotJob.SnapshotConfig_.OutputFile_ outputFile = new QuerySnapshotJobListResponse.SnapshotJob.SnapshotConfig_.OutputFile_()
                {
                    Bucket   = context.StringValue($"QuerySnapshotJobList.SnapshotJobList[{i}].SnapshotConfig.OutputFile.Bucket"),
                    Location = context.StringValue($"QuerySnapshotJobList.SnapshotJobList[{i}].SnapshotConfig.OutputFile.Location"),
                    Object   = context.StringValue($"QuerySnapshotJobList.SnapshotJobList[{i}].SnapshotConfig.OutputFile.Object")
                };
                snapshotConfig.OutputFile  = outputFile;
                snapshotJob.SnapshotConfig = snapshotConfig;

                QuerySnapshotJobListResponse.SnapshotJob.MnsMessageResult_ mNsMessageResult = new QuerySnapshotJobListResponse.SnapshotJob.MnsMessageResult_()
                {
                    MessageId    = context.StringValue($"QuerySnapshotJobList.SnapshotJobList[{i}].MNSMessageResult.MessageId"),
                    ErrorMessage = context.StringValue($"QuerySnapshotJobList.SnapshotJobList[{i}].MNSMessageResult.ErrorMessage"),
                    ErrorCode    = context.StringValue($"QuerySnapshotJobList.SnapshotJobList[{i}].MNSMessageResult.ErrorCode")
                };
                snapshotJob.MnsMessageResult = mNsMessageResult;

                snapshotJobList.Add(snapshotJob);
            }
            querySnapshotJobListResponse.SnapshotJobList = snapshotJobList;

            return(querySnapshotJobListResponse);
        }