public static DescribeZonesResponse Unmarshall()

in aliyun-net-sdk-ecs/Ecs/Transform/V20140526/DescribeZonesResponseUnmarshaller.cs [29:129]


        public static DescribeZonesResponse Unmarshall(UnmarshallerContext _ctx)
        {
			DescribeZonesResponse describeZonesResponse = new DescribeZonesResponse();

			describeZonesResponse.HttpResponse = _ctx.HttpResponse;
			describeZonesResponse.RequestId = _ctx.StringValue("DescribeZones.RequestId");

			List<DescribeZonesResponse.DescribeZones_Zone> describeZonesResponse_zones = new List<DescribeZonesResponse.DescribeZones_Zone>();
			for (int i = 0; i < _ctx.Length("DescribeZones.Zones.Length"); i++) {
				DescribeZonesResponse.DescribeZones_Zone zone = new DescribeZonesResponse.DescribeZones_Zone();
				zone.ZoneId = _ctx.StringValue("DescribeZones.Zones["+ i +"].ZoneId");
				zone.ZoneType = _ctx.StringValue("DescribeZones.Zones["+ i +"].ZoneType");
				zone.LocalName = _ctx.StringValue("DescribeZones.Zones["+ i +"].LocalName");

				List<string> zone_availableResourceCreation = new List<string>();
				for (int j = 0; j < _ctx.Length("DescribeZones.Zones["+ i +"].AvailableResourceCreation.Length"); j++) {
					zone_availableResourceCreation.Add(_ctx.StringValue("DescribeZones.Zones["+ i +"].AvailableResourceCreation["+ j +"]"));
				}
				zone.AvailableResourceCreation = zone_availableResourceCreation;

				List<string> zone_dedicatedHostGenerations = new List<string>();
				for (int j = 0; j < _ctx.Length("DescribeZones.Zones["+ i +"].DedicatedHostGenerations.Length"); j++) {
					zone_dedicatedHostGenerations.Add(_ctx.StringValue("DescribeZones.Zones["+ i +"].DedicatedHostGenerations["+ j +"]"));
				}
				zone.DedicatedHostGenerations = zone_dedicatedHostGenerations;

				List<string> zone_availableInstanceTypes = new List<string>();
				for (int j = 0; j < _ctx.Length("DescribeZones.Zones["+ i +"].AvailableInstanceTypes.Length"); j++) {
					zone_availableInstanceTypes.Add(_ctx.StringValue("DescribeZones.Zones["+ i +"].AvailableInstanceTypes["+ j +"]"));
				}
				zone.AvailableInstanceTypes = zone_availableInstanceTypes;

				List<string> zone_availableDiskCategories = new List<string>();
				for (int j = 0; j < _ctx.Length("DescribeZones.Zones["+ i +"].AvailableDiskCategories.Length"); j++) {
					zone_availableDiskCategories.Add(_ctx.StringValue("DescribeZones.Zones["+ i +"].AvailableDiskCategories["+ j +"]"));
				}
				zone.AvailableDiskCategories = zone_availableDiskCategories;

				List<string> zone_availableDedicatedHostTypes = new List<string>();
				for (int j = 0; j < _ctx.Length("DescribeZones.Zones["+ i +"].AvailableDedicatedHostTypes.Length"); j++) {
					zone_availableDedicatedHostTypes.Add(_ctx.StringValue("DescribeZones.Zones["+ i +"].AvailableDedicatedHostTypes["+ j +"]"));
				}
				zone.AvailableDedicatedHostTypes = zone_availableDedicatedHostTypes;

				List<string> zone_availableVolumeCategories = new List<string>();
				for (int j = 0; j < _ctx.Length("DescribeZones.Zones["+ i +"].AvailableVolumeCategories.Length"); j++) {
					zone_availableVolumeCategories.Add(_ctx.StringValue("DescribeZones.Zones["+ i +"].AvailableVolumeCategories["+ j +"]"));
				}
				zone.AvailableVolumeCategories = zone_availableVolumeCategories;

				List<DescribeZonesResponse.DescribeZones_Zone.DescribeZones_ResourcesInfo> zone_availableResources = new List<DescribeZonesResponse.DescribeZones_Zone.DescribeZones_ResourcesInfo>();
				for (int j = 0; j < _ctx.Length("DescribeZones.Zones["+ i +"].AvailableResources.Length"); j++) {
					DescribeZonesResponse.DescribeZones_Zone.DescribeZones_ResourcesInfo resourcesInfo = new DescribeZonesResponse.DescribeZones_Zone.DescribeZones_ResourcesInfo();
					resourcesInfo.IoOptimized = _ctx.BooleanValue("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].IoOptimized");

					List<string> resourcesInfo_systemDiskCategories = new List<string>();
					for (int k = 0; k < _ctx.Length("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].SystemDiskCategories.Length"); k++) {
						resourcesInfo_systemDiskCategories.Add(_ctx.StringValue("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].SystemDiskCategories["+ k +"]"));
					}
					resourcesInfo.SystemDiskCategories = resourcesInfo_systemDiskCategories;

					List<string> resourcesInfo_instanceGenerations = new List<string>();
					for (int k = 0; k < _ctx.Length("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].InstanceGenerations.Length"); k++) {
						resourcesInfo_instanceGenerations.Add(_ctx.StringValue("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].InstanceGenerations["+ k +"]"));
					}
					resourcesInfo.InstanceGenerations = resourcesInfo_instanceGenerations;

					List<string> resourcesInfo_dataDiskCategories = new List<string>();
					for (int k = 0; k < _ctx.Length("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].DataDiskCategories.Length"); k++) {
						resourcesInfo_dataDiskCategories.Add(_ctx.StringValue("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].DataDiskCategories["+ k +"]"));
					}
					resourcesInfo.DataDiskCategories = resourcesInfo_dataDiskCategories;

					List<string> resourcesInfo_instanceTypes = new List<string>();
					for (int k = 0; k < _ctx.Length("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].InstanceTypes.Length"); k++) {
						resourcesInfo_instanceTypes.Add(_ctx.StringValue("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].InstanceTypes["+ k +"]"));
					}
					resourcesInfo.InstanceTypes = resourcesInfo_instanceTypes;

					List<string> resourcesInfo_instanceTypeFamilies = new List<string>();
					for (int k = 0; k < _ctx.Length("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].InstanceTypeFamilies.Length"); k++) {
						resourcesInfo_instanceTypeFamilies.Add(_ctx.StringValue("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].InstanceTypeFamilies["+ k +"]"));
					}
					resourcesInfo.InstanceTypeFamilies = resourcesInfo_instanceTypeFamilies;

					List<string> resourcesInfo_networkTypes = new List<string>();
					for (int k = 0; k < _ctx.Length("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].NetworkTypes.Length"); k++) {
						resourcesInfo_networkTypes.Add(_ctx.StringValue("DescribeZones.Zones["+ i +"].AvailableResources["+ j +"].NetworkTypes["+ k +"]"));
					}
					resourcesInfo.NetworkTypes = resourcesInfo_networkTypes;

					zone_availableResources.Add(resourcesInfo);
				}
				zone.AvailableResources = zone_availableResources;

				describeZonesResponse_zones.Add(zone);
			}
			describeZonesResponse.Zones = describeZonesResponse_zones;
        
			return describeZonesResponse;
        }