public static DescribeDBInstancePerformanceResponse Unmarshall(UnmarshallerContext context)
        {
            DescribeDBInstancePerformanceResponse describeDBInstancePerformanceResponse = new DescribeDBInstancePerformanceResponse();

            describeDBInstancePerformanceResponse.HttpResponse = context.HttpResponse;
            describeDBInstancePerformanceResponse.RequestId = context.StringValue("DescribeDBInstancePerformance.RequestId");
            describeDBInstancePerformanceResponse.DBInstanceId = context.StringValue("DescribeDBInstancePerformance.DBInstanceId");
            describeDBInstancePerformanceResponse.Engine = context.StringValue("DescribeDBInstancePerformance.Engine");
            describeDBInstancePerformanceResponse.StartTime = context.StringValue("DescribeDBInstancePerformance.StartTime");
            describeDBInstancePerformanceResponse.EndTime = context.StringValue("DescribeDBInstancePerformance.EndTime");

            List<DescribeDBInstancePerformanceResponse.PerformanceKey> performanceKeys = new List<DescribeDBInstancePerformanceResponse.PerformanceKey>();
            for (int i = 0; i < context.Length("DescribeDBInstancePerformance.PerformanceKeys.Length"); i++) {
                DescribeDBInstancePerformanceResponse.PerformanceKey performanceKey = new DescribeDBInstancePerformanceResponse.PerformanceKey();
                performanceKey.Key = context.StringValue("DescribeDBInstancePerformance.PerformanceKeys["+ i +"].Key");
                performanceKey.Unit = context.StringValue("DescribeDBInstancePerformance.PerformanceKeys["+ i +"].Unit");
                performanceKey.ValueFormat = context.StringValue("DescribeDBInstancePerformance.PerformanceKeys["+ i +"].ValueFormat");

                List<DescribeDBInstancePerformanceResponse.PerformanceKey.PerformanceValue> values = new List<DescribeDBInstancePerformanceResponse.PerformanceKey.PerformanceValue>();
                for (int j = 0; j < context.Length("DescribeDBInstancePerformance.PerformanceKeys["+ i +"].Values.Length"); j++) {
                    DescribeDBInstancePerformanceResponse.PerformanceKey.PerformanceValue performanceValue = new DescribeDBInstancePerformanceResponse.PerformanceKey.PerformanceValue();
                    performanceValue.Value = context.StringValue("DescribeDBInstancePerformance.PerformanceKeys["+ i +"].Values["+ j +"].Value");
                    performanceValue.Date = context.StringValue("DescribeDBInstancePerformance.PerformanceKeys["+ i +"].Values["+ j +"].Date");

                    values.Add(performanceValue);
                }
                performanceKey.Values = values;

                performanceKeys.Add(performanceKey);
            }
            describeDBInstancePerformanceResponse.PerformanceKeys = performanceKeys;

            return describeDBInstancePerformanceResponse;
        }
        public static DescribeDBInstancePerformanceResponse Unmarshall(UnmarshallerContext context)
        {
            DescribeDBInstancePerformanceResponse describeDBInstancePerformanceResponse = new DescribeDBInstancePerformanceResponse()
            {
                HttpResponse = context.HttpResponse,
                RequestId    = context.StringValue("DescribeDBInstancePerformance.RequestId"),
                DBInstanceId = context.StringValue("DescribeDBInstancePerformance.DBInstanceId"),
                Engine       = context.StringValue("DescribeDBInstancePerformance.Engine"),
                StartTime    = context.StringValue("DescribeDBInstancePerformance.StartTime"),
                EndTime      = context.StringValue("DescribeDBInstancePerformance.EndTime")
            };
            List <DescribeDBInstancePerformanceResponse.PerformanceKey> performanceKeys = new List <DescribeDBInstancePerformanceResponse.PerformanceKey>();

            for (int i = 0; i < context.Length("DescribeDBInstancePerformance.PerformanceKeys.Length"); i++)
            {
                DescribeDBInstancePerformanceResponse.PerformanceKey performanceKey = new DescribeDBInstancePerformanceResponse.PerformanceKey()
                {
                    Key         = context.StringValue($"DescribeDBInstancePerformance.PerformanceKeys[{i}].Key"),
                    Unit        = context.StringValue($"DescribeDBInstancePerformance.PerformanceKeys[{i}].Unit"),
                    ValueFormat = context.StringValue($"DescribeDBInstancePerformance.PerformanceKeys[{i}].ValueFormat")
                };
                List <DescribeDBInstancePerformanceResponse.PerformanceKey.PerformanceValue> values = new List <DescribeDBInstancePerformanceResponse.PerformanceKey.PerformanceValue>();
                for (int j = 0; j < context.Length($"DescribeDBInstancePerformance.PerformanceKeys[{i}].Values.Length"); j++)
                {
                    DescribeDBInstancePerformanceResponse.PerformanceKey.PerformanceValue performanceValue = new DescribeDBInstancePerformanceResponse.PerformanceKey.PerformanceValue()
                    {
                        Value = context.StringValue($"DescribeDBInstancePerformance.PerformanceKeys[{i}].Values[{j}].Value"),
                        Date  = context.StringValue($"DescribeDBInstancePerformance.PerformanceKeys[{i}].Values[{j}].Date")
                    };
                    values.Add(performanceValue);
                }
                performanceKey.Values = values;

                performanceKeys.Add(performanceKey);
            }
            describeDBInstancePerformanceResponse.PerformanceKeys = performanceKeys;

            return(describeDBInstancePerformanceResponse);
        }