public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems) { AmazonSimpleNotificationServiceConfig config = new AmazonSimpleNotificationServiceConfig(); config.RegionEndpoint = region; ConfigureClient(config); AmazonSimpleNotificationServiceClient client = new AmazonSimpleNotificationServiceClient(creds, config); ListSubscriptionsByTopicResponse resp = new ListSubscriptionsByTopicResponse(); do { ListSubscriptionsByTopicRequest req = new ListSubscriptionsByTopicRequest { NextToken = resp.NextToken }; resp = client.ListSubscriptionsByTopic(req); CheckError(resp.HttpStatusCode, "200"); foreach (var obj in resp.Subscriptions) { AddObject(obj); } }while (!string.IsNullOrEmpty(resp.NextToken)); }
static SmsController() { Client = new AmazonSimpleNotificationServiceClient(new BasicAWSCredentials("AKIAJOMZAEESGAYK6EKA", "L6qF0b2Rtgzk3lhLJrh976hqAlz+MWyy8g1ACQ2e"), RegionEndpoint.EUWest1); var request = new ListSubscriptionsByTopicRequest(TopicArn); var response = Client.ListSubscriptionsByTopic(request); NumberToArn = response.Subscriptions.ToDictionary(x => x.Endpoint, x => x.SubscriptionArn); }
public static IEnumerable <Subscription> ListSubscriptions(string topicArn) { using (var client = new AmazonSimpleNotificationServiceClient(Settings.AccessKey, Settings.Secret)) { var request = new ListSubscriptionsByTopicRequest(topicArn); return(client.ListSubscriptionsByTopic(request).Subscriptions); } }
protected bool IsQueueSubscribedToTopic(RegionEndpoint regionEndpoint, Topic topic, string queueUrl) { var request = new GetQueueAttributesRequest { QueueUrl = queueUrl, AttributeNames = new List <string> { "QueueArn" } }; var sqsclient = CreateMeABus.DefaultClientFactory().GetSqsClient(regionEndpoint); var queueArn = sqsclient.GetQueueAttributes(request).QueueARN; var client = new AmazonSimpleNotificationServiceClient(regionEndpoint); var subscriptions = client.ListSubscriptionsByTopic(new ListSubscriptionsByTopicRequest(topic.TopicArn)).Subscriptions; return(subscriptions.Any(x => !string.IsNullOrEmpty(x.SubscriptionArn) && x.Endpoint == queueArn)); }
private bool SubscriptionExists() { var exists = false; var request = new ListSubscriptionsByTopicRequest { TopicArn = TopicArn }; var response = _snsClient.ListSubscriptionsByTopic(request); var matchString = string.Format(":{0}", SubscriptionName); var matches = response.Subscriptions.Where(x => x.Endpoint.EndsWith(matchString)); if (matches.Count() == 1) { exists = true; _subscriptionArn = matches.ElementAt(0).SubscriptionArn; } return(exists); }
public void ListSubscriptions() { ListSubscriptionsByTopicRequest request = new ListSubscriptionsByTopicRequest { TopicArn = TopicARN }; var response = client.ListSubscriptionsByTopic(request); if (response.HttpStatusCode.IsSuccess()) { foreach (var subscription in response.Subscriptions) { Console.WriteLine(subscription.Owner); Console.WriteLine(subscription.Protocol); Console.WriteLine(subscription.SubscriptionArn); Console.WriteLine(subscription.Endpoint); } } }
public void ListSubscriptions() { ListSubscriptionsByTopicRequest request = new ListSubscriptionsByTopicRequest { TopicArn = topicARN }; var response = client.ListSubscriptionsByTopic(request); if (response.HttpStatusCode == System.Net.HttpStatusCode.OK) { foreach (var sub in response.Subscriptions) { Console.WriteLine(sub.Owner); Console.WriteLine(sub.Protocol); Console.WriteLine(sub.SubscriptionArn); Console.WriteLine(sub.Endpoint); } } Console.ReadLine(); }
//public bool CheckIfTopicExists(string topicName) //{ // var listTopicsRequest = new ListTopicsRequest(); // ListTopicsResponse listTopicsResponse; // do // { // listTopicsResponse = sns.ListTopics(listTopicsRequest); // foreach (var topic in listTopicsResponse.Topics) // { // Console.WriteLine(" Topic: {0}", topic.TopicArn); // // Get topic attributes // var topicAttributes = sns.GetTopicAttributes(new GetTopicAttributesRequest // { // TopicArn = topic.TopicArn // }).Attributes; // if (topicAttributes.Count > 0) // { // Console.WriteLine(" Topic attributes"); // foreach (var topicAttribute in topicAttributes) // { // Console.WriteLine(" -{0} : {1}", topicAttribute.Key, topicAttribute.Value); // } // } // Console.WriteLine(); // } // listTopicsRequest.NextToken = listTopicsResponse.NextToken; // } while (listTopicsResponse.NextToken != null); //} public bool CheckIfSubscriptionExistsForTopic(string topicArn, string protocol, string endpoint) { var listSubscriptionsByTopicRequest = new ListSubscriptionsByTopicRequest(topicArn); ListSubscriptionsByTopicResponse response; do { response = sns.ListSubscriptionsByTopic(listSubscriptionsByTopicRequest); foreach (var subscription in response.Subscriptions) { if (string.Equals(subscription.Endpoint, endpoint, StringComparison.OrdinalIgnoreCase) && string.Equals(subscription.Protocol, protocol, StringComparison.OrdinalIgnoreCase)) { return(true); } } listSubscriptionsByTopicRequest.NextToken = response.NextToken; }while (response.NextToken != null); return(false); }
public void ListSubscriptionsByTopicRequest() { ListSubscriptionsByTopicRequest request = new ListSubscriptionsByTopicRequest { TopicArn = "arn:aws:sns:us-west-1:491483104165:TopicApp", }; var response = client.ListSubscriptionsByTopic(request); if (response.HttpStatusCode.IsSuccess()) { foreach (var item in response.Subscriptions) { Console.WriteLine($"\n\n---------- Subscription ----------\n"); Console.WriteLine($"{item.Owner}"); Console.WriteLine($"{item.Protocol}"); Console.WriteLine($"{item.SubscriptionArn}"); Console.WriteLine($"{item.Endpoint}"); } } }
public virtual void DeleteSubscriptions(AmazonSimpleNotificationServiceClient snsClient, string topicArn) { var listSubscriptionsByTopicRequest = new ListSubscriptionsByTopicRequest { TopicArn = topicArn }; ListSubscriptionsByTopicResponse listSubscriptionsByTopicResponse = snsClient.ListSubscriptionsByTopic(listSubscriptionsByTopicRequest); foreach ( Subscription subscription in listSubscriptionsByTopicResponse.Subscriptions) { var unsubscribeRequest = new UnsubscribeRequest { SubscriptionArn = subscription.SubscriptionArn }; snsClient.Unsubscribe(unsubscribeRequest); } }
public static void SNSListSubscriptionsByTopic() { #region SNSListSubscriptionsByTopic var snsClient = new AmazonSimpleNotificationServiceClient(); var request = new ListSubscriptionsByTopicRequest(); var response = new ListSubscriptionsByTopicResponse(); request.TopicArn = "arn:aws:sns:us-east-1:80398EXAMPLE:CodingTestResults"; do { response = snsClient.ListSubscriptionsByTopic(request); foreach (var sub in response.Subscriptions) { Console.WriteLine("Subscription: {0}", sub.SubscriptionArn); var subAttrs = snsClient.GetSubscriptionAttributes( new GetSubscriptionAttributesRequest { SubscriptionArn = sub.SubscriptionArn }).Attributes; if (subAttrs.Count > 0) { foreach (var subAttr in subAttrs) { Console.WriteLine(" -{0} : {1}", subAttr.Key, subAttr.Value); } } Console.WriteLine(); } request.NextToken = response.NextToken; } while (!string.IsNullOrEmpty(response.NextToken)); #endregion Console.ReadLine(); }
public static void SNSCreateSubscribePublish() { #region SNSCreateSubscribePublish var snsClient = new AmazonSimpleNotificationServiceClient(); var topicRequest = new CreateTopicRequest { Name = "CodingTestResults" }; var topicResponse = snsClient.CreateTopic(topicRequest); var topicAttrRequest = new SetTopicAttributesRequest { TopicArn = topicResponse.TopicArn, AttributeName = "DisplayName", AttributeValue = "Coding Test Results" }; snsClient.SetTopicAttributes(topicAttrRequest); snsClient.Subscribe(new SubscribeRequest { Endpoint = "*****@*****.**", Protocol = "email", TopicArn = topicResponse.TopicArn }); // Wait for up to 2 minutes for the user to confirm the subscription. DateTime latest = DateTime.Now + TimeSpan.FromMinutes(2); while (DateTime.Now < latest) { var subsRequest = new ListSubscriptionsByTopicRequest { TopicArn = topicResponse.TopicArn }; var subs = snsClient.ListSubscriptionsByTopic(subsRequest).Subscriptions; var sub = subs[0]; if (!string.Equals(sub.SubscriptionArn, "PendingConfirmation", StringComparison.Ordinal)) { break; } // Wait 15 seconds before trying again. System.Threading.Thread.Sleep(TimeSpan.FromSeconds(15)); } snsClient.Publish(new PublishRequest { Subject = "Coding Test Results for " + DateTime.Today.ToShortDateString(), Message = "All of today's coding tests passed.", TopicArn = topicResponse.TopicArn }); #endregion }