Ejemplo n.º 1
0
        public async Task <IEnumerable <MetricAlarm> > ListMetricAlarmsAsync(
            string alarmNamePrefix = null,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            var list = new List <MetricAlarm>();
            DescribeAlarmsResponse response = null;

            while ((response = await _client.DescribeAlarmsAsync(new DescribeAlarmsRequest()
            {
                NextToken = response?.NextToken,
                MaxRecords = 100,
                AlarmNamePrefix = alarmNamePrefix
            }, cancellationToken))?.HttpStatusCode == System.Net.HttpStatusCode.OK)
            {
                if (!response.MetricAlarms.IsNullOrEmpty())
                {
                    list.AddRange(response.MetricAlarms);
                }

                if (response.NextToken.IsNullOrEmpty())
                {
                    break;
                }

                await Task.Delay(100);
            }

            response.EnsureSuccess();
            return(list);
        }