public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems)
        {
            AmazonResourceGroupsTaggingAPIConfig config = new AmazonResourceGroupsTaggingAPIConfig();

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

            GetTagKeysResponse resp = new GetTagKeysResponse();

            do
            {
                GetTagKeysRequest req = new GetTagKeysRequest
                {
                    PaginationToken = resp.PaginationToken
                };

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

                foreach (var obj in resp.TagKeys)
                {
                    AddObject(obj);
                }
            }while (!string.IsNullOrEmpty(resp.PaginationToken));
        }
        public async Task <string> GetKmsIdAsync()
        {
            if (!string.IsNullOrEmpty(_kmsId))
            {
                return(_kmsId);
            }

            using (var taggingClient = new AmazonResourceGroupsTaggingAPIClient())
            {
                var getResourcesRequest = new GetResourcesRequest
                {
                    TagFilters = new List <TagFilter>
                    {
                        new TagFilter()
                        {
                            Key = KmsIdTagKey
                        }
                    }
                };
                var resourcesResponse = await taggingClient.GetResourcesAsync(getResourcesRequest);

                if (resourcesResponse.ResourceTagMappingList.Count > 0)
                {
                    var first = resourcesResponse.ResourceTagMappingList.First();
                    _kmsId = first.ResourceARN.Split('/').Last();
                    return(_kmsId);
                }
            }

            using (var kmsClient = new AmazonKeyManagementServiceClient())
            {
                var createKeyRequest = new CreateKeyRequest
                {
                    Description = "Key for .NET integration tests.",
                    Origin      = OriginType.AWS_KMS,
                    KeyUsage    = KeyUsageType.ENCRYPT_DECRYPT,
                    Tags        = new List <Tag>
                    {
                        new Tag()
                        {
                            TagKey   = KmsIdTagKey,
                            TagValue = string.Empty
                        }
                    }
                };
                var response = await kmsClient.CreateKeyAsync(createKeyRequest);

                _kmsId = response.KeyMetadata.KeyId;
                return(_kmsId);
            }
        }
Exemplo n.º 3
0
        protected IAmazonResourceGroupsTaggingAPI CreateClient(AWSCredentials credentials, RegionEndpoint region)
        {
            var config = new AmazonResourceGroupsTaggingAPIConfig {
                RegionEndpoint = region
            };

            Amazon.PowerShell.Utils.Common.PopulateConfig(this, config);
            this.CustomizeClientConfig(config);
            var client = new AmazonResourceGroupsTaggingAPIClient(credentials, config);

            client.BeforeRequestEvent += RequestEventHandler;
            client.AfterResponseEvent += ResponseEventHandler;
            return(client);
        }