/* * Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: MIT-0 * * Description: Data model for existing account Auto Scaling Groups displayed in console main window */ using Amazon.AutoScaling.Model; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace AWS.AutoScale.Console.Models { public class ConsoleASG : NotifyPropertyChangeBase { private AutoScalingGroup autoScalingGroup; private List notificationsConfigurations; /// /// Base Auto Scaling Group object from AWS /// public AutoScalingGroup AutoScalingGroup { get { if (this.autoScalingGroup == null) this.autoScalingGroup = new AutoScalingGroup(); return this.autoScalingGroup; } set { this.autoScalingGroup = value; this.OnPropertyChanged("AutoScalingGroup"); } } /// /// Availability Zones for the Auto Scaling group /// public string Zones { get { string zones = string.Empty; foreach (string z in this.AutoScalingGroup.AvailabilityZones) { zones = string.Concat(zones, !string.IsNullOrEmpty(zones) ? ", " : "", z); } return zones; } } /// /// Elastic load balancer to used with Auto Scaling Group /// public string ElasticLoadBalancer { get { string elbs = string.Empty; foreach (string lb in this.AutoScalingGroup.LoadBalancerNames) { elbs = string.Concat(elbs, !string.IsNullOrEmpty(elbs) ? ", " : "", lb); } return elbs; } } /// /// List of notification actions associated with Auto Scaling groups for specified events /// public List NotificationConfigurations { get { if (this.notificationsConfigurations == null) this.notificationsConfigurations = new List(); return this.notificationsConfigurations; } set { if (this.notificationsConfigurations != value) { this.notificationsConfigurations = value; this.OnPropertyChanged("NotificationConfigurations"); this.OnPropertyChanged("Notifications"); } } } /// /// String of notification actions associated with Auto Scaling groups for specified events /// public string Notifications { get { string notifications = string.Empty; foreach (NotificationConfiguration nc in this.NotificationConfigurations) { notifications = string.Concat(notifications, !string.IsNullOrEmpty(notifications) ? ", " : "", nc.NotificationType); } return notifications; } } } }