@@ -738,9 +738,12 @@ def gather_categories(class_type: Type["BaseResource"]) -> List[Category]:
738738
739739 return list (set (gather_categories (cls )))
740740
741- @property
742- def categories (self ) -> List [str ]:
743- return [str (category .value ) for category in self .get_all_categories ()]
741+ @classmethod
742+ def categories (cls ) -> List [str ]:
743+ cs = {str (category .value ) for category in cls .get_all_categories ()}
744+ if group := cls .metadata .get ("group" ):
745+ cs .add (group )
746+ return list (cs )
744747
745748
746749BaseResource .ctime = property (BaseResource ._ctime_getter , BaseResource ._ctime_setter ) # type: ignore
@@ -777,7 +780,7 @@ def cleanup(self, graph: Optional[Any] = None) -> bool:
777780
778781@define (eq = False , slots = False )
779782class BaseQuota (PhantomBaseResource ):
780- metadata : ClassVar [Dict [str , Any ]] = {"icon" : "quota" , "group" : "control " }
783+ metadata : ClassVar [Dict [str , Any ]] = {"icon" : "quota" , "group" : "management " }
781784
782785 kind : ClassVar [str ] = "quota"
783786 kind_display : ClassVar [str ] = "Quota"
@@ -806,7 +809,7 @@ class BaseType(BaseQuota):
806809 kind : ClassVar [str ] = "type"
807810 kind_display : ClassVar [str ] = "Type"
808811 kind_description : ClassVar [str ] = "A generic type."
809- metadata : ClassVar [Dict [str , Any ]] = {"icon" : "type" , "group" : "control " }
812+ metadata : ClassVar [Dict [str , Any ]] = {"icon" : "type" , "group" : "management " }
810813
811814
812815@define (eq = False , slots = False )
@@ -850,7 +853,7 @@ class BaseCloud(PhantomBaseResource):
850853 kind : ClassVar [str ] = "base_cloud"
851854 kind_display : ClassVar [str ] = "Cloud"
852855 kind_description : ClassVar [str ] = "A cloud."
853- metadata : ClassVar [Dict [str , Any ]] = {"icon" : "cloud" , "group" : "control " }
856+ metadata : ClassVar [Dict [str , Any ]] = {"icon" : "cloud" , "group" : "management " }
854857
855858 def cloud (self , graph : Optional [Any ] = None ) -> BaseCloud :
856859 return self
@@ -861,7 +864,7 @@ class BaseAccount(BaseResource):
861864 kind : ClassVar [str ] = "account"
862865 kind_display : ClassVar [str ] = "Account"
863866 kind_description : ClassVar [str ] = "An account."
864- metadata : ClassVar [Dict [str , Any ]] = {"icon" : "account" , "group" : "control " }
867+ metadata : ClassVar [Dict [str , Any ]] = {"icon" : "account" , "group" : "management " }
865868
866869 def account (self , graph : Optional [Any ] = None ) -> BaseAccount :
867870 return self
@@ -872,7 +875,7 @@ class BaseRegion(PhantomBaseResource):
872875 kind : ClassVar [str ] = "region"
873876 kind_display : ClassVar [str ] = "Region"
874877 kind_description : ClassVar [str ] = "A region."
875- metadata : ClassVar [Dict [str , Any ]] = {"icon" : "region" , "group" : "control " }
878+ metadata : ClassVar [Dict [str , Any ]] = {"icon" : "region" , "group" : "management " }
876879
877880 long_name : Optional [str ] = None
878881 latitude : Optional [float ] = None
@@ -892,7 +895,7 @@ class BaseZone(PhantomBaseResource):
892895 kind : ClassVar [str ] = "zone"
893896 kind_display : ClassVar [str ] = "Zone"
894897 kind_description : ClassVar [str ] = "A zone."
895- metadata : ClassVar [Dict [str , Any ]] = {"icon" : "zone" , "group" : "control " }
898+ metadata : ClassVar [Dict [str , Any ]] = {"icon" : "zone" , "group" : "management " }
896899
897900 long_name : Optional [str ] = None
898901
@@ -1000,7 +1003,7 @@ class Cloud(BaseCloud):
10001003 kind : ClassVar [str ] = "cloud"
10011004 kind_display : ClassVar [str ] = "Cloud"
10021005 kind_description : ClassVar [str ] = "A cloud."
1003- metadata : ClassVar [Dict [str , Any ]] = {"icon" : "cloud" , "group" : "control " }
1006+ metadata : ClassVar [Dict [str , Any ]] = {"icon" : "cloud" , "group" : "management " }
10041007
10051008 def delete (self , graph : Any ) -> bool :
10061009 return False
@@ -1011,7 +1014,7 @@ class GraphRoot(PhantomBaseResource):
10111014 kind : ClassVar [str ] = "graph_root"
10121015 kind_display : ClassVar [str ] = "Graph Root"
10131016 kind_description : ClassVar [str ] = "The root of the graph."
1014- metadata : ClassVar [Dict [str , Any ]] = {"icon" : "graph_root" , "group" : "control " }
1017+ metadata : ClassVar [Dict [str , Any ]] = {"icon" : "graph_root" , "group" : "management " }
10151018
10161019 def delete (self , graph : Any ) -> bool :
10171020 return False
@@ -1051,7 +1054,7 @@ class BaseKeyPair(BaseResource):
10511054 kind_description : ClassVar [str ] = "A key pair."
10521055 metadata : ClassVar [Dict [str , Any ]] = {"icon" : "key" , "group" : "access_control" }
10531056 fingerprint : str = ""
1054- _categories : ClassVar [List [Category ]] = [Category .iam ]
1057+ _categories : ClassVar [List [Category ]] = [Category .access_control ]
10551058
10561059
10571060@define (eq = False , slots = False )
@@ -1256,7 +1259,7 @@ class BaseIamPrincipal(BaseResource):
12561259 "An IAM principal is an entity that can be authenticated and authorized to access resources."
12571260 )
12581261 metadata : ClassVar [Dict [str , Any ]] = {"icon" : "user" , "group" : "access_control" }
1259- _categories : ClassVar [List [Category ]] = [Category .iam ]
1262+ _categories : ClassVar [List [Category ]] = [Category .access_control ]
12601263
12611264
12621265@define (eq = False , slots = False )
@@ -1265,7 +1268,7 @@ class BaseUser(BaseResource):
12651268 kind_display : ClassVar [str ] = "User"
12661269 kind_description : ClassVar [str ] = "A user."
12671270 metadata : ClassVar [Dict [str , Any ]] = {"icon" : "user" , "group" : "access_control" }
1268- _categories : ClassVar [List [Category ]] = [Category .iam ]
1271+ _categories : ClassVar [List [Category ]] = [Category .access_control ]
12691272
12701273
12711274@define (eq = False , slots = False )
@@ -1274,7 +1277,7 @@ class BaseGroup(BaseResource):
12741277 kind_display : ClassVar [str ] = "Group"
12751278 kind_description : ClassVar [str ] = "A group."
12761279 metadata : ClassVar [Dict [str , Any ]] = {"icon" : "group" , "group" : "access_control" }
1277- _categories : ClassVar [List [Category ]] = [Category .iam ]
1280+ _categories : ClassVar [List [Category ]] = [Category .access_control ]
12781281
12791282
12801283@define (eq = False , slots = False )
@@ -1283,7 +1286,7 @@ class BasePolicy(BaseResource):
12831286 kind_display : ClassVar [str ] = "Policy"
12841287 kind_description : ClassVar [str ] = "A policy."
12851288 metadata : ClassVar [Dict [str , Any ]] = {"icon" : "policy" , "group" : "access_control" }
1286- _categories : ClassVar [List [Category ]] = [Category .iam ]
1289+ _categories : ClassVar [List [Category ]] = [Category .access_control ]
12871290
12881291
12891292@define (eq = False , slots = False )
@@ -1292,7 +1295,7 @@ class BaseRole(BaseResource):
12921295 kind_display : ClassVar [str ] = "Role"
12931296 kind_description : ClassVar [str ] = "A role."
12941297 metadata : ClassVar [Dict [str , Any ]] = {"icon" : "role" , "group" : "access_control" }
1295- _categories : ClassVar [List [Category ]] = [Category .iam ]
1298+ _categories : ClassVar [List [Category ]] = [Category .access_control ]
12961299
12971300
12981301@define (eq = False , slots = False )
@@ -1301,7 +1304,7 @@ class BaseInstanceProfile(BaseResource):
13011304 kind_display : ClassVar [str ] = "Instance Profile"
13021305 kind_description : ClassVar [str ] = "An instance profile."
13031306 metadata : ClassVar [Dict [str , Any ]] = {"icon" : "profile" , "group" : "access_control" }
1304- _categories : ClassVar [List [Category ]] = [Category .iam ]
1307+ _categories : ClassVar [List [Category ]] = [Category .access_control ]
13051308
13061309
13071310@define (eq = False , slots = False )
@@ -1311,7 +1314,7 @@ class BaseAccessKey(BaseResource):
13111314 kind_description : ClassVar [str ] = "An access key."
13121315 metadata : ClassVar [Dict [str , Any ]] = {"icon" : "key" , "group" : "access_control" }
13131316 access_key_status : str = ""
1314- _categories : ClassVar [List [Category ]] = [Category .iam , Category .security ]
1317+ _categories : ClassVar [List [Category ]] = [Category .access_control , Category .security ]
13151318
13161319
13171320@define (eq = False , slots = False )
@@ -1320,7 +1323,7 @@ class BaseCertificate(BaseResource):
13201323 kind_display : ClassVar [str ] = "Certificate"
13211324 kind_description : ClassVar [str ] = "A certificate."
13221325 metadata : ClassVar [Dict [str , Any ]] = {"icon" : "certificate" , "group" : "access_control" }
1323- _categories : ClassVar [List [Category ]] = [Category .iam , Category .security ]
1326+ _categories : ClassVar [List [Category ]] = [Category .access_control , Category .security ]
13241327 expires : Optional [datetime ] = None
13251328 dns_names : Optional [List [str ]] = None
13261329 sha1_fingerprint : Optional [str ] = None
@@ -1339,7 +1342,7 @@ class BaseStack(BaseResource):
13391342 kind : ClassVar [str ] = "stack"
13401343 kind_display : ClassVar [str ] = "Stack"
13411344 kind_description : ClassVar [str ] = "A stack."
1342- metadata : ClassVar [Dict [str , Any ]] = {"icon" : "stack" , "group" : "control " }
1345+ metadata : ClassVar [Dict [str , Any ]] = {"icon" : "stack" , "group" : "management " }
13431346 stack_status : str = ""
13441347 stack_status_reason : str = ""
13451348 stack_parameters : Dict [str , str ] = field (factory = dict )
0 commit comments