@@ -30,6 +30,13 @@ abstract class Resource implements \JsonSerializable
3030
3131 public const TYPE_DATABASE = 'database ' ;
3232
33+ public const TYPE_DATABASE_LEGACY = 'legacy ' ;
34+
35+ public const TYPE_DATABASE_TABLESDB = 'tablesdb ' ;
36+
37+ public const TYPE_DATABASE_DOCUMENTSDB = 'documentsdb ' ;
38+ public const TYPE_DATABASE_VECTORSDB = 'vectorsdb ' ;
39+
3340 public const TYPE_ROW = 'row ' ;
3441
3542 public const TYPE_FILE = 'file ' ;
@@ -46,6 +53,10 @@ abstract class Resource implements \JsonSerializable
4653
4754 public const TYPE_INDEX = 'index ' ;
4855
56+ public const TYPE_PROVIDER = 'provider ' ;
57+
58+ public const TYPE_TOPIC = 'topic ' ;
59+
4960 // Children (Resources that are created by other resources)
5061
5162 public const TYPE_COLUMN = 'column ' ;
@@ -60,6 +71,10 @@ abstract class Resource implements \JsonSerializable
6071
6172 public const TYPE_ENVIRONMENT_VARIABLE = 'environment-variable ' ;
6273
74+ public const TYPE_SUBSCRIBER = 'subscriber ' ;
75+
76+ public const TYPE_MESSAGE = 'message ' ;
77+
6378 // legacy terminologies
6479 public const TYPE_DOCUMENT = 'document ' ;
6580 public const TYPE_ATTRIBUTE = 'attribute ' ;
@@ -76,6 +91,8 @@ abstract class Resource implements \JsonSerializable
7691 self ::TYPE_BUCKET ,
7792 self ::TYPE_TABLE ,
7893 self ::TYPE_DATABASE ,
94+ self ::TYPE_DATABASE_VECTORSDB ,
95+ self ::TYPE_DATABASE_DOCUMENTSDB ,
7996 self ::TYPE_ROW ,
8097 self ::TYPE_FILE ,
8198 self ::TYPE_FUNCTION ,
@@ -89,13 +106,50 @@ abstract class Resource implements \JsonSerializable
89106 self ::TYPE_ENVIRONMENT_VARIABLE ,
90107 self ::TYPE_TEAM ,
91108 self ::TYPE_MEMBERSHIP ,
109+ self ::TYPE_PROVIDER ,
110+ self ::TYPE_TOPIC ,
111+ self ::TYPE_SUBSCRIBER ,
112+ self ::TYPE_MESSAGE ,
92113
93114 // legacy
94115 self ::TYPE_DOCUMENT ,
95116 self ::TYPE_ATTRIBUTE ,
96117 self ::TYPE_COLLECTION ,
97118 ];
98119
120+ // index terminology is same for all
121+ public const DATABASE_TYPE_RESOURCE_MAP = [
122+ self ::TYPE_DATABASE => [
123+ 'entity ' => self ::TYPE_TABLE ,
124+ 'field ' => self ::TYPE_COLUMN ,
125+ 'record ' => self ::TYPE_ROW ,
126+ ],
127+ self ::TYPE_DATABASE_DOCUMENTSDB => [
128+ 'entity ' => self ::TYPE_COLLECTION ,
129+ // HACK: not required in documentsdb but adding it for consistency in the db reader(not gonna impact)
130+ 'field ' => self ::TYPE_ATTRIBUTE ,
131+ 'record ' => self ::TYPE_DOCUMENT ,
132+ ],
133+ self ::TYPE_DATABASE_VECTORSDB => [
134+ 'entity ' => self ::TYPE_COLLECTION ,
135+ 'field ' => self ::TYPE_ATTRIBUTE ,
136+ 'record ' => self ::TYPE_DOCUMENT ,
137+ ]
138+ ];
139+
140+ public const ENTITY_TYPE_RESOURCE_MAP = [
141+ self ::TYPE_TABLE => [
142+ 'field ' => self ::TYPE_COLUMN ,
143+ 'record ' => self ::TYPE_ROW ,
144+ 'index ' => self ::TYPE_INDEX
145+ ],
146+ self ::TYPE_COLLECTION => [
147+ 'field ' => self ::TYPE_ATTRIBUTE ,
148+ 'record ' => self ::TYPE_DOCUMENT ,
149+ 'index ' => self ::TYPE_INDEX
150+ ],
151+ ];
152+
99153 protected string $ id = '' ;
100154
101155 protected string $ originalId = '' ;
0 commit comments