/// <summary>
        /// Unmarshaller the response from the service to the response class.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context)
        {
            DescribeCapacityReservationsResponse response = new DescribeCapacityReservationsResponse();

            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("capacityReservationSet/item", targetDepth))
                    {
                        var unmarshaller = CapacityReservationUnmarshaller.Instance;
                        var item         = unmarshaller.Unmarshall(context);
                        response.CapacityReservations.Add(item);
                        continue;
                    }
                    if (context.TestExpression("nextToken", targetDepth))
                    {
                        var unmarshaller = StringUnmarshaller.Instance;
                        response.NextToken = unmarshaller.Unmarshall(context);
                        continue;
                    }
                }
            }

            return(response);
        }
Пример #2
0
        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);

            DescribeCapacityReservationsResponse resp = new DescribeCapacityReservationsResponse();

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

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

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

            describeCapacityReservationsResponse.HttpResponse = _ctx.HttpResponse;
            describeCapacityReservationsResponse.RequestId    = _ctx.StringValue("DescribeCapacityReservations.RequestId");
            describeCapacityReservationsResponse.NextToken    = _ctx.StringValue("DescribeCapacityReservations.NextToken");
            describeCapacityReservationsResponse.MaxResults   = _ctx.IntegerValue("DescribeCapacityReservations.MaxResults");
            describeCapacityReservationsResponse.TotalCount   = _ctx.IntegerValue("DescribeCapacityReservations.TotalCount");

            List <DescribeCapacityReservationsResponse.DescribeCapacityReservations_CapacityReservationItem> describeCapacityReservationsResponse_capacityReservationSet = new List <DescribeCapacityReservationsResponse.DescribeCapacityReservations_CapacityReservationItem>();

            for (int i = 0; i < _ctx.Length("DescribeCapacityReservations.CapacityReservationSet.Length"); i++)
            {
                DescribeCapacityReservationsResponse.DescribeCapacityReservations_CapacityReservationItem capacityReservationItem = new DescribeCapacityReservationsResponse.DescribeCapacityReservations_CapacityReservationItem();
                capacityReservationItem.PrivatePoolOptionsId   = _ctx.StringValue("DescribeCapacityReservations.CapacityReservationSet[" + i + "].PrivatePoolOptionsId");
                capacityReservationItem.PrivatePoolOptionsName = _ctx.StringValue("DescribeCapacityReservations.CapacityReservationSet[" + i + "].PrivatePoolOptionsName");
                capacityReservationItem.Description            = _ctx.StringValue("DescribeCapacityReservations.CapacityReservationSet[" + i + "].Description");
                capacityReservationItem.RegionId = _ctx.StringValue("DescribeCapacityReservations.CapacityReservationSet[" + i + "].RegionId");
                capacityReservationItem.PrivatePoolOptionsMatchCriteria = _ctx.StringValue("DescribeCapacityReservations.CapacityReservationSet[" + i + "].PrivatePoolOptionsMatchCriteria");
                capacityReservationItem.Status             = _ctx.StringValue("DescribeCapacityReservations.CapacityReservationSet[" + i + "].Status");
                capacityReservationItem.StartTime          = _ctx.StringValue("DescribeCapacityReservations.CapacityReservationSet[" + i + "].StartTime");
                capacityReservationItem.EndTime            = _ctx.StringValue("DescribeCapacityReservations.CapacityReservationSet[" + i + "].EndTime");
                capacityReservationItem.EndTimeType        = _ctx.StringValue("DescribeCapacityReservations.CapacityReservationSet[" + i + "].EndTimeType");
                capacityReservationItem.InstanceChargeType = _ctx.StringValue("DescribeCapacityReservations.CapacityReservationSet[" + i + "].InstanceChargeType");
                capacityReservationItem.Platform           = _ctx.StringValue("DescribeCapacityReservations.CapacityReservationSet[" + i + "].Platform");
                capacityReservationItem.TimeSlot           = _ctx.StringValue("DescribeCapacityReservations.CapacityReservationSet[" + i + "].TimeSlot");
                capacityReservationItem.ResourceGroupId    = _ctx.StringValue("DescribeCapacityReservations.CapacityReservationSet[" + i + "].ResourceGroupId");

                List <DescribeCapacityReservationsResponse.DescribeCapacityReservations_CapacityReservationItem.DescribeCapacityReservations_AllocatedResource> capacityReservationItem_allocatedResources = new List <DescribeCapacityReservationsResponse.DescribeCapacityReservations_CapacityReservationItem.DescribeCapacityReservations_AllocatedResource>();
                for (int j = 0; j < _ctx.Length("DescribeCapacityReservations.CapacityReservationSet[" + i + "].AllocatedResources.Length"); j++)
                {
                    DescribeCapacityReservationsResponse.DescribeCapacityReservations_CapacityReservationItem.DescribeCapacityReservations_AllocatedResource allocatedResource = new DescribeCapacityReservationsResponse.DescribeCapacityReservations_CapacityReservationItem.DescribeCapacityReservations_AllocatedResource();
                    allocatedResource.ZoneId       = _ctx.StringValue("DescribeCapacityReservations.CapacityReservationSet[" + i + "].AllocatedResources[" + j + "].zoneId");
                    allocatedResource.InstanceType = _ctx.StringValue("DescribeCapacityReservations.CapacityReservationSet[" + i + "].AllocatedResources[" + j + "].InstanceType");
                    allocatedResource.TotalAmount  = _ctx.IntegerValue("DescribeCapacityReservations.CapacityReservationSet[" + i + "].AllocatedResources[" + j + "].TotalAmount");
                    allocatedResource.UsedAmount   = _ctx.IntegerValue("DescribeCapacityReservations.CapacityReservationSet[" + i + "].AllocatedResources[" + j + "].UsedAmount");

                    capacityReservationItem_allocatedResources.Add(allocatedResource);
                }
                capacityReservationItem.AllocatedResources = capacityReservationItem_allocatedResources;

                List <DescribeCapacityReservationsResponse.DescribeCapacityReservations_CapacityReservationItem.DescribeCapacityReservations_Tag> capacityReservationItem_tags = new List <DescribeCapacityReservationsResponse.DescribeCapacityReservations_CapacityReservationItem.DescribeCapacityReservations_Tag>();
                for (int j = 0; j < _ctx.Length("DescribeCapacityReservations.CapacityReservationSet[" + i + "].Tags.Length"); j++)
                {
                    DescribeCapacityReservationsResponse.DescribeCapacityReservations_CapacityReservationItem.DescribeCapacityReservations_Tag tag = new DescribeCapacityReservationsResponse.DescribeCapacityReservations_CapacityReservationItem.DescribeCapacityReservations_Tag();
                    tag.TagKey   = _ctx.StringValue("DescribeCapacityReservations.CapacityReservationSet[" + i + "].Tags[" + j + "].TagKey");
                    tag.TagValue = _ctx.StringValue("DescribeCapacityReservations.CapacityReservationSet[" + i + "].Tags[" + j + "].TagValue");

                    capacityReservationItem_tags.Add(tag);
                }
                capacityReservationItem.Tags = capacityReservationItem_tags;

                describeCapacityReservationsResponse_capacityReservationSet.Add(capacityReservationItem);
            }
            describeCapacityReservationsResponse.CapacityReservationSet = describeCapacityReservationsResponse_capacityReservationSet;

            return(describeCapacityReservationsResponse);
        }