public static DescribeZonesResponse Unmarshall(UnmarshallerContext context)
{
DescribeZonesResponse describeZonesResponse = new DescribeZonesResponse();
describeZonesResponse.HttpResponse = context.HttpResponse;
describeZonesResponse.RequestId = context.StringValue("DescribeZones.RequestId");
List<DescribeZonesResponse.Zone> zones = new List<DescribeZonesResponse.Zone>();
for (int i = 0; i < context.Length("DescribeZones.Zones.Length"); i++) {
DescribeZonesResponse.Zone zone = new DescribeZonesResponse.Zone();
zone.ZoneId = context.StringValue("DescribeZones.Zones["+ i +"].ZoneId");
zone.LocalName = context.StringValue("DescribeZones.Zones["+ i +"].LocalName");
List<string> availableResourceCreation = new List<string>();
for (int j = 0; j < context.Length("DescribeZones.Zones["+ i +"].AvailableResourceCreation.Length"); j++) {
availableResourceCreation.Add(context.StringValue("DescribeZones.Zones["+ i +"].AvailableResourceCreation["+ j +"]"));
}
zone.AvailableResourceCreation = availableResourceCreation;
List<string> availableDiskCategories = new List<string>();
for (int j = 0; j < context.Length("DescribeZones.Zones["+ i +"].AvailableDiskCategories.Length"); j++) {
availableDiskCategories.Add(context.StringValue("DescribeZones.Zones["+ i +"].AvailableDiskCategories["+ j +"]"));
}
zone.AvailableDiskCategories = availableDiskCategories;
List<string> availableInstanceTypes = new List<string>();
for (int j = 0; j < context.Length("DescribeZones.Zones["+ i +"].AvailableInstanceTypes.Length"); j++) {
availableInstanceTypes.Add(context.StringValue("DescribeZones.Zones["+ i +"].AvailableInstanceTypes["+ j +"]"));
}
zone.AvailableInstanceTypes = availableInstanceTypes;
List<DescribeZonesResponse.Zone.ResourcesInfo> availableResources = new List<DescribeZonesResponse.Zone.ResourcesInfo>();
for (int j = 0; j < context.Length("DescribeZones.Zones["+ i +"].AvailableResources.Length"); j++) {
DescribeZonesResponse.Zone.ResourcesInfo resourcesInfo = new DescribeZonesResponse.Zone.ResourcesInfo();
resourcesInfo.IoOptimized = context.BooleanValue("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].IoOptimized");
List<string> systemDiskCategories = new List<string>();
for (int k = 0; k < context.Length("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].SystemDiskCategories.Length"); k++) {
systemDiskCategories.Add(context.StringValue("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].SystemDiskCategories["+ k +"]"));
}
resourcesInfo.SystemDiskCategories = systemDiskCategories;
List<string> dataDiskCategories = new List<string>();
for (int k = 0; k < context.Length("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].DataDiskCategories.Length"); k++) {
dataDiskCategories.Add(context.StringValue("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].DataDiskCategories["+ k +"]"));
}
resourcesInfo.DataDiskCategories = dataDiskCategories;
List<string> networkTypes = new List<string>();
for (int k = 0; k < context.Length("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].NetworkTypes.Length"); k++) {
networkTypes.Add(context.StringValue("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].NetworkTypes["+ k +"]"));
}
resourcesInfo.NetworkTypes = networkTypes;
List<string> instanceTypes = new List<string>();
for (int k = 0; k < context.Length("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].InstanceTypes.Length"); k++) {
instanceTypes.Add(context.StringValue("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].InstanceTypes["+ k +"]"));
}
resourcesInfo.InstanceTypes = instanceTypes;
List<string> instanceTypeFamilies = new List<string>();
for (int k = 0; k < context.Length("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].InstanceTypeFamilies.Length"); k++) {
instanceTypeFamilies.Add(context.StringValue("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].InstanceTypeFamilies["+ k +"]"));
}
resourcesInfo.InstanceTypeFamilies = instanceTypeFamilies;
List<string> instanceGenerations = new List<string>();
for (int k = 0; k < context.Length("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].InstanceGenerations.Length"); k++) {
instanceGenerations.Add(context.StringValue("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].InstanceGenerations["+ k +"]"));
}
resourcesInfo.InstanceGenerations = instanceGenerations;
availableResources.Add(resourcesInfo);
}
zone.AvailableResources = availableResources;
zones.Add(zone);
}
describeZonesResponse.Zones = zones;
return describeZonesResponse;
}