/// <summary> /// Initiates the asynchronous execution of the DescribeTags operation. /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the DescribeTags operation.</param> /// <param name="cancellationToken"> /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// </param> /// <returns>The task object representing the asynchronous operation.</returns> public Task <DescribeTagsResponse> DescribeTagsAsync(DescribeTagsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var marshaller = new DescribeTagsRequestMarshaller(); var unmarshaller = DescribeTagsResponseUnmarshaller.Instance; return(InvokeAsync <DescribeTagsRequest, DescribeTagsResponse>(request, marshaller, unmarshaller, cancellationToken)); }
//public async Task<string> CreateLoadBalancer( // string name, List<string> securityGroups, List<string> subnets) //{ // var request = new CreateLoadBalancerRequest() // { // LoadBalancerName = name, // SecurityGroups = securityGroups, // Subnets = subnets, // IpAddressType = IpAddressType.Ipv4, // Scheme = LoadBalancerSchemeEnum.InternetFacing, // //Type = LoadBalancerTypeEnum.Application // }; // var response = await client.CreateLoadBalancerAsync(request); // return response.LoadBalancers[0].LoadBalancerArn; //} public async Task <List <SA_LoadBalancer> > GetLoadBalancerList() { List <SA_LoadBalancer> lstLoadBalancers = new List <SA_LoadBalancer>(); var request = new DescribeLoadBalancersRequest(); var response = await client.DescribeLoadBalancersAsync(request); var lstSourceELBs = response.LoadBalancerDescriptions; var reqTags = new DescribeTagsRequest() { LoadBalancerNames = response.LoadBalancerDescriptions.Select(o => o.LoadBalancerName).ToList() }; var respTags = await client.DescribeTagsAsync(reqTags); //LoadBalancer name like "awseb-e-c-AWSEBLoa-G25T4NILK22Q", need to get name from tag. foreach (var sourceELB in lstSourceELBs) { string tagName = string.Empty; //try //{ // var tags = respTags.TagDescriptions.Find // (o => o.LoadBalancerName == sourceELB.LoadBalancerName).Tags.Find(o => o.Key == "Name").Value; //} //catch //{ // continue; //} var tags = respTags.TagDescriptions.Find (o => o.LoadBalancerName == sourceELB.LoadBalancerName).Tags; var nameTag = tags.Find(o => o.Key == "Name"); if (nameTag == null) { continue; } tagName = nameTag.Value; if (!(tagName.IndexOf($"{environment}-{color}") == 0)) //check { continue; } var elb = ModelTransformer <LoadBalancerDescription, SA_LoadBalancer> . TransformAwsModelToSafeArrivalModel(sourceELB); elb.LoadBalancerName = tagName; lstLoadBalancers.Add(elb); } //lstLoadBalancers = lstLoadBalancers.FindAll(o => o.LoadBalancerName.Contains($"{environment}-")); return(lstLoadBalancers); }
/// <summary> /// 用于查询已建立的标签列表。 /// </summary> /// <param name="req"><see cref="DescribeTagsRequest"/></param> /// <returns><see cref="DescribeTagsResponse"/></returns> public DescribeTagsResponse DescribeTagsSync(DescribeTagsRequest req) { JsonResponseModel <DescribeTagsResponse> rsp = null; try { var strResp = this.InternalRequestSync(req, "DescribeTags"); rsp = JsonConvert.DeserializeObject <JsonResponseModel <DescribeTagsResponse> >(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return(rsp.Response); }
/// <summary> /// 获取资源标签。<br/> /// 注意查询cdn资源的标签时url中regionId必须指定为cn-all。<br/> /// 注意查询不限制地域时url中regionId必须指定为all-region。 /// /// </summary> /// <param name="request">请求参数信息</param> /// <returns>请求结果信息</returns> public async Task <DescribeTagsResponse> DescribeTags(DescribeTagsRequest request) { return(await new DescribeTagsExecutor().Client(this).Execute <DescribeTagsResponse, DescribeTagsResult, DescribeTagsRequest>(request).ConfigureAwait(false)); }
/// <summary> /// 获取资源标签。<br/> /// 注意查询cdn资源的标签时url中regionId必须指定为cn-all。<br/> /// 注意查询不限制地域时url中regionId必须指定为all-region。 /// /// </summary> /// <param name="request">请求参数信息</param> /// <returns>请求结果信息</returns> public DescribeTagsResponse DescribeTags(DescribeTagsRequest request) { return(new DescribeTagsExecutor().Client(this).Execute <DescribeTagsResponse, DescribeTagsResult, DescribeTagsRequest>(request)); }
public static void Backup(string name, string description, string volumeid, string volumename, string instancename, string expires) { Console.WriteLine("Creating snapshot of " + volumeid + " / " + volumename + " / " + instancename); AmazonEC2 ec2 = Ec2Helper.CreateClient(); CreateSnapshotRequest rq = new CreateSnapshotRequest(); rq.VolumeId = volumeid; rq.Description = description; CreateSnapshotResponse rs = ec2.CreateSnapshot(rq); string snapshotid = rs.CreateSnapshotResult.Snapshot.SnapshotId; // build tags for snapshot List <Tag> tags = new List <Tag>(); tags.Add(new Tag { Key = "Name", Value = name }); tags.Add(new Tag { Key = "source", Value = "scheduler" }); tags.Add(new Tag { Key = "instance", Value = instancename }); tags.Add(new Tag { Key = "volume", Value = volumename }); tags.Add(new Tag { Key = "expires", Value = expires.ToString() }); // get tags from volume to be applied to snapshot DescribeTagsRequest trq = new DescribeTagsRequest(); trq.WithFilter(new Filter() { Name = "resource-id", Value = new List <string>() { volumeid } }); DescribeTagsResponse trs = ec2.DescribeTags(trq); foreach (ResourceTag t in trs.DescribeTagsResult.ResourceTag) { if (t.Key != "nextSnapshot" && t.Key != "lastSnapshot" && t.Key != "Name") { tags.Add(new Tag { Key = t.Key, Value = t.Value }); } } // apply tags to snapshopt CreateTagsRequest rqq = new CreateTagsRequest(); rqq.WithResourceId(snapshotid); rqq.WithTag(tags.ToArray()); var createTagResponse = ec2.CreateTags(rqq); }