public SNSHelper(AwsClientDetails clientDetails, String serviceUrl = null) { if (string.IsNullOrEmpty(serviceUrl)) { Client = AWSClientFactory.CreateAmazonSNSClient(clientDetails.AwsAccessKeyId, clientDetails.AwsSecretAccessKey); } else { AmazonSimpleNotificationServiceConfig asnsConfig = new AmazonSimpleNotificationServiceConfig(); asnsConfig.ServiceURL = serviceUrl; Client = AWSClientFactory.CreateAmazonSNSClient(clientDetails.AwsAccessKeyId, clientDetails.AwsSecretAccessKey, asnsConfig); } }
/** * Configure HttpClient with set of defaults as well as configuration * from AmazonSimpleNotificationServiceConfig instance */ private static HttpWebRequest ConfigureWebRequest(int contentLength, AmazonSimpleNotificationServiceConfig config, IDictionary <string, string> headers) { string url; if (config.RegionEndpoint != null) { url = "https://" + config.RegionEndpoint.GetEndpointForService(config.RegionEndpointServiceName).Hostname; } else { url = config.ServiceURL; } HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; if (request != null) { request.ServicePoint.ConnectionLimit = config.ConnectionLimit; if (config.IsSetProxyHost() && config.IsSetProxyPort()) { WebProxy proxy = new WebProxy(config.ProxyHost, config.ProxyPort); request.Proxy = proxy; } if (request.Proxy != null && config.IsSetProxyCredentials()) { request.Proxy.Credentials = config.ProxyCredentials; } request.UserAgent = headers[AWSSDKUtils.UserAgentHeader]; request.Method = "POST"; request.Timeout = 50000; request.ContentType = AWSSDKUtils.UrlEncodedContent; request.ContentLength = contentLength; request.ServicePoint.Expect100Continue = false; request.ServicePoint.UseNagleAlgorithm = false; } return(request); }
public ISubscribeReponseMessage Subscribe(string queueUrl) { var sqsConfig = new AmazonSQSConfig {ServiceURL = SqsServiceUrl}; var snsConfig = new AmazonSimpleNotificationServiceConfig {ServiceURL = SnsServiceUrl}; using (var sqsClient = _awsConfig.CreateAwsClient<AmazonSQSClient>(sqsConfig)) { var attributesRequest = new GetQueueAttributesRequest(queueUrl, new List<string> {"QueueArn"}); var attributesResponse = sqsClient.GetQueueAttributes(attributesRequest); using (var snsClient = _awsConfig.CreateAwsClient<AmazonSimpleNotificationServiceClient>(snsConfig)) { var subribeResonse = snsClient.Subscribe(new SubscribeRequest(TopicArn, "sqs", attributesResponse.QueueARN)); } var actions = new ActionIdentifier[2]; actions[0] = SQSActionIdentifiers.SendMessage; actions[1] = SQSActionIdentifiers.ReceiveMessage; var sqsPolicy = new Policy().WithStatements( new Statement(Statement.StatementEffect.Allow).WithPrincipals(Principal.AllUsers) .WithResources( new Resource(attributesResponse.QueueARN)) .WithConditions( ConditionFactory.NewSourceArnCondition( TopicArn)) .WithActionIdentifiers(actions)); var setQueueAttributesRequest = new SetQueueAttributesRequest(); var attributes = new Dictionary<string, string> {{"Policy", sqsPolicy.ToJson()}}; var attRequest = new SetQueueAttributesRequest(attributesRequest.QueueUrl, attributes); sqsClient.SetQueueAttributes(attRequest); return new SubcriptionMessage("Ok"); } }
private static HttpWebRequest ConfigureWebRequest(int contentLength, AmazonSimpleNotificationServiceConfig config) { HttpWebRequest request = WebRequest.Create(config.ServiceURL) as HttpWebRequest; if (request != null) { if (config.IsSetProxyHost() && config.IsSetProxyPort()) { WebProxy proxy = new WebProxy(config.ProxyHost, config.ProxyPort); if (config.IsSetProxyUsername()) { proxy.Credentials = new NetworkCredential(config.ProxyUsername, config.ProxyPassword ?? string.Empty); } request.Proxy = proxy; } request.UserAgent = config.UserAgent; request.Method = "POST"; request.Timeout = 0xc350; request.ContentType = "application/x-www-form-urlencoded; charset=utf-8"; request.ContentLength = contentLength; } return(request); }
/// <summary> /// Constructs AmazonSimpleNotificationServiceClient with AWS Access Key ID, AWS Secret Key and an /// AmazonSimpleNotificationService Configuration object. If the config object's /// UseSecureStringForAwsSecretKey is false, the AWS Secret Key /// is stored as a clear-text string. Please use this option only /// if the application environment doesn't allow the use of SecureStrings. /// </summary> /// <param name="awsAccessKeyId">AWS Access Key ID</param> /// <param name="awsSecretAccessKey">AWS Secret Access Key</param> /// <param name="config">The AmazonSimpleNotificationService Configuration Object</param> public AmazonSimpleNotificationServiceClient(string awsAccessKeyId, string awsSecretAccessKey, AmazonSimpleNotificationServiceConfig config) { if (!String.IsNullOrEmpty(awsSecretAccessKey)) { if (config.UseSecureStringForAwsSecretKey) { this.awsSecretAccessKey = new SecureString(); foreach (char ch in awsSecretAccessKey.ToCharArray()) { this.awsSecretAccessKey.AppendChar(ch); } this.awsSecretAccessKey.MakeReadOnly(); } else { clearAwsSecretAccessKey = awsSecretAccessKey; } } this.awsAccessKeyId = awsAccessKeyId; this.config = config; ServicePointManager.Expect100Continue = false; ServicePointManager.UseNagleAlgorithm = false; }
/** * Configure HttpClient with set of defaults as well as configuration * from AmazonSimpleNotificationServiceConfig instance */ private static HttpWebRequest ConfigureWebRequest(int contentLength, AmazonSimpleNotificationServiceConfig config) { string url; if (config.RegionEndpoint != null) url = "https://" + config.RegionEndpoint.GetEndpointForService(config.RegionEndpointServiceName).Hostname; else url = config.ServiceURL; HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; if (request != null) { request.ServicePoint.ConnectionLimit = config.ConnectionLimit; if (config.IsSetProxyHost() && config.IsSetProxyPort()) { WebProxy proxy = new WebProxy(config.ProxyHost, config.ProxyPort); if (config.IsSetProxyUsername()) { proxy.Credentials = new NetworkCredential( config.ProxyUsername, config.ProxyPassword ?? String.Empty ); } request.Proxy = proxy; } request.UserAgent = config.UserAgent; request.Method = "POST"; request.Timeout = 50000; request.ContentType = AWSSDKUtils.UrlEncodedContent; request.ContentLength = contentLength; request.ServicePoint.Expect100Continue = false; request.ServicePoint.UseNagleAlgorithm = false; } return request; }
/// <summary> /// Constructs AmazonSimpleNotificationServiceClient with AWS Credentials and an /// AmazonSimpleNotificationServiceClient Configuration object. /// </summary> /// <param name="credentials">AWS Credentials</param> /// <param name="clientConfig">The AmazonSimpleNotificationServiceClient Configuration Object</param> public AmazonSimpleNotificationServiceClient(AWSCredentials credentials, AmazonSimpleNotificationServiceConfig clientConfig) : base(credentials, clientConfig) { }
/// <summary> /// Constructs AmazonSimpleNotificationServiceClient with AWS Access Key ID, AWS Secret Key and an /// AmazonSimpleNotificationServiceClient Configuration object. /// </summary> /// <param name="awsAccessKeyId">AWS Access Key ID</param> /// <param name="awsSecretAccessKey">AWS Secret Access Key</param> /// <param name="clientConfig">The AmazonSimpleNotificationServiceClient Configuration Object</param> public AmazonSimpleNotificationServiceClient(string awsAccessKeyId, string awsSecretAccessKey, AmazonSimpleNotificationServiceConfig clientConfig) : base(awsAccessKeyId, awsSecretAccessKey, clientConfig) { }
/// <summary> /// Constructs an AmazonSimpleNotificationServiceClient with AWS Access Key ID, AWS Secret Key and an /// AmazonSimpleNotificationService Configuration object /// </summary> /// <param name="awsAccessKeyId">AWS Access Key ID</param> /// <param name="awsSecretAccessKey">AWS Secret Access Key as a SecureString</param> /// <param name="config">The AmazonSimpleNotificationService Configuration Object</param> public AmazonSimpleNotificationServiceClient(string awsAccessKeyId, SecureString awsSecretAccessKey, AmazonSimpleNotificationServiceConfig config) { this.awsAccessKeyId = awsAccessKeyId; this.awsSecretAccessKey = awsSecretAccessKey; this.config = config; ServicePointManager.Expect100Continue = false; ServicePointManager.UseNagleAlgorithm = false; }
/// <summary> /// Constructs AmazonSimpleNotificationServiceClient with the credentials loaded from the application's /// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance. /// /// Example App.config with credentials set. /// <code> /// <?xml version="1.0" encoding="utf-8" ?> /// <configuration> /// <appSettings> /// <add key="AWSProfileName" value="AWS Default"/> /// </appSettings> /// </configuration> /// </code> /// /// </summary> /// <param name="config">The AmazonSimpleNotificationServiceClient Configuration Object</param> public AmazonSimpleNotificationServiceClient(AmazonSimpleNotificationServiceConfig config) : base(FallbackCredentialsFactory.GetCredentials(), config) { }
/// <summary> /// Create a client for the Amazon SimpleNotificationService Service with the specified configuration /// </summary> /// <param name="awsAccessKey">The AWS Access Key associated with the account</param> /// <param name="awsSecretAccessKey">The AWS Secret Access Key associated with the account</param> /// <param name="config">Configuration options for the service like HTTP Proxy, # of connections, etc /// </param> /// <returns>An Amazon SimpleNotificationService client</returns> /// <remarks> /// </remarks> public static IAmazonSimpleNotificationService CreateAmazonSimpleNotificationServiceClient( string awsAccessKey, string awsSecretAccessKey, AmazonSimpleNotificationServiceConfig config ) { return new AmazonSimpleNotificationServiceClient(awsAccessKey, awsSecretAccessKey, config); }
/// <summary> /// Constructs AmazonSimpleNotificationServiceClient with the credentials loaded from the application's /// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance. /// /// Example App.config with credentials set. /// <code> /// <?xml version="1.0" encoding="utf-8" ?> /// <configuration> /// <appSettings> /// <add key="AWSAccessKey" value="********************"/> /// <add key="AWSSecretKey" value="****************************************"/> /// </appSettings> /// </configuration> /// </code> /// /// </summary> /// <param name="config">The AmazonSimpleNotificationService Configuration Object</param> public AmazonSimpleNotificationServiceClient(AmazonSimpleNotificationServiceConfig config) : this(FallbackCredentialsFactory.GetCredentials(), config, true) { }
/// <summary> /// Constructs AmazonSimpleNotificationServiceClient with AWS Access Key ID, AWS Secret Key and an /// AmazonSimpleNotificationServiceClient Configuration object. If the config object's /// UseSecureStringForAwsSecretKey is false, the AWS Secret Key /// is stored as a clear-text string. Please use this option only /// if the application environment doesn't allow the use of SecureStrings. /// </summary> /// <param name="awsAccessKeyId">AWS Access Key ID</param> /// <param name="awsSecretAccessKey">AWS Secret Access Key</param> /// <param name="awsSessionToken">AWS Session Token</param> /// <param name="clientConfig">The AmazonSimpleNotificationServiceClient Configuration Object</param> public AmazonSimpleNotificationServiceClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, AmazonSimpleNotificationServiceConfig clientConfig) : base(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, clientConfig, AuthenticationTypes.User | AuthenticationTypes.Session) { }
/// <summary> /// Notification configuration window load event /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void NcWindow_Loaded(object sender, RoutedEventArgs e) { try { AmazonAutoScalingConfig config = new AmazonAutoScalingConfig(); config.ServiceURL = ((ViewModel)this.DataContext).Region.Url; AmazonAutoScalingClient client = new AmazonAutoScalingClient(config); DescribeAutoScalingNotificationTypesRequest dasntreq = new DescribeAutoScalingNotificationTypesRequest(); DescribeAutoScalingNotificationTypesResponse dasntresp = client.DescribeAutoScalingNotificationTypes(dasntreq); foreach (string asnt in dasntresp.DescribeAutoScalingNotificationTypesResult.AutoScalingNotificationTypes) { this.notificationTypes.Add(asnt); } AmazonSimpleNotificationServiceConfig snsconfig = new AmazonSimpleNotificationServiceConfig(); config.ServiceURL = ((ViewModel)this.DataContext).Region.Url; AmazonSimpleNotificationServiceClient snsclient = new AmazonSimpleNotificationServiceClient(snsconfig); ListTopicsRequest ltrequest = new ListTopicsRequest(); ListTopicsResponse ltresp = snsclient.ListTopics(ltrequest); foreach (Topic topic in ltresp.ListTopicsResult.Topics) { this.snstopics.Add(topic.TopicArn); } rlbNcTypes.ItemsSource = this.notificationTypes; cboTopics.ItemsSource = this.snstopics; } catch { MessageBox.Show(Window.GetWindow(this), "Error occured while loading the notification configuration options.", "Error", MessageBoxButton.OK); this.Close(); } }
/// <summary> /// Constructs AmazonSimpleNotificationServiceClient with AWS Credentials and an /// AmazonSimpleNotificationServiceClient Configuration object. /// </summary> /// <param name="credentials">AWS Credentials</param> /// <param name="clientConfig">The AmazonSimpleNotificationServiceClient Configuration Object</param> public AmazonSimpleNotificationServiceClient(AWSCredentials credentials, AmazonSimpleNotificationServiceConfig clientConfig) : base(credentials, clientConfig, AuthenticationTypes.User | AuthenticationTypes.Session) { }
// Constructs an AmazonSimpleNotificationServiceClient with credentials, config and flag which // specifies if the credentials are owned by the client or not private AmazonSimpleNotificationServiceClient(AWSCredentials credentials, AmazonSimpleNotificationServiceConfig config, bool ownCredentials) { this.credentials = credentials; this.config = config; this.ownCredentials = ownCredentials; }
/// <summary> /// Constructs an AmazonSimpleNotificationServiceClient with AWSCredentials and an /// AmazonSimpleNotificationService Configuration object /// </summary> /// <param name="credentials"></param> /// <param name="config"></param> public AmazonSimpleNotificationServiceClient(AWSCredentials credentials, AmazonSimpleNotificationServiceConfig config) : this(credentials, config, false) { }
/// <summary> /// Constructs AmazonSimpleNotificationServiceClient with AWS Access Key ID, AWS Secret Key and an /// AmazonSimpleNotificationService Configuration object. If the config object's /// UseSecureStringForAwsSecretKey is false, the AWS Secret Key /// is stored as a clear-text string. Please use this option only /// if the application environment doesn't allow the use of SecureStrings. /// </summary> /// <param name="awsAccessKeyId">AWS Access Key ID</param> /// <param name="awsSecretAccessKey">AWS Secret Access Key</param> /// <param name="config">The AmazonSimpleNotificationService Configuration Object</param> public AmazonSimpleNotificationServiceClient(string awsAccessKeyId, string awsSecretAccessKey, AmazonSimpleNotificationServiceConfig config) : this(new BasicAWSCredentials(awsAccessKeyId, awsSecretAccessKey), config, true) { }
/// <summary> /// Constructs AmazonSimpleNotificationServiceClient with the credentials loaded from the application's /// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance. /// /// Example App.config with credentials set. /// <code> /// <?xml version="1.0" encoding="utf-8" ?> /// <configuration> /// <appSettings> /// <add key="AWSAccessKey" value="********************"/> /// <add key="AWSSecretKey" value="****************************************"/> /// </appSettings> /// </configuration> /// </code> /// /// </summary> /// <param name="config">The AmazonSimpleNotificationService Configuration Object</param> public AmazonSimpleNotificationServiceClient(AmazonSimpleNotificationServiceConfig config) : base(FallbackCredentialsFactory.GetCredentials(), config, AuthenticationTypes.User | AuthenticationTypes.Session) { }
/// <summary> /// Constructs AmazonSimpleNotificationServiceClient with AWS Access Key ID, AWS Secret Key and an /// AmazonSimpleNotificationServiceClient Configuration object. /// </summary> /// <param name="awsAccessKeyId">AWS Access Key ID</param> /// <param name="awsSecretAccessKey">AWS Secret Access Key</param> /// <param name="awsSessionToken">AWS Session Token</param> /// <param name="clientConfig">The AmazonSimpleNotificationServiceClient Configuration Object</param> public AmazonSimpleNotificationServiceClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, AmazonSimpleNotificationServiceConfig clientConfig) : base(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, clientConfig, AuthenticationTypes.User | AuthenticationTypes.Session) { }
private OperationResult EstablishClient(AddonManifest manifest, DeveloperOptions devOptions, out AmazonSimpleNotificationServiceClient client) { OperationResult result; bool requireCreds; var manifestprops = manifest.GetProperties().ToDictionary(x => x.Key, x => x.Value); var AccessKey = manifestprops["AWSClientKey"]; var SecretAccessKey = manifestprops["AWSSecretKey"]; var _RegionEndpoint = manifestprops["AWSRegionEndpoint"]; var prop = manifest.Properties.First( p => p.Key.Equals("requireDevCredentials", StringComparison.InvariantCultureIgnoreCase)); if (bool.TryParse(prop.Value, out requireCreds) && requireCreds) { if (!ValidateDevCreds(devOptions)) { client = null; result = new OperationResult() { IsSuccess = false, EndUserMessage = "The add on requires that developer credentials are specified but none were provided." }; return result; } //accessKey = devOptions.AccessKey; //secretAccessKey = devOptions.SecretAccessKey; } AmazonSimpleNotificationServiceConfig config = new AmazonSimpleNotificationServiceConfig() { RegionEndpoint = RegionEndpoint.USEast1 }; client = new AmazonSimpleNotificationServiceClient(AccessKey, SecretAccessKey, config); result = new OperationResult { IsSuccess = true }; return result; }
/// <summary> /// Create a client for the Amazon SNS Service with the credentials loaded from the application's /// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance. /// /// Example App.config with credentials set. /// <code> /// <?xml version="1.0" encoding="utf-8" ?> /// <configuration> /// <appSettings> /// <add key="AWSAccessKey" value="********************"/> /// <add key="AWSSecretKey" value="****************************************"/> /// </appSettings> /// </configuration> /// </code> /// </summary> /// <param name="config">Configuration options for the service like HTTP Proxy, # of connections, etc</param> /// <returns>An Amazon SNS client</returns> public static AmazonSimpleNotificationService CreateAmazonSNSClient(AmazonSimpleNotificationServiceConfig config) { return new AmazonSimpleNotificationServiceClient(config); }
/// <summary> /// Create a client for the Amazon SimpleNotificationService Service with AWSCredentials and an AmazonSimpleNotificationService Configuration object. /// </summary> /// <param name="credentials">AWS Credentials</param> /// <param name="config">Configuration options for the service like HTTP Proxy, # of connections, etc</param> /// <returns>An Amazon SimpleNotificationService client</returns> /// <remarks> /// </remarks> public static IAmazonSimpleNotificationService CreateAmazonSimpleNotificationServiceClient(AWSCredentials credentials, AmazonSimpleNotificationServiceConfig config) { return new AmazonSimpleNotificationServiceClient(credentials, config); }
/// <summary> /// Constructs AmazonSimpleNotificationServiceClient with the credentials defined in the App.config. /// /// Example App.config with credentials set. /// <code> /// <?xml version="1.0" encoding="utf-8" ?> /// <configuration> /// <appSettings> /// <add key="AWSAccessKey" value="********************"/> /// <add key="AWSSecretKey" value="****************************************"/> /// </appSettings> /// </configuration> /// </code> /// /// </summary> /// <param name="config">The AmazonSimpleNotificationService Configuration Object</param> public AmazonSimpleNotificationServiceClient(AmazonSimpleNotificationServiceConfig config) : this(new EnvironmentAWSCredentials(), config, true) { }