/// <summary> /// Unmarshaller the response from the service to the response class. /// </summary> /// <param name="context"></param> /// <returns></returns> public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context) { DescribeLoadBalancersResponse response = new DescribeLoadBalancersResponse(); context.Read(); int targetDepth = context.CurrentDepth; while (context.ReadAtDepth(targetDepth)) { if (context.IsStartElement) { if (context.TestExpression("DescribeLoadBalancersResult", 2)) { UnmarshallResult(context, response); continue; } if (context.TestExpression("ResponseMetadata", 2)) { response.ResponseMetadata = ResponseMetadataUnmarshaller.Instance.Unmarshall(context); } } } return(response); }
private static void UnmarshallResult(XmlUnmarshallerContext context, DescribeLoadBalancersResponse response) { 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("LoadBalancers/member", targetDepth)) { var unmarshaller = LoadBalancerStateUnmarshaller.Instance; var item = unmarshaller.Unmarshall(context); response.LoadBalancers.Add(item); continue; } if (context.TestExpression("NextToken", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.NextToken = unmarshaller.Unmarshall(context); continue; } } } return; }
public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems) { AmazonElasticLoadBalancingConfig config = new AmazonElasticLoadBalancingConfig(); config.RegionEndpoint = region; ConfigureClient(config); AmazonElasticLoadBalancingClient client = new AmazonElasticLoadBalancingClient(creds, config); DescribeLoadBalancersResponse resp = new DescribeLoadBalancersResponse(); do { DescribeLoadBalancersRequest req = new DescribeLoadBalancersRequest { Marker = resp.NextMarker }; resp = client.DescribeLoadBalancers(req); CheckError(resp.HttpStatusCode, "200"); foreach (var obj in resp.LoadBalancerDescriptions) { AddObject(obj); } }while (!string.IsNullOrEmpty(resp.NextMarker)); }
/// <summary> /// <para> Returns detailed configuration information for the specified LoadBalancers. If no LoadBalancers are specified, the operation returns /// configuration information for all LoadBalancers created by the caller. </para> <para><b>NOTE:</b> The client must have created the specified /// input LoadBalancers in order to retrieve this information; the client must provide the same account credentials as those that were used to /// create the LoadBalancer. </para> /// </summary> /// /// <param name="describeLoadBalancersRequest">Container for the necessary parameters to execute the DescribeLoadBalancers service method on /// AmazonElasticLoadBalancing.</param> /// /// <returns>The response from the DescribeLoadBalancers service method, as returned by AmazonElasticLoadBalancing.</returns> /// /// <exception cref="LoadBalancerNotFoundException"/> public DescribeLoadBalancersResponse DescribeLoadBalancers(DescribeLoadBalancersRequest describeLoadBalancersRequest) { IRequest <DescribeLoadBalancersRequest> request = new DescribeLoadBalancersRequestMarshaller().Marshall(describeLoadBalancersRequest); DescribeLoadBalancersResponse response = Invoke <DescribeLoadBalancersRequest, DescribeLoadBalancersResponse> (request, this.signer, DescribeLoadBalancersResponseUnmarshaller.GetInstance()); return(response); }
public static DescribeLoadBalancersResponse Unmarshall(UnmarshallerContext context) { DescribeLoadBalancersResponse describeLoadBalancersResponse = new DescribeLoadBalancersResponse() { HttpResponse = context.HttpResponse, RequestId = context.StringValue("DescribeLoadBalancers.RequestId") }; List <DescribeLoadBalancersResponse.LoadBalancer> loadBalancers = new List <DescribeLoadBalancersResponse.LoadBalancer>(); for (int i = 0; i < context.Length("DescribeLoadBalancers.LoadBalancers.Length"); i++) { DescribeLoadBalancersResponse.LoadBalancer loadBalancer = new DescribeLoadBalancersResponse.LoadBalancer() { LoadBalancerId = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].LoadBalancerId"), LoadBalancerName = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].LoadBalancerName"), LoadBalancerStatus = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].LoadBalancerStatus"), Address = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].Address"), AddressType = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].AddressType"), RegionId = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].RegionId"), RegionIdAlias = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].RegionIdAlias"), VSwitchId = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].VSwitchId"), VpcId = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].VpcId"), NetworkType = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].NetworkType"), MasterZoneId = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].MasterZoneId"), SlaveZoneId = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].SlaveZoneId"), InternetChargeType = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].InternetChargeType"), CreateTime = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].CreateTime"), CreateTimeStamp = context.LongValue($"DescribeLoadBalancers.LoadBalancers[{i}].CreateTimeStamp") }; loadBalancers.Add(loadBalancer); } describeLoadBalancersResponse.LoadBalancers = loadBalancers; return(describeLoadBalancersResponse); }
public static void InvokeDescribeLoadBalancers() { NameValueCollection appConfig = ConfigurationManager.AppSettings; // Print the number of Elastic Load Balancing domains. IAmazonElasticLoadBalancing elb = AWSClientFactory.CreateAmazonElasticLoadBalancingClient(RegionEndpoint.USWest2); try { DescribeLoadBalancersResponse elbResponse = elb.DescribeLoadBalancers(new DescribeLoadBalancersRequest()); int numLoadBalancers = 0; numLoadBalancers = elbResponse.LoadBalancerDescriptions.Count; Console.WriteLine("You have " + numLoadBalancers + " Elastic Load Balancing load balancer(s)."); } catch (AmazonElasticLoadBalancingException ex) { if (ex.ErrorCode.Equals("OptInRequired")) { Console.WriteLine("You are not signed for Amazon EC2."); Console.WriteLine("You can sign up at http://aws.amazon.com/ec2."); } else { Console.WriteLine("Caught Exception: " + ex.Message); Console.WriteLine("Response Status Code: " + ex.StatusCode); Console.WriteLine("Error Code: " + ex.ErrorCode); Console.WriteLine("Error Type: " + ex.ErrorType); Console.WriteLine("Request ID: " + ex.RequestId); } } Console.WriteLine(); }
public static DescribeLoadBalancersResponse Unmarshall(UnmarshallerContext _ctx) { DescribeLoadBalancersResponse describeLoadBalancersResponse = new DescribeLoadBalancersResponse(); describeLoadBalancersResponse.HttpResponse = _ctx.HttpResponse; describeLoadBalancersResponse.RequestId = _ctx.StringValue("DescribeLoadBalancers.RequestId"); describeLoadBalancersResponse.PageNumber = _ctx.IntegerValue("DescribeLoadBalancers.PageNumber"); describeLoadBalancersResponse.PageSize = _ctx.IntegerValue("DescribeLoadBalancers.PageSize"); describeLoadBalancersResponse.TotalCount = _ctx.IntegerValue("DescribeLoadBalancers.TotalCount"); List <DescribeLoadBalancersResponse.DescribeLoadBalancers_LoadBalancer> describeLoadBalancersResponse_loadBalancers = new List <DescribeLoadBalancersResponse.DescribeLoadBalancers_LoadBalancer>(); for (int i = 0; i < _ctx.Length("DescribeLoadBalancers.LoadBalancers.Length"); i++) { DescribeLoadBalancersResponse.DescribeLoadBalancers_LoadBalancer loadBalancer = new DescribeLoadBalancersResponse.DescribeLoadBalancers_LoadBalancer(); loadBalancer.LoadBalancerId = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].LoadBalancerId"); loadBalancer.LoadBalancerName = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].LoadBalancerName"); loadBalancer.LoadBalancerStatus = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].LoadBalancerStatus"); loadBalancer.Address = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].Address"); loadBalancer.AddressType = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].AddressType"); loadBalancer.RegionId = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].RegionId"); loadBalancer.RegionIdAlias = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].RegionIdAlias"); loadBalancer.VSwitchId = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].VSwitchId"); loadBalancer.VpcId = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].VpcId"); loadBalancer.NetworkType = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].NetworkType"); loadBalancer.MasterZoneId = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].MasterZoneId"); loadBalancer.SlaveZoneId = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].SlaveZoneId"); loadBalancer.InternetChargeType = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].InternetChargeType"); loadBalancer.CreateTime = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].CreateTime"); loadBalancer.CreateTimeStamp = _ctx.LongValue("DescribeLoadBalancers.LoadBalancers[" + i + "].CreateTimeStamp"); loadBalancer.PayType = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].PayType"); loadBalancer.ResourceGroupId = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].ResourceGroupId"); loadBalancer.AddressIPVersion = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].AddressIPVersion"); loadBalancer.BusinessStatus = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].BusinessStatus"); loadBalancer.ModificationProtectionStatus = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].ModificationProtectionStatus"); loadBalancer.ModificationProtectionReason = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].ModificationProtectionReason"); loadBalancer.Bandwidth = _ctx.IntegerValue("DescribeLoadBalancers.LoadBalancers[" + i + "].Bandwidth"); loadBalancer.InternetChargeTypeAlias = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].InternetChargeTypeAlias"); loadBalancer.LoadBalancerSpec = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].LoadBalancerSpec"); loadBalancer.DeleteProtection = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].DeleteProtection"); List <DescribeLoadBalancersResponse.DescribeLoadBalancers_LoadBalancer.DescribeLoadBalancers_Tag> loadBalancer_tags = new List <DescribeLoadBalancersResponse.DescribeLoadBalancers_LoadBalancer.DescribeLoadBalancers_Tag>(); for (int j = 0; j < _ctx.Length("DescribeLoadBalancers.LoadBalancers[" + i + "].Tags.Length"); j++) { DescribeLoadBalancersResponse.DescribeLoadBalancers_LoadBalancer.DescribeLoadBalancers_Tag tag = new DescribeLoadBalancersResponse.DescribeLoadBalancers_LoadBalancer.DescribeLoadBalancers_Tag(); tag.TagKey = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].Tags[" + j + "].TagKey"); tag.TagValue = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].Tags[" + j + "].TagValue"); loadBalancer_tags.Add(tag); } loadBalancer.Tags = loadBalancer_tags; describeLoadBalancersResponse_loadBalancers.Add(loadBalancer); } describeLoadBalancersResponse.LoadBalancers = describeLoadBalancersResponse_loadBalancers; return(describeLoadBalancersResponse); }
public void Setup() { _firstPage = new DescribeLoadBalancersResponse { NextMarker = "token-1", LoadBalancerDescriptions = new List <LoadBalancerDescription> { new LoadBalancerDescription { LoadBalancerName = "LoadBalancer-1" } } }; _secondPage = new DescribeLoadBalancersResponse { NextMarker = "token-2", LoadBalancerDescriptions = new List <LoadBalancerDescription> { new LoadBalancerDescription { LoadBalancerName = "LoadBalancer-2" } } }; _thirdPage = new DescribeLoadBalancersResponse { LoadBalancerDescriptions = new List <LoadBalancerDescription> { new LoadBalancerDescription { LoadBalancerName = "LoadBalancer-3" } } }; var elbMock = new Mock <IAmazonElasticLoadBalancing>(); elbMock.Setup(s => s.DescribeLoadBalancersAsync( It.Is <DescribeLoadBalancersRequest>(r => r.Marker == null), It.IsAny <CancellationToken>() )).ReturnsAsync(_firstPage); elbMock.Setup(s => s.DescribeLoadBalancersAsync( It.Is <DescribeLoadBalancersRequest>(r => r.Marker == "token-1"), It.IsAny <CancellationToken>() )).ReturnsAsync(_secondPage); elbMock.Setup(s => s.DescribeLoadBalancersAsync( It.Is <DescribeLoadBalancersRequest>(r => r.Marker == "token-2"), It.IsAny <CancellationToken>() )).ReturnsAsync(_thirdPage); _elbSource = new ElbSource(elbMock.Object); }
public AwsObjectRetriever(string accessKeyID, string secretKeyID, Amazon.RegionEndpoint region, ILogProvider logProvider, IStatusProvider statusProvider) { _logProvider = logProvider; _statusProvider = statusProvider; createEC2Client(accessKeyID, secretKeyID, region); createLBClient(accessKeyID, secretKeyID, region); REGION = region.SystemName; _vpcs = GetAllVpcs(); _instances = GetAllInstances(); _volumes = GetAllVolumes(); Application.DoEvents(); _Loadbalancers = GetAllLBs(); }
public static void GetTopology() { IAmazonEC2 ec2 = AWSClientFactory.CreateAmazonEC2Client(); IAmazonAutoScaling asg = AWSClientFactory.CreateAmazonAutoScalingClient(); IAmazonElasticLoadBalancing elb = AWSClientFactory.CreateAmazonElasticLoadBalancingClient(); DescribeVpcsResponse vpcResponse = ec2.DescribeVpcs(); WriteFile("vpcs.csv", vpcResponse.Vpcs); DescribeInstancesResponse instanceResponse = ec2.DescribeInstances(); var reservationIndex = 0; foreach (var reservation in instanceResponse.Reservations) { if (reservationIndex == 0) { WriteFile("instances.csv", reservation.Instances); } else { AppendFile("instances.csv", reservation.Instances); } reservationIndex++; } DescribeNetworkAclsResponse naclResponse = ec2.DescribeNetworkAcls(); WriteFile("nacls.csv", naclResponse.NetworkAcls); Amazon.EC2.Model.DescribeTagsResponse tagsResponse = ec2.DescribeTags(); WriteFile("tags.csv", tagsResponse.Tags); DescribeVolumesResponse volumesResponse = ec2.DescribeVolumes(); WriteFile("volumes.csv", volumesResponse.Volumes); DescribeLoadBalancersResponse elbResponse = elb.DescribeLoadBalancers(); WriteFile("elbs.csv", elbResponse.LoadBalancerDescriptions); DescribeInternetGatewaysResponse igResponse = ec2.DescribeInternetGateways(); WriteFile("igs.csv", igResponse.InternetGateways); }
void worker_DoWork(object sender, DoWorkEventArgs e) { //validate args if (String.IsNullOrEmpty(AWSAccessKey) || String.IsNullOrEmpty(AWSSecretKey)) { e.Result = null; return; } //ec2 client var ec2 = AWSClientFactory.CreateAmazonEC2Client(AWSAccessKey, AWSSecretKey, new AmazonEC2Config().WithServiceURL(RegionHelper.EC2EndpointForRegion(EC2Region)) ); var elbClient = AWSClientFactory.CreateAmazonElasticLoadBalancingClient(AWSAccessKey, AWSSecretKey, new AmazonElasticLoadBalancingConfig() { ServiceURL = RegionHelper.ELBEndpointForRegion(EC2Region).Replace("http:", "https:") }); DescribeLoadBalancersResponse loadBalancers = null; try { loadBalancers = elbClient.DescribeLoadBalancers(); } catch (WebException wex) { var response = wex.Response as HttpWebResponse; var responsveBody = new StreamReader(response.GetResponseStream()).ReadToEnd(); int a = 5; } e.Result = loadBalancers.DescribeLoadBalancersResult.LoadBalancerDescriptions. Select(lb => new AWSLoadBalancerServersRetreiverCompleteEventArgs.LoadBalancer { LoadBalancerName = lb.LoadBalancerName, InstanceNames = lb.Instances.Select(instance => instance.InstanceId).ToList() }). ToList(); }
public static DescribeLoadBalancersResponse Unmarshall(UnmarshallerContext context) { DescribeLoadBalancersResponse describeLoadBalancersResponse = new DescribeLoadBalancersResponse(); describeLoadBalancersResponse.HttpResponse = context.HttpResponse; describeLoadBalancersResponse.RequestId = context.StringValue("DescribeLoadBalancers.RequestId"); describeLoadBalancersResponse.PageNumber = context.IntegerValue("DescribeLoadBalancers.PageNumber"); describeLoadBalancersResponse.PageSize = context.IntegerValue("DescribeLoadBalancers.PageSize"); describeLoadBalancersResponse.TotalCount = context.IntegerValue("DescribeLoadBalancers.TotalCount"); List <DescribeLoadBalancersResponse.DescribeLoadBalancers_LoadBalancer> describeLoadBalancersResponse_loadBalancers = new List <DescribeLoadBalancersResponse.DescribeLoadBalancers_LoadBalancer>(); for (int i = 0; i < context.Length("DescribeLoadBalancers.LoadBalancers.Length"); i++) { DescribeLoadBalancersResponse.DescribeLoadBalancers_LoadBalancer loadBalancer = new DescribeLoadBalancersResponse.DescribeLoadBalancers_LoadBalancer(); loadBalancer.LoadBalancerId = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].LoadBalancerId"); loadBalancer.LoadBalancerName = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].LoadBalancerName"); loadBalancer.LoadBalancerStatus = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].LoadBalancerStatus"); loadBalancer.Address = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].Address"); loadBalancer.AddressType = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].AddressType"); loadBalancer.RegionId = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].RegionId"); loadBalancer.RegionIdAlias = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].RegionIdAlias"); loadBalancer.VSwitchId = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].VSwitchId"); loadBalancer.VpcId = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].VpcId"); loadBalancer.NetworkType = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].NetworkType"); loadBalancer.MasterZoneId = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].MasterZoneId"); loadBalancer.SlaveZoneId = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].SlaveZoneId"); loadBalancer.InternetChargeType = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].InternetChargeType"); loadBalancer.CreateTime = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].CreateTime"); loadBalancer.CreateTimeStamp = context.LongValue("DescribeLoadBalancers.LoadBalancers[" + i + "].CreateTimeStamp"); loadBalancer.PayType = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].PayType"); loadBalancer.ResourceGroupId = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].ResourceGroupId"); describeLoadBalancersResponse_loadBalancers.Add(loadBalancer); } describeLoadBalancersResponse.LoadBalancers = describeLoadBalancersResponse_loadBalancers; return(describeLoadBalancersResponse); }
public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context) { DescribeLoadBalancersResponse response = new DescribeLoadBalancersResponse(); while (context.Read()) { if (context.IsStartElement) { if (context.TestExpression("DescribeLoadBalancersResult", 2)) { response.DescribeLoadBalancersResult = DescribeLoadBalancersResultUnmarshaller.GetInstance().Unmarshall(context); continue; } if (context.TestExpression("ResponseMetadata", 2)) { response.ResponseMetadata = ResponseMetadataUnmarshaller.GetInstance().Unmarshall(context); } } } return(response); }
private static void UnmarshallResult(XmlUnmarshallerContext context, DescribeLoadBalancersResponse response) { int originalDepth = context.CurrentDepth; int targetDepth = originalDepth + 1; if (context.IsStartOfDocument) { targetDepth += 2; } while (context.Read()) { if (context.IsStartElement || context.IsAttribute) { if (context.TestExpression("LoadBalancerDescriptions/member", targetDepth)) { response.LoadBalancerDescriptions.Add(LoadBalancerDescriptionUnmarshaller.GetInstance().Unmarshall(context)); continue; } if (context.TestExpression("NextMarker", targetDepth)) { response.NextMarker = StringUnmarshaller.GetInstance().Unmarshall(context); continue; } } else if (context.IsEndElement && context.CurrentDepth < originalDepth) { return; } } return; }
//public Dictionary<string, XmlDocument> _documentCache = new Dictionary<string, XmlDocument>(); public AwsObjectRetriever(string accessKeyID, string secretKeyID, Amazon.RegionEndpoint region, ILogProvider logProvider, IStatusProvider statusProvider) { _logProvider = logProvider; _statusProvider = statusProvider; createEC2Client(accessKeyID, secretKeyID, region); createLBClient(accessKeyID, secretKeyID, region); REGION = region.SystemName; try { _vpcs = GetAllVpcs(); Application.DoEvents(); _instances = GetAllInstances(); Application.DoEvents(); // _volumes = GetAllVolumes(); // Application.DoEvents(); _Loadbalancers = GetAllLBs(); } catch (Exception ex) { MessageBox.Show("Error during accessing the AWS Resources. Error Message: " + ex.Message, "Access Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public void Setup() { _firstPage = new DescribeLoadBalancersResponse { NextMarker = "token-1", LoadBalancers = new List <LoadBalancer> { new LoadBalancer { LoadBalancerName = "LoadBalancer-1", Type = LoadBalancerTypeEnum.Application } } }; _secondPage = new DescribeLoadBalancersResponse { NextMarker = "token-2", LoadBalancers = new List <LoadBalancer> { new LoadBalancer { LoadBalancerName = "LoadBalancer-2", Type = LoadBalancerTypeEnum.Application } } }; _thirdPage = new DescribeLoadBalancersResponse { NextMarker = "token-3", LoadBalancers = new List <LoadBalancer> { new LoadBalancer { LoadBalancerName = "LoadBalancer-3", Type = LoadBalancerTypeEnum.Application } } }; _fourthPage = new DescribeLoadBalancersResponse { LoadBalancers = new List <LoadBalancer> { new LoadBalancer { LoadBalancerName = "NetworkBalancer-1", Type = LoadBalancerTypeEnum.Network } } }; var elbMock = new Mock <IAmazonElasticLoadBalancingV2>(); elbMock.Setup(s => s.DescribeLoadBalancersAsync( It.Is <DescribeLoadBalancersRequest>(r => r.Marker == null), It.IsAny <CancellationToken>() )).ReturnsAsync(_firstPage); elbMock.Setup(s => s.DescribeLoadBalancersAsync( It.Is <DescribeLoadBalancersRequest>(r => r.Marker == "token-1"), It.IsAny <CancellationToken>() )).ReturnsAsync(_secondPage); elbMock.Setup(s => s.DescribeLoadBalancersAsync( It.Is <DescribeLoadBalancersRequest>(r => r.Marker == "token-2"), It.IsAny <CancellationToken>() )).ReturnsAsync(_thirdPage); elbMock.Setup(s => s.DescribeLoadBalancersAsync( It.Is <DescribeLoadBalancersRequest>(r => r.Marker == "token-3"), It.IsAny <CancellationToken>() )).ReturnsAsync(_fourthPage); _albSource = new AlbSource(elbMock.Object); }