diff --git a/docgenerator/AWSSDKDocSamples/AWSSDKDocSamples.csproj b/docgenerator/AWSSDKDocSamples/AWSSDKDocSamples.csproj index 3102278d04e0..4efaa1da5849 100644 --- a/docgenerator/AWSSDKDocSamples/AWSSDKDocSamples.csproj +++ b/docgenerator/AWSSDKDocSamples/AWSSDKDocSamples.csproj @@ -1,105 +1,26 @@ - - + + - Debug - AnyCPU - 9.0.30729 - 2.0 - {B853473A-577E-4158-90DF-CE763D3D8D76} - Exe - Properties - AWSSDKDocSamples - AWSSDKDocSamples - v4.5 - 512 - - - 3.5 - - + net8.0 - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - false - - - - False - ..\Include\sdk\dotnet35\AWSSDK.dll - - - - - 3.5 - - - 3.5 - - - 3.5 - - - - + - - - - - - - - - - - + + - - Designer - - - Designer - + + + + + + + + + - - - Designer - - - Designer - - - Designer - - - Designer - - + - - - - \ No newline at end of file + + diff --git a/docgenerator/AWSSDKDocSamples/CloudWatch/CloudWatchSamples.cs b/docgenerator/AWSSDKDocSamples/CloudWatch/CloudWatchSamples.cs index d621b861555d..0355a4e64ecc 100644 --- a/docgenerator/AWSSDKDocSamples/CloudWatch/CloudWatchSamples.cs +++ b/docgenerator/AWSSDKDocSamples/CloudWatch/CloudWatchSamples.cs @@ -1,373 +1,389 @@ -using System; +using Amazon.CloudWatch; +using Amazon.CloudWatch.Model; +using System; using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Threading.Tasks; -using Amazon.CloudWatch; -using Amazon.CloudWatch.Model; - namespace AWSSDKDocSamples.CloudWatch { - class CloudWatchSamples : ISample - { - public static void CWGetMetricStatistics() + class CloudWatchSamples : ISample { - #region CWGetMetricStatistics - var client = new AmazonCloudWatchClient(); - - var request = new GetMetricStatisticsRequest - { - Dimensions = new List() { dimension }, - EndTime = DateTime.Today, - MetricName = "CPUUtilization", - Namespace = "AWS/EC2", - // Get statistics by day. - Period = (int)TimeSpan.FromDays(1).TotalSeconds, - // Get statistics for the past month. - StartTime = DateTime.Today.Subtract(TimeSpan.FromDays(30)), - Statistics = new List() { "Minimum" }, - Unit = StandardUnit.Percent - }; - - var response = client.GetMetricStatistics(request); - - if (response.Datapoints.Count > 0) - { - foreach (var point in response.Datapoints) + public static async Task CWGetMetricStatistics() { - Console.WriteLine(point.Timestamp.ToShortDateString() + - " " + point.Minimum + "%"); + var dimension = new Dimension + { + Name = "InstanceType", + Value = "m1.small" + }; + #region CWGetMetricStatistics + var client = new AmazonCloudWatchClient(); + + var request = new GetMetricStatisticsRequest + { + Dimensions = new List() { dimension }, + EndTime = DateTime.Today, + MetricName = "CPUUtilization", + Namespace = "AWS/EC2", + // Get statistics by day. + Period = (int)TimeSpan.FromDays(1).TotalSeconds, + // Get statistics for the past month. + StartTime = DateTime.Today.Subtract(TimeSpan.FromDays(30)), + Statistics = new List() { "Minimum" }, + Unit = StandardUnit.Percent + }; + + var response = await client.GetMetricStatisticsAsync(request); + + if (response.Datapoints != null) + { + foreach (var point in response.Datapoints) + { + Console.WriteLine(point.Timestamp.Value.ToShortDateString() + + " " + point.Minimum + "%"); + } + } + #endregion + + Console.ReadLine(); } - } - #endregion - Console.ReadLine(); - } + public static async Task CWPutMetricData() + { + #region CWPutMetricData + var client = new AmazonCloudWatchClient(); - public static void CWPutMetricData() - { - #region CWPutMetricData - var client = new AmazonCloudWatchClient(); - - var dimension = new Dimension - { - Name = "Desktop Machine Metrics", - Value = "Virtual Desktop Machine Usage" - }; - - var metric1 = new MetricDatum - { - Dimensions = new List() { dimension }, - MetricName = "Desktop Machines Online", - StatisticValues = new StatisticSet(), - Timestamp = DateTime.Today, - Unit = StandardUnit.Count, - Value = 14 - }; - - var metric2 = new MetricDatum - { - Dimensions = new List() { dimension }, - MetricName = "Desktop Machines Offline", - StatisticValues = new StatisticSet(), - Timestamp = DateTime.Today, - Unit = StandardUnit.Count, - Value = 7 - }; - - var metric3 = new MetricDatum - { - Dimensions = new List() { dimension }, - MetricName = "Desktop Machines Online", - StatisticValues = new StatisticSet(), - Timestamp = DateTime.Today, - Unit = StandardUnit.Count, - Value = 12 - }; - - var metric4 = new MetricDatum - { - Dimensions = new List() { dimension }, - MetricName = "Desktop Machines Offline", - StatisticValues = new StatisticSet(), - Timestamp = DateTime.Today, - Unit = StandardUnit.Count, - Value = 9 - }; - - var request = new PutMetricDataRequest - { - MetricData = new List() { metric1, metric2, + var dimension = new Dimension + { + Name = "Desktop Machine Metrics", + Value = "Virtual Desktop Machine Usage" + }; + + var metric1 = new MetricDatum + { + Dimensions = new List() { dimension }, + MetricName = "Desktop Machines Online", + StatisticValues = new StatisticSet(), + Timestamp = DateTime.Today, + Unit = StandardUnit.Count, + Value = 14 + }; + + var metric2 = new MetricDatum + { + Dimensions = new List() { dimension }, + MetricName = "Desktop Machines Offline", + StatisticValues = new StatisticSet(), + Timestamp = DateTime.Today, + Unit = StandardUnit.Count, + Value = 7 + }; + + var metric3 = new MetricDatum + { + Dimensions = new List() { dimension }, + MetricName = "Desktop Machines Online", + StatisticValues = new StatisticSet(), + Timestamp = DateTime.Today, + Unit = StandardUnit.Count, + Value = 12 + }; + + var metric4 = new MetricDatum + { + Dimensions = new List() { dimension }, + MetricName = "Desktop Machines Offline", + StatisticValues = new StatisticSet(), + Timestamp = DateTime.Today, + Unit = StandardUnit.Count, + Value = 9 + }; + + var request = new PutMetricDataRequest + { + MetricData = new List() { metric1, metric2, metric3, metric4 }, - Namespace = "Example.com Custom Metrics" - }; + Namespace = "Example.com Custom Metrics" + }; - client.PutMetricData(request); - #endregion - } + await client.PutMetricDataAsync(request); + #endregion + } - public static void CWListMetrics() - { - #region CWListMetrics - var client = new AmazonCloudWatchClient(); + public static async Task CWListMetrics() + { + #region CWListMetrics + var client = new AmazonCloudWatchClient(); - var filter = new DimensionFilter - { - Name = "InstanceType", - Value = "t1.micro" - }; + var filter = new DimensionFilter + { + Name = "InstanceType", + Value = "t1.micro" + }; - var request = new ListMetricsRequest - { - Dimensions = new List() { filter }, - MetricName = "CPUUtilization", - Namespace = "AWS/EC2" - }; + var request = new ListMetricsRequest + { + Dimensions = new List() { filter }, + MetricName = "CPUUtilization", + Namespace = "AWS/EC2" + }; - var response = new ListMetricsResponse(); + var response = new ListMetricsResponse(); - do - { - response = client.ListMetrics(request); + do + { + response = await client.ListMetricsAsync(request); + + if (response.Metrics != null) + { + foreach (var metric in response.Metrics) + { + Console.WriteLine(metric.MetricName + + " (" + metric.Namespace + ")"); + + foreach (var dimension in metric.Dimensions) + { + Console.WriteLine(" " + dimension.Name + ": " + + dimension.Value); + } + } + } + else + { + Console.WriteLine("No metrics found."); + } + + request.NextToken = response.NextToken; + + } while (!string.IsNullOrEmpty(response.NextToken)); + #endregion + + Console.ReadLine(); + } - if (response.Metrics.Count > 0) + public static async Task CWDescribeAlarms() { - foreach (var metric in response.Metrics) - { - Console.WriteLine(metric.MetricName + - " (" + metric.Namespace + ")"); + #region CWDescribeAlarms + var client = new AmazonCloudWatchClient(); - foreach (var dimension in metric.Dimensions) + var request = new DescribeAlarmsRequest { - Console.WriteLine(" " + dimension.Name + ": " - + dimension.Value); - } - } - } - else - { - Console.WriteLine("No metrics found."); + AlarmNames = new List() + { + "awseb-e-b36EXAMPLE-stack-CloudwatchAlarmLow-1KAKH4EXAMPLE" + }, + MaxRecords = 1, + StateValue = StateValue.ALARM + }; + + var response = new DescribeAlarmsResponse(); + + do + { + response = await client.DescribeAlarmsAsync(request); + + if (response.MetricAlarms != null) + { + foreach (var alarm in response.MetricAlarms) + { + Console.WriteLine(alarm.AlarmName); + Console.WriteLine(alarm.AlarmDescription); + Console.WriteLine(alarm.MetricName + " " + + alarm.ComparisonOperator + " " + alarm.Threshold); + Console.WriteLine(); + } + } + + request.NextToken = response.NextToken; + + } while (!string.IsNullOrEmpty(response.NextToken)); + #endregion + + Console.ReadLine(); } - request.NextToken = response.NextToken; + public static async Task CWDescribeAlarmHistory() + { + #region CWDescribeAlarmHistory + var client = new AmazonCloudWatchClient(); - } while (!string.IsNullOrEmpty(response.NextToken)); - #endregion + var request = new DescribeAlarmHistoryRequest + { + AlarmName = + "awseb-e-kkbEXAMPLE-stack-CloudwatchAlarmLow-1WVXD9EXAMPLE", + EndDate = DateTime.Today, + HistoryItemType = HistoryItemType.Action, + MaxRecords = 1, + StartDate = DateTime.Today.Subtract(TimeSpan.FromDays(30)) + }; - Console.ReadLine(); - } + var response = new DescribeAlarmHistoryResponse(); - public static void CWDescribeAlarms() - { - #region CWDescribeAlarms - var client = new AmazonCloudWatchClient(); + do + { + response = await client.DescribeAlarmHistoryAsync(request); - var request = new DescribeAlarmsRequest - { - AlarmNames = new List() - { "awseb-e-b36EXAMPLE-stack-CloudwatchAlarmLow-1KAKH4EXAMPLE" }, - MaxRecords = 1, - StateValue = StateValue.ALARM - }; + if (response.AlarmHistoryItems != null) + { + foreach (var item in response.AlarmHistoryItems) + { + Console.WriteLine(item.AlarmName); + Console.WriteLine(item.HistorySummary); + Console.WriteLine(); + } + } - var response = new DescribeAlarmsResponse(); + request.NextToken = response.NextToken; - do - { - response = client.DescribeAlarms(request); + } while (!string.IsNullOrEmpty(response.NextToken)); + #endregion - foreach (var alarm in response.MetricAlarms) - { - Console.WriteLine(alarm.AlarmName); - Console.WriteLine(alarm.AlarmDescription); - Console.WriteLine(alarm.MetricName + " " + - alarm.ComparisonOperator + " " + alarm.Threshold); - Console.WriteLine(); + Console.ReadLine(); } - request.NextToken = response.NextToken; + public static async Task CWPutMetricAlarm() + { + #region CWPutMetricAlarm + var client = new AmazonCloudWatchClient(); - } while (!string.IsNullOrEmpty(response.NextToken)); - #endregion + var dimension = new Dimension + { + Name = "Desktop Machine Metrics", + Value = "Virtual Desktop Machine Usage" + }; - Console.ReadLine(); - } + var request = new PutMetricAlarmRequest + { + ActionsEnabled = true, + AlarmActions = new List() + { + "arn:aws:sns:us-east-1:80398EXAMPLE:CodingTestResults" + }, + AlarmDescription = "Too many instances offline", + AlarmName = "Offline Instances", + ComparisonOperator = ComparisonOperator.GreaterThanOrEqualToThreshold, + Dimensions = new List() { dimension }, + EvaluationPeriods = 1, + MetricName = "Desktop Machines Offline", + Namespace = "Example.com Custom Metrics", + Period = (int)TimeSpan.FromMinutes(5).TotalSeconds, + Statistic = new Statistic("Maximum"), + Threshold = 5, + Unit = StandardUnit.Count + }; + + await client.PutMetricAlarmAsync(request); + #endregion + } - public static void CWDescribeAlarmHistory() - { - #region CWDescribeAlarmHistory - var client = new AmazonCloudWatchClient(); - - var request = new DescribeAlarmHistoryRequest - { - AlarmName = - "awseb-e-kkbEXAMPLE-stack-CloudwatchAlarmLow-1WVXD9EXAMPLE", - EndDate = DateTime.Today, - HistoryItemType = HistoryItemType.Action, - MaxRecords = 1, - StartDate = DateTime.Today.Subtract(TimeSpan.FromDays(30)) - }; - - var response = new DescribeAlarmHistoryResponse(); - - do - { - response = client.DescribeAlarmHistory(request); - - foreach (var item in response.AlarmHistoryItems) + public static async Task CWDescribeAlarmsForMetric() { - Console.WriteLine(item.AlarmName); - Console.WriteLine(item.HistorySummary); - Console.WriteLine(); - } + #region CWDescribeAlarmsForMetric + var client = new AmazonCloudWatchClient(); - request.NextToken = response.NextToken; + var dimension = new Dimension + { + Name = "AutoScalingGroupName", + Value = "awseb-e-kkbEXAMPLE-stack-AutoScalingGroup-F4TAUEXAMPLE" + }; - } while (!string.IsNullOrEmpty(response.NextToken)); - #endregion + var request = new DescribeAlarmsForMetricRequest + { + Dimensions = new List() { dimension }, + MetricName = "NetworkOut", + Namespace = "AWS/EC2" + }; - Console.ReadLine(); - } + var response = await client.DescribeAlarmsForMetricAsync(request); - public static void CWPutMetricAlarm() - { - #region CWPutMetricAlarm - var client = new AmazonCloudWatchClient(); - - var dimension = new Dimension - { - Name = "Desktop Machine Metrics", - Value = "Virtual Desktop Machine Usage" - }; - - var request = new PutMetricAlarmRequest - { - ActionsEnabled = true, - AlarmActions = new List() - { "arn:aws:sns:us-east-1:80398EXAMPLE:CodingTestResults" }, - AlarmDescription = "Too many instances offline", - AlarmName = "Offline Instances", - ComparisonOperator = ComparisonOperator.GreaterThanOrEqualToThreshold, - Dimensions = new List() { dimension }, - EvaluationPeriods = 1, - MetricName = "Desktop Machines Offline", - Namespace = "Example.com Custom Metrics", - Period = (int)TimeSpan.FromMinutes(5).TotalSeconds, - Statistic = new Statistic("Maximum"), - Threshold = 5, - Unit = StandardUnit.Count - }; - - client.PutMetricAlarm(request); - #endregion - } + if (response.MetricAlarms != null) + { + foreach (var alarm in response.MetricAlarms) + { + Console.WriteLine(); + Console.WriteLine(alarm.AlarmName); + Console.WriteLine(alarm.AlarmDescription); + Console.WriteLine(alarm.MetricName + " " + + alarm.ComparisonOperator + " " + alarm.Threshold); + } + } + else + { + Console.WriteLine("No alarms."); + } + #endregion - public static void CWDescribeAlarmsForMetric() - { - #region CWDescribeAlarmsForMetric - var client = new AmazonCloudWatchClient(); - - var dimension = new Dimension - { - Name = "AutoScalingGroupName", - Value = "awseb-e-kkbEXAMPLE-stack-AutoScalingGroup-F4TAUEXAMPLE" - }; - - var request = new DescribeAlarmsForMetricRequest - { - Dimensions = new List() { dimension }, - MetricName = "NetworkOut", - Namespace = "AWS/EC2" - }; - - var response = client.DescribeAlarmsForMetric(request); - - if (response.MetricAlarms.Count > 0) - { - foreach (var alarm in response.MetricAlarms) - { - Console.WriteLine(); - Console.WriteLine(alarm.AlarmName); - Console.WriteLine(alarm.AlarmDescription); - Console.WriteLine(alarm.MetricName + " " + - alarm.ComparisonOperator + " " + alarm.Threshold); + Console.ReadLine(); } - } - else - { - Console.WriteLine("No alarms."); - } - #endregion - - Console.ReadLine(); - } - public static void CWDeleteAlarms() - { - #region CWDeleteAlarms - var client = new AmazonCloudWatchClient(); + public static async Task CWDeleteAlarms() + { + #region CWDeleteAlarms + var client = new AmazonCloudWatchClient(); - var request = new DeleteAlarmsRequest - { - AlarmNames = new List() { "t1.microCPUUtilization" } - }; + var request = new DeleteAlarmsRequest + { + AlarmNames = new List() { "t1.microCPUUtilization" } + }; - client.DeleteAlarms(request); - #endregion - } + await client.DeleteAlarmsAsync(request); + #endregion + } - public static void CWSetAlarmState() - { - #region CWSetAlarmState - var client = new AmazonCloudWatchClient(); - - var request = new SetAlarmStateRequest - { - AlarmName = "Offline Instances", - StateReason = "Too many instances are offline.", - StateValue = StateValue.ALARM - }; - - client.SetAlarmState(request); - #endregion - } + public static async Task CWSetAlarmState() + { + #region CWSetAlarmState + var client = new AmazonCloudWatchClient(); - public static void CWEnableAlarmActions() - { - #region CWEnableAlarmActions - var client = new AmazonCloudWatchClient(); + var request = new SetAlarmStateRequest + { + AlarmName = "Offline Instances", + StateReason = "Too many instances are offline.", + StateValue = StateValue.ALARM + }; - var request = new EnableAlarmActionsRequest - { - AlarmNames = new List() - { "awseb-e-kkbEXAMPLE-stack-CloudwatchAlarmLow-1WVXD9EXAMPLE" } - }; + await client.SetAlarmStateAsync(request); + #endregion + } - client.EnableAlarmActions(request); - #endregion - } + public static async Task CWEnableAlarmActions() + { + #region CWEnableAlarmActions + var client = new AmazonCloudWatchClient(); - public static void CWDisableAlarmActions() - { - #region CWDisableAlarmActions - var client = new AmazonCloudWatchClient(); + var request = new EnableAlarmActionsRequest + { + AlarmNames = new List() + { + "awseb-e-kkbEXAMPLE-stack-CloudwatchAlarmLow-1WVXD9EXAMPLE" + } + }; + + await client.EnableAlarmActionsAsync(request); + #endregion + } - var request = new DisableAlarmActionsRequest - { - AlarmNames = new List() - { "awseb-e-kkbEXAMPLE-stack-CloudwatchAlarmLow-1WVXD9EXAMPLE" } - }; + public static async Task CWDisableAlarmActions() + { + #region CWDisableAlarmActions + var client = new AmazonCloudWatchClient(); - client.DisableAlarmActions(request); - #endregion - } - - #region ISample Members - public virtual void Run() - { + var request = new DisableAlarmActionsRequest + { + AlarmNames = new List() + { + "awseb-e-kkbEXAMPLE-stack-CloudwatchAlarmLow-1WVXD9EXAMPLE" + } + }; + + await client.DisableAlarmActionsAsync(request); + #endregion + } + #region ISample Members + public virtual Task Run() + { + return Task.CompletedTask; + } + #endregion } - #endregion - } } diff --git a/docgenerator/AWSSDKDocSamples/DynamoDBv2/LowLevelSamples.cs b/docgenerator/AWSSDKDocSamples/DynamoDBv2/LowLevelSamples.cs index e007e1b38739..d927c6ac280f 100644 --- a/docgenerator/AWSSDKDocSamples/DynamoDBv2/LowLevelSamples.cs +++ b/docgenerator/AWSSDKDocSamples/DynamoDBv2/LowLevelSamples.cs @@ -10,12 +10,13 @@ using System.Configuration; using System.Threading.Tasks; using System.IO; +using Amazon.DynamoDBv2.DocumentModel; namespace AWSSDKDocSamples.DynamoDBv2 { public class LowLevelSamples : ISample { - public void DataPlaneSamples() + public async Task DataPlaneSamples() { { #region CreateTable Sample @@ -69,7 +70,7 @@ public void DataPlaneSamples() }; // View new table properties - TableDescription tableDescription = client.CreateTable(request).TableDescription; + TableDescription tableDescription = (await client.CreateTableAsync(request)).TableDescription; Console.WriteLine("Table name: {0}", tableDescription.TableName); Console.WriteLine("Creation time: {0}", tableDescription.CreationDateTime); Console.WriteLine("Item count: {0}", tableDescription.ItemCount); @@ -114,7 +115,7 @@ public void DataPlaneSamples() }; // Issue DescribeTable request and retrieve the table description - TableDescription tableDescription = client.DescribeTable(request).Table; + TableDescription tableDescription = (await client.DescribeTableAsync(request)).Table; // View new table properties Console.WriteLine("Table name: {0}", tableDescription.TableName); @@ -162,15 +163,18 @@ public void DataPlaneSamples() }; // Issue call - ListTablesResult result = client.ListTables(request); + ListTablesResponse response = await client.ListTablesAsync(request); - // List retrieved tables - List tables = result.TableNames; - Console.WriteLine("Retrieved tables: {0}", - string.Join(", ", tables)); + if (response.TableNames != null) + { + // List retrieved tables + List tables = response.TableNames; + Console.WriteLine("Retrieved tables: {0}", + string.Join(", ", tables)); + } // Update marker value from the result - startTableName = result.LastEvaluatedTableName; + startTableName = response.LastEvaluatedTableName; } while (!string.IsNullOrEmpty(startTableName)); // Test marker value @@ -184,12 +188,15 @@ public void DataPlaneSamples() AmazonDynamoDBClient client = new AmazonDynamoDBClient(); // Issue call - ListTablesResult result = client.ListTables(); + ListTablesResponse response = await client.ListTablesAsync(); - // List retrieved tables - List tables = result.TableNames; - Console.WriteLine("Retrieved tables: {0}", - string.Join(", ", tables)); + if (response.TableNames != null) + { + // List retrieved tables + List tables = response.TableNames; + Console.WriteLine("Retrieved tables: {0}", + string.Join(", ", tables)); + } #endregion } @@ -218,7 +225,7 @@ public void DataPlaneSamples() }; // View new table properties - TableDescription tableDescription = client.UpdateTable(request).TableDescription; + TableDescription tableDescription = (await client.UpdateTableAsync(request)).TableDescription; Console.WriteLine("Table name: {0}", tableDescription.TableName); Console.WriteLine("Throughput: Reads = {0}, Writes = {1}", tableDescription.ProvisionedThroughput.ReadCapacityUnits, @@ -242,7 +249,7 @@ public void DataPlaneSamples() }; // Issue DeleteTable request and retrieve the table description - TableDescription tableDescription = client.DeleteTable(request).TableDescription; + TableDescription tableDescription = (await client.DeleteTableAsync(request)).TableDescription; Console.WriteLine("Table name: {0}", tableDescription.TableName); Console.WriteLine("Table status: {0}", tableDescription.TableStatus); @@ -251,7 +258,7 @@ public void DataPlaneSamples() } - private void CreateLSITable() + private async Task CreateLSITable() { #region CreateTable LSI Sample @@ -356,7 +363,7 @@ private void CreateLSITable() }; // View new table properties - TableDescription tableDescription = client.CreateTable(request).TableDescription; + TableDescription tableDescription = (await client.CreateTableAsync(request)).TableDescription; Console.WriteLine("Table name: {0}", tableDescription.TableName); Console.WriteLine("Creation time: {0}", tableDescription.CreationDateTime); Console.WriteLine("Item count: {0}", tableDescription.ItemCount); @@ -388,7 +395,7 @@ private void CreateLSITable() #endregion } - private void PutSample() + private async Task PutSample() { { #region PutItem Sample 1 @@ -419,16 +426,16 @@ private void PutSample() }; // Issue PutItem request - client.PutItem(request); + await client.PutItemAsync(request); #endregion } } - public void CRUDSamples() + public async Task CRUDSamples() { - EnsureTables(); + await EnsureTables(); - PutSample(); + await PutSample(); { #region GetItem Sample @@ -453,7 +460,7 @@ public void CRUDSamples() }; // Issue request - var result = client.GetItem(request); + var result = await client.GetItemAsync(request); // View response Console.WriteLine("Item:"); @@ -518,7 +525,7 @@ public void CRUDSamples() }; // Issue request - client.UpdateItem(request); + await client.UpdateItemAsync(request); #endregion } @@ -546,16 +553,16 @@ public void CRUDSamples() }; // Issue request - client.DeleteItem(request); + await client.DeleteItemAsync(request); #endregion } } - public void SearchSamples() + public async Task SearchSamples() { - RemoveTables(); - CreateLSITable(); + await RemoveTables(); + await CreateLSITable(); TableUtils.WaitUntilTableActive("SampleTable", TestClient); { @@ -581,7 +588,7 @@ public void SearchSamples() PutRequest = new PutRequest { Item = item2 } }); AmazonDynamoDBClient client = new AmazonDynamoDBClient(); - client.BatchWriteItem(new BatchWriteItemRequest + await client.BatchWriteItemAsync(new BatchWriteItemRequest { RequestItems = new Dictionary> { @@ -589,7 +596,7 @@ public void SearchSamples() } }); - PutSample(); + await PutSample(); } @@ -645,7 +652,7 @@ public void SearchSamples() }; // Issue request - var result = client.Query(request); + var result = await client.QueryAsync(request); // View all returned items List> items = result.Items; @@ -723,26 +730,29 @@ public void SearchSamples() }; // Issue request - var result = client.Query(request); + QueryResponse response = await client.QueryAsync(request); - // View all returned items - List> items = result.Items; - foreach (Dictionary item in items) + if (response.Items != null) { - Console.WriteLine("Item:"); - foreach (var keyValuePair in item) + // View all returned items + List> items = response.Items; + foreach (Dictionary item in items) { - Console.WriteLine("{0} : S={1}, N={2}, SS=[{3}], NS=[{4}]", - keyValuePair.Key, - keyValuePair.Value.S, - keyValuePair.Value.N, - string.Join(", ", keyValuePair.Value.SS ?? new List()), - string.Join(", ", keyValuePair.Value.NS ?? new List())); + Console.WriteLine("Item:"); + foreach (var keyValuePair in item) + { + Console.WriteLine("{0} : S={1}, N={2}, SS=[{3}], NS=[{4}]", + keyValuePair.Key, + keyValuePair.Value.S, + keyValuePair.Value.N, + string.Join(", ", keyValuePair.Value.SS ?? new List()), + string.Join(", ", keyValuePair.Value.NS ?? new List())); + } } } // Set marker variable - startKey = result.LastEvaluatedKey; + startKey = response.LastEvaluatedKey; } while (startKey != null && startKey.Count > 0); #endregion @@ -784,26 +794,29 @@ public void SearchSamples() }; // Issue request - ScanResult result = client.Scan(request); + ScanResponse response = await client.ScanAsync(request); - // View all returned items - List> items = result.Items; - foreach (Dictionary item in items) + if (response.Items != null) { - Console.WriteLine("Item:"); - foreach (var keyValuePair in item) + // View all returned items + List> items = response.Items; + foreach (Dictionary item in items) { - Console.WriteLine("{0} : S={1}, N={2}, SS=[{3}], NS=[{4}]", - keyValuePair.Key, - keyValuePair.Value.S, - keyValuePair.Value.N, - string.Join(", ", keyValuePair.Value.SS ?? new List()), - string.Join(", ", keyValuePair.Value.NS ?? new List())); + Console.WriteLine("Item:"); + foreach (var keyValuePair in item) + { + Console.WriteLine("{0} : S={1}, N={2}, SS=[{3}], NS=[{4}]", + keyValuePair.Key, + keyValuePair.Value.S, + keyValuePair.Value.N, + string.Join(", ", keyValuePair.Value.SS ?? new List()), + string.Join(", ", keyValuePair.Value.NS ?? new List())); + } } } // Set marker variable - startKey = result.LastEvaluatedKey; + startKey = response.LastEvaluatedKey; } while (startKey != null && startKey.Count > 0); #endregion @@ -811,7 +824,13 @@ public void SearchSamples() { // Create lots of items to put into first table - var table = Amazon.DynamoDBv2.DocumentModel.Table.LoadTable(TestClient, "SampleTable"); + var table = new TableBuilder(TestClient, "SampleTable") + .AddHashKey("Author", DynamoDBEntryType.String) + .AddRangeKey("Title", DynamoDBEntryType.String) + .AddLocalSecondaryIndex("YearsIndex", "Year", DynamoDBEntryType.Numeric) + .AddLocalSecondaryIndex("SettingsIndex", "Setting", DynamoDBEntryType.String) + .Build(); + var batchWrite = table.CreateBatchWrite(); for (int i = 0; i < 100; i++) { @@ -822,7 +841,7 @@ public void SearchSamples() document["Year"] = 1900 + i; batchWrite.AddDocumentToPut(document); } - batchWrite.Execute(); + await batchWrite.ExecuteAsync(); } @@ -844,7 +863,7 @@ public void SearchSamples() // Setup 10 simultaneous threads, each thread calling Scan operation // with its own segment value. int totalSegments = 10; - Parallel.For(0, totalSegments, segment => + await Parallel.ForAsync(0, totalSegments, async (segment, token) => { // Define marker variable Dictionary startKey = null; @@ -864,31 +883,33 @@ public void SearchSamples() }; // Issue request - var result = client.Scan(request); + ScanResponse response = await client.ScanAsync(request); // Write returned items to file string path = string.Format("ParallelScan-{0}-of-{1}.txt", totalSegments, segment); - List> items = result.Items; using (Stream stream = File.OpenWrite(path)) using (StreamWriter writer = new StreamWriter(stream)) { - foreach (Dictionary item in items) + if (response.Items != null) { - writer.WriteLine("Item:"); - foreach (var keyValuePair in item) + foreach (Dictionary item in response.Items) { - writer.WriteLine("{0} : S={1}, N={2}, SS=[{3}], NS=[{4}]", - keyValuePair.Key, - keyValuePair.Value.S, - keyValuePair.Value.N, - string.Join(", ", keyValuePair.Value.SS ?? new List()), - string.Join(", ", keyValuePair.Value.NS ?? new List())); + writer.WriteLine("Item:"); + foreach (var keyValuePair in item) + { + writer.WriteLine("{0} : S={1}, N={2}, SS=[{3}], NS=[{4}]", + keyValuePair.Key, + keyValuePair.Value.S, + keyValuePair.Value.N, + string.Join(", ", keyValuePair.Value.SS ?? new List()), + string.Join(", ", keyValuePair.Value.NS ?? new List())); + } } } } // Set marker variable - startKey = result.LastEvaluatedKey; + startKey = response.LastEvaluatedKey; } while (startKey != null && startKey.Count > 0); }); @@ -897,9 +918,9 @@ public void SearchSamples() } - public void BatchSamples() + public async Task BatchSamples() { - EnsureTables(); + await EnsureTables(); { #region BatchGet Sample 1 @@ -969,40 +990,43 @@ public void BatchSamples() RequestItems = requestItems }; - BatchGetItemResult result; + BatchGetItemResponse response; do { // Issue request and retrieve items - result = client.BatchGetItem(request); + response = await client.BatchGetItemAsync(request); // Iterate through responses - Dictionary>> responses = result.Responses; - foreach (string tableName in responses.Keys) + if (response.Responses != null) { - // Get items for each table - List> tableItems = responses[tableName]; - - // View items - foreach (Dictionary item in tableItems) + foreach (string tableName in response.Responses.Keys) { - Console.WriteLine("Item:"); - foreach (var keyValuePair in item) + // Get items for each table + List> tableItems = response.Responses[tableName]; + + // View items + foreach (Dictionary item in tableItems) { - Console.WriteLine("{0} : S={1}, N={2}, SS=[{3}], NS=[{4}]", - keyValuePair.Key, - keyValuePair.Value.S, - keyValuePair.Value.N, - string.Join(", ", keyValuePair.Value.SS ?? new List()), - string.Join(", ", keyValuePair.Value.NS ?? new List())); + Console.WriteLine("Item:"); + foreach (var keyValuePair in item) + { + Console.WriteLine("{0} : S={1}, N={2}, SS=[{3}], NS=[{4}]", + keyValuePair.Key, + keyValuePair.Value.S, + keyValuePair.Value.N, + string.Join(", ", keyValuePair.Value.SS ?? new List()), + string.Join(", ", keyValuePair.Value.NS ?? new List())); + } } } + } // Some items may not have been retrieved! // Set RequestItems to the result's UnprocessedKeys and reissue request - request.RequestItems = result.UnprocessedKeys; + request.RequestItems = response.UnprocessedKeys; - } while (result.UnprocessedKeys.Count > 0); + } while (response.UnprocessedKeys?.Count > 0); #endregion } @@ -1077,23 +1101,23 @@ public void BatchSamples() requestItems["AuthorsTable"] = authorsTableItems; BatchWriteItemRequest request = new BatchWriteItemRequest { RequestItems = requestItems }; - BatchWriteItemResult result; + BatchWriteItemResponse response; do { // Issue request and retrieve items - result = client.BatchWriteItem(request); + response = await client.BatchWriteItemAsync(request); // Some items may not have been processed! // Set RequestItems to the result's UnprocessedItems and reissue request - request.RequestItems = result.UnprocessedItems; + request.RequestItems = response.UnprocessedItems; - } while (result.UnprocessedItems.Count > 0); + } while (response.UnprocessedItems?.Count > 0); #endregion } } - private static void EnsureTables() + private static async Task EnsureTables() { List schema = new List { @@ -1117,33 +1141,33 @@ private static void EnsureTables() AttributeName = "Title", AttributeType = "S" } }; - TableUtils.ConfirmTableExistence("SampleTable", TestClient, schema, definitions, 5, 5); + await TableUtils.ConfirmTableExistence("SampleTable", TestClient, schema, definitions, 5, 5); schema.RemoveAt(1); definitions.RemoveAt(1); - TableUtils.ConfirmTableExistence("AuthorsTable", TestClient, schema, definitions, 5, 5); + await TableUtils.ConfirmTableExistence("AuthorsTable", TestClient, schema, definitions, 5, 5); } - private static void RemoveTables() + private static async Task RemoveTables() { - TableUtils.DeleteTables(TestClient, "SampleTable", "AuthorsTable"); + await TableUtils.DeleteTables(TestClient, "SampleTable", "AuthorsTable"); } private static IAmazonDynamoDB TestClient; #region ISample Members - public void Run() + public async Task Run() { using (TestClient = new AmazonDynamoDBClient()) { - RemoveTables(); + await RemoveTables(); - DataPlaneSamples(); - CRUDSamples(); - SearchSamples(); - BatchSamples(); + await DataPlaneSamples(); + await CRUDSamples(); + await SearchSamples(); + await BatchSamples(); - RemoveTables(); + await RemoveTables(); } } diff --git a/docgenerator/AWSSDKDocSamples/DynamoDBv2/TableUtils.cs b/docgenerator/AWSSDKDocSamples/DynamoDBv2/TableUtils.cs index 4bf28d3da002..044974496ac2 100644 --- a/docgenerator/AWSSDKDocSamples/DynamoDBv2/TableUtils.cs +++ b/docgenerator/AWSSDKDocSamples/DynamoDBv2/TableUtils.cs @@ -11,11 +11,11 @@ namespace AWSSDKDocSamples.DynamoDBv2 { public static class TableUtils { - public static void ConfirmTableExistence(string tableName, IAmazonDynamoDB client, List tableSchema, List attributeDefinitions) + public static async Task ConfirmTableExistence(string tableName, IAmazonDynamoDB client, List tableSchema, List attributeDefinitions) { - ConfirmTableExistence(tableName, client, tableSchema, attributeDefinitions, 10, 10); + await ConfirmTableExistence(tableName, client, tableSchema, attributeDefinitions, 10, 10); } - public static void ConfirmTableExistence(string tableName, IAmazonDynamoDB client, List tableSchema, List attributeDefinitions, int reads, int writes) + public static async Task ConfirmTableExistence(string tableName, IAmazonDynamoDB client, List tableSchema, List attributeDefinitions, int reads, int writes) { Console.WriteLine("Confirming table " + tableName + " existence"); string tableStatus = null; @@ -24,13 +24,13 @@ public static void ConfirmTableExistence(string tableName, IAmazonDynamoDB clien if (string.IsNullOrEmpty(tableStatus)) { Console.WriteLine("Creating table " + tableName); - var tableDescription = client.CreateTable(new CreateTableRequest + var tableDescription = (await client.CreateTableAsync(new CreateTableRequest { TableName = tableName, ProvisionedThroughput = new ProvisionedThroughput { ReadCapacityUnits = reads, WriteCapacityUnits = writes }, KeySchema = tableSchema, AttributeDefinitions = attributeDefinitions - }).TableDescription; + })).TableDescription; WaitUntilTableCreated(tableName, client); } else @@ -70,44 +70,51 @@ private static string WaitUntilTableStable(string tableName, IAmazonDynamoDB cli return tableStatus; } - public static void DeleteTables(IAmazonDynamoDB client, string partialName) + public static async Task DeleteTables(IAmazonDynamoDB client, string partialName) { - DeleteTables(client, tableName => tableName.IndexOf(partialName, StringComparison.OrdinalIgnoreCase) >= 0); + await DeleteTables(client, tableName => tableName.IndexOf(partialName, StringComparison.OrdinalIgnoreCase) >= 0); } - public static void DeleteTable(IAmazonDynamoDB client, string tableName) + public static async Task DeleteTable(IAmazonDynamoDB client, string tableName) { - DeleteTables(client, name => string.Equals(name, tableName, StringComparison.Ordinal)); + await DeleteTables(client, name => string.Equals(name, tableName, StringComparison.Ordinal)); } - public static void DeleteTables(IAmazonDynamoDB client, Predicate tableNameMatch) + public static async Task DeleteTables(IAmazonDynamoDB client, Predicate tableNameMatch) { try { - var tableNames = client.ListTables().TableNames; - foreach (var tableName in tableNames) + var tableNames = (await client.ListTablesAsync()).TableNames; + if (tableNames != null) { - DescribeTableResponse descResponse = client.DescribeTable(new DescribeTableRequest { TableName = tableName }); - if (descResponse.Table == null) - continue; + foreach (var tableName in tableNames) + { + DescribeTableResponse descResponse = await client.DescribeTableAsync(new DescribeTableRequest { TableName = tableName }); + if (descResponse.Table == null) + continue; - TableDescription table = descResponse.Table; + TableDescription table = descResponse.Table; - if (table.TableStatus == TableStatus.ACTIVE && tableNameMatch(table.TableName)) - { - Console.WriteLine("Table: {0}, {1}, {2}, {3}", table.TableName, table.TableStatus, table.ProvisionedThroughput.ReadCapacityUnits, table.ProvisionedThroughput.WriteCapacityUnits); - Console.WriteLine("Deleting table " + table.TableName + "..."); - try - { - client.DeleteTable(new DeleteTableRequest { TableName = table.TableName }); - WaitUntilTableDeleted(table.TableName, client); - Console.WriteLine("Succeeded!"); - } - catch + if (table.TableStatus == TableStatus.ACTIVE && tableNameMatch(table.TableName)) { - Console.WriteLine("Failed!"); + Console.WriteLine("Table: {0}, {1}, {2}, {3}", table.TableName, table.TableStatus, table.ProvisionedThroughput.ReadCapacityUnits, table.ProvisionedThroughput.WriteCapacityUnits); + Console.WriteLine("Deleting table " + table.TableName + "..."); + try + { + await client.DeleteTableAsync(new DeleteTableRequest { TableName = table.TableName }); + WaitUntilTableDeleted(table.TableName, client); + Console.WriteLine("Succeeded!"); + } + catch + { + Console.WriteLine("Failed!"); + } } } + Console.WriteLine(tableNames.Count); + } + else + { + Console.WriteLine("No tables to delete"); } - Console.WriteLine(tableNames.Count); } catch (Exception e) { @@ -115,19 +122,19 @@ public static void DeleteTables(IAmazonDynamoDB client, Predicate tableN throw; } } - public static void DeleteTables(IAmazonDynamoDB client, params string[] tableNames) + public static async Task DeleteTables(IAmazonDynamoDB client, params string[] tableNames) { - DeleteTables(client, tableName => tableNames.Contains(tableName, StringComparer.Ordinal)); + await DeleteTables(client, tableName => tableNames.Contains(tableName, StringComparer.Ordinal)); } public static TableStatus GetTableStatus(string tableName, IAmazonDynamoDB client) { try { - var table = client.DescribeTable(new DescribeTableRequest + var table = client.DescribeTableAsync(new DescribeTableRequest { TableName = tableName - }).Table; + }).GetAwaiter().GetResult().Table; return table.TableStatus; } diff --git a/docgenerator/AWSSDKDocSamples/Program.cs b/docgenerator/AWSSDKDocSamples/Program.cs index 265f46b3245b..db79a7e221c7 100644 --- a/docgenerator/AWSSDKDocSamples/Program.cs +++ b/docgenerator/AWSSDKDocSamples/Program.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using System.Reflection; +using System.Threading.Tasks; namespace AWSSDKDocSamples { @@ -44,6 +45,6 @@ static int Main(string[] args) public interface ISample { - void Run(); + Task Run(); } } diff --git a/docgenerator/AWSSDKDocSamples/Properties/AssemblyInfo.cs b/docgenerator/AWSSDKDocSamples/Properties/AssemblyInfo.cs deleted file mode 100644 index 21db2723db24..000000000000 --- a/docgenerator/AWSSDKDocSamples/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("AWSSDKDocSamples")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Amazon.com, Inc")] -[assembly: AssemblyProduct("AWSSDKDocSamples")] -[assembly: AssemblyCopyright("Copyright © 2012-2013 Amazon, Inc")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("cbf79c1b-8abf-4557-8aba-e24e63b2fc5e")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/docgenerator/AWSSDKDocSamples/Route53/recordset.cs b/docgenerator/AWSSDKDocSamples/Route53/recordset.cs index 1c5903ac1819..35f48c491d59 100644 --- a/docgenerator/AWSSDKDocSamples/Route53/recordset.cs +++ b/docgenerator/AWSSDKDocSamples/Route53/recordset.cs @@ -1,78 +1,77 @@ -using System; +using Amazon.Route53; +using Amazon.Route53.Model; +using System; using System.Collections.Generic; using System.Threading; - -using Amazon; -using Amazon.Route53; -using Amazon.Route53.Model; +using System.Threading.Tasks; namespace AWSSDKDocSamples.Route53 { - //Create a hosted zone and add a basic record set to it - class route53samples : ISample - { - public static void Route53CreateAdd(string[] args) + //Create a hosted zone and add a basic record set to it + class route53samples : ISample { - #region Route53CreateAdd - string domainName = "www.example.org"; + public static async Task Route53CreateAdd(string[] args) + { + #region Route53CreateAdd + string domainName = "www.example.org"; - IAmazonRoute53 route53Client = new AmazonRoute53Client(); + IAmazonRoute53 route53Client = new AmazonRoute53Client(); - CreateHostedZoneRequest zoneRequest = new CreateHostedZoneRequest - { - Name = domainName, - CallerReference = "my_change_request" - }; + CreateHostedZoneRequest zoneRequest = new CreateHostedZoneRequest + { + Name = domainName, + CallerReference = "my_change_request" + }; - CreateHostedZoneResponse zoneResponse = route53Client.CreateHostedZone(zoneRequest); + CreateHostedZoneResponse zoneResponse = await route53Client.CreateHostedZoneAsync(zoneRequest); - ResourceRecordSet recordSet = new ResourceRecordSet - { - Name = domainName, - TTL = 60, - Type = RRType.A, - ResourceRecords = new List { new ResourceRecord { Value = "192.0.2.235" } } - }; + ResourceRecordSet recordSet = new ResourceRecordSet + { + Name = domainName, + TTL = 60, + Type = RRType.A, + ResourceRecords = new List { new ResourceRecord { Value = "192.0.2.235" } } + }; - Change change1 = new Change - { - ResourceRecordSet = recordSet, - Action = ChangeAction.CREATE - }; + Change change1 = new Change + { + ResourceRecordSet = recordSet, + Action = ChangeAction.CREATE + }; - ChangeBatch changeBatch = new ChangeBatch - { - Changes = new List { change1 } - }; + ChangeBatch changeBatch = new ChangeBatch + { + Changes = new List { change1 } + }; - ChangeResourceRecordSetsRequest recordsetRequest = new ChangeResourceRecordSetsRequest - { - HostedZoneId = zoneResponse.HostedZone.Id, - ChangeBatch = changeBatch - }; + ChangeResourceRecordSetsRequest recordsetRequest = new ChangeResourceRecordSetsRequest + { + HostedZoneId = zoneResponse.HostedZone.Id, + ChangeBatch = changeBatch + }; - ChangeResourceRecordSetsResponse recordsetResponse = route53Client.ChangeResourceRecordSets(recordsetRequest); + ChangeResourceRecordSetsResponse recordsetResponse = await route53Client.ChangeResourceRecordSetsAsync(recordsetRequest); - GetChangeRequest changeRequest = new GetChangeRequest - { - Id = recordsetResponse.ChangeInfo.Id - }; + GetChangeRequest changeRequest = new GetChangeRequest + { + Id = recordsetResponse.ChangeInfo.Id + }; - while (route53Client.GetChange(changeRequest).ChangeInfo.Status == ChangeStatus.PENDING) - { - Console.WriteLine("Change is pending."); - Thread.Sleep(TimeSpan.FromSeconds(15)); - } - #endregion - - Console.WriteLine("Change is complete."); - Console.ReadKey(); - } - #region ISample Members - public virtual void Run() - { + while ((await route53Client.GetChangeAsync(changeRequest)).ChangeInfo.Status == ChangeStatus.PENDING) + { + Console.WriteLine("Change is pending."); + Thread.Sleep(TimeSpan.FromSeconds(15)); + } + #endregion + Console.WriteLine("Change is complete."); + Console.ReadKey(); + } + #region ISample Members + public virtual Task Run() + { + return Task.CompletedTask; + } + #endregion } - #endregion - } } \ No newline at end of file diff --git a/docgenerator/AWSSDKDocSamples/S3/BaseS3Samples.cs b/docgenerator/AWSSDKDocSamples/S3/BaseS3Samples.cs index 6a42f549c2cb..82add16c604e 100644 --- a/docgenerator/AWSSDKDocSamples/S3/BaseS3Samples.cs +++ b/docgenerator/AWSSDKDocSamples/S3/BaseS3Samples.cs @@ -2,17 +2,20 @@ using System.Collections.Generic; using System.Linq; using System.Text; +using System.Threading.Tasks; using Amazon.S3; using Amazon.S3.Model; using System.Diagnostics; using System.IO; using System.Net; +using System.Threading; +using System.Net.Http; namespace AWSSDKDocSamples.S3 { public class BaseS3Samples : ISample { - public void BucketSamples() + public async Task BucketSamples() { { #region ListBuckets Sample @@ -21,7 +24,7 @@ public void BucketSamples() AmazonS3Client client = new AmazonS3Client(); // Issue call - ListBucketsResponse response = client.ListBuckets(); + ListBucketsResponse response = await client.ListBucketsAsync(); // View response data Console.WriteLine("Buckets owner - {0}", response.Owner.DisplayName); @@ -53,7 +56,7 @@ public void BucketSamples() BucketName = "amzn-s3-demo-bucket", Policy = newPolicy }; - client.PutBucketPolicy(putRequest); + await client.PutBucketPolicyAsync(putRequest); // Retrieve current policy @@ -61,7 +64,7 @@ public void BucketSamples() { BucketName = "amzn-s3-demo-bucket" }; - string policy = client.GetBucketPolicy(getRequest).Policy; + string policy = (await client.GetBucketPolicyAsync(getRequest)).Policy; Console.WriteLine(policy); Debug.Assert(policy.Contains("BasicPerms")); @@ -72,11 +75,11 @@ public void BucketSamples() { BucketName = "amzn-s3-demo-bucket" }; - client.DeleteBucketPolicy(deleteRequest); + await client.DeleteBucketPolicyAsync(deleteRequest); // Retrieve current policy and verify that it is null - policy = client.GetBucketPolicy(getRequest).Policy; + policy = (await client.GetBucketPolicyAsync(getRequest)).Policy; Debug.Assert(policy == null); #endregion @@ -95,7 +98,7 @@ public void BucketSamples() }; // Issue call - GetBucketLocationResponse response = client.GetBucketLocation(request); + GetBucketLocationResponse response = await client.GetBucketLocationAsync(request); // View response data Console.WriteLine("Bucket location - {0}", response.Location); @@ -113,12 +116,11 @@ public void BucketSamples() PutBucketRequest request = new PutBucketRequest { BucketName = "amzn-s3-demo-bucket", - BucketRegion = S3Region.EU, // set region to EU - CannedACL = S3CannedACL.PublicRead // make bucket publicly readable + BucketRegion = S3Region.EUWest1 // set region to eu-west-1 }; // Issue call - PutBucketResponse response = client.PutBucket(request); + PutBucketResponse response = await client.PutBucketAsync(request); #endregion } @@ -136,7 +138,7 @@ public void BucketSamples() }; // Issue call - DeleteBucketResponse response = client.DeleteBucket(request); + DeleteBucketResponse response = await client.DeleteBucketAsync(request); #endregion } @@ -157,20 +159,24 @@ public void BucketSamples() do { // Get a list of objects - listResponse = client.ListObjects(listRequest); - foreach (S3Object obj in listResponse.S3Objects) + listResponse = await client.ListObjectsAsync(listRequest); + + if (listResponse.S3Objects != null) { - // Delete each object - client.DeleteObject(new DeleteObjectRequest + foreach (S3Object obj in listResponse.S3Objects) { - BucketName = "amzn-s3-demo-bucket", - Key = obj.Key - }); + // Delete each object + await client.DeleteObjectAsync(new DeleteObjectRequest + { + BucketName = "amzn-s3-demo-bucket", + Key = obj.Key + }); + } } // Set the marker property listRequest.Marker = listResponse.NextMarker; - } while (listResponse.IsTruncated); + } while (listResponse.IsTruncated.GetValueOrDefault()); // Construct DeleteBucket request DeleteBucketRequest request = new DeleteBucketRequest @@ -179,7 +185,7 @@ public void BucketSamples() }; // Issue call - DeleteBucketResponse response = client.DeleteBucket(request); + DeleteBucketResponse response = await client.DeleteBucketAsync(request); #endregion } @@ -199,13 +205,25 @@ public void BucketSamples() // Rule to delete keys with prefix "Test-" after 5 days new LifecycleRule { - Prefix = "Test-", + Filter = new LifecycleFilter + { + LifecycleFilterPredicate = new LifecyclePrefixPredicate + { + Prefix = "Test-" + } + }, Expiration = new LifecycleRuleExpiration { Days = 5 } }, // Rule to delete keys in subdirectory "Logs" after 2 days new LifecycleRule { - Prefix = "Logs/", + Filter = new LifecycleFilter + { + LifecycleFilterPredicate = new LifecyclePrefixPredicate + { + Prefix = "Logs/", + } + }, Expiration = new LifecycleRuleExpiration { Days = 2 }, Id = "log-file-removal" } @@ -216,7 +234,7 @@ public void BucketSamples() BucketName = "amzn-s3-demo-bucket", Configuration = newConfiguration }; - client.PutLifecycleConfiguration(putRequest); + await client.PutLifecycleConfigurationAsync(putRequest); // Retrieve current configuration @@ -224,40 +242,45 @@ public void BucketSamples() { BucketName = "amzn-s3-demo-bucket" }; - LifecycleConfiguration configuration = client.GetLifecycleConfiguration(getRequest).Configuration; + LifecycleConfiguration configuration = (await client.GetLifecycleConfigurationAsync(getRequest)).Configuration; - Console.WriteLine("Configuration contains {0} rules", configuration.Rules.Count); - foreach (LifecycleRule rule in configuration.Rules) + Console.WriteLine("Configuration contains {0} rules", configuration.Rules?.Count); + + if(configuration.Rules != null) { - Console.WriteLine("Rule"); - Console.WriteLine(" Prefix = " + rule.Prefix); - Console.WriteLine(" Expiration (days) = " + rule.Expiration.Days); - Console.WriteLine(" Id = " + rule.Id); - Console.WriteLine(" Status = " + rule.Status); - } + foreach (LifecycleRule rule in configuration.Rules) + { + Console.WriteLine("Rule"); + if (rule.Filter.LifecycleFilterPredicate is LifecyclePrefixPredicate prefixFilter) + Console.WriteLine(" Prefix = " + prefixFilter.Prefix); + Console.WriteLine(" Expiration (days) = " + rule.Expiration.Days); + Console.WriteLine(" Id = " + rule.Id); + Console.WriteLine(" Status = " + rule.Status); + } + } // Put a new configuration and overwrite the existing configuration configuration.Rules.RemoveAt(0); // remove first rule - client.PutLifecycleConfiguration(putRequest); + await client.PutLifecycleConfigurationAsync(putRequest); // Delete current configuration DeleteLifecycleConfigurationRequest deleteRequest = new DeleteLifecycleConfigurationRequest { BucketName = "amzn-s3-demo-bucket" }; - client.DeleteLifecycleConfiguration(deleteRequest); + await client.DeleteLifecycleConfigurationAsync(deleteRequest); // Retrieve current configuration and verify that it is null - configuration = client.GetLifecycleConfiguration(getRequest).Configuration; + configuration = (await client.GetLifecycleConfigurationAsync(getRequest)).Configuration; Debug.Assert(configuration == null); #endregion } } - public void ObjectSamples() + public async Task ObjectSamples() { { #region ListObjects Sample @@ -275,18 +298,22 @@ public void ObjectSamples() do { // Get a list of objects - listResponse = client.ListObjects(listRequest); - foreach (S3Object obj in listResponse.S3Objects) + listResponse = await client.ListObjectsAsync(listRequest); + + if (listResponse.S3Objects != null) { - Console.WriteLine("Object - " + obj.Key); - Console.WriteLine(" Size - " + obj.Size); - Console.WriteLine(" LastModified - " + obj.LastModified); - Console.WriteLine(" Storage class - " + obj.StorageClass); + foreach (S3Object obj in listResponse.S3Objects) + { + Console.WriteLine("Object - " + obj.Key); + Console.WriteLine(" Size - " + obj.Size); + Console.WriteLine(" LastModified - " + obj.LastModified); + Console.WriteLine(" Storage class - " + obj.StorageClass); + } } // Set the marker property listRequest.Marker = listResponse.NextMarker; - } while (listResponse.IsTruncated); + } while (listResponse.IsTruncated.GetValueOrDefault()); #endregion } @@ -305,7 +332,7 @@ public void ObjectSamples() }; // Issue request and remember to dispose of the response - using (GetObjectResponse response = client.GetObject(request)) + using (GetObjectResponse response = await client.GetObjectAsync(request)) { using (StreamReader reader = new StreamReader(response.ResponseStream)) { @@ -320,6 +347,8 @@ public void ObjectSamples() } { + CancellationTokenSource tokenSource = new CancellationTokenSource(); + var cancellationToken = tokenSource.Token; #region GetObject WriteResponseStreamToFile Sample // Create a client @@ -333,10 +362,10 @@ public void ObjectSamples() }; // Issue request and remember to dispose of the response - using (GetObjectResponse response = client.GetObject(request)) + using (GetObjectResponse response = await client.GetObjectAsync(request)) { // Save object to local file - response.WriteResponseStreamToFile("Item1.txt"); + await response.WriteResponseStreamToFileAsync("Item1.txt", false, cancellationToken); } #endregion @@ -357,7 +386,7 @@ public void ObjectSamples() }; // Issue request and view the response - GetObjectMetadataResponse response = client.GetObjectMetadata(request); + GetObjectMetadataResponse response = await client.GetObjectMetadataAsync(request); Console.WriteLine("Content Length - " + response.ContentLength); Console.WriteLine("Content Type - " + response.Headers.ContentType); if (response.Expiration != null) @@ -384,7 +413,7 @@ public void ObjectSamples() }; // Put object - PutObjectResponse response = client.PutObject(request); + PutObjectResponse response = await client.PutObjectAsync(request); #endregion } @@ -404,7 +433,7 @@ public void ObjectSamples() }; // Put object - PutObjectResponse response = client.PutObject(request); + PutObjectResponse response = await client.PutObjectAsync(request); #endregion } @@ -426,7 +455,7 @@ public void ObjectSamples() request.InputStream = stream; // Put object - PutObjectResponse response = client.PutObject(request); + PutObjectResponse response = await client.PutObjectAsync(request); } #endregion @@ -446,7 +475,7 @@ public void ObjectSamples() }; // Issue request - client.DeleteObject(request); + await client.DeleteObjectAsync(request); #endregion } @@ -474,22 +503,29 @@ public void ObjectSamples() try { // Issue request - DeleteObjectsResponse response = client.DeleteObjects(request); + DeleteObjectsResponse response = await client.DeleteObjectsAsync(request); } catch (DeleteObjectsException doe) { // Catch error and list error details DeleteObjectsResponse errorResponse = doe.Response; - foreach (DeletedObject deletedObject in errorResponse.DeletedObjects) + if (errorResponse.DeletedObjects != null) { - Console.WriteLine("Deleted item " + deletedObject.Key); + foreach (DeletedObject deletedObject in errorResponse.DeletedObjects) + { + Console.WriteLine("Deleted item " + deletedObject.Key); + } } - foreach (DeleteError deleteError in errorResponse.DeleteErrors) + + if (errorResponse.DeleteErrors != null) { - Console.WriteLine("Error deleting item " + deleteError.Key); - Console.WriteLine(" Code - " + deleteError.Code); - Console.WriteLine(" Message - " + deleteError.Message); + foreach (DeleteError deleteError in errorResponse.DeleteErrors) + { + Console.WriteLine("Error deleting item " + deleteError.Key); + Console.WriteLine(" Code - " + deleteError.Code); + Console.WriteLine(" Message - " + deleteError.Message); + } } } @@ -513,7 +549,7 @@ public void ObjectSamples() }; // Issue request - client.CopyObject(request); + await client.CopyObjectAsync(request); #endregion } @@ -535,7 +571,7 @@ public void ObjectSamples() }; // Issue request - client.CopyObject(request); + await client.CopyObjectAsync(request); #endregion } @@ -547,14 +583,14 @@ public void ObjectSamples() AmazonS3Client client = new AmazonS3Client(); // Turn versioning on for a bucket - client.PutBucketVersioning(new PutBucketVersioningRequest + await client.PutBucketVersioningAsync(new PutBucketVersioningRequest { BucketName = "amzn-s3-demo-bucket", VersioningConfig = new S3BucketVersioningConfig { Status = "Enable" } }); // Populate bucket with multiple items, each with multiple versions - PopulateBucket(client, "amzn-s3-demo-bucket"); + await PopulateBucket(client, "amzn-s3-demo-bucket"); // Get versions ListVersionsRequest request = new ListVersionsRequest @@ -566,21 +602,24 @@ public void ObjectSamples() ListVersionsResponse response; do { - response = client.ListVersions(request); + response = await client.ListVersionsAsync(request); // View information about versions - foreach (var version in response.Versions) + if (response.Versions != null) { - Console.WriteLine("Key = {0}, Version = {1}, IsLatest = {2}, LastModified = {3}, Size = {4}", - version.Key, - version.VersionId, - version.IsLatest, - version.LastModified, - version.Size); + foreach (var version in response.Versions) + { + Console.WriteLine("Key = {0}, Version = {1}, IsLatest = {2}, LastModified = {3}, Size = {4}", + version.Key, + version.VersionId, + version.IsLatest, + version.LastModified, + version.Size); + } } request.KeyMarker = response.NextKeyMarker; request.VersionIdMarker = response.NextVersionIdMarker; - } while (response.IsTruncated); + } while (response.IsTruncated.GetValueOrDefault()); #endregion } @@ -602,7 +641,7 @@ public void ObjectSamples() BucketName = "amzn-s3-demo-bucket", Key = "Item1" }; - InitiateMultipartUploadResponse initResponse = client.InitiateMultipartUpload(initRequest); + InitiateMultipartUploadResponse initResponse = await client.InitiateMultipartUploadAsync(initRequest); // Upload part 1 UploadPartRequest uploadRequest = new UploadPartRequest @@ -614,7 +653,7 @@ public void ObjectSamples() PartSize = 5 * MB, InputStream = inputStream }; - UploadPartResponse up1Response = client.UploadPart(uploadRequest); + UploadPartResponse up1Response = await client.UploadPartAsync(uploadRequest); // Upload part 2 uploadRequest = new UploadPartRequest @@ -626,7 +665,7 @@ public void ObjectSamples() PartSize = 5 * MB, InputStream = inputStream }; - UploadPartResponse up2Response = client.UploadPart(uploadRequest); + UploadPartResponse up2Response = await client.UploadPartAsync(uploadRequest); // Upload part 3 uploadRequest = new UploadPartRequest @@ -637,7 +676,7 @@ public void ObjectSamples() PartNumber = 3, InputStream = inputStream }; - UploadPartResponse up3Response = client.UploadPart(uploadRequest); + UploadPartResponse up3Response = await client.UploadPartAsync(uploadRequest); // List parts for current upload ListPartsRequest listPartRequest = new ListPartsRequest @@ -646,7 +685,7 @@ public void ObjectSamples() Key = "Item1", UploadId = initResponse.UploadId }; - ListPartsResponse listPartResponse = client.ListParts(listPartRequest); + ListPartsResponse listPartResponse = await client.ListPartsAsync(listPartRequest); Debug.Assert(listPartResponse.Parts.Count == 3); // Complete the multipart upload @@ -662,7 +701,7 @@ public void ObjectSamples() new PartETag { ETag = up3Response.ETag, PartNumber = 3 } } }; - CompleteMultipartUploadResponse compResponse = client.CompleteMultipartUpload(compRequest); + CompleteMultipartUploadResponse compResponse = await client.CompleteMultipartUploadAsync(compRequest); #endregion } @@ -673,9 +712,9 @@ private Stream Create13MBDataStream() return null; } - private void PopulateBucket(IAmazonS3 client, string bucketName) + private async Task PopulateBucket(IAmazonS3 client, string bucketName) { - client.PutObject(new PutObjectRequest() + await client.PutObjectAsync(new PutObjectRequest() { BucketName = bucketName, Key = "Item", @@ -684,7 +723,7 @@ private void PopulateBucket(IAmazonS3 client, string bucketName) for (int i = 0; i < 20; i++) { - client.PutObject(new PutObjectRequest() + await client.PutObjectAsync(new PutObjectRequest() { BucketName = bucketName, Key = "Item", @@ -693,7 +732,7 @@ private void PopulateBucket(IAmazonS3 client, string bucketName) } } - public void PresignedURLSamples() + public async Task PresignedURLSamples() { { #region GetPreSignedURL Sample 1 @@ -710,10 +749,10 @@ public void PresignedURLSamples() }; // Get path for request - string path = client.GetPreSignedURL(request); + string path = await client.GetPreSignedURLAsync(request); // Test by getting contents - string contents = GetContents(path); + string contents = await GetContents(path); #endregion } @@ -739,10 +778,10 @@ public void PresignedURLSamples() request.ResponseHeaderOverrides.ContentEncoding = "x-gzip"; // Get path for request - string path = client.GetPreSignedURL(request); + string path = await client.GetPreSignedURLAsync(request); // Test by getting contents - string contents = GetContents(path); + string contents = await GetContents(path); #endregion } @@ -761,10 +800,10 @@ public void PresignedURLSamples() }; // Get path for request - string path = client.GetPreSignedURL(request); + string path = await client.GetPreSignedURLAsync(request); // Retrieve objects - string allObjects = GetContents(path); + string allObjects = await GetContents(path); #endregion } @@ -782,10 +821,10 @@ public void PresignedURLSamples() }; // Get path for request - string path = client.GetPreSignedURL(request); + string path = await client.GetPreSignedURLAsync(request); // Retrieve buckets - string allBuckets = GetContents(path); + string allBuckets = await GetContents(path); #endregion } @@ -806,29 +845,24 @@ public void PresignedURLSamples() }; // Get path for request - string path = client.GetPreSignedURL(request); + string path = await client.GetPreSignedURLAsync(request); // Prepare data byte[] data = UTF8Encoding.UTF8.GetBytes("Sample text."); - // Configure request - HttpWebRequest httpRequest = WebRequest.Create(path) as HttpWebRequest; - httpRequest.Method = "PUT"; - httpRequest.ContentLength = data.Length; - - // Write data to stream - Stream requestStream = httpRequest.GetRequestStream(); - requestStream.Write(data, 0, data.Length); - requestStream.Close(); + using var httpClient = new HttpClient(); + using var httpRequest = new HttpRequestMessage(HttpMethod.Put, path) + { + Content = new ByteArrayContent(data) + }; - // Issue request - HttpWebResponse response = httpRequest.GetResponse() as HttpWebResponse; + using var httpResponse = await httpClient.SendAsync(httpRequest); #endregion } } - public void AclSamples() + public async Task AclSamples() { { #region PutACL Sample 1 @@ -837,20 +871,20 @@ public void AclSamples() AmazonS3Client client = new AmazonS3Client(); // Set Canned ACL (PublicRead) for an existing item - client.PutACL(new PutACLRequest + await client.PutObjectAclAsync(new PutObjectAclRequest { BucketName = "amzn-s3-demo-bucket", Key = "Item1", - CannedACL = S3CannedACL.PublicRead + ACL = S3CannedACL.PublicRead }); // Set Canned ACL (PublicRead) for an existing item // (This reverts ACL back to default for object) - client.PutACL(new PutACLRequest + await client.PutObjectAclAsync(new PutObjectAclRequest { BucketName = "amzn-s3-demo-bucket", Key = "Item1", - CannedACL = S3CannedACL.Private + ACL = S3CannedACL.Private }); #endregion @@ -863,14 +897,14 @@ public void AclSamples() AmazonS3Client client = new AmazonS3Client(); // Retrieve ACL for object - S3AccessControlList acl = client.GetACL(new GetACLRequest + var getResponse = (await client.GetObjectAclAsync(new GetObjectAclRequest { BucketName = "amzn-s3-demo-bucket", Key = "Item1", - }).AccessControlList; + })); // Retrieve owner - Owner owner = acl.Owner; + Owner owner = getResponse.Owner; // Describe grant @@ -888,11 +922,11 @@ public void AclSamples() }; // Set new ACL - PutACLResponse response = client.PutACL(new PutACLRequest + var putResponse = await client.PutObjectAclAsync(new PutObjectAclRequest { BucketName = "amzn-s3-demo-bucket", Key = "Item1", - AccessControlList = acl + AccessControlPolicy = newAcl }); #endregion @@ -901,24 +935,19 @@ public void AclSamples() #region GetContents function - public static string GetContents(string path) + public static async Task GetContents(string path) { - HttpWebRequest request = HttpWebRequest.Create(path) as HttpWebRequest; - HttpWebResponse response = request.GetResponse() as HttpWebResponse; - - using (Stream stream = response.GetResponseStream()) - using (StreamReader reader = new StreamReader(stream)) - { - return reader.ReadToEnd(); - } + using var httpClient = new HttpClient(); + return await httpClient.GetStringAsync(path); } #endregion #region ISample Members - public void Run() + public Task Run() { + return Task.CompletedTask; } #endregion diff --git a/docgenerator/AWSSDKDocSamples/SES/SESSamples.cs b/docgenerator/AWSSDKDocSamples/SES/SESSamples.cs index 7893c927b863..914dc0809ebd 100644 --- a/docgenerator/AWSSDKDocSamples/SES/SESSamples.cs +++ b/docgenerator/AWSSDKDocSamples/SES/SESSamples.cs @@ -1,428 +1,439 @@ -using System; +using Amazon.SimpleEmail; +using Amazon.SimpleEmail.Model; +using System; using System.Collections.Generic; -using System.Linq; +using System.IO; using System.Text; using System.Threading.Tasks; -using Amazon.SimpleEmail; -using Amazon.SimpleEmail.Model; - -using System.IO; - namespace AWSSDKDocSamples.SES { - class SESSamples : ISample - { - public static void SESSendEmail() + class SESSamples : ISample { - #region SESSendEmail - var sesClient = new AmazonSimpleEmailServiceClient(); - - var dest = new Destination - { - ToAddresses = new List() { "janedoe@example.com" }, - CcAddresses = new List() { "richarddoe@example.com" } - }; - - var from = "johndoe@example.com"; - var subject = new Content("You're invited to the meeting"); - var body = new Body(new Content("Please join us Monday at 7:00 PM.")); - var msg = new Message(subject, body); - - var request = new SendEmailRequest - { - Destination = dest, - Message = msg, - Source = from - }; - - sesClient.SendEmail(request); - #endregion - } + public static async Task SESSendEmail() + { + #region SESSendEmail + var sesClient = new AmazonSimpleEmailServiceClient(); - public static void SESSendRawEmail() - { - #region SESSendRawEmail - // using System.IO; - - var sesClient = new AmazonSimpleEmailServiceClient(); - - var stream = new MemoryStream( - Encoding.UTF8.GetBytes("From: johndoe@example.com\n" + - "To: janedoe@example.com\n" + - "Subject: You're invited to the meeting\n" + - "Content-Type: text/plain\n\n" + - "Please join us Monday at 7:00 PM.") - ); - - var raw = new RawMessage - { - Data = stream - }; - - var to = new List() { "janedoe@example.com" }; - var from = "johndoe@example.com"; - - var request = new SendRawEmailRequest - { - Destinations = to, - RawMessage = raw, - Source = from - }; - - sesClient.SendRawEmail(request); - #endregion - } + var dest = new Destination + { + ToAddresses = new List() { "janedoe@example.com" }, + CcAddresses = new List() { "richarddoe@example.com" } + }; - public static void SESGetSendQuota() - { - #region SESGetSendQuota - var sesClient = new AmazonSimpleEmailServiceClient(); - var response = sesClient.GetSendQuota(); - - Console.WriteLine("Maximum emails that can be sent each 24 hours: " + - response.Max24HourSend); - Console.WriteLine("Maximum emails that can be sent per second: " + - response.MaxSendRate); - Console.WriteLine("Number of emails sent in last 24 hours: " + - response.SentLast24Hours); - #endregion - - Console.ReadLine(); - } + var from = "johndoe@example.com"; + var subject = new Content("You're invited to the meeting"); + var body = new Body(new Content("Please join us Monday at 7:00 PM.")); + var msg = new Message(subject, body); - public static void SESSetIdentityFeedbackForwardingEnabled() - { - #region SESSetIdentityFeedbackForwardingEnabled - var sesClient = new AmazonSimpleEmailServiceClient(); + var request = new SendEmailRequest + { + Destination = dest, + Message = msg, + Source = from + }; - var request = new SetIdentityFeedbackForwardingEnabledRequest - { - ForwardingEnabled = true, - Identity = "johndoe@example.com" - }; + await sesClient.SendEmailAsync(request); + #endregion + } - sesClient.SetIdentityFeedbackForwardingEnabled(request); - #endregion - } + public static async Task SESSendRawEmail() + { + #region SESSendRawEmail + // using System.IO; - public static void SESListIdentities() - { - #region SESListIdentities - var sesClient = new AmazonSimpleEmailServiceClient(); + var sesClient = new AmazonSimpleEmailServiceClient(); - var response = sesClient.ListIdentities(); + var stream = new MemoryStream( + Encoding.UTF8.GetBytes("From: johndoe@example.com\n" + + "To: janedoe@example.com\n" + + "Subject: You're invited to the meeting\n" + + "Content-Type: text/plain\n\n" + + "Please join us Monday at 7:00 PM.") + ); - if (response.Identities.Count > 0) - { - Console.WriteLine("Identities:"); + var raw = new RawMessage + { + Data = stream + }; - foreach (var identity in response.Identities) - { - Console.WriteLine(" " + identity); + var to = new List() { "janedoe@example.com" }; + var from = "johndoe@example.com"; + + var request = new SendRawEmailRequest + { + Destinations = to, + RawMessage = raw, + Source = from + }; + + await sesClient.SendRawEmailAsync(request); + #endregion } - } - #endregion - Console.ReadLine(); - } + public static async Task SESGetSendQuota() + { + #region SESGetSendQuota + var sesClient = new AmazonSimpleEmailServiceClient(); + var response = await sesClient.GetSendQuotaAsync(); + + Console.WriteLine("Maximum emails that can be sent each 24 hours: " + + response.Max24HourSend); + Console.WriteLine("Maximum emails that can be sent per second: " + + response.MaxSendRate); + Console.WriteLine("Number of emails sent in last 24 hours: " + + response.SentLast24Hours); + #endregion + + Console.ReadLine(); + } - public static void SESListVerifiedEmailAddresses() - { - #region SESListVerifiedEmailAddresses - var sesClient = new AmazonSimpleEmailServiceClient(); + public static async Task SESSetIdentityFeedbackForwardingEnabled() + { + #region SESSetIdentityFeedbackForwardingEnabled + var sesClient = new AmazonSimpleEmailServiceClient(); - var response = sesClient.ListVerifiedEmailAddresses(); + var request = new SetIdentityFeedbackForwardingEnabledRequest + { + ForwardingEnabled = true, + Identity = "johndoe@example.com" + }; - if (response.VerifiedEmailAddresses.Count > 0) - { - Console.WriteLine("Verified email addresses:"); + await sesClient.SetIdentityFeedbackForwardingEnabledAsync(request); + #endregion + } - foreach (var address in response.VerifiedEmailAddresses) + public static async Task SESListIdentities() { - Console.WriteLine(" " + address); - } - } - #endregion + #region SESListIdentities + var sesClient = new AmazonSimpleEmailServiceClient(); - Console.ReadLine(); - } + var response = await sesClient.ListIdentitiesAsync(); - public static void SESGetSendStatistics() - { - #region SESGetSendStatistics - var sesClient = new AmazonSimpleEmailServiceClient(); + if (response.Identities?.Count > 0) + { + Console.WriteLine("Identities:"); - var response = sesClient.GetSendStatistics(); + foreach (var identity in response.Identities) + { + Console.WriteLine(" " + identity); + } + } + #endregion - Console.WriteLine("For request " + - response.ResponseMetadata.RequestId + ":"); + Console.ReadLine(); + } - if (response.SendDataPoints.Count > 0) - { - foreach (var point in response.SendDataPoints) + public static async Task SESListVerifiedEmailAddresses() { - Console.WriteLine(); - Console.WriteLine("Data points for " + point.Timestamp + ":"); - Console.WriteLine(" Bounces: " + point.Bounces); - Console.WriteLine(" Complaints: " + point.Complaints); - Console.WriteLine(" Delivery Attempts: " + point.DeliveryAttempts); - Console.WriteLine(" Rejects: " + point.Rejects); - } - } - else - { - Console.WriteLine("No data points."); - } - #endregion - - Console.ReadLine(); - } + #region SESListVerifiedEmailAddresses + var sesClient = new AmazonSimpleEmailServiceClient(); - public static void SESGetIdentityNotificationAttributes() - { - #region SESGetIdentityNotificationAttributes - var sesClient = new AmazonSimpleEmailServiceClient(); - var idsResponse = sesClient.ListIdentities(); + var response = await sesClient.ListVerifiedEmailAddressesAsync(); - if (idsResponse.Identities.Count > 0) - { - var request = new GetIdentityNotificationAttributesRequest - { - Identities = idsResponse.Identities - }; + if (response.VerifiedEmailAddresses != null) + { + Console.WriteLine("Verified email addresses:"); - var response = sesClient.GetIdentityNotificationAttributes(request); + foreach (var address in response.VerifiedEmailAddresses) + { + Console.WriteLine(" " + address); + } + } + #endregion - foreach (var attr in response.NotificationAttributes) - { - Console.WriteLine(attr.Key); - Console.WriteLine(" Bounce Topic: " + attr.Value.BounceTopic); - Console.WriteLine(" Complaint Topic: " + attr.Value.ComplaintTopic); - Console.WriteLine(" Forwarding Enabled: " + - attr.Value.ForwardingEnabled); - Console.WriteLine(); + Console.ReadLine(); } - } - #endregion - Console.ReadLine(); - } + public static async Task SESGetSendStatistics() + { + #region SESGetSendStatistics + var sesClient = new AmazonSimpleEmailServiceClient(); - public static void SESSetIdentityDkimEnabled() - { - #region SESSetIdentityDkimEnabled - var sesClient = new AmazonSimpleEmailServiceClient(); + var response = await sesClient.GetSendStatisticsAsync(); - var request = new SetIdentityDkimEnabledRequest - { - DkimEnabled = false, - Identity = "johndoe@example.com" - }; + Console.WriteLine("For request " + + response.ResponseMetadata.RequestId + ":"); - sesClient.SetIdentityDkimEnabled(request); - #endregion - } - - public static void SESGetIdentityVerificationAttributes() - { - #region SESGetIdentityVerificationAttributes - var sesClient = new AmazonSimpleEmailServiceClient(); + if (response.SendDataPoints != null) + { + foreach (var point in response.SendDataPoints) + { + Console.WriteLine(); + Console.WriteLine("Data points for " + point.Timestamp + ":"); + Console.WriteLine(" Bounces: " + point.Bounces); + Console.WriteLine(" Complaints: " + point.Complaints); + Console.WriteLine(" Delivery Attempts: " + point.DeliveryAttempts); + Console.WriteLine(" Rejects: " + point.Rejects); + } + } + else + { + Console.WriteLine("No data points."); + } + #endregion - var idsResponse = sesClient.ListIdentities(); + Console.ReadLine(); + } - if (idsResponse.Identities.Count > 0) - { - var request = new GetIdentityVerificationAttributesRequest + public static async Task SESGetIdentityNotificationAttributes() { - Identities = idsResponse.Identities - }; - - var response = sesClient.GetIdentityVerificationAttributes(request); + #region SESGetIdentityNotificationAttributes + var sesClient = new AmazonSimpleEmailServiceClient(); + var idsResponse = await sesClient.ListIdentitiesAsync(); - foreach (var attr in response.VerificationAttributes) - { - Console.WriteLine(attr.Key); - Console.WriteLine(" Verification Status: " + - attr.Value.VerificationStatus.Value); - Console.WriteLine(" Verification Token: " + - attr.Value.VerificationToken); - Console.WriteLine(); + if (idsResponse.Identities != null) + { + var request = new GetIdentityNotificationAttributesRequest + { + Identities = idsResponse.Identities + }; + + var response = await sesClient.GetIdentityNotificationAttributesAsync(request); + + if (response.NotificationAttributes != null) + { + foreach (var attr in response.NotificationAttributes) + { + Console.WriteLine(attr.Key); + Console.WriteLine(" Bounce Topic: " + attr.Value.BounceTopic); + Console.WriteLine(" Complaint Topic: " + attr.Value.ComplaintTopic); + Console.WriteLine(" Forwarding Enabled: " + + attr.Value.ForwardingEnabled); + Console.WriteLine(); + } + } + } + #endregion + + Console.ReadLine(); } - }; - #endregion - Console.ReadLine(); - } + public static async Task SESSetIdentityDkimEnabled() + { + #region SESSetIdentityDkimEnabled + var sesClient = new AmazonSimpleEmailServiceClient(); - public static void SESVerifyEmailAddress() - { - #region SESVerifyEmailAddress - var sesClient = new AmazonSimpleEmailServiceClient(); + var request = new SetIdentityDkimEnabledRequest + { + DkimEnabled = false, + Identity = "johndoe@example.com" + }; - var request = new VerifyEmailAddressRequest - { - EmailAddress = "johndoe@example.com" - }; + await sesClient.SetIdentityDkimEnabledAsync(request); + #endregion + } - sesClient.VerifyEmailAddress(request); - #endregion - } + public static async Task SESGetIdentityVerificationAttributes() + { + #region SESGetIdentityVerificationAttributes + var sesClient = new AmazonSimpleEmailServiceClient(); - public static void SESVerifyEmailIdentity() - { - #region SESVerifyEmailIdentity - var sesClient = new AmazonSimpleEmailServiceClient(); + var idsResponse = await sesClient.ListIdentitiesAsync(); - var request = new VerifyEmailIdentityRequest - { - EmailAddress = "johndoe@example.com" - }; + if (idsResponse.Identities != null) + { + var request = new GetIdentityVerificationAttributesRequest + { + Identities = idsResponse.Identities + }; + + var response = await sesClient.GetIdentityVerificationAttributesAsync(request); + + if (response.VerificationAttributes != null) + { + foreach (var attr in response.VerificationAttributes) + { + Console.WriteLine(attr.Key); + Console.WriteLine(" Verification Status: " + + attr.Value.VerificationStatus.Value); + Console.WriteLine(" Verification Token: " + + attr.Value.VerificationToken); + Console.WriteLine(); + } + } + } + ; + #endregion + + Console.ReadLine(); + } - sesClient.VerifyEmailIdentity(request); - #endregion - } + public static async Task SESVerifyEmailAddress() + { + #region SESVerifyEmailAddress + var sesClient = new AmazonSimpleEmailServiceClient(); - public static void SESGetIdentityDkimAttributes() - { - #region SESGetIdentityDkimAttributes - var sesClient = new AmazonSimpleEmailServiceClient(); + var request = new VerifyEmailAddressRequest + { + EmailAddress = "johndoe@example.com" + }; - var idsResponse = sesClient.ListIdentities(); + await sesClient.VerifyEmailAddressAsync(request); + #endregion + } - if (idsResponse.Identities.Count > 0) - { - var request = new GetIdentityDkimAttributesRequest + public static async Task SESVerifyEmailIdentity() { - Identities = idsResponse.Identities - }; + #region SESVerifyEmailIdentity + var sesClient = new AmazonSimpleEmailServiceClient(); - var response = sesClient.GetIdentityDkimAttributes(request); + var request = new VerifyEmailIdentityRequest + { + EmailAddress = "johndoe@example.com" + }; + + await sesClient.VerifyEmailIdentityAsync(request); + #endregion + } - foreach (var attr in response.DkimAttributes) + public static async Task SESGetIdentityDkimAttributes() { - Console.WriteLine(attr.Key); - Console.WriteLine(" DKIM Enabled: " + attr.Value.DkimEnabled); - Console.WriteLine(" DKIM Verification Status: " + - attr.Value.DkimVerificationStatus.Value); + #region SESGetIdentityDkimAttributes + var sesClient = new AmazonSimpleEmailServiceClient(); - if (attr.Value.DkimTokens.Count > 0) - { - Console.WriteLine(" DKIM Tokens: "); + var idsResponse = await sesClient.ListIdentitiesAsync(); - foreach (var token in attr.Value.DkimTokens) + if (idsResponse.Identities != null) { - Console.WriteLine(" " + token); - } - } - - Console.WriteLine(); + var request = new GetIdentityDkimAttributesRequest + { + Identities = idsResponse.Identities + }; + + var response = await sesClient.GetIdentityDkimAttributesAsync(request); + + if (response.DkimAttributes != null) + { + foreach (var attr in response.DkimAttributes) + { + Console.WriteLine(attr.Key); + Console.WriteLine(" DKIM Enabled: " + attr.Value.DkimEnabled); + Console.WriteLine(" DKIM Verification Status: " + + attr.Value.DkimVerificationStatus.Value); + + if (attr.Value.DkimTokens != null) + { + Console.WriteLine(" DKIM Tokens: "); + + foreach (var token in attr.Value.DkimTokens) + { + Console.WriteLine(" " + token); + } + } + + Console.WriteLine(); + } + } + } + ; + #endregion + + Console.ReadLine(); } - }; - #endregion - Console.ReadLine(); - } + public static async Task SESSetIdentityNotificationTopic() + { + #region SESSetIdentityNotificationTopic + var sesClient = new AmazonSimpleEmailServiceClient(); - public static void SESSetIdentityNotificationTopic() - { - #region SESSetIdentityNotificationTopic - var sesClient = new AmazonSimpleEmailServiceClient(); - - var bounceRequest = new SetIdentityNotificationTopicRequest - { - Identity = "johndoe@example.com", - NotificationType = NotificationType.Bounce, - SnsTopic = "arn:aws:sns:us-east-1:80398EXAMPLE:CodingTestResults" - }; - - sesClient.SetIdentityNotificationTopic(bounceRequest); - - var complaintRequest = new SetIdentityNotificationTopicRequest - { - Identity = "johndoe@example.com", - NotificationType = NotificationType.Complaint, - SnsTopic = "arn:aws:sns:us-east-1:80398EXAMPLE:CodingTestResults" - }; - - sesClient.SetIdentityNotificationTopic(complaintRequest); - #endregion - } + var bounceRequest = new SetIdentityNotificationTopicRequest + { + Identity = "johndoe@example.com", + NotificationType = NotificationType.Bounce, + SnsTopic = "arn:aws:sns:us-east-1:80398EXAMPLE:CodingTestResults" + }; - public static void SESDeleteVerifiedEmailAddress() - { - #region SESDeleteVerifiedEmailAddress - var sesClient = new AmazonSimpleEmailServiceClient(); + await sesClient.SetIdentityNotificationTopicAsync(bounceRequest); - var request = new DeleteVerifiedEmailAddressRequest - { - EmailAddress = "johndoe@example.com" - }; + var complaintRequest = new SetIdentityNotificationTopicRequest + { + Identity = "johndoe@example.com", + NotificationType = NotificationType.Complaint, + SnsTopic = "arn:aws:sns:us-east-1:80398EXAMPLE:CodingTestResults" + }; - sesClient.DeleteVerifiedEmailAddress(request); - #endregion - } + await sesClient.SetIdentityNotificationTopicAsync(complaintRequest); + #endregion + } - public static void SESVerifyDomainIdentity() - { - #region SESVerifyDomainIdentity - var sesClient = new AmazonSimpleEmailServiceClient(); + public static async Task SESDeleteVerifiedEmailAddress() + { + #region SESDeleteVerifiedEmailAddress + var sesClient = new AmazonSimpleEmailServiceClient(); - var request = new VerifyDomainIdentityRequest - { - Domain = "example.com" - }; + var request = new DeleteVerifiedEmailAddressRequest + { + EmailAddress = "johndoe@example.com" + }; - var response = sesClient.VerifyDomainIdentity(request); + await sesClient.DeleteVerifiedEmailAddressAsync(request); + #endregion + } - Console.WriteLine("Verification token: " + response.VerificationToken); - #endregion + public static async Task SESVerifyDomainIdentity() + { + #region SESVerifyDomainIdentity + var sesClient = new AmazonSimpleEmailServiceClient(); - Console.ReadLine(); - } + var request = new VerifyDomainIdentityRequest + { + Domain = "example.com" + }; - public static void SESVerifyDomainDkim() - { - #region SESVerifyDomainDkim - var sesClient = new AmazonSimpleEmailServiceClient(); + var response = await sesClient.VerifyDomainIdentityAsync(request); + + Console.WriteLine("Verification token: " + response.VerificationToken); + #endregion - var request = new VerifyDomainDkimRequest - { - Domain = "example.com" - }; + Console.ReadLine(); + } - var response = sesClient.VerifyDomainDkim(request); + public static async Task SESVerifyDomainDkim() + { + #region SESVerifyDomainDkim + var sesClient = new AmazonSimpleEmailServiceClient(); - Console.WriteLine("DKIM tokens:"); + var request = new VerifyDomainDkimRequest + { + Domain = "example.com" + }; - foreach (var token in response.DkimTokens) - { - Console.WriteLine(" " + token); - } - #endregion + var response = await sesClient.VerifyDomainDkimAsync(request); - Console.ReadLine(); - } + Console.WriteLine("DKIM tokens:"); - public static void SESDeleteIdentity() - { - #region SESDeleteIdentity - var sesClient = new AmazonSimpleEmailServiceClient(); + if (response.DkimTokens != null) + { + foreach (var token in response.DkimTokens) + { + Console.WriteLine(" " + token); + } + } + #endregion + + Console.ReadLine(); + } - var request = new DeleteIdentityRequest - { - Identity = "johndoe@example.com" - }; + public static async Task SESDeleteIdentity() + { + #region SESDeleteIdentity + var sesClient = new AmazonSimpleEmailServiceClient(); - sesClient.DeleteIdentity(request); - #endregion - } + var request = new DeleteIdentityRequest + { + Identity = "johndoe@example.com" + }; - #region ISample Members - public virtual void Run() - { + await sesClient.DeleteIdentityAsync(request); + #endregion + } + #region ISample Members + public virtual Task Run() + { + return Task.CompletedTask; + } + #endregion } - #endregion - } } diff --git a/docgenerator/AWSSDKDocSamples/SNS/SNSSamples.cs b/docgenerator/AWSSDKDocSamples/SNS/SNSSamples.cs index 61abee0013f3..1e6c6f20673c 100644 --- a/docgenerator/AWSSDKDocSamples/SNS/SNSSamples.cs +++ b/docgenerator/AWSSDKDocSamples/SNS/SNSSamples.cs @@ -1,409 +1,428 @@ -using System; +using Amazon.SimpleNotificationService; +using Amazon.SimpleNotificationService.Model; +using System; using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Threading.Tasks; -using Amazon.SimpleNotificationService; -using Amazon.SimpleNotificationService.Model; - namespace AWSSDKDocSamples.SNS { - class SNSSamples : ISample - { - public static void SNSCreateSubscribePublish() + class SNSSamples : ISample { - #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 = "johndoe@example.com", - 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 + public static async Task SNSCreateSubscribePublish() { - TopicArn = topicResponse.TopicArn - }; + #region SNSCreateSubscribePublish + var snsClient = new AmazonSimpleNotificationServiceClient(); - var subs = snsClient.ListSubscriptionsByTopic(subsRequest).Subscriptions; + var topicRequest = new CreateTopicRequest + { + Name = "CodingTestResults" + }; - var sub = subs[0]; + var topicResponse = await snsClient.CreateTopicAsync(topicRequest); - if (!string.Equals(sub.SubscriptionArn, - "PendingConfirmation", StringComparison.Ordinal)) - { - break; - } + var topicAttrRequest = new SetTopicAttributesRequest + { + TopicArn = topicResponse.TopicArn, + AttributeName = "DisplayName", + AttributeValue = "Coding Test Results" + }; - // 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 - } + await snsClient.SetTopicAttributesAsync(topicAttrRequest); - public static void SNSListTopics() - { - #region SNSListTopics - var snsClient = new AmazonSimpleNotificationServiceClient(); - var request = new ListTopicsRequest(); - var response = new ListTopicsResponse(); + await snsClient.SubscribeAsync(new SubscribeRequest + { + Endpoint = "johndoe@example.com", + Protocol = "email", + TopicArn = topicResponse.TopicArn + }); - do - { - response = snsClient.ListTopics(request); + // Wait for up to 2 minutes for the user to confirm the subscription. + DateTime latest = DateTime.Now + TimeSpan.FromMinutes(2); - foreach (var topic in response.Topics) - { - Console.WriteLine("Topic: {0}", topic.TopicArn); + while (DateTime.Now < latest) + { + var subsRequest = new ListSubscriptionsByTopicRequest + { + TopicArn = topicResponse.TopicArn + }; - var attrs = snsClient.GetTopicAttributes( - new GetTopicAttributesRequest + var subs = (await snsClient.ListSubscriptionsByTopicAsync(subsRequest)).Subscriptions; + + var sub = subs[0]; + + if (!string.Equals(sub.SubscriptionArn, + "PendingConfirmation", StringComparison.Ordinal)) + { + break; + } + + // Wait 15 seconds before trying again. + await Task.Delay(TimeSpan.FromSeconds(15)); + } + + await snsClient.PublishAsync(new PublishRequest { - TopicArn = topic.TopicArn - }).Attributes; + Subject = "Coding Test Results for " + + DateTime.Today.ToShortDateString(), + Message = "All of today's coding tests passed.", + TopicArn = topicResponse.TopicArn + }); + #endregion + } - if (attrs.Count > 0) - { - foreach (var attr in attrs) + public static async Task SNSListTopics() + { + #region SNSListTopics + var snsClient = new AmazonSimpleNotificationServiceClient(); + var request = new ListTopicsRequest(); + var response = new ListTopicsResponse(); + + do { - Console.WriteLine(" -{0} : {1}", attr.Key, attr.Value); - } - } + response = await snsClient.ListTopicsAsync(request); - Console.WriteLine(); + if (response.Topics != null) + { + foreach (var topic in response.Topics) + { + Console.WriteLine("Topic: {0}", topic.TopicArn); - } + var attrs = (await snsClient.GetTopicAttributesAsync( + new GetTopicAttributesRequest + { + TopicArn = topic.TopicArn + })).Attributes; - request.NextToken = response.NextToken; + if (attrs != null) + { + foreach (var attr in attrs) + { + Console.WriteLine(" -{0} : {1}", attr.Key, attr.Value); + } + } - } while (!string.IsNullOrEmpty(response.NextToken)); - #endregion + Console.WriteLine(); - Console.ReadLine(); - } + } + } - public static void SNSListSubscriptionsByTopic() - { - #region SNSListSubscriptionsByTopic - var snsClient = new AmazonSimpleNotificationServiceClient(); - var request = new ListSubscriptionsByTopicRequest(); - var response = new ListSubscriptionsByTopicResponse(); + request.NextToken = response.NextToken; - request.TopicArn = "arn:aws:sns:us-east-1:80398EXAMPLE:CodingTestResults"; + } while (!string.IsNullOrEmpty(response.NextToken)); + #endregion - do - { - response = snsClient.ListSubscriptionsByTopic(request); + Console.ReadLine(); + } - foreach (var sub in response.Subscriptions) + public static async Task SNSListSubscriptionsByTopic() { - Console.WriteLine("Subscription: {0}", sub.SubscriptionArn); + #region SNSListSubscriptionsByTopic + var snsClient = new AmazonSimpleNotificationServiceClient(); + var request = new ListSubscriptionsByTopicRequest(); + var response = new ListSubscriptionsByTopicResponse(); - var subAttrs = snsClient.GetSubscriptionAttributes( - new GetSubscriptionAttributesRequest - { - SubscriptionArn = sub.SubscriptionArn - }).Attributes; + request.TopicArn = "arn:aws:sns:us-east-1:80398EXAMPLE:CodingTestResults"; - if (subAttrs.Count > 0) - { - foreach (var subAttr in subAttrs) + do { - Console.WriteLine(" -{0} : {1}", subAttr.Key, subAttr.Value); - } - } - - Console.WriteLine(); + response = await snsClient.ListSubscriptionsByTopicAsync(request); + + if (response.Subscriptions != null) + { + foreach (var sub in response.Subscriptions) + { + Console.WriteLine("Subscription: {0}", sub.SubscriptionArn); + + var subAttrs = (await snsClient.GetSubscriptionAttributesAsync( + new GetSubscriptionAttributesRequest + { + SubscriptionArn = sub.SubscriptionArn + })).Attributes; + + if (subAttrs != null) + { + 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(); } - request.NextToken = response.NextToken; + public static async Task SNSListSubscriptions() + { + #region SNSListSubscriptions + var snsClient = new AmazonSimpleNotificationServiceClient(); + var request = new ListSubscriptionsRequest(); + var response = new ListSubscriptionsResponse(); - } while (!string.IsNullOrEmpty(response.NextToken)); - #endregion + do + { + response = await snsClient.ListSubscriptionsAsync(request); - Console.ReadLine(); - } + if (response.Subscriptions != null ) + { + foreach (var sub in response.Subscriptions) + { + Console.WriteLine("Subscription: {0}", sub.SubscriptionArn); + } + } - public static void SNSListSubscriptions() - { - #region SNSListSubscriptions - var snsClient = new AmazonSimpleNotificationServiceClient(); - var request = new ListSubscriptionsRequest(); - var response = new ListSubscriptionsResponse(); + request.NextToken = response.NextToken; - do - { - response = snsClient.ListSubscriptions(request); + } while (!string.IsNullOrEmpty(response.NextToken)); + #endregion - foreach (var sub in response.Subscriptions) - { - Console.WriteLine("Subscription: {0}", sub.SubscriptionArn); + Console.ReadLine(); } - request.NextToken = response.NextToken; + public static async Task SNSUnsubscribe() + { + #region SNSUnsubscribe + var snsClient = new AmazonSimpleNotificationServiceClient(); + var request = new UnsubscribeRequest(); - } while (!string.IsNullOrEmpty(response.NextToken)); - #endregion + request.SubscriptionArn = + "arn:aws:sns:us-east-1:80398EXAMPLE:CodingTestResults:" + + "2f5671ba-c68e-4231-a94a-e82d3EXAMPLE"; - Console.ReadLine(); - } + await snsClient.UnsubscribeAsync(request); + #endregion + } - public static void SNSUnsubscribe() - { - #region SNSUnsubscribe - var snsClient = new AmazonSimpleNotificationServiceClient(); - var request = new UnsubscribeRequest(); + public static async Task SNSAddPermission() + { + #region SNSAddPermission + var snsClient = new AmazonSimpleNotificationServiceClient(); - request.SubscriptionArn = - "arn:aws:sns:us-east-1:80398EXAMPLE:CodingTestResults:" + - "2f5671ba-c68e-4231-a94a-e82d3EXAMPLE"; + var request = new AddPermissionRequest + { + TopicArn = "arn:aws:sns:us-east-1:80398EXAMPLE:CodingTestResults", + ActionName = new List() { "Subscribe" }, + AWSAccountId = new List() { "80398EXAMPLE" }, + Label = "SubscribePolicy" + }; + + await snsClient.AddPermissionAsync(request); + #endregion + } - snsClient.Unsubscribe(request); - #endregion - } + public static async Task SNSDeleteTopic() + { + #region SNSDeleteTopic + var snsClient = new AmazonSimpleNotificationServiceClient(); - public static void SNSAddPermission() - { - #region SNSAddPermission - var snsClient = new AmazonSimpleNotificationServiceClient(); - - var request = new AddPermissionRequest - { - TopicArn = "arn:aws:sns:us-east-1:80398EXAMPLE:CodingTestResults", - ActionName = new List() { "Subscribe" }, - AWSAccountId = new List() { "80398EXAMPLE" }, - Label = "SubscribePolicy" - }; - - snsClient.AddPermission(request); - #endregion - } + var request = new DeleteTopicRequest + { + TopicArn = "arn:aws:sns:us-east-1:80398EXAMPLE:CodingTestResults" + }; - public static void SNSDeleteTopic() - { - #region SNSDeleteTopic - var snsClient = new AmazonSimpleNotificationServiceClient(); + await snsClient.DeleteTopicAsync(request); + #endregion + } - var request = new DeleteTopicRequest - { - TopicArn = "arn:aws:sns:us-east-1:80398EXAMPLE:CodingTestResults" - }; + public static async Task SNSConfirmSubscription() + { + #region SNSConfirmSubscription + var snsClient = new AmazonSimpleNotificationServiceClient(); - snsClient.DeleteTopic(request); - #endregion - } + var request = new ConfirmSubscriptionRequest + { + TopicArn = "arn:aws:sns:us-east-1:80398EXAMPLE:CodingTestResults", + Token = "2336412f37fb687f5d51e6e241d638b059833563d4ff1b6f50a3be00e3a" + + "ff3a5f486f64ab082b19d3b9a6e569ea3f6acb10d944314fc3af72ebc36085519" + + "3a02f5a8631552643b8089c751cb8343d581231fb631f34783e30fd2d959dd5bb" + + "ea7b11ef09dbd06023af5de4d390d53a10dc9652c01983b028206a1b3e00EXAMPLE" + }; + + await snsClient.ConfirmSubscriptionAsync(request); + #endregion + } - public static void SNSConfirmSubscription() - { - #region SNSConfirmSubscription - var snsClient = new AmazonSimpleNotificationServiceClient(); - - var request = new ConfirmSubscriptionRequest - { - TopicArn = "arn:aws:sns:us-east-1:80398EXAMPLE:CodingTestResults", - Token = "2336412f37fb687f5d51e6e241d638b059833563d4ff1b6f50a3be00e3a" + - "ff3a5f486f64ab082b19d3b9a6e569ea3f6acb10d944314fc3af72ebc36085519" + - "3a02f5a8631552643b8089c751cb8343d581231fb631f34783e30fd2d959dd5bb" + - "ea7b11ef09dbd06023af5de4d390d53a10dc9652c01983b028206a1b3e00EXAMPLE" - }; - - snsClient.ConfirmSubscription(request); - #endregion - } + public static async Task SNSMobilePushAPIsCreatePlatformApplication() + { + #region SNSMobilePushAPIsCreatePlatformApplication + var snsClient = new AmazonSimpleNotificationServiceClient(); - public static void SNSMobilePushAPIsCreatePlatformApplication() - { - #region SNSMobilePushAPIsCreatePlatformApplication - var snsClient = new AmazonSimpleNotificationServiceClient(); - - var request = new CreatePlatformApplicationRequest - { - Attributes = new Dictionary() { { "PlatformCredential", "AIzaSyDM1GHqKEdVg1pVFTXPReFT7UdGEXAMPLE" } }, - Name = "TimeCardProcessingApplication", - Platform = "GCM" - }; - - snsClient.CreatePlatformApplication(request); - #endregion - } + var request = new CreatePlatformApplicationRequest + { + Attributes = new Dictionary() { { "PlatformCredential", "AIzaSyDM1GHqKEdVg1pVFTXPReFT7UdGEXAMPLE" } }, + Name = "TimeCardProcessingApplication", + Platform = "GCM" + }; - public static void SNSMobilePushAPIsSetPlatformApplicationAttributes() - { - #region SNSMobilePushAPIsSetPlatformApplicationAttributes - var snsClient = new AmazonSimpleNotificationServiceClient(); + await snsClient.CreatePlatformApplicationAsync(request); + #endregion + } - var request = - new SetPlatformApplicationAttributesRequest + public static async Task SNSMobilePushAPIsSetPlatformApplicationAttributes() { - Attributes = new Dictionary() - { { "EventDeliveryFailure", + #region SNSMobilePushAPIsSetPlatformApplicationAttributes + var snsClient = new AmazonSimpleNotificationServiceClient(); + + var request = + new SetPlatformApplicationAttributesRequest + { + Attributes = new Dictionary() + { { "EventDeliveryFailure", "arn:aws:sns:us-east-1:80398EXAMPLE:CodingTestResults" } }, - PlatformApplicationArn = - "arn:aws:sns:us-east-1:80398EXAMPLE:" + - "app/GCM/TimeCardProcessingApplication" - }; + PlatformApplicationArn = + "arn:aws:sns:us-east-1:80398EXAMPLE:" + + "app/GCM/TimeCardProcessingApplication" + }; - snsClient.SetPlatformApplicationAttributes(request); - #endregion - } - - public static void SNSMobilePushAPIsCreatePlatformEndpoint() - { - #region SNSMobilePushAPIsCreatePlatformEndpoint - var snsClient = new AmazonSimpleNotificationServiceClient(); - - var request = new CreatePlatformEndpointRequest - { - CustomUserData = "Any arbitrary data can go here", - PlatformApplicationArn = "arn:aws:sns:us-east-1:80398EXAMPLE:" + - "app/GCM/TimeCardProcessingApplication", - Token = "APBTKzPGlCyT6E6oOfpdwLpcRNxQp5vCPFiF" + - "eru9oZylc22HvZSwQTDgmmw9WdNlXMerUPEXAMPLE" - }; - - snsClient.CreatePlatformEndpoint(request); - #endregion - } - - public static void SNSMobilePushAPIsSetEndpointAttributes() - { - #region SNSMobilePushAPIsSetEndpointAttributes - var snsClient = new AmazonSimpleNotificationServiceClient(); - - var request = new SetEndpointAttributesRequest - { - EndpointArn = "arn:aws:sns:us-east-1:80398EXAMPLE:" + - "endpoint/GCM/TimeCardProcessingApplication/" + - "d84b5f0d-7136-3bbe-9b42-4e001EXAMPLE", - Attributes = new Dictionary() { { "Enabled", "true" } } - }; - - snsClient.SetEndpointAttributes(request); - #endregion - } + await snsClient.SetPlatformApplicationAttributesAsync(request); + #endregion + } - public static void SNSMobilePushAPIsListApplicationsEndpoints() - { - #region SNSMobilePushAPIsListApplicationsEndpoints - var snsClient = new AmazonSimpleNotificationServiceClient(); - var appsResponse = snsClient.ListPlatformApplications(); + public static async Task SNSMobilePushAPIsCreatePlatformEndpoint() + { + #region SNSMobilePushAPIsCreatePlatformEndpoint + var snsClient = new AmazonSimpleNotificationServiceClient(); - foreach (var app in appsResponse.PlatformApplications) - { - Console.WriteLine(); + var request = new CreatePlatformEndpointRequest + { + CustomUserData = "Any arbitrary data can go here", + PlatformApplicationArn = "arn:aws:sns:us-east-1:80398EXAMPLE:" + + "app/GCM/TimeCardProcessingApplication", + Token = "APBTKzPGlCyT6E6oOfpdwLpcRNxQp5vCPFiF" + + "eru9oZylc22HvZSwQTDgmmw9WdNlXMerUPEXAMPLE" + }; + + await snsClient.CreatePlatformEndpointAsync(request); + #endregion + } - var appAttrsRequest = new GetPlatformApplicationAttributesRequest + public static async Task SNSMobilePushAPIsSetEndpointAttributes() { - PlatformApplicationArn = app.PlatformApplicationArn - }; + #region SNSMobilePushAPIsSetEndpointAttributes + var snsClient = new AmazonSimpleNotificationServiceClient(); - var appAttrsResponse = - snsClient.GetPlatformApplicationAttributes(appAttrsRequest); + var request = new SetEndpointAttributesRequest + { + EndpointArn = "arn:aws:sns:us-east-1:80398EXAMPLE:" + + "endpoint/GCM/TimeCardProcessingApplication/" + + "d84b5f0d-7136-3bbe-9b42-4e001EXAMPLE", + Attributes = new Dictionary() { { "Enabled", "true" } } + }; + + await snsClient.SetEndpointAttributesAsync(request); + #endregion + } - var endpointsByAppRequest = - new ListEndpointsByPlatformApplicationRequest - { - PlatformApplicationArn = app.PlatformApplicationArn - }; + public static async Task SNSMobilePushAPIsListApplicationsEndpoints() + { + #region SNSMobilePushAPIsListApplicationsEndpoints + var snsClient = new AmazonSimpleNotificationServiceClient(); + var appsResponse = await snsClient.ListPlatformApplicationsAsync(); - var endpointsByAppResponse = - snsClient.ListEndpointsByPlatformApplication( - endpointsByAppRequest); + if (appsResponse.PlatformApplications != null) + { + foreach (var app in appsResponse.PlatformApplications) + { + Console.WriteLine(); + + var appAttrsRequest = new GetPlatformApplicationAttributesRequest + { + PlatformApplicationArn = app.PlatformApplicationArn + }; + + var appAttrsResponse = + await snsClient.GetPlatformApplicationAttributesAsync(appAttrsRequest); + + var endpointsByAppRequest = + new ListEndpointsByPlatformApplicationRequest + { + PlatformApplicationArn = app.PlatformApplicationArn + }; + + var endpointsByAppResponse = + await snsClient.ListEndpointsByPlatformApplicationAsync( + endpointsByAppRequest); + + Console.WriteLine("Application: " + app.PlatformApplicationArn); + Console.WriteLine(" Properties: "); + + if (appAttrsResponse.Attributes != null) + { + foreach (var attr in appAttrsResponse.Attributes) + { + Console.WriteLine(" " + attr.Key + ": " + attr.Value); + } + } + + Console.WriteLine(" Endpoints: "); + + if (endpointsByAppResponse.Endpoints != null) + { + foreach (var endpoint in endpointsByAppResponse.Endpoints) + { + Console.WriteLine(" ARN: " + endpoint.EndpointArn); + Console.WriteLine(" Attributes: "); + + if (endpoint.Attributes != null) + { + foreach (var attr in endpoint.Attributes) + { + Console.WriteLine(" " + attr.Key + ": " + attr.Value); + } + } + } + } + } + } - Console.WriteLine("Application: " + app.PlatformApplicationArn); - Console.WriteLine(" Properties: "); + #endregion - foreach (var attr in appAttrsResponse.Attributes) - { - Console.WriteLine(" " + attr.Key + ": " + attr.Value); + Console.ReadLine(); } - Console.WriteLine(" Endpoints: "); - - foreach (var endpoint in endpointsByAppResponse.Endpoints) + public static async Task SNSMobilePushAPIsDeletePlatformEndpoint() { - Console.WriteLine(" ARN: " + endpoint.EndpointArn); - Console.WriteLine(" Attributes: "); - - foreach (var attr in endpoint.Attributes) - { - Console.WriteLine(" " + attr.Key + ": " + attr.Value); - } - } - } - #endregion + #region SNSMobilePushAPIsDeletePlatformEndpoint + var snsClient = new AmazonSimpleNotificationServiceClient(); - Console.ReadLine(); - } + var request = new DeleteEndpointRequest + { + EndpointArn = "arn:aws:sns:us-east-1:80398EXAMPLE:" + + "endpoint/GCM/TimeCardProcessingApplication/" + + "d84b5f0d-7136-3bbe-9b42-4e001EXAMPLE" + }; - public static void SNSMobilePushAPIsDeletePlatformEndpoint() - { - #region SNSMobilePushAPIsDeletePlatformEndpoint - var snsClient = new AmazonSimpleNotificationServiceClient(); - - var request = new DeleteEndpointRequest - { - EndpointArn = "arn:aws:sns:us-east-1:80398EXAMPLE:" + - "endpoint/GCM/TimeCardProcessingApplication/" + - "d84b5f0d-7136-3bbe-9b42-4e001EXAMPLE" - }; - - snsClient.DeleteEndpoint(request); - #endregion - } + await snsClient.DeleteEndpointAsync(request); + #endregion + } - public static void SNSMobilePushAPIsDeletePlatformApplication() - { - #region SNSMobilePushAPIsDeletePlatformApplication - var snsClient = new AmazonSimpleNotificationServiceClient(); + public static async Task SNSMobilePushAPIsDeletePlatformApplication() + { + #region SNSMobilePushAPIsDeletePlatformApplication + var snsClient = new AmazonSimpleNotificationServiceClient(); - var request = new DeletePlatformApplicationRequest - { - PlatformApplicationArn = "arn:aws:sns:us-east-1:80398EXAMPLE:" + - "app/GCM/TimeCardProcessingApplication" - }; + var request = new DeletePlatformApplicationRequest + { + PlatformApplicationArn = "arn:aws:sns:us-east-1:80398EXAMPLE:" + + "app/GCM/TimeCardProcessingApplication" + }; - snsClient.DeletePlatformApplication(request); - #endregion - } - - #region ISample Members - public virtual void Run() - { + await snsClient.DeletePlatformApplicationAsync(request); + #endregion + } + #region ISample Members + public virtual Task Run() + { + return Task.CompletedTask; + } + #endregion } - #endregion - } } diff --git a/docgenerator/AWSSDKDocSamples/SQS/SQSSamples.cs b/docgenerator/AWSSDKDocSamples/SQS/SQSSamples.cs index 1a7d4fb0cc07..7dca59f85e5a 100644 --- a/docgenerator/AWSSDKDocSamples/SQS/SQSSamples.cs +++ b/docgenerator/AWSSDKDocSamples/SQS/SQSSamples.cs @@ -1,671 +1,668 @@ -using System; +using Amazon.SQS; +using Amazon.SQS.Model; +using System; using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Threading.Tasks; -using Amazon.SQS; -using Amazon.SQS.Model; - namespace AWSSDKDocSamples.SQS { - class SQSSamples : ISample - { - public static void SQSReceiveMessage() + class SQSSamples : ISample { - #region SQSReceiveMessage - var client = new AmazonSQSClient(); - - var request = new ReceiveMessageRequest - { - AttributeNames = new List() { "All" }, - MaxNumberOfMessages = 5, - QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue", - VisibilityTimeout = (int)TimeSpan.FromMinutes(10).TotalSeconds, - WaitTimeSeconds = (int)TimeSpan.FromSeconds(5).TotalSeconds - }; - - var response = client.ReceiveMessage(request); - - if (response.Messages.Count > 0) - { - foreach (var message in response.Messages) + public static async Task SQSReceiveMessage() { - Console.WriteLine("For message ID '" + message.MessageId + "':"); - Console.WriteLine(" Body: " + message.Body); - Console.WriteLine(" Receipt handle: " + message.ReceiptHandle); - Console.WriteLine(" MD5 of body: " + message.MD5OfBody); - Console.WriteLine(" MD5 of message attributes: " + - message.MD5OfMessageAttributes); - Console.WriteLine(" Attributes:"); - - foreach (var attr in message.Attributes) - { - Console.WriteLine(" " + attr.Key + ": " + attr.Value); - } + #region SQSReceiveMessage + var client = new AmazonSQSClient(); + + var request = new ReceiveMessageRequest + { + MessageSystemAttributeNames = new List() { "All" }, + MaxNumberOfMessages = 5, + QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue", + VisibilityTimeout = (int)TimeSpan.FromMinutes(10).TotalSeconds, + WaitTimeSeconds = (int)TimeSpan.FromSeconds(5).TotalSeconds + }; + + var response = await client.ReceiveMessageAsync(request); + + if (response.Messages != null) + { + foreach (var message in response.Messages) + { + Console.WriteLine("For message ID '" + message.MessageId + "':"); + Console.WriteLine(" Body: " + message.Body); + Console.WriteLine(" Receipt handle: " + message.ReceiptHandle); + Console.WriteLine(" MD5 of body: " + message.MD5OfBody); + Console.WriteLine(" MD5 of message attributes: " + + message.MD5OfMessageAttributes); + Console.WriteLine(" Attributes:"); + + foreach (var attr in message.Attributes) + { + Console.WriteLine(" " + attr.Key + ": " + attr.Value); + } + } + } + else + { + Console.WriteLine("No messages received."); + } + #endregion + + Console.ReadLine(); } - } - else - { - Console.WriteLine("No messages received."); - } - #endregion - - Console.ReadLine(); - } - public static void SQSSendMessage() - { - #region SQSSendMessage - var client = new AmazonSQSClient(); + public static async Task SQSSendMessage() + { + #region SQSSendMessage + var client = new AmazonSQSClient(); - var request = new SendMessageRequest - { - DelaySeconds = (int)TimeSpan.FromSeconds(5).TotalSeconds, - MessageAttributes = new Dictionary + var request = new SendMessageRequest + { + DelaySeconds = (int)TimeSpan.FromSeconds(5).TotalSeconds, + MessageAttributes = new Dictionary { { - "MyNameAttribute", new MessageAttributeValue + "MyNameAttribute", new MessageAttributeValue { DataType = "String", StringValue = "John Doe" } }, { - "MyAddressAttribute", new MessageAttributeValue + "MyAddressAttribute", new MessageAttributeValue { DataType = "String", StringValue = "123 Main St." } }, { - "MyRegionAttribute", new MessageAttributeValue + "MyRegionAttribute", new MessageAttributeValue { DataType = "String", StringValue = "Any Town, United States" } } }, - MessageBody = "John Doe customer information.", - QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue" - }; + MessageBody = "John Doe customer information.", + QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue" + }; - var response = client.SendMessage(request); + var response = await client.SendMessageAsync(request); - Console.WriteLine("For message ID '" + response.MessageId + "':"); - Console.WriteLine(" MD5 of message attributes: " + - response.MD5OfMessageAttributes); - Console.WriteLine(" MD5 of message body: " + response.MD5OfMessageBody); - #endregion - - Console.ReadLine(); - } - - public static void SQSDeleteMessage() - { - #region SQSDeleteMessage - var client = new AmazonSQSClient(); - - var request = new ReceiveMessageRequest - { - AttributeNames = new List() { "All" }, - MaxNumberOfMessages = 5, - QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue", - VisibilityTimeout = (int)TimeSpan.FromMinutes(10).TotalSeconds, - WaitTimeSeconds = (int)TimeSpan.FromSeconds(5).TotalSeconds - }; - - var response = client.ReceiveMessage(request); - - if (response.Messages.Count > 0) - { - foreach (var message in response.Messages) - { - Console.Write("Message ID '" + message.MessageId + "' "); - - var delRequest = new DeleteMessageRequest - { - QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue", - ReceiptHandle = message.ReceiptHandle - }; + Console.WriteLine("For message ID '" + response.MessageId + "':"); + Console.WriteLine(" MD5 of message attributes: " + + response.MD5OfMessageAttributes); + Console.WriteLine(" MD5 of message body: " + response.MD5OfMessageBody); + #endregion - var delResponse = client.DeleteMessage(delRequest); + Console.ReadLine(); } - } - else - { - Console.WriteLine("No messages to delete."); - } - #endregion - - Console.ReadLine(); - } - public static void SQSDeleteMessageBatch() - { - #region SQSDeleteMessageBatch - var client = new AmazonSQSClient(); - - var request = new ReceiveMessageRequest - { - AttributeNames = new List() { "All" }, - MaxNumberOfMessages = 5, - QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue", - VisibilityTimeout = (int)TimeSpan.FromMinutes(10).TotalSeconds, - WaitTimeSeconds = (int)TimeSpan.FromSeconds(5).TotalSeconds - }; - - var response = client.ReceiveMessage(request); - var batchEntries = new List(); - - if (response.Messages.Count > 0) - { - foreach (var message in response.Messages) + public static async Task SQSDeleteMessage() { - var batchEntry = new DeleteMessageBatchRequestEntry - { - Id = message.MessageId, - ReceiptHandle = message.ReceiptHandle - }; - - batchEntries.Add(batchEntry); + #region SQSDeleteMessage + var client = new AmazonSQSClient(); + + var request = new ReceiveMessageRequest + { + MessageSystemAttributeNames = new List() { "All" }, + MaxNumberOfMessages = 5, + QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue", + VisibilityTimeout = (int)TimeSpan.FromMinutes(10).TotalSeconds, + WaitTimeSeconds = (int)TimeSpan.FromSeconds(5).TotalSeconds + }; + + var response = await client.ReceiveMessageAsync(request); + + if (response.Messages != null) + { + foreach (var message in response.Messages) + { + Console.Write("Message ID '" + message.MessageId + "' "); + + var delRequest = new DeleteMessageRequest + { + QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue", + ReceiptHandle = message.ReceiptHandle + }; + + var delResponse = await client.DeleteMessageAsync(delRequest); + } + } + else + { + Console.WriteLine("No messages to delete."); + } + #endregion + + Console.ReadLine(); } - var delRequest = new DeleteMessageBatchRequest - { - Entries = batchEntries, - QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue" - }; - - var delResponse = client.DeleteMessageBatch(delRequest); - - if (delResponse.Failed.Count > 0) + public static async Task SQSDeleteMessageBatch() { - Console.WriteLine("Failed deletions:"); - - foreach (var failure in delResponse.Failed) - { - Console.WriteLine(" For ID '" + failure.Id + "': "); - Console.WriteLine(" Code = " + failure.Code); - Console.WriteLine(" Message = " + failure.Message); - Console.WriteLine(" Sender's fault? = " + failure.SenderFault); - } + #region SQSDeleteMessageBatch + var client = new AmazonSQSClient(); + + var request = new ReceiveMessageRequest + { + MessageSystemAttributeNames = new List() { "All" }, + MaxNumberOfMessages = 5, + QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue", + VisibilityTimeout = (int)TimeSpan.FromMinutes(10).TotalSeconds, + WaitTimeSeconds = (int)TimeSpan.FromSeconds(5).TotalSeconds + }; + + var response = await client.ReceiveMessageAsync(request); + var batchEntries = new List(); + + if (response.Messages != null) + { + foreach (var message in response.Messages) + { + var batchEntry = new DeleteMessageBatchRequestEntry + { + Id = message.MessageId, + ReceiptHandle = message.ReceiptHandle + }; + + batchEntries.Add(batchEntry); + } + + var delRequest = new DeleteMessageBatchRequest + { + Entries = batchEntries, + QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue" + }; + + var delResponse = await client.DeleteMessageBatchAsync(delRequest); + + if (delResponse.Failed != null) + { + Console.WriteLine("Failed deletions:"); + + foreach (var failure in delResponse.Failed) + { + Console.WriteLine(" For ID '" + failure.Id + "': "); + Console.WriteLine(" Code = " + failure.Code); + Console.WriteLine(" Message = " + failure.Message); + Console.WriteLine(" Sender's fault? = " + failure.SenderFault); + } + } + + if (delResponse.Successful != null) + { + Console.WriteLine("Successful deletions:"); + + foreach (var success in delResponse.Successful) + { + Console.WriteLine(" ID '" + success.Id + "'"); + } + } + } + else + { + Console.WriteLine("No messages to delete."); + } + #endregion + + Console.ReadLine(); } - if (delResponse.Successful.Count > 0) + public static async Task SQSCreateQueue() { - Console.WriteLine("Successful deletions:"); + #region SQSCreateQueue + var client = new AmazonSQSClient(); - foreach (var success in delResponse.Successful) - { - Console.WriteLine(" ID '" + success.Id + "'"); - } - } - } - else - { - Console.WriteLine("No messages to delete."); - } - #endregion - - Console.ReadLine(); - } + var attrs = new Dictionary(); - public static void SQSCreateQueue() - { - #region SQSCreateQueue - var client = new AmazonSQSClient(); - - var attrs = new Dictionary(); - - // Maximum message size of 256 KiB (1,024 bytes * 256 KiB = 262,144 bytes). - int maxMessage = 256 * 1024; - - attrs.Add(QueueAttributeName.DelaySeconds, - TimeSpan.FromSeconds(5).TotalSeconds.ToString()); - attrs.Add(QueueAttributeName.MaximumMessageSize, maxMessage.ToString()); - attrs.Add(QueueAttributeName.MessageRetentionPeriod, - TimeSpan.FromDays(4).TotalSeconds.ToString()); - attrs.Add(QueueAttributeName.ReceiveMessageWaitTimeSeconds, - TimeSpan.FromSeconds(5).TotalSeconds.ToString()); - attrs.Add(QueueAttributeName.VisibilityTimeout, - TimeSpan.FromHours(12).TotalSeconds.ToString()); - - var request = new CreateQueueRequest - { - Attributes = attrs, - QueueName = "MyTestQueue" - }; - - var response = client.CreateQueue(request); - - Console.WriteLine("Queue URL: " + response.QueueUrl); - #endregion + // Maximum message size of 256 KiB (1,024 bytes * 256 KiB = 262,144 bytes). + int maxMessage = 256 * 1024; - Console.ReadLine(); - } + attrs.Add(QueueAttributeName.DelaySeconds, + TimeSpan.FromSeconds(5).TotalSeconds.ToString()); + attrs.Add(QueueAttributeName.MaximumMessageSize, maxMessage.ToString()); + attrs.Add(QueueAttributeName.MessageRetentionPeriod, + TimeSpan.FromDays(4).TotalSeconds.ToString()); + attrs.Add(QueueAttributeName.ReceiveMessageWaitTimeSeconds, + TimeSpan.FromSeconds(5).TotalSeconds.ToString()); + attrs.Add(QueueAttributeName.VisibilityTimeout, + TimeSpan.FromHours(12).TotalSeconds.ToString()); - public static void SQSGetQueueUrl() - { - #region SQSGetQueueUrl - var client = new AmazonSQSClient(); + var request = new CreateQueueRequest + { + Attributes = attrs, + QueueName = "MyTestQueue" + }; - var request = new GetQueueUrlRequest - { - QueueName = "MyTestQueue", - QueueOwnerAWSAccountId = "80398EXAMPLE" - }; + var response = await client.CreateQueueAsync(request); - var response = client.GetQueueUrl(request); + Console.WriteLine("Queue URL: " + response.QueueUrl); + #endregion - Console.WriteLine("Queue URL: " + response.QueueUrl); - #endregion + Console.ReadLine(); + } - Console.ReadLine(); - } + public static async Task SQSGetQueueUrl() + { + #region SQSGetQueueUrl + var client = new AmazonSQSClient(); - public static void SQSListQueues() - { - #region SQSListQueues - var client = new AmazonSQSClient(); + var request = new GetQueueUrlRequest + { + QueueName = "MyTestQueue", + QueueOwnerAWSAccountId = "80398EXAMPLE" + }; - // List all queues that start with "My". - var request = new ListQueuesRequest - { - QueueNamePrefix = "My" - }; + var response = await client.GetQueueUrlAsync(request); - var response = client.ListQueues(request); + Console.WriteLine("Queue URL: " + response.QueueUrl); + #endregion - if (response.QueueUrls.Count > 0) - { - Console.WriteLine("Queue URLs:"); + Console.ReadLine(); + } - foreach (var url in response.QueueUrls) + public static async Task SQSListQueues() { - Console.WriteLine(" " + url); + #region SQSListQueues + var client = new AmazonSQSClient(); + + // List all queues that start with "My". + var request = new ListQueuesRequest + { + QueueNamePrefix = "My" + }; + + var response = await client.ListQueuesAsync(request); + + if (response.QueueUrls != null) + { + Console.WriteLine("Queue URLs:"); + + foreach (var url in response.QueueUrls) + { + Console.WriteLine(" " + url); + } + } + else + { + Console.WriteLine("No matching queues."); + } + #endregion + + Console.ReadLine(); } - } - else - { - Console.WriteLine("No matching queues."); - } - #endregion - - Console.ReadLine(); - } - public static void SQSSendMessageBatch() - { - #region SQSSendMessageBatch - var client = new AmazonSQSClient(); - - var entry1 = new SendMessageBatchRequestEntry - { - DelaySeconds = 0, - Id = "Entry1", - MessageAttributes = new Dictionary + public static async Task SQSSendMessageBatch() { - { - "MyNameAttribute", new MessageAttributeValue - { DataType = "String", StringValue = "John Doe" } - }, - { - "MyAddressAttribute", new MessageAttributeValue - { DataType = "String", StringValue = "123 Main St." } - }, - { - "MyRegionAttribute", new MessageAttributeValue - { DataType = "String", StringValue = "Any Town, United States" } - } - }, - MessageBody = "John Doe customer information." - }; - - var entry2 = new SendMessageBatchRequestEntry - { - DelaySeconds = 0, - Id = "Entry2", - MessageAttributes = new Dictionary + #region SQSSendMessageBatch + var client = new AmazonSQSClient(); + + var entry1 = new SendMessageBatchRequestEntry + { + DelaySeconds = 0, + Id = "Entry1", + MessageAttributes = new Dictionary + { + { + "MyNameAttribute", new MessageAttributeValue + { DataType = "String", StringValue = "John Doe" } + }, + { + "MyAddressAttribute", new MessageAttributeValue + { DataType = "String", StringValue = "123 Main St." } + }, + { + "MyRegionAttribute", new MessageAttributeValue + { DataType = "String", StringValue = "Any Town, United States" } + } + }, + MessageBody = "John Doe customer information." + }; + + var entry2 = new SendMessageBatchRequestEntry + { + DelaySeconds = 0, + Id = "Entry2", + MessageAttributes = new Dictionary { { - "MyNameAttribute", new MessageAttributeValue + "MyNameAttribute", new MessageAttributeValue { DataType = "String", StringValue = "Jane Doe" } }, { - "MyAddressAttribute", new MessageAttributeValue + "MyAddressAttribute", new MessageAttributeValue { DataType = "String", StringValue = "456 Center Road" } }, { - "MyRegionAttribute", new MessageAttributeValue + "MyRegionAttribute", new MessageAttributeValue { DataType = "String", StringValue = "Any City, United States" } } }, - MessageBody = "Jane Doe customer information." - }; - - var entry3 = new SendMessageBatchRequestEntry - { - DelaySeconds = 0, - Id = "Entry3", - MessageAttributes = new Dictionary + MessageBody = "Jane Doe customer information." + }; + + var entry3 = new SendMessageBatchRequestEntry + { + DelaySeconds = 0, + Id = "Entry3", + MessageAttributes = new Dictionary { { - "MyNameAttribute", new MessageAttributeValue + "MyNameAttribute", new MessageAttributeValue { DataType = "String", StringValue = "Richard Doe" } }, { - "MyAddressAttribute", new MessageAttributeValue + "MyAddressAttribute", new MessageAttributeValue { DataType = "String", StringValue = "789 East Blvd." } }, { - "MyRegionAttribute", new MessageAttributeValue + "MyRegionAttribute", new MessageAttributeValue { DataType = "String", StringValue = "Anywhere, United States" } } }, - MessageBody = "Richard Doe customer information." - }; - - var request = new SendMessageBatchRequest - { - Entries = new List() { entry1, entry2, entry3 }, - QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue" - }; - - var response = client.SendMessageBatch(request); - - if (response.Successful.Count > 0) - { - Console.WriteLine("Successfully sent:"); + MessageBody = "Richard Doe customer information." + }; + + var request = new SendMessageBatchRequest + { + Entries = new List() { entry1, entry2, entry3 }, + QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue" + }; + + var response = await client.SendMessageBatchAsync(request); + + if (response.Successful != null) + { + Console.WriteLine("Successfully sent:"); + + foreach (var success in response.Successful) + { + Console.WriteLine(" For ID: '" + success.Id + "':"); + Console.WriteLine(" Message ID = " + success.MessageId); + Console.WriteLine(" MD5 of message attributes = " + + success.MD5OfMessageAttributes); + Console.WriteLine(" MD5 of message body = " + + success.MD5OfMessageBody); + } + } + + if (response.Failed != null) + { + Console.WriteLine("Failed to be sent:"); + + foreach (var fail in response.Failed) + { + Console.WriteLine(" For ID '" + fail.Id + "':"); + Console.WriteLine(" Code = " + fail.Code); + Console.WriteLine(" Message = " + fail.Message); + Console.WriteLine(" Sender's fault? = " + + fail.SenderFault); + } + } + #endregion + + Console.ReadLine(); + } - foreach (var success in response.Successful) + public static async Task SQSGetQueueAttributes() { - Console.WriteLine(" For ID: '" + success.Id + "':"); - Console.WriteLine(" Message ID = " + success.MessageId); - Console.WriteLine(" MD5 of message attributes = " + - success.MD5OfMessageAttributes); - Console.WriteLine(" MD5 of message body = " + - success.MD5OfMessageBody); + #region SQSGetQueueAttributes + var client = new AmazonSQSClient(); + + var request = new GetQueueAttributesRequest + { + QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue", + AttributeNames = new List() { "All" } + }; + + var response = await client.GetQueueAttributesAsync(request); + + Console.WriteLine("Attributes for queue ARN '" + response.QueueARN + "':"); + Console.WriteLine(" Approximate number of messages:" + + response.ApproximateNumberOfMessages); + Console.WriteLine(" Approximate number of messages delayed: " + + response.ApproximateNumberOfMessagesDelayed); + Console.WriteLine(" Approximate number of messages not visible: " + + response.ApproximateNumberOfMessagesNotVisible); + Console.WriteLine(" Queue created on: " + response.CreatedTimestamp); + Console.WriteLine(" Delay seconds: " + response.DelaySeconds); + Console.WriteLine(" Queue last modified on: " + + response.LastModifiedTimestamp); + Console.WriteLine(" Maximum message size: " + + response.MaximumMessageSize); + Console.WriteLine(" Message retention period: " + + response.MessageRetentionPeriod); + Console.WriteLine(" Visibility timeout: " + response.VisibilityTimeout); + Console.WriteLine(" Policy: " + response.Policy); + Console.WriteLine(" Attributes:"); + + foreach (var attr in response.Attributes) + { + Console.WriteLine(" " + attr.Key + ": " + attr.Value); + } + #endregion + + Console.ReadLine(); } - } - if (response.Failed.Count > 0) - { - Console.WriteLine("Failed to be sent:"); - - foreach (var fail in response.Failed) + public static async Task SQSChangeMessageVisibility() { - Console.WriteLine(" For ID '" + fail.Id + "':"); - Console.WriteLine(" Code = " + fail.Code); - Console.WriteLine(" Message = " + fail.Message); - Console.WriteLine(" Sender's fault? = " + - fail.SenderFault); + #region SQSChangeMessageVisibility + var client = new AmazonSQSClient(); + + var url = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue"; + + // Receive messages. + var rcvRequest = new ReceiveMessageRequest + { + MessageSystemAttributeNames = new List() { "All" }, + QueueUrl = url + }; + + var rcvResponse = await client.ReceiveMessageAsync(rcvRequest); + + // Change visibility timeout for each message. + if (rcvResponse.Messages != null) + { + foreach (var message in rcvResponse.Messages) + { + var visRequest = new ChangeMessageVisibilityRequest + { + QueueUrl = url, + ReceiptHandle = message.ReceiptHandle, + VisibilityTimeout = (int)TimeSpan.FromMinutes(10).TotalSeconds + }; + + await client.ChangeMessageVisibilityAsync(visRequest); + } + } + else + { + Console.WriteLine("No messages to change visibility for."); + } + #endregion } - } - #endregion - - Console.ReadLine(); - } - - public static void SQSGetQueueAttributes() - { - #region SQSGetQueueAttributes - var client = new AmazonSQSClient(); - - var request = new GetQueueAttributesRequest - { - QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue", - AttributeNames = new List() { "All" } - }; - - var response = client.GetQueueAttributes(request); - - Console.WriteLine("Attributes for queue ARN '" + response.QueueARN + "':"); - Console.WriteLine(" Approximate number of messages:" + - response.ApproximateNumberOfMessages); - Console.WriteLine(" Approximate number of messages delayed: " + - response.ApproximateNumberOfMessagesDelayed); - Console.WriteLine(" Approximate number of messages not visible: " + - response.ApproximateNumberOfMessagesNotVisible); - Console.WriteLine(" Queue created on: " + response.CreatedTimestamp); - Console.WriteLine(" Delay seconds: " + response.DelaySeconds); - Console.WriteLine(" Queue last modified on: " + - response.LastModifiedTimestamp); - Console.WriteLine(" Maximum message size: " + - response.MaximumMessageSize); - Console.WriteLine(" Message retention period: " + - response.MessageRetentionPeriod); - Console.WriteLine(" Visibility timeout: " + response.VisibilityTimeout); - Console.WriteLine(" Policy: " + response.Policy); - Console.WriteLine(" Attributes:"); - - foreach (var attr in response.Attributes) - { - Console.WriteLine(" " + attr.Key + ": " + attr.Value); - } - #endregion - - Console.ReadLine(); - } - public static void SQSChangeMessageVisibility() - { - #region SQSChangeMessageVisibility - var client = new AmazonSQSClient(); - - var url = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue"; - - // Receive messages. - var rcvRequest = new ReceiveMessageRequest - { - AttributeNames = new List() { "All" }, - QueueUrl = url - }; - - var rcvResponse = client.ReceiveMessage(rcvRequest); - - // Change visibility timeout for each message. - if (rcvResponse.Messages.Count > 0) - { - foreach (var message in rcvResponse.Messages) + public static async Task SQSSetQueueAttributes() { - var visRequest = new ChangeMessageVisibilityRequest - { - QueueUrl = url, - ReceiptHandle = message.ReceiptHandle, - VisibilityTimeout = (int)TimeSpan.FromMinutes(10).TotalSeconds - }; - - client.ChangeMessageVisibility(visRequest); + #region SQSSetQueueAttributes + var client = new AmazonSQSClient(); + + var attrs = new Dictionary(); + + // Maximum message size of 128 KiB (1,024 bytes * 128 KiB = 131,072 bytes). + int maxMessage = 128 * 1024; + + attrs.Add(QueueAttributeName.DelaySeconds, + TimeSpan.FromSeconds(5).TotalSeconds.ToString()); + attrs.Add(QueueAttributeName.MaximumMessageSize, maxMessage.ToString()); + attrs.Add(QueueAttributeName.MessageRetentionPeriod, + TimeSpan.FromDays(1).TotalSeconds.ToString()); + attrs.Add(QueueAttributeName.ReceiveMessageWaitTimeSeconds, + TimeSpan.FromSeconds(5).TotalSeconds.ToString()); + attrs.Add(QueueAttributeName.VisibilityTimeout, + TimeSpan.FromHours(1).TotalSeconds.ToString()); + // Dead-letter queue attributes. + attrs.Add(QueueAttributeName.RedrivePolicy, + "{\"maxReceiveCount\":" + + "\"5\"," + + "\"deadLetterTargetArn\":" + + "\"arn:aws:sqs:us-east-1:80398EXAMPLE:MyTestDeadLetterQueue\"}"); + + var request = new SetQueueAttributesRequest + { + Attributes = attrs, + QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue" + }; + + await client.SetQueueAttributesAsync(request); + #endregion } - } - else - { - Console.WriteLine("No messages to change visibility for."); - } - #endregion - } - - public static void SQSSetQueueAttributes() - { - #region SQSSetQueueAttributes - var client = new AmazonSQSClient(); - - var attrs = new Dictionary(); - - // Maximum message size of 128 KiB (1,024 bytes * 128 KiB = 131,072 bytes). - int maxMessage = 128 * 1024; - - attrs.Add(QueueAttributeName.DelaySeconds, - TimeSpan.FromSeconds(5).TotalSeconds.ToString()); - attrs.Add(QueueAttributeName.MaximumMessageSize, maxMessage.ToString()); - attrs.Add(QueueAttributeName.MessageRetentionPeriod, - TimeSpan.FromDays(1).TotalSeconds.ToString()); - attrs.Add(QueueAttributeName.ReceiveMessageWaitTimeSeconds, - TimeSpan.FromSeconds(5).TotalSeconds.ToString()); - attrs.Add(QueueAttributeName.VisibilityTimeout, - TimeSpan.FromHours(1).TotalSeconds.ToString()); - // Dead-letter queue attributes. - attrs.Add(QueueAttributeName.RedrivePolicy, - "{\"maxReceiveCount\":" + - "\"5\"," + - "\"deadLetterTargetArn\":" + - "\"arn:aws:sqs:us-east-1:80398EXAMPLE:MyTestDeadLetterQueue\"}"); - - var request = new SetQueueAttributesRequest - { - Attributes = attrs, - QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue" - }; - - client.SetQueueAttributes(request); - #endregion - } - - public static void SQSChangeMessageVisibilityBatch() - { - #region SQSChangeMessageVisibilityBatch - var client = new AmazonSQSClient(); - - var url = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue"; - // Receive messages. - var msgRequest = new ReceiveMessageRequest - { - AttributeNames = new List() { "All" }, - QueueUrl = url - }; - - var msgResponse = client.ReceiveMessage(msgRequest); - - // Change visibility timeout for each message. - if (msgResponse.Messages.Count > 0) - { - var entries = new List(); - - int numMessages = 0; - - foreach (var message in msgResponse.Messages) + public static async Task SQSChangeMessageVisibilityBatch() { - numMessages += 1; - - var entry = new ChangeMessageVisibilityBatchRequestEntry - { - Id = "Entry" + numMessages.ToString(), - ReceiptHandle = message.ReceiptHandle, - VisibilityTimeout = (int)TimeSpan.FromMinutes(10).TotalSeconds - }; - - entries.Add(entry); + #region SQSChangeMessageVisibilityBatch + var client = new AmazonSQSClient(); + + var url = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue"; + + // Receive messages. + var msgRequest = new ReceiveMessageRequest + { + MessageSystemAttributeNames = new List() { "All" }, + QueueUrl = url + }; + + var msgResponse = await client.ReceiveMessageAsync(msgRequest); + + // Change visibility timeout for each message. + if (msgResponse.Messages != null) + { + var entries = new List(); + + int numMessages = 0; + + foreach (var message in msgResponse.Messages) + { + numMessages += 1; + + var entry = new ChangeMessageVisibilityBatchRequestEntry + { + Id = "Entry" + numMessages.ToString(), + ReceiptHandle = message.ReceiptHandle, + VisibilityTimeout = (int)TimeSpan.FromMinutes(10).TotalSeconds + }; + + entries.Add(entry); + } + + var batRequest = new ChangeMessageVisibilityBatchRequest + { + Entries = entries, + QueueUrl = url + }; + + var batResponse = await client.ChangeMessageVisibilityBatchAsync(batRequest); + + Console.WriteLine("Successes: " + batResponse.Successful?.Count + + ", Failures: " + batResponse.Failed?.Count); + + if (batResponse.Successful != null) + { + foreach (var success in batResponse.Successful) + { + Console.WriteLine(" Success ID " + success.Id); + } + } + + if (batResponse.Failed != null) + { + foreach (var fail in batResponse.Failed) + { + Console.WriteLine(" Failure ID " + fail.Id + ":"); + Console.WriteLine(" Code: " + fail.Code); + Console.WriteLine(" Message: " + fail.Message); + Console.WriteLine(" Sender's fault?: " + fail.SenderFault); + } + } + } + #endregion + + Console.ReadLine(); } - var batRequest = new ChangeMessageVisibilityBatchRequest + public static async Task SQSDeleteQueue() { - Entries = entries, - QueueUrl = url - }; + #region SQSDeleteQueue + var client = new AmazonSQSClient(); - var batResponse = client.ChangeMessageVisibilityBatch(batRequest); + var request = new DeleteQueueRequest + { + QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue" + }; - Console.WriteLine("Successes: " + batResponse.Successful.Count + - ", Failures: " + batResponse.Failed.Count); + await client.DeleteQueueAsync(request); + #endregion + } - if (batResponse.Successful.Count > 0) + public static async Task SQSAddPermission() { - foreach (var success in batResponse.Successful) - { - Console.WriteLine(" Success ID " + success.Id); - } + #region SQSAddPermission + var client = new AmazonSQSClient(); + + var request = new AddPermissionRequest + { + Actions = new List() { "GetQueueAttributes", "GetQueueUrl" }, + AWSAccountIds = new List() { "80398EXAMPLE" }, + Label = "JohnDoeCanAccessQueues", + QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue" + }; + + await client.AddPermissionAsync(request); + #endregion } - if (batResponse.Failed.Count > 0) + public static async Task SQSListDeadLetterSourceQueues() { - foreach (var fail in batResponse.Failed) - { - Console.WriteLine(" Failure ID " + fail.Id + ":"); - Console.WriteLine(" Code: " + fail.Code); - Console.WriteLine(" Message: " + fail.Message); - Console.WriteLine(" Sender's fault?: " + fail.SenderFault); - } + #region SQSListDeadLetterSourceQueues + var client = new AmazonSQSClient(); + + var request = new ListDeadLetterSourceQueuesRequest + { + QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestDeadLetterQueue" + }; + + var response = await client.ListDeadLetterSourceQueuesAsync(request); + + if (response.QueueUrls != null) + { + Console.WriteLine("Dead letter source queues:"); + + foreach (var url in response.QueueUrls) + { + Console.WriteLine(" " + url); + } + } + else + { + Console.WriteLine("No dead letter source queues."); + } + #endregion + + Console.ReadLine(); } - } - #endregion - - Console.ReadLine(); - } - - public static void SQSDeleteQueue() - { - #region SQSDeleteQueue - var client = new AmazonSQSClient(); - - var request = new DeleteQueueRequest - { - QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue" - }; - - client.DeleteQueue(request); - #endregion - } - - public static void SQSAddPermission() - { - #region SQSAddPermission - var client = new AmazonSQSClient(); - - var request = new AddPermissionRequest - { - Actions = new List() { "GetQueueAttributes", "GetQueueUrl" }, - AWSAccountIds = new List() { "80398EXAMPLE" }, - Label = "JohnDoeCanAccessQueues", - QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue" - }; - - client.AddPermission(request); - #endregion - } - - public static void SQSListDeadLetterSourceQueues() - { - #region SQSListDeadLetterSourceQueues - var client = new AmazonSQSClient(); - var request = new ListDeadLetterSourceQueuesRequest - { - QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestDeadLetterQueue" - }; + public static async Task SQSRemovePermission() + { + #region SQSRemovePermission + var client = new AmazonSQSClient(); - var response = client.ListDeadLetterSourceQueues(request); + var request = new RemovePermissionRequest + { + Label = "JohnDoeCanAccessQueues", + QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue" + }; - if (response.QueueUrls.Count > 0) - { - Console.WriteLine("Dead letter source queues:"); + await client.RemovePermissionAsync(request); + #endregion + } - foreach (var url in response.QueueUrls) + #region ISample Members + public virtual Task Run() { - Console.WriteLine(" " + url); + return Task.CompletedTask; } - } - else - { - Console.WriteLine("No dead letter source queues."); - } - #endregion - - Console.ReadLine(); - } - - public static void SQSRemovePermission() - { - #region SQSRemovePermission - var client = new AmazonSQSClient(); - - var request = new RemovePermissionRequest - { - Label = "JohnDoeCanAccessQueues", - QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue" - }; - - client.RemovePermission(request); - #endregion - } - - #region ISample Members - public virtual void Run() - { - + #endregion } - #endregion - } } diff --git a/docgenerator/AWSSDKDocSamples/SecurityToken/BasicSamples.cs b/docgenerator/AWSSDKDocSamples/SecurityToken/BasicSamples.cs index 76044cc915e8..2109c7d7c31f 100644 --- a/docgenerator/AWSSDKDocSamples/SecurityToken/BasicSamples.cs +++ b/docgenerator/AWSSDKDocSamples/SecurityToken/BasicSamples.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; +using System.Threading.Tasks; using Amazon.SecurityToken; using AWSSDKDocSamples.Util; using Amazon.SecurityToken.Model; @@ -25,8 +26,9 @@ public AmazonSecurityTokenServiceClient Client #region ISample Members - public virtual void Run() + public virtual Task Run() { + return Task.CompletedTask; } #endregion @@ -34,17 +36,17 @@ public virtual void Run() public class BasicSamples : StsSamplesBase { - public override void Run() + public override async Task Run() { - BasicStsSample(); + await BasicStsSample(); } - private void BasicStsSample() + private async Task BasicStsSample() { { #region Sample 1 - GetSessionTokenResponse response = Client.GetSessionToken(); + GetSessionTokenResponse response = await Client.GetSessionTokenAsync(); Credentials credentials = response.Credentials; Console.WriteLine("Access Key = {0}", credentials.AccessKeyId); Console.WriteLine("Secret Key = {0}", credentials.SecretAccessKey); @@ -56,7 +58,7 @@ private void BasicStsSample() { #region Sample 2 - GetSessionTokenResponse response = Client.GetSessionToken(new GetSessionTokenRequest + GetSessionTokenResponse response = await Client.GetSessionTokenAsync(new GetSessionTokenRequest { DurationSeconds = (int)TimeSpan.FromHours(8).TotalSeconds });