public static List <VyattaConfigObject> GetStaticRoutes(VyattaConfigObject ConfigRoot)
        {
            var StaticRoutesNodes = ConfigRoot.GetChild("protocols:static");
            var StaticRoutes      = StaticRoutesNodes as VyattaConfigObject;

            var Results = new List <VyattaConfigObject>();

            if (StaticRoutes != null)
            {
                var Children = StaticRoutes.GetChildren();

                foreach (var Child in Children)
                {
                    var CastChild = Child as VyattaConfigObject;
                    if (CastChild != null)
                    {
                        Results.Add(CastChild);
                    }
                }
            }

            return(Results);
        }
        public static void DeleteGeneratedStaticRoutes(VyattaConfigObject ConfigRoot, string Name = null)
        {
            var StaticRoutesNodes = ConfigRoot.GetChild("protocols:static");
            var StaticRoutes      = StaticRoutesNodes as VyattaConfigObject;

            var Results = new List <VyattaConfigObject>();

            if (StaticRoutes != null)
            {
                var Children = StaticRoutes.GetChildren();

                List <VyattaConfigNode> ToRemove = new List <VyattaConfigNode>();

                foreach (var Child in Children)
                {
                    var CastChild = Child as VyattaConfigObject;
                    if (CastChild != null)
                    {
                        bool IsAuto = false;

                        var SubChildren = CastChild.GetChildren();

                        foreach (var SubChild in SubChildren)
                        {
                            var CastSubChild = SubChild as VyattaConfigObject;
                            if (CastSubChild != null)
                            {
                                var SubSubChildren = CastSubChild.GetChildren();

                                foreach (var SubSubChild in SubSubChildren)
                                {
                                    var CastSubSubAttribute = SubSubChild as VyattaConfigAttribute;
                                    if (CastSubSubAttribute != null)
                                    {
                                        if (CastSubSubAttribute.GetName() == "description")
                                        {
                                            string Value = CastSubSubAttribute.GetValue(0).GetValue();
                                            if (Value != null)
                                            {
                                                if (Name != null && Value.Contains("VCU-Auto: " + Name))
                                                {
                                                    IsAuto = true;
                                                    break;
                                                }
                                                else if (Value.Contains("VCU-Auto:") && Name == null)
                                                {
                                                    IsAuto = true;
                                                    break;
                                                }
                                            }
                                        }
                                    }
                                }

                                if (IsAuto)
                                {
                                    break;
                                }
                            }
                        }

                        if (IsAuto)
                        {
                            ToRemove.Add(Child);
                        }
                    }
                }

                foreach (var Remove in ToRemove)
                {
                    Children.Remove(Remove);
                }
            }
        }