// Method used by reflection call
 private static IList <object> Create(CopsNamespace copsNamespace)
 {
     return(new List <object>
     {
         new K8sNamespace(copsNamespace.Metadata.Name),
         K8sRoleBinding.NamespaceFullAccess(copsNamespace.Metadata.Name, copsNamespace.Spec.NamespaceAdminUsers,
                                            copsNamespace.Spec.NamespaceAdminServiceAccounts ?? new List <CopsAdminServiceAccountSpec>().ToArray()),
         K8sClusterRoleBinding.CopsNamespaceEditBinding(copsNamespace.Metadata.Name, copsNamespace.Spec.NamespaceAdminUsers,
                                                        copsNamespace.Spec.NamespaceAdminServiceAccounts ?? new List <CopsAdminServiceAccountSpec>().ToArray()),
         K8sClusterRole.CopsNamespaceEdit(copsNamespace.Metadata.Name),
         K8SLimitRange.Default(copsNamespace.Metadata.Name)
     });
 }
        public static CopsResource Create(JObject value)
        {
            var kind = value["parent"]["kind"];

            switch (kind.ToString().ToLower())
            {
            case "copsnamespace":
                return(CopsNamespace.FromJson(value["parent"].ToString()));

            default:
                throw new ArgumentException($"Unknown CopsResource of kind {kind}");
            }
        }