Beispiel #1
0
        public static DescribeInstanceTypesResponse Unmarshall(UnmarshallerContext context)
        {
            DescribeInstanceTypesResponse describeInstanceTypesResponse = new DescribeInstanceTypesResponse();

            describeInstanceTypesResponse.HttpResponse = context.HttpResponse;
            describeInstanceTypesResponse.RequestId    = context.StringValue("DescribeInstanceTypes.RequestId");

            List <DescribeInstanceTypesResponse.DescribeInstanceTypes_InstanceType> describeInstanceTypesResponse_instanceTypes = new List <DescribeInstanceTypesResponse.DescribeInstanceTypes_InstanceType>();

            for (int i = 0; i < context.Length("DescribeInstanceTypes.InstanceTypes.Length"); i++)
            {
                DescribeInstanceTypesResponse.DescribeInstanceTypes_InstanceType instanceType = new DescribeInstanceTypesResponse.DescribeInstanceTypes_InstanceType();
                instanceType.InstanceTypeId       = context.StringValue("DescribeInstanceTypes.InstanceTypes[" + i + "].InstanceTypeId");
                instanceType.CpuCoreCount         = context.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].CpuCoreCount");
                instanceType.MemorySize           = context.FloatValue("DescribeInstanceTypes.InstanceTypes[" + i + "].MemorySize");
                instanceType.InstanceTypeFamily   = context.StringValue("DescribeInstanceTypes.InstanceTypes[" + i + "].InstanceTypeFamily");
                instanceType.LocalStorageCapacity = context.LongValue("DescribeInstanceTypes.InstanceTypes[" + i + "].LocalStorageCapacity");
                instanceType.LocalStorageAmount   = context.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].LocalStorageAmount");
                instanceType.LocalStorageCategory = context.StringValue("DescribeInstanceTypes.InstanceTypes[" + i + "].LocalStorageCategory");
                instanceType.GPUAmount            = context.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].GPUAmount");
                instanceType.GPUSpec             = context.StringValue("DescribeInstanceTypes.InstanceTypes[" + i + "].GPUSpec");
                instanceType.InitialCredit       = context.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].InitialCredit");
                instanceType.BaselineCredit      = context.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].BaselineCredit");
                instanceType.EniQuantity         = context.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].EniQuantity");
                instanceType.InstanceBandwidthRx = context.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].InstanceBandwidthRx");
                instanceType.InstanceBandwidthTx = context.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].InstanceBandwidthTx");

                describeInstanceTypesResponse_instanceTypes.Add(instanceType);
            }
            describeInstanceTypesResponse.InstanceTypes = describeInstanceTypesResponse_instanceTypes;

            return(describeInstanceTypesResponse);
        }
Beispiel #2
0
        /// <summary>
        /// Unmarshaller the response from the service to the response class.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context)
        {
            DescribeInstanceTypesResponse response = new DescribeInstanceTypesResponse();

            int originalDepth = context.CurrentDepth;
            int targetDepth   = originalDepth + 1;

            if (context.IsStartOfDocument)
            {
                targetDepth = 2;
            }

            while (context.ReadAtDepth(originalDepth))
            {
                if (context.IsStartElement || context.IsAttribute)
                {
                    if (context.TestExpression("instanceTypeSet/item", targetDepth))
                    {
                        var unmarshaller = InstanceTypeInfoUnmarshaller.Instance;
                        var item         = unmarshaller.Unmarshall(context);
                        response.InstanceTypes.Add(item);
                        continue;
                    }
                    if (context.TestExpression("nextToken", targetDepth))
                    {
                        var unmarshaller = StringUnmarshaller.Instance;
                        response.NextToken = unmarshaller.Unmarshall(context);
                        continue;
                    }
                }
            }

            return(response);
        }
        public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems)
        {
            AmazonEC2Config config = new AmazonEC2Config();

            config.RegionEndpoint = region;
            ConfigureClient(config);
            AmazonEC2Client client = new AmazonEC2Client(creds, config);

            DescribeInstanceTypesResponse resp = new DescribeInstanceTypesResponse();

            do
            {
                DescribeInstanceTypesRequest req = new DescribeInstanceTypesRequest
                {
                    NextToken = resp.NextToken
                    ,
                    MaxResults = maxItems
                };

                resp = client.DescribeInstanceTypes(req);
                CheckError(resp.HttpStatusCode, "200");

                foreach (var obj in resp.InstanceTypes)
                {
                    AddObject(obj);
                }
            }while (!string.IsNullOrEmpty(resp.NextToken));
        }
        public static DescribeInstanceTypesResponse Unmarshall(UnmarshallerContext _ctx)
        {
            DescribeInstanceTypesResponse describeInstanceTypesResponse = new DescribeInstanceTypesResponse();

            describeInstanceTypesResponse.HttpResponse = _ctx.HttpResponse;
            describeInstanceTypesResponse.RequestId    = _ctx.StringValue("DescribeInstanceTypes.RequestId");

            List <DescribeInstanceTypesResponse.DescribeInstanceTypes_InstanceType> describeInstanceTypesResponse_instanceTypes = new List <DescribeInstanceTypesResponse.DescribeInstanceTypes_InstanceType>();

            for (int i = 0; i < _ctx.Length("DescribeInstanceTypes.InstanceTypes.Length"); i++)
            {
                DescribeInstanceTypesResponse.DescribeInstanceTypes_InstanceType instanceType = new DescribeInstanceTypesResponse.DescribeInstanceTypes_InstanceType();
                instanceType.InstanceTypeId       = _ctx.StringValue("DescribeInstanceTypes.InstanceTypes[" + i + "].InstanceTypeId");
                instanceType.CpuCoreCount         = _ctx.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].CpuCoreCount");
                instanceType.MemorySize           = _ctx.FloatValue("DescribeInstanceTypes.InstanceTypes[" + i + "].MemorySize");
                instanceType.InstanceTypeFamily   = _ctx.StringValue("DescribeInstanceTypes.InstanceTypes[" + i + "].InstanceTypeFamily");
                instanceType.LocalStorageCapacity = _ctx.LongValue("DescribeInstanceTypes.InstanceTypes[" + i + "].LocalStorageCapacity");
                instanceType.LocalStorageAmount   = _ctx.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].LocalStorageAmount");
                instanceType.LocalStorageCategory = _ctx.StringValue("DescribeInstanceTypes.InstanceTypes[" + i + "].LocalStorageCategory");
                instanceType.GPUAmount            = _ctx.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].GPUAmount");
                instanceType.GPUSpec        = _ctx.StringValue("DescribeInstanceTypes.InstanceTypes[" + i + "].GPUSpec");
                instanceType.InitialCredit  = _ctx.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].InitialCredit");
                instanceType.BaselineCredit = _ctx.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].BaselineCredit");
                instanceType.EniQuantity    = _ctx.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].EniQuantity");
                instanceType.EniPrivateIpAddressQuantity = _ctx.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].EniPrivateIpAddressQuantity");
                instanceType.EniIpv6AddressQuantity      = _ctx.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].EniIpv6AddressQuantity");
                instanceType.InstanceBandwidthRx         = _ctx.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].InstanceBandwidthRx");
                instanceType.InstanceBandwidthTx         = _ctx.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].InstanceBandwidthTx");
                instanceType.InstancePpsRx            = _ctx.LongValue("DescribeInstanceTypes.InstanceTypes[" + i + "].InstancePpsRx");
                instanceType.InstancePpsTx            = _ctx.LongValue("DescribeInstanceTypes.InstanceTypes[" + i + "].InstancePpsTx");
                instanceType.InstanceFamilyLevel      = _ctx.StringValue("DescribeInstanceTypes.InstanceTypes[" + i + "].InstanceFamilyLevel");
                instanceType.TotalEniQueueQuantity    = _ctx.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].TotalEniQueueQuantity");
                instanceType.EniTrunkSupported        = _ctx.BooleanValue("DescribeInstanceTypes.InstanceTypes[" + i + "].EniTrunkSupported");
                instanceType.EniTotalQuantity         = _ctx.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].EniTotalQuantity");
                instanceType.MaximumQueueNumberPerEni = _ctx.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].MaximumQueueNumberPerEni");
                instanceType.PrimaryEniQueueNumber    = _ctx.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].PrimaryEniQueueNumber");
                instanceType.SecondaryEniQueueNumber  = _ctx.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].SecondaryEniQueueNumber");
                instanceType.DiskQuantity             = _ctx.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].DiskQuantity");
                instanceType.EriQuantity     = _ctx.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].EriQuantity");
                instanceType.QueuePairNumber = _ctx.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].QueuePairNumber");
                instanceType.NvmeSupport     = _ctx.StringValue("DescribeInstanceTypes.InstanceTypes[" + i + "].NvmeSupport");

                describeInstanceTypesResponse_instanceTypes.Add(instanceType);
            }
            describeInstanceTypesResponse.InstanceTypes = describeInstanceTypesResponse_instanceTypes;

            return(describeInstanceTypesResponse);
        }
        public static DescribeInstanceTypesResponse Unmarshall(UnmarshallerContext context)
        {
            DescribeInstanceTypesResponse describeInstanceTypesResponse = new DescribeInstanceTypesResponse();

            describeInstanceTypesResponse.HttpResponse = context.HttpResponse;
            describeInstanceTypesResponse.RequestId    = context.StringValue("DescribeInstanceTypes.RequestId");

            List <DescribeInstanceTypesResponse.InstanceType> instanceTypes = new List <DescribeInstanceTypesResponse.InstanceType>();

            for (int i = 0; i < context.Length("DescribeInstanceTypes.InstanceTypes.Length"); i++)
            {
                DescribeInstanceTypesResponse.InstanceType instanceType = new DescribeInstanceTypesResponse.InstanceType();
                instanceType.InstanceTypeId     = context.StringValue("DescribeInstanceTypes.InstanceTypes[" + i + "].InstanceTypeId");
                instanceType.CpuCoreCount       = context.IntegerValue("DescribeInstanceTypes.InstanceTypes[" + i + "].CpuCoreCount");
                instanceType.MemorySize         = context.FloatValue("DescribeInstanceTypes.InstanceTypes[" + i + "].MemorySize");
                instanceType.InstanceTypeFamily = context.StringValue("DescribeInstanceTypes.InstanceTypes[" + i + "].InstanceTypeFamily");

                instanceTypes.Add(instanceType);
            }
            describeInstanceTypesResponse.InstanceTypes = instanceTypes;

            return(describeInstanceTypesResponse);
        }
        public void Deserialize()
        {
            string xml = @"<DescribeInstanceTypesResponse xmlns=""http://ec2.amazonaws.com/doc/2016-11-15/"">
        <requestId>a</requestId>
        <instanceTypeSet>
            <item>
                <autoRecoverySupported>false</autoRecoverySupported>
                <bareMetal>false</bareMetal>
                <burstablePerformanceSupported>false</burstablePerformanceSupported>
                <currentGeneration>false</currentGeneration>
                <dedicatedHostsSupported>false</dedicatedHostsSupported>
                <ebsInfo>
                    <ebsOptimizedSupport>unsupported</ebsOptimizedSupport>
                    <encryptionSupport>unsupported</encryptionSupport>
                </ebsInfo>
                <freeTierEligible>true</freeTierEligible>
                <hibernationSupported>false</hibernationSupported>
                <hypervisor>xen</hypervisor>
                <instanceStorageSupported>false</instanceStorageSupported>
                <instanceType>t1.micro</instanceType>
                <memoryInfo>
                    <sizeInMiB>627</sizeInMiB>
                </memoryInfo>
                <networkInfo>
                    <enaSupport>unsupported</enaSupport>
                    <ipv4AddressesPerInterface>2</ipv4AddressesPerInterface>
                    <ipv6AddressesPerInterface>0</ipv6AddressesPerInterface>
                    <ipv6Supported>false</ipv6Supported>
                    <maximumNetworkInterfaces>2</maximumNetworkInterfaces>
                    <networkPerformance>Very Low</networkPerformance>
                </networkInfo>
                <placementGroupInfo>
                    <supportedStrategies>
                        <item>partition</item>
                        <item>spread</item>
                    </supportedStrategies>
                </placementGroupInfo>
                <processorInfo>
                    <supportedArchitectures>
                        <item>i386</item>
                        <item>x86_64</item>
                    </supportedArchitectures>
                </processorInfo>
                <supportedRootDeviceTypes>
                    <item>ebs</item>
                </supportedRootDeviceTypes>
                <supportedUsageClasses>
                    <item>on-demand</item>
                </supportedUsageClasses>
                <vCpuInfo>
                    <defaultCores>1</defaultCores>
                    <defaultThreadsPerCore>1</defaultThreadsPerCore>
                    <defaultVCpus>1</defaultVCpus>
                    <validCores>
                        <item>1</item>
                    </validCores>
                    <validThreadsPerCore>
                        <item>1</item>
                    </validThreadsPerCore>
                </vCpuInfo>
            </item>
        </instanceTypeSet>
    </DescribeInstanceTypesResponse>";


            var response = DescribeInstanceTypesResponse.Deserialize(xml);

            Assert.Equal("a", response.RequestId);

            Assert.Single(response.InstanceTypes);

            var instance = response.InstanceTypes[0];

            Assert.Equal("t1.micro", instance.InstanceType);
            Assert.Equal("xen", instance.Hypervisor);

            Assert.True(instance.FreeTierEligible);

            Assert.Equal(new[] { "i386", "x86_64" }, instance.ProcessorInfo.SupportedArchitectures);
            Assert.Equal(new[] { "ebs" }, instance.SupportedRootDeviceTypes);
            Assert.Equal(new[] { "on-demand" }, instance.SupportedUsageClasses);

            // Memory
            Assert.Equal(627, instance.MemoryInfo.SizeInMiB);

            // Network
            Assert.Equal("unsupported", instance.NetworkInfo.EnaSupport);
            Assert.Equal(2, instance.NetworkInfo.Ipv4AddressesPerInterface);
            Assert.Equal(0, instance.NetworkInfo.Ipv6AddressesPerInterface);
            Assert.False(instance.NetworkInfo.Ipv6Supported);
            Assert.Equal(2, instance.NetworkInfo.MaximumNetworkInterfaces);
            Assert.Equal("Very Low", instance.NetworkInfo.NetworkPerformance);


            // vCPU
            Assert.Equal(1, instance.VCpuInfo.DefaultCores);
            Assert.Equal(1, instance.VCpuInfo.DefaultThreadsPerCore);
            Assert.Equal(1, instance.VCpuInfo.DefaultVCpus);
            Assert.Equal(new[] { 1 }, instance.VCpuInfo.ValidThreadsPerCore);
        }