diff --git a/docs/make-schema-diagram b/docs/make-schema-diagram index 55382005a0..8f6a0fa487 100755 --- a/docs/make-schema-diagram +++ b/docs/make-schema-diagram @@ -10,7 +10,11 @@ # It also has only ever been tested on Linux. # -SC_HOME=~/schemacrawler/latest +# You can set env variables such as: +# SC_HOME=/opt/schemacrawler +if [ -z "$SC_HOME" ]; then + SC_HOME=~/schemacrawler/latest +fi SC_BIN=${SC_HOME}/_schemacrawler/bin/schemacrawler.sh SQLITE=~/.zap/self-check.sqlite diff --git a/docs/zap-schema.svg b/docs/zap-schema.svg index bd3addfc21..955355f696 100644 --- a/docs/zap-schema.svg +++ b/docs/zap-schema.svg @@ -1,2793 +1,2899 @@ - - - + + SchemaCrawler_Diagram - -generated by -SchemaCrawler 16.16.18 -ZAP schema, Copyright (c) 2020 Silicon Labs, released under Apache 2.0 license. - + +generated by +SchemaCrawler 16.19.11 +ZAP schema, Copyright (c) 2020 Silicon Labs, released under Apache 2.0 license. + access_72bb1dc3 - - -ACCESS - -[table] -ACCESS_ID - -INTEGER - -auto-incremented -OPERATION_REF - -INTEGER -ROLE_REF - -INTEGER -ACCESS_MODIFIER_REF - -INTEGER - + + +ACCESS + +[table] +ACCESS_ID + +INTEGER + +auto-incremented +OPERATION_REF + +INTEGER +ROLE_REF + +INTEGER +ACCESS_MODIFIER_REF + +INTEGER + access_modifier_f63f3fb1 - - -ACCESS_MODIFIER - -[table] -ACCESS_MODIFIER_ID - -INTEGER - -auto-incremented -PACKAGE_REF - -INTEGER -NAME - -TEXT -DESCRIPTION - -TEXT - + + +ACCESS_MODIFIER + +[table] +ACCESS_MODIFIER_ID + +INTEGER + +auto-incremented +PACKAGE_REF + +INTEGER +NAME + +TEXT +DESCRIPTION + +TEXT + access_72bb1dc3:w->access_modifier_f63f3fb1:e - - - - - - - + + + + + + + +SCHCRWLR_F63ECB52_72BAA964 operation_93359a6 - - -OPERATION - -[table] -OPERATION_ID - -INTEGER - -auto-incremented -PACKAGE_REF - -INTEGER -NAME - -TEXT -DESCRIPTION - -TEXT - + + +OPERATION + +[table] +OPERATION_ID + +INTEGER + +auto-incremented +PACKAGE_REF + +INTEGER +NAME + +TEXT +DESCRIPTION + +TEXT + access_72bb1dc3:w->operation_93359a6:e - - - - - - - + + + + + + + +SCHCRWLR_0932E547_72BAA964 - + role_26ecd5 - - -ROLE - -[table] -ROLE_ID - -INTEGER - -auto-incremented -PACKAGE_REF - -INTEGER -LEVEL - -INTEGER -NAME - -TEXT -DESCRIPTION - -TEXT - + + +ROLE + +[table] +ROLE_ID + +INTEGER + +auto-incremented +PACKAGE_REF + +INTEGER +LEVEL + +INTEGER +NAME + +TEXT +DESCRIPTION + +TEXT + access_72bb1dc3:w->role_26ecd5:e - - - - - - - + + + + + + + +SCHCRWLR_00267876_72BAA964 attribute_access_b017dce6 - - -ATTRIBUTE_ACCESS - -[table] -ATTRIBUTE_REF - -INTEGER -ACCESS_REF - -INTEGER - + + +ATTRIBUTE_ACCESS + +[table] +ATTRIBUTE_REF + +INTEGER +ACCESS_REF + +INTEGER + attribute_access_b017dce6:w->access_72bb1dc3:e - - - - - - - + + + + + + + +SCHCRWLR_72BAA964_B0176887 attribute_a6e02edb - - -ATTRIBUTE - -[table] -ATTRIBUTE_ID - -INTEGER - -auto-incremented -CLUSTER_REF - -INTEGER -PACKAGE_REF - -INTEGER -CODE - -INTEGER -MANUFACTURER_CODE - -INTEGER -NAME - -TEXT -TYPE - -TEXT -SIDE - -TEXT -DEFINE - -TEXT -MIN - -TEXT -MAX - -TEXT -MIN_LENGTH - -INTEGER -MAX_LENGTH - -INTEGER -REPORT_MIN_INTERVAL - -INTEGER -REPORT_MAX_INTERVAL - -INTEGER -REPORTABLE_CHANGE - -TEXT -REPORTABLE_CHANGE_LENGTH - -INTEGER -IS_WRITABLE - -INTEGER -DEFAULT_VALUE - -TEXT -IS_SCENE_REQUIRED - -INTEGER -IS_OPTIONAL - -INTEGER -REPORTING_POLICY - -TEXT -STORAGE_POLICY - -TEXT -IS_NULLABLE - -INTEGER -ARRAY_TYPE - -TEXT -MUST_USE_TIMED_WRITE - -INTEGER -INTRODUCED_IN_REF - -INTEGER -REMOVED_IN_REF - -INTEGER - + + +ATTRIBUTE + +[table] +ATTRIBUTE_ID + +INTEGER + +auto-incremented +CLUSTER_REF + +INTEGER +PACKAGE_REF + +INTEGER +CODE + +INTEGER +MANUFACTURER_CODE + +INTEGER +NAME + +TEXT +TYPE + +TEXT +SIDE + +TEXT +DEFINE + +TEXT +MIN + +TEXT +MAX + +TEXT +MIN_LENGTH + +INTEGER +MAX_LENGTH + +INTEGER +REPORT_MIN_INTERVAL + +INTEGER +REPORT_MAX_INTERVAL + +INTEGER +REPORTABLE_CHANGE + +TEXT +REPORTABLE_CHANGE_LENGTH + +INTEGER +IS_WRITABLE + +INTEGER +DEFAULT_VALUE + +TEXT +IS_SCENE_REQUIRED + +INTEGER +IS_OPTIONAL + +INTEGER +REPORTING_POLICY + +TEXT +STORAGE_POLICY + +TEXT +IS_NULLABLE + +INTEGER +ARRAY_TYPE + +TEXT +MUST_USE_TIMED_WRITE + +INTEGER +INTRODUCED_IN_REF + +INTEGER +REMOVED_IN_REF + +INTEGER +API_MATURITY + +TEXT + attribute_access_b017dce6:w->attribute_a6e02edb:e - - - - - - - + + + + + + + +SCHCRWLR_A6DFBA7C_B0176887 cluster_access_38ea13c8 - - -CLUSTER_ACCESS - -[table] -CLUSTER_REF - -INTEGER -ACCESS_REF - -INTEGER - + + +CLUSTER_ACCESS + +[table] +CLUSTER_REF + +INTEGER +ACCESS_REF + +INTEGER + cluster_access_38ea13c8:w->access_72bb1dc3:e - - - - - - - + + + + + + + +SCHCRWLR_72BAA964_38E99F69 cluster_5ec71239 - - -CLUSTER - -[table] -CLUSTER_ID - -INTEGER - -auto-incremented -PACKAGE_REF - -INTEGER -DOMAIN_NAME - -TEXT -CODE - -INTEGER -MANUFACTURER_CODE - -INTEGER -NAME - -TEXT -DESCRIPTION - -TEXT -DEFINE - -TEXT -IS_SINGLETON - -INTEGER -REVISION - -INTEGER -INTRODUCED_IN_REF - -INTEGER -REMOVED_IN_REF - -INTEGER - + + +CLUSTER + +[table] +CLUSTER_ID + +INTEGER + +auto-incremented +PACKAGE_REF + +INTEGER +DOMAIN_NAME + +TEXT +CODE + +INTEGER +MANUFACTURER_CODE + +INTEGER +NAME + +TEXT +DESCRIPTION + +TEXT +DEFINE + +TEXT +IS_SINGLETON + +INTEGER +REVISION + +INTEGER +INTRODUCED_IN_REF + +INTEGER +REMOVED_IN_REF + +INTEGER +API_MATURITY + +TEXT + - + cluster_access_38ea13c8:w->cluster_5ec71239:e - - - - - - - + + + + + + + +SCHCRWLR_5EC69DDA_38E99F69 command_access_b02dd957 - - -COMMAND_ACCESS - -[table] -COMMAND_REF - -INTEGER -ACCESS_REF - -INTEGER - + + +COMMAND_ACCESS + +[table] +COMMAND_REF + +INTEGER +ACCESS_REF + +INTEGER + command_access_b02dd957:w->access_72bb1dc3:e - - - - - - - + + + + + + + +SCHCRWLR_72BAA964_B02D64F8 - + command_6371df8a - - -COMMAND - -[table] -COMMAND_ID - -INTEGER - -auto-incremented -CLUSTER_REF - -INTEGER -PACKAGE_REF - -INTEGER -CODE - -INTEGER -MANUFACTURER_CODE - -INTEGER -NAME - -TEXT -DESCRIPTION - -TEXT -SOURCE - -TEXT -IS_OPTIONAL - -INTEGER -MUST_USE_TIMED_INVOKE - -INTEGER -IS_FABRIC_SCOPED - -INTEGER -INTRODUCED_IN_REF - -INTEGER -REMOVED_IN_REF - -INTEGER -RESPONSE_NAME - -INTEGER -RESPONSE_REF - -INTEGER -IS_DEFAULT_RESPONSE_ENABLED - -INTEGER - + + +COMMAND + +[table] +COMMAND_ID + +INTEGER + +auto-incremented +CLUSTER_REF + +INTEGER +PACKAGE_REF + +INTEGER +CODE + +INTEGER +MANUFACTURER_CODE + +INTEGER +NAME + +TEXT +DESCRIPTION + +TEXT +SOURCE + +TEXT +IS_OPTIONAL + +INTEGER +MUST_USE_TIMED_INVOKE + +INTEGER +IS_FABRIC_SCOPED + +INTEGER +INTRODUCED_IN_REF + +INTEGER +REMOVED_IN_REF + +INTEGER +RESPONSE_NAME + +INTEGER +RESPONSE_REF + +INTEGER +IS_DEFAULT_RESPONSE_ENABLED + +INTEGER + command_access_b02dd957:w->command_6371df8a:e - - - - - - - + + + + + + + +SCHCRWLR_63716B2B_B02D64F8 default_access_7ba041a1 - - -DEFAULT_ACCESS - -[table] -PACKAGE_REF - -INTEGER -ENTITY_TYPE - -TEXT -ACCESS_REF - -INTEGER - + + +DEFAULT_ACCESS + +[table] +PACKAGE_REF + +INTEGER +ENTITY_TYPE + +TEXT +ACCESS_REF + +INTEGER + default_access_7ba041a1:w->access_72bb1dc3:e - - - - - - - + + + + + + + +SCHCRWLR_72BAA964_7B9FCD42 package_fab13485 - - -PACKAGE - -[table] -PACKAGE_ID - -INTEGER - -auto-incremented -PARENT_PACKAGE_REF - -INTEGER -PATH - -TEXT NOT NULL -TYPE - -TEXT -CRC - -INTEGER -VERSION - -INTEGER -CATEGORY - -TEXT -DESCRIPTION - -TEXT - + + +PACKAGE + +[table] +PACKAGE_ID + +INTEGER + +auto-incremented +PARENT_PACKAGE_REF + +INTEGER +PATH + +TEXT NOT NULL +TYPE + +TEXT +CRC + +INTEGER +VERSION + +INTEGER +CATEGORY + +TEXT +DESCRIPTION + +TEXT + - + default_access_7ba041a1:w->package_fab13485:e - - - - - - - + + + + + + + +SCHCRWLR_FAB0C026_7B9FCD42 event_access_4668c328 - - -EVENT_ACCESS - -[table] -EVENT_REF - -INTEGER -ACCESS_REF - -INTEGER - + + +EVENT_ACCESS + +[table] +EVENT_REF + +INTEGER +ACCESS_REF + +INTEGER + event_access_4668c328:w->access_72bb1dc3:e - - - - - - - + + + + + + + +SCHCRWLR_72BAA964_46684EC9 event_3f4eed9 - - -EVENT - -[table] -EVENT_ID - -INTEGER - -auto-incremented -CLUSTER_REF - -INTEGER -PACKAGE_REF - -INTEGER -CODE - -INTEGER -MANUFACTURER_CODE - -INTEGER -NAME - -TEXT -DESCRIPTION - -TEXT -SIDE - -TEXT -IS_OPTIONAL - -INTEGER -IS_FABRIC_SENSITIVE - -INTEGER -PRIORITY - -TEXT -INTRODUCED_IN_REF - -INTEGER -REMOVED_IN_REF - -INTEGER - + + +EVENT + +[table] +EVENT_ID + +INTEGER + +auto-incremented +CLUSTER_REF + +INTEGER +PACKAGE_REF + +INTEGER +CODE + +INTEGER +MANUFACTURER_CODE + +INTEGER +NAME + +TEXT +DESCRIPTION + +TEXT +SIDE + +TEXT +IS_OPTIONAL + +INTEGER +IS_FABRIC_SENSITIVE + +INTEGER +PRIORITY + +TEXT +INTRODUCED_IN_REF + +INTEGER +REMOVED_IN_REF + +INTEGER + - + event_access_4668c328:w->event_3f4eed9:e - - - - - - - + + + + + + + +SCHCRWLR_03F47A7A_46684EC9 access_modifier_f63f3fb1:w->package_fab13485:e - - - - - - - + + + + + + + +SCHCRWLR_FAB0C026_F63ECB52 atomic_73b03e8a - - -"ATOMIC" - -[table] -ATOMIC_ID - -INTEGER - -auto-incremented -PACKAGE_REF - -INTEGER -NAME - -TEXT -DESCRIPTION - -TEXT -ATOMIC_IDENTIFIER - -INTEGER -ATOMIC_SIZE - -INTEGER -IS_DISCRETE - -INTEGER -IS_STRING - -INTEGER -IS_LONG - -INTEGER -IS_CHAR - -INTEGER -IS_SIGNED - -INTEGER - + + +"ATOMIC" + +[table] +ATOMIC_ID + +INTEGER + +auto-incremented +PACKAGE_REF + +INTEGER +NAME + +TEXT +DESCRIPTION + +TEXT +ATOMIC_IDENTIFIER + +INTEGER +ATOMIC_SIZE + +INTEGER +IS_DISCRETE + +INTEGER +IS_STRING + +INTEGER +IS_LONG + +INTEGER +IS_CHAR + +INTEGER +IS_SIGNED + +INTEGER + atomic_73b03e8a:w->package_fab13485:e - - - - - - - + + + + + + + +SCHCRWLR_FAB0C026_CE3170F5 - + attribute_a6e02edb:w->cluster_5ec71239:e - - - - - - - + + + + + + + +SCHCRWLR_5EC69DDA_A6DFBA7C - + attribute_a6e02edb:w->package_fab13485:e - - - - - - - + + + + + + + +SCHCRWLR_FAB0C026_A6DFBA7C - + spec_27641a - - -SPEC - -[table] -SPEC_ID - -INTEGER - -auto-incremented -PACKAGE_REF - -INTEGER -CODE - -TEXT NOT NULL -DESCRIPTION - -TEXT -CERTIFIABLE - -INTEGER - + + +SPEC + +[table] +SPEC_ID + +INTEGER + +auto-incremented +PACKAGE_REF + +INTEGER +CODE + +TEXT NOT NULL +DESCRIPTION + +TEXT +CERTIFIABLE + +INTEGER + - + attribute_a6e02edb:w->spec_27641a:e - - - - - - - + + + + + + + +SCHCRWLR_0026EFBB_A6DFBA7C - + attribute_a6e02edb:w->spec_27641a:e - - - - - - - + + + + + + + +SCHCRWLR_0026EFBB_A6DFBA7C device_type_attribute_ce5151f - - -DEVICE_TYPE_ATTRIBUTE - -[table] -DEVICE_TYPE_CLUSTER_REF - -INTEGER -ATTRIBUTE_REF - -INTEGER -ATTRIBUTE_NAME - -TEXT - + + +DEVICE_TYPE_ATTRIBUTE + +[table] +DEVICE_TYPE_CLUSTER_REF + +INTEGER +ATTRIBUTE_REF + +INTEGER +ATTRIBUTE_NAME + +TEXT + device_type_attribute_ce5151f:w->attribute_a6e02edb:e - - - - - - - + + + + + + + +SCHCRWLR_A6DFBA7C_0CE4A0C0 - + device_type_cluster_7298b97d - - -DEVICE_TYPE_CLUSTER - -[table] -DEVICE_TYPE_CLUSTER_ID - -INTEGER - -auto-incremented -DEVICE_TYPE_REF - -INTEGER -CLUSTER_REF - -INTEGER -CLUSTER_NAME - -TEXT -INCLUDE_CLIENT - -INTEGER -INCLUDE_SERVER - -INTEGER -LOCK_CLIENT - -INTEGER -LOCK_SERVER - -INTEGER - + + +DEVICE_TYPE_CLUSTER + +[table] +DEVICE_TYPE_CLUSTER_ID + +INTEGER + +auto-incremented +DEVICE_TYPE_REF + +INTEGER +CLUSTER_REF + +INTEGER +CLUSTER_NAME + +TEXT +INCLUDE_CLIENT + +INTEGER +INCLUDE_SERVER + +INTEGER +LOCK_CLIENT + +INTEGER +LOCK_SERVER + +INTEGER + device_type_attribute_ce5151f:w->device_type_cluster_7298b97d:e - - - - - - - - - - -global_attribute_default_73c65a21 - - -GLOBAL_ATTRIBUTE_DEFAULT - -[table] -GLOBAL_ATTRIBUTE_DEFAULT_ID - -INTEGER - -auto-incremented -CLUSTER_REF - -INTEGER NOT NULL -ATTRIBUTE_REF - -INTEGER NOT NULL -DEFAULT_VALUE - -TEXT - - - - -global_attribute_default_73c65a21:w->attribute_a6e02edb:e - - - - - - - - - - -global_attribute_default_73c65a21:w->cluster_5ec71239:e - - - - - - - + + + + + + + +SCHCRWLR_7298451E_0CE4A0C0 - + endpoint_type_attribute_c265400 - - -ENDPOINT_TYPE_ATTRIBUTE - -[table] -ENDPOINT_TYPE_ATTRIBUTE_ID - -INTEGER - -auto-incremented -ENDPOINT_TYPE_REF - -INTEGER -ENDPOINT_TYPE_CLUSTER_REF - -INTEGER -ATTRIBUTE_REF - -INTEGER -INCLUDED - -INTEGER -STORAGE_OPTION - -TEXT -SINGLETON - -INTEGER -BOUNDED - -INTEGER -DEFAULT_VALUE - -TEXT -INCLUDED_REPORTABLE - -INTEGER -MIN_INTERVAL - -INTEGER -MAX_INTERVAL - -INTEGER -REPORTABLE_CHANGE - -INTEGER - + + +ENDPOINT_TYPE_ATTRIBUTE + +[table] +ENDPOINT_TYPE_ATTRIBUTE_ID + +INTEGER + +auto-incremented +ENDPOINT_TYPE_REF + +INTEGER +ENDPOINT_TYPE_CLUSTER_REF + +INTEGER +ATTRIBUTE_REF + +INTEGER +INCLUDED + +INTEGER +STORAGE_OPTION + +TEXT +SINGLETON + +INTEGER +BOUNDED + +INTEGER +DEFAULT_VALUE + +TEXT +INCLUDED_REPORTABLE + +INTEGER +MIN_INTERVAL + +INTEGER +MAX_INTERVAL + +INTEGER +REPORTABLE_CHANGE + +INTEGER + - + endpoint_type_attribute_c265400:w->attribute_a6e02edb:e - - - - - - - + + + + + + + +SCHCRWLR_A6DFBA7C_0C25DFA1 - + endpoint_type_cluster_c12e3c9e - - -ENDPOINT_TYPE_CLUSTER - -[table] -ENDPOINT_TYPE_CLUSTER_ID - -INTEGER - -auto-incremented -ENDPOINT_TYPE_REF - -INTEGER -CLUSTER_REF - -INTEGER -SIDE - -TEXT -ENABLED - -INTEGER - + + +ENDPOINT_TYPE_CLUSTER + +[table] +ENDPOINT_TYPE_CLUSTER_ID + +INTEGER + +auto-incremented +ENDPOINT_TYPE_REF + +INTEGER +CLUSTER_REF + +INTEGER +SIDE + +TEXT +ENABLED + +INTEGER + endpoint_type_attribute_c265400:w->endpoint_type_cluster_c12e3c9e:e - - - - - - - + + + + + + + +SCHCRWLR_C12DC83F_0C25DFA1 endpoint_type_9857dc03 - - -ENDPOINT_TYPE - -[table] -ENDPOINT_TYPE_ID - -INTEGER - -auto-incremented -SESSION_REF - -INTEGER -NAME - -TEXT - + + +ENDPOINT_TYPE + +[table] +ENDPOINT_TYPE_ID + +INTEGER + +auto-incremented +SESSION_REF + +INTEGER +NAME + +TEXT + - + endpoint_type_attribute_c265400:w->endpoint_type_9857dc03:e - - - - - - - + + + + + + + +SCHCRWLR_985767A4_0C25DFA1 + + + +global_attribute_default_73c65a21 + + +GLOBAL_ATTRIBUTE_DEFAULT + +[table] +GLOBAL_ATTRIBUTE_DEFAULT_ID + +INTEGER + +auto-incremented +CLUSTER_REF + +INTEGER NOT NULL +ATTRIBUTE_REF + +INTEGER NOT NULL +DEFAULT_VALUE + +TEXT + + + + +global_attribute_default_73c65a21:w->attribute_a6e02edb:e + + + + + + + +SCHCRWLR_A6DFBA7C_73C5E5C2 + + + +global_attribute_default_73c65a21:w->cluster_5ec71239:e + + + + + + + +SCHCRWLR_5EC69DDA_73C5E5C2 bitmap_74cc598e - - -BITMAP - -[table] -BITMAP_ID - -INTEGER NOT NULL -SIZE - -INTEGER - + + +BITMAP + +[table] +BITMAP_ID + +INTEGER NOT NULL +SIZE + +INTEGER + data_type_9233070e - - -DATA_TYPE - -[table] -DATA_TYPE_ID - -INTEGER NOT NULL - -auto-incremented -NAME - -TEXT -DESCRIPTION - -TEXT -DISCRIMINATOR_REF - -INTEGER -PACKAGE_REF - -INTEGER - + + +DATA_TYPE + +[table] +DATA_TYPE_ID + +INTEGER NOT NULL + +auto-incremented +NAME + +TEXT +DESCRIPTION + +TEXT +DISCRIMINATOR_REF + +INTEGER +PACKAGE_REF + +INTEGER + bitmap_74cc598e:w->data_type_9233070e:e - - - - - - - + + + + + + + +SCHCRWLR_923292AF_74CBE52F bitmap_field_bfea8629 - - -BITMAP_FIELD - -[table] -BITMAP_FIELD_ID - -INTEGER NOT NULL - -auto-incremented -BITMAP_REF - -INTEGER -FIELD_IDENTIFIER - -INTEGER -NAME - -TEXT(100) -MASK - -INTEGER -TYPE - -TEXT(100) - + + +BITMAP_FIELD + +[table] +BITMAP_FIELD_ID + +INTEGER NOT NULL + +auto-incremented +BITMAP_REF + +INTEGER +FIELD_IDENTIFIER + +INTEGER +NAME + +TEXT(100) +MASK + +INTEGER +TYPE + +TEXT(100) + bitmap_field_bfea8629:w->bitmap_74cc598e:e - - - - - - - + + + + + + + +SCHCRWLR_74CBE52F_BFEA11CA - + cluster_5ec71239:w->package_fab13485:e - - - - - - - + + + + + + + +SCHCRWLR_FAB0C026_5EC69DDA - + cluster_5ec71239:w->spec_27641a:e - - - - - - - + + + + + + + +SCHCRWLR_0026EFBB_5EC69DDA - + cluster_5ec71239:w->spec_27641a:e - - - - - - - + + + + + + + +SCHCRWLR_0026EFBB_5EC69DDA + + + +command_6371df8a:w->cluster_5ec71239:e + + + + + + + +SCHCRWLR_5EC69DDA_63716B2B + + + +command_6371df8a:w->command_6371df8a:e + + + + + + + +SCHCRWLR_63716B2B_63716B2B + + + +command_6371df8a:w->package_fab13485:e + + + + + + + +SCHCRWLR_FAB0C026_63716B2B + + + +command_6371df8a:w->spec_27641a:e + + + + + + + +SCHCRWLR_0026EFBB_63716B2B + + + +command_6371df8a:w->spec_27641a:e + + + + + + + +SCHCRWLR_0026EFBB_63716B2B - + data_type_cluster_8d9f2ca9 - - -DATA_TYPE_CLUSTER - -[table] -DATA_TYPE_CLUSTER_ID - -INTEGER NOT NULL - -auto-incremented -CLUSTER_REF - -INTEGER -CLUSTER_CODE - -INTEGER -DATA_TYPE_REF - -INTEGER - + + +DATA_TYPE_CLUSTER + +[table] +DATA_TYPE_CLUSTER_ID + +INTEGER NOT NULL + +auto-incremented +CLUSTER_REF + +INTEGER +CLUSTER_CODE + +INTEGER +DATA_TYPE_REF + +INTEGER + - + data_type_cluster_8d9f2ca9:w->cluster_5ec71239:e - - - - - - - + + + + + + + +SCHCRWLR_5EC69DDA_8D9EB84A - + data_type_cluster_8d9f2ca9:w->data_type_9233070e:e - - - - - - - + + + + + + + +SCHCRWLR_923292AF_8D9EB84A - + device_type_cluster_7298b97d:w->cluster_5ec71239:e - - - - - - - + + + + + + + +SCHCRWLR_5EC69DDA_7298451E device_type_2620a7e2 - - -DEVICE_TYPE - -[table] -DEVICE_TYPE_ID - -INTEGER - -auto-incremented -PACKAGE_REF - -INTEGER -DOMAIN - -TEXT -CODE - -INTEGER -PROFILE_ID - -INTEGER -NAME - -TEXT -DESCRIPTION - -TEXT -CLASS - -TEXT -"SCOPE" - -TEXT -SUPERSET - -TEXT - + + +DEVICE_TYPE + +[table] +DEVICE_TYPE_ID + +INTEGER + +auto-incremented +PACKAGE_REF + +INTEGER +DOMAIN + +TEXT +CODE + +INTEGER +PROFILE_ID + +INTEGER +NAME + +TEXT +DESCRIPTION + +TEXT +CLASS + +TEXT +"SCOPE" + +TEXT +SUPERSET + +TEXT + device_type_cluster_7298b97d:w->device_type_2620a7e2:e - - - - - - - + + + + + + + +SCHCRWLR_26203383_7298451E - + endpoint_type_cluster_c12e3c9e:w->cluster_5ec71239:e - - - - - - - + + + + + + + +SCHCRWLR_5EC69DDA_C12DC83F - + endpoint_type_cluster_c12e3c9e:w->endpoint_type_9857dc03:e - - - - - - - - - - -tag_1b7d9 - - -TAG - -[table] -TAG_ID - -INTEGER - -auto-incremented -PACKAGE_REF - -INTEGER -CLUSTER_REF - -INTEGER -NAME - -TEXT -DESCRIPTION - -TEXT - - - - -tag_1b7d9:w->cluster_5ec71239:e - - - - - - - - - - -tag_1b7d9:w->package_fab13485:e - - - - - - - + + + + + + + +SCHCRWLR_985767A4_C12DC83F - + event_3f4eed9:w->cluster_5ec71239:e - - - - - - - + + + + + + + +SCHCRWLR_5EC69DDA_03F47A7A - + event_3f4eed9:w->package_fab13485:e - - - - - - - + + + + + + + +SCHCRWLR_FAB0C026_03F47A7A event_3f4eed9:w->spec_27641a:e - - - - - - - + + + + + + + +SCHCRWLR_0026EFBB_03F47A7A event_3f4eed9:w->spec_27641a:e - - - - - - - + + + + + + + +SCHCRWLR_0026EFBB_03F47A7A - - -command_6371df8a:w->cluster_5ec71239:e - - - - - - - + + +tag_1b7d9 + + +TAG + +[table] +TAG_ID + +INTEGER + +auto-incremented +PACKAGE_REF + +INTEGER +CLUSTER_REF + +INTEGER +NAME + +TEXT +DESCRIPTION + +TEXT + - - -command_6371df8a:w->command_6371df8a:e - - - - - - - + + +tag_1b7d9:w->cluster_5ec71239:e + + + + + + + +SCHCRWLR_5EC69DDA_0001437A - + -command_6371df8a:w->package_fab13485:e - - - - - - - - - - -command_6371df8a:w->spec_27641a:e - - - - - - - - - - -command_6371df8a:w->spec_27641a:e - - - - - - - - - - -device_type_command_774386ce - - -DEVICE_TYPE_COMMAND - -[table] -DEVICE_TYPE_CLUSTER_REF - -INTEGER -COMMAND_REF - -INTEGER -COMMAND_NAME - -TEXT - - - - -device_type_command_774386ce:w->device_type_cluster_7298b97d:e - - - - - - - - - - -device_type_command_774386ce:w->command_6371df8a:e - - - - - - - +tag_1b7d9:w->package_fab13485:e + + + + + + + +SCHCRWLR_FAB0C026_0001437A - + command_arg_294e7f81 - - -COMMAND_ARG - -[table] -COMMAND_REF - -INTEGER -FIELD_IDENTIFIER - -INTEGER -NAME - -TEXT -TYPE - -TEXT -MIN - -TEXT -MAX - -TEXT -MIN_LENGTH - -INTEGER -MAX_LENGTH - -INTEGER -IS_ARRAY - -INTEGER -PRESENT_IF - -TEXT -IS_NULLABLE - -INTEGER -IS_OPTIONAL - -INTEGER -COUNT_ARG - -TEXT -INTRODUCED_IN_REF - -INTEGER -REMOVED_IN_REF - -INTEGER - + + +COMMAND_ARG + +[table] +COMMAND_REF + +INTEGER +FIELD_IDENTIFIER + +INTEGER +NAME + +TEXT +TYPE + +TEXT +MIN + +TEXT +MAX + +TEXT +MIN_LENGTH + +INTEGER +MAX_LENGTH + +INTEGER +IS_ARRAY + +INTEGER +PRESENT_IF + +TEXT +IS_NULLABLE + +INTEGER +IS_OPTIONAL + +INTEGER +COUNT_ARG + +TEXT +INTRODUCED_IN_REF + +INTEGER +REMOVED_IN_REF + +INTEGER + - + command_arg_294e7f81:w->command_6371df8a:e - - - - - - - + + + + + + + +SCHCRWLR_63716B2B_294E0B22 - + command_arg_294e7f81:w->spec_27641a:e - - - - - - - + + + + + + + +SCHCRWLR_0026EFBB_294E0B22 - + command_arg_294e7f81:w->spec_27641a:e - - - - - - - + + + + + + + +SCHCRWLR_0026EFBB_294E0B22 + + + +device_type_command_774386ce + + +DEVICE_TYPE_COMMAND + +[table] +DEVICE_TYPE_CLUSTER_REF + +INTEGER +COMMAND_REF + +INTEGER +COMMAND_NAME + +TEXT + + + + +device_type_command_774386ce:w->command_6371df8a:e + + + + + + + +SCHCRWLR_63716B2B_7743126F + + + +device_type_command_774386ce:w->device_type_cluster_7298b97d:e + + + + + + + +SCHCRWLR_7298451E_7743126F endpoint_type_command_c5d909ef - - -ENDPOINT_TYPE_COMMAND - -[table] -ENDPOINT_TYPE_COMMAND_ID - -INTEGER - -auto-incremented -ENDPOINT_TYPE_REF - -INTEGER -ENDPOINT_TYPE_CLUSTER_REF - -INTEGER -COMMAND_REF - -INTEGER -INCOMING - -INTEGER -OUTGOING - -INTEGER - - - - -endpoint_type_command_c5d909ef:w->endpoint_type_cluster_c12e3c9e:e - - - - - - - + + +ENDPOINT_TYPE_COMMAND + +[table] +ENDPOINT_TYPE_COMMAND_ID + +INTEGER + +auto-incremented +ENDPOINT_TYPE_REF + +INTEGER +ENDPOINT_TYPE_CLUSTER_REF + +INTEGER +COMMAND_REF + +INTEGER +IS_INCOMING + +INTEGER +IS_ENABLED + +INTEGER + endpoint_type_command_c5d909ef:w->command_6371df8a:e - - - - - - - + + + + + + + +SCHCRWLR_63716B2B_C5D89590 + + + +endpoint_type_command_c5d909ef:w->endpoint_type_cluster_c12e3c9e:e + + + + + + + +SCHCRWLR_C12DC83F_C5D89590 - + endpoint_type_command_c5d909ef:w->endpoint_type_9857dc03:e - - - - - - - + + + + + + + +SCHCRWLR_985767A4_C5D89590 discriminator_4931d2db - - -DISCRIMINATOR - -[table] -DISCRIMINATOR_ID - -INTEGER NOT NULL - -auto-incremented -NAME - -TEXT -PACKAGE_REF - -INTEGER - + + +DISCRIMINATOR + +[table] +DISCRIMINATOR_ID + +INTEGER NOT NULL + +auto-incremented +NAME + +TEXT +PACKAGE_REF + +INTEGER + data_type_9233070e:w->discriminator_4931d2db:e - - - - - - - + + + + + + + +SCHCRWLR_49315E7C_923292AF - + data_type_9233070e:w->package_fab13485:e - - - - - - - + + + + + + + +SCHCRWLR_FAB0C026_923292AF enum_210160 - - -ENUM - -[table] -ENUM_ID - -INTEGER NOT NULL -SIZE - -INTEGER - + + +ENUM + +[table] +ENUM_ID + +INTEGER NOT NULL +SIZE + +INTEGER + - + enum_210160:w->data_type_9233070e:e - - - - - - - + + + + + + + +SCHCRWLR_923292AF_00208D01 number_89ec43a8 - - -NUMBER - -[table] -NUMBER_ID - -INTEGER NOT NULL -SIZE - -INTEGER -IS_SIGNED - -INTEGER - + + +NUMBER + +[table] +NUMBER_ID + +INTEGER NOT NULL +SIZE + +INTEGER +IS_SIGNED + +INTEGER + - + number_89ec43a8:w->data_type_9233070e:e - - - - - - - + + + + + + + +SCHCRWLR_923292AF_89EBCF49 string_9268c870 - - -STRING - -[table] -STRING_ID - -INTEGER NOT NULL -IS_LONG - -INTEGER -SIZE - -INTEGER -IS_CHAR - -INTEGER - + + +STRING + +[table] +STRING_ID + +INTEGER NOT NULL +IS_LONG + +INTEGER +SIZE + +INTEGER +IS_CHAR + +INTEGER + - + string_9268c870:w->data_type_9233070e:e - - - - - - - + + + + + + + +SCHCRWLR_923292AF_92685411 struct_9268f434 - - -STRUCT - -[table] -STRUCT_ID - -INTEGER NOT NULL -IS_FABRIC_SCOPED - -INTEGER -SIZE - -INTEGER - + + +STRUCT + +[table] +STRUCT_ID + +INTEGER NOT NULL +IS_FABRIC_SCOPED + +INTEGER +SIZE + +INTEGER + - + struct_9268f434:w->data_type_9233070e:e - - - - - - - + + + + + + + +SCHCRWLR_923292AF_92687FD5 struct_item_d6e4bd9c - - -STRUCT_ITEM - -[table] -STRUCT_ITEM_ID - -INTEGER NOT NULL - -auto-incremented -STRUCT_REF - -INTEGER -FIELD_IDENTIFIER - -INTEGER -NAME - -TEXT(100) -IS_ARRAY - -INTEGER -IS_ENUM - -INTEGER -MIN_LENGTH - -INTEGER -MAX_LENGTH - -INTEGER -IS_WRITABLE - -INTEGER -IS_NULLABLE - -INTEGER -IS_OPTIONAL - -INTEGER -IS_FABRIC_SENSITIVE - -INTEGER -SIZE - -INTEGER -DATA_TYPE_REF - -INTEGER NOT NULL - + + +STRUCT_ITEM + +[table] +STRUCT_ITEM_ID + +INTEGER NOT NULL + +auto-incremented +STRUCT_REF + +INTEGER +FIELD_IDENTIFIER + +INTEGER +NAME + +TEXT(100) +IS_ARRAY + +INTEGER +IS_ENUM + +INTEGER +MIN_LENGTH + +INTEGER +MAX_LENGTH + +INTEGER +IS_WRITABLE + +INTEGER +IS_NULLABLE + +INTEGER +IS_OPTIONAL + +INTEGER +IS_FABRIC_SENSITIVE + +INTEGER +SIZE + +INTEGER +DATA_TYPE_REF + +INTEGER NOT NULL + struct_item_d6e4bd9c:w->data_type_9233070e:e - - - - - - - + + + + + + + +SCHCRWLR_923292AF_D6E4493D struct_item_d6e4bd9c:w->struct_9268f434:e - - - - - - - + + + + + + + +SCHCRWLR_92687FD5_D6E4493D - + device_type_2620a7e2:w->package_fab13485:e - - - - - - - + + + + + + + +SCHCRWLR_FAB0C026_26203383 endpoint_type_device_e685fbb0 - - -ENDPOINT_TYPE_DEVICE - -[table] -ENDPOINT_TYPE_DEVICE_ID - -INTEGER - -auto-incremented -DEVICE_TYPE_REF - -INTEGER -ENDPOINT_TYPE_REF - -INTEGER -DEVICE_TYPE_ORDER - -INTEGER -DEVICE_IDENTIFIER - -INTEGER -DEVICE_VERSION - -INTEGER - + + +ENDPOINT_TYPE_DEVICE + +[table] +ENDPOINT_TYPE_DEVICE_ID + +INTEGER + +auto-incremented +DEVICE_TYPE_REF + +INTEGER +ENDPOINT_TYPE_REF + +INTEGER +DEVICE_TYPE_ORDER + +INTEGER +DEVICE_IDENTIFIER + +INTEGER +DEVICE_VERSION + +INTEGER + endpoint_type_device_e685fbb0:w->device_type_2620a7e2:e - - - - - - - + + + + + + + +SCHCRWLR_26203383_E6858751 - + endpoint_type_device_e685fbb0:w->endpoint_type_9857dc03:e - - - - - - - + + + + + + + +SCHCRWLR_985767A4_E6858751 - + discriminator_4931d2db:w->package_fab13485:e - - - - - - - + + + + + + + +SCHCRWLR_FAB0C026_49315E7C domain_78873d23 - - -DOMAIN - -[table] -DOMAIN_ID - -INTEGER - -auto-incremented -PACKAGE_REF - -INTEGER -NAME - -TEXT -LATEST_SPEC_REF - -INTEGER - + + +DOMAIN + +[table] +DOMAIN_ID + +INTEGER + +auto-incremented +PACKAGE_REF + +INTEGER +NAME + +TEXT +LATEST_SPEC_REF + +INTEGER + - + domain_78873d23:w->package_fab13485:e - - - - - - - + + + + + + + +SCHCRWLR_FAB0C026_7886C8C4 domain_78873d23:w->spec_27641a:e - - - - - - - + + + + + + + +SCHCRWLR_0026EFBB_7886C8C4 endpoint_966d81f4 - - -ENDPOINT - -[table] -ENDPOINT_ID - -INTEGER - -auto-incremented -SESSION_REF - -INTEGER -ENDPOINT_TYPE_REF - -INTEGER -PROFILE - -INTEGER -ENDPOINT_IDENTIFIER - -INTEGER -NETWORK_IDENTIFIER - -INTEGER - + + +ENDPOINT + +[table] +ENDPOINT_ID + +INTEGER + +auto-incremented +SESSION_REF + +INTEGER +ENDPOINT_TYPE_REF + +INTEGER +PROFILE + +INTEGER +ENDPOINT_IDENTIFIER + +INTEGER +NETWORK_IDENTIFIER + +INTEGER + endpoint_966d81f4:w->endpoint_type_9857dc03:e - - - - - - - + + + + + + + +SCHCRWLR_985767A4_966D0D95 session_a11c82d5 - - -SESSION - -[table] -SESSION_ID - -INTEGER - -auto-incremented -USER_REF - -INTEGER -SESSION_KEY - -TEXT -CREATION_TIME - -INTEGER -DIRTY - -INTEGER - + + +SESSION + +[table] +SESSION_ID + +INTEGER + +auto-incremented +USER_REF + +INTEGER +SESSION_KEY + +TEXT +CREATION_TIME + +INTEGER +DIRTY + +INTEGER + - + endpoint_966d81f4:w->session_a11c82d5:e - - - - - - - + + + + + + + +SCHCRWLR_A11C0E76_966D0D95 - + endpoint_type_9857dc03:w->session_a11c82d5:e - - - - - - - + + + + + + + +SCHCRWLR_A11C0E76_985767A4 endpoint_type_event_e67d6e7e - - -ENDPOINT_TYPE_EVENT - -[table] -ENDPOINT_TYPE_EVENT_ID - -INTEGER - -auto-incremented -ENDPOINT_TYPE_REF - -INTEGER -ENDPOINT_TYPE_CLUSTER_REF - -INTEGER -EVENT_REF - -INTEGER -INCLUDED - -INTEGER - + + +ENDPOINT_TYPE_EVENT + +[table] +ENDPOINT_TYPE_EVENT_ID + +INTEGER + +auto-incremented +ENDPOINT_TYPE_REF + +INTEGER +ENDPOINT_TYPE_CLUSTER_REF + +INTEGER +EVENT_REF + +INTEGER +INCLUDED + +INTEGER + endpoint_type_event_e67d6e7e:w->endpoint_type_cluster_c12e3c9e:e - - - - - - - + + + + + + + +SCHCRWLR_C12DC83F_E67CFA1F - + endpoint_type_event_e67d6e7e:w->event_3f4eed9:e - - - - - - - + + + + + + + +SCHCRWLR_03F47A7A_E67CFA1F endpoint_type_event_e67d6e7e:w->endpoint_type_9857dc03:e - - - - - - - + + + + + + + +SCHCRWLR_985767A4_E67CFA1F enum_item_b6420bf0 - - -ENUM_ITEM - -[table] -ENUM_ITEM_ID - -INTEGER NOT NULL - -auto-incremented -ENUM_REF - -INTEGER -NAME - -TEXT -DESCRIPTION - -TEXT -FIELD_IDENTIFIER - -INTEGER -"VALUE" - -INTEGER - + + +ENUM_ITEM + +[table] +ENUM_ITEM_ID + +INTEGER NOT NULL + +auto-incremented +ENUM_REF + +INTEGER +NAME + +TEXT +DESCRIPTION + +TEXT +FIELD_IDENTIFIER + +INTEGER +"VALUE" + +INTEGER + enum_item_b6420bf0:w->enum_210160:e - - - - - - - + + + + + + + +SCHCRWLR_00208D01_B6419791 event_field_d102b734 - - -EVENT_FIELD - -[table] -EVENT_REF - -INTEGER -FIELD_IDENTIFIER - -INTEGER -NAME - -TEXT -TYPE - -TEXT -IS_ARRAY - -INTEGER -IS_NULLABLE - -INTEGER -IS_OPTIONAL - -INTEGER -INTRODUCED_IN_REF - -INTEGER -REMOVED_IN_REF - -INTEGER - + + +EVENT_FIELD + +[table] +EVENT_REF + +INTEGER +FIELD_IDENTIFIER + +INTEGER +NAME + +TEXT +TYPE + +TEXT +IS_ARRAY + +INTEGER +IS_NULLABLE + +INTEGER +IS_OPTIONAL + +INTEGER +INTRODUCED_IN_REF + +INTEGER +REMOVED_IN_REF + +INTEGER + event_field_d102b734:w->event_3f4eed9:e - - - - - - - + + + + + + + +SCHCRWLR_03F47A7A_D10242D5 - + event_field_d102b734:w->spec_27641a:e - - - - - - - + + + + + + + +SCHCRWLR_0026EFBB_D10242D5 - + event_field_d102b734:w->spec_27641a:e - - - - - - - + + + + + + + +SCHCRWLR_0026EFBB_D10242D5 global_attribute_bit_e934f16d - - -GLOBAL_ATTRIBUTE_BIT - -[table] -GLOBAL_ATTRIBUTE_DEFAULT_REF - -INTEGER NOT NULL -BIT - -INTEGER NOT NULL -"VALUE" - -INTEGER -TAG_REF - -INTEGER NOT NULL - + + +GLOBAL_ATTRIBUTE_BIT + +[table] +GLOBAL_ATTRIBUTE_DEFAULT_REF + +INTEGER NOT NULL +BIT + +INTEGER NOT NULL +"VALUE" + +INTEGER +TAG_REF + +INTEGER NOT NULL + global_attribute_bit_e934f16d:w->global_attribute_default_73c65a21:e - - - - - - - + + + + + + + +SCHCRWLR_73C5E5C2_E9347D0E global_attribute_bit_e934f16d:w->tag_1b7d9:e - - - - - - - + + + + + + + +SCHCRWLR_0001437A_E9347D0E - + operation_93359a6:w->package_fab13485:e - - - - - - - + + + + + + + +SCHCRWLR_FAB0C026_0932E547 package_fab13485:w->package_fab13485:e - - - - - - - + + + + + + + +SCHCRWLR_FAB0C026_FAB0C026 package_extension_2789e3a5 - - -PACKAGE_EXTENSION - -[table] -PACKAGE_EXTENSION_ID - -INTEGER - -auto-incremented -PACKAGE_REF - -INTEGER -ENTITY - -TEXT -PROPERTY - -TEXT -TYPE - -TEXT -CONFIGURABILITY - -TEXT -LABEL - -TEXT -GLOBAL_DEFAULT - -TEXT - + + +PACKAGE_EXTENSION + +[table] +PACKAGE_EXTENSION_ID + +INTEGER + +auto-incremented +PACKAGE_REF + +INTEGER +ENTITY + +TEXT +PROPERTY + +TEXT +TYPE + +TEXT +CONFIGURABILITY + +TEXT +LABEL + +TEXT +GLOBAL_DEFAULT + +TEXT + - + package_extension_2789e3a5:w->package_fab13485:e - - - - - - - + + + + + + + +SCHCRWLR_FAB0C026_27896F46 package_notice_176ee570 - - -PACKAGE_NOTICE - -[table] -PACKAGE_REF - -INTEGER -NOTICE_TYPE - -TEXT -NOTICE_MESSAGE - -TEXT -NOTICE_SEVERITY - -INTEGER -NOTICE_ID - -INTEGER - -auto-incremented - + + +PACKAGE_NOTICE + +[table] +PACKAGE_REF + +INTEGER +NOTICE_TYPE + +TEXT +NOTICE_MESSAGE + +TEXT +NOTICE_SEVERITY + +INTEGER +NOTICE_ID + +INTEGER + +auto-incremented + - + package_notice_176ee570:w->package_fab13485:e - - - - - - - + + + + + + + +SCHCRWLR_FAB0C026_176E7111 package_option_1931d70d - - -PACKAGE_OPTION - -[table] -OPTION_ID - -INTEGER - -auto-incremented -PACKAGE_REF - -INTEGER -OPTION_CATEGORY - -TEXT -OPTION_CODE - -TEXT -OPTION_LABEL - -TEXT - + + +PACKAGE_OPTION + +[table] +OPTION_ID + +INTEGER + +auto-incremented +PACKAGE_REF + +INTEGER +OPTION_CATEGORY + +TEXT +OPTION_CODE + +TEXT +OPTION_LABEL + +TEXT + - + package_option_1931d70d:w->package_fab13485:e - - - - - - - - - - -role_26ecd5:w->package_fab13485:e - - - - - - - - - - -spec_27641a:w->package_fab13485:e - - - - - - - + + + + + + + +SCHCRWLR_FAB0C026_193162AE - + package_option_default_64a251ef - - -PACKAGE_OPTION_DEFAULT - -[table] -OPTION_DEFAULT_ID - -INTEGER - -auto-incremented -PACKAGE_REF - -INTEGER -OPTION_CATEGORY - -TEXT -OPTION_REF - -INTEGER - + + +PACKAGE_OPTION_DEFAULT + +[table] +OPTION_DEFAULT_ID + +INTEGER + +auto-incremented +PACKAGE_REF + +INTEGER +OPTION_CATEGORY + +TEXT +OPTION_REF + +INTEGER + - + package_option_default_64a251ef:w->package_fab13485:e - - - - - - - + + + + + + + +SCHCRWLR_FAB0C026_64A1DD90 package_option_default_64a251ef:w->package_option_1931d70d:e - - - - - - - + + + + + + + +SCHCRWLR_193162AE_64A1DD90 + + + +role_26ecd5:w->package_fab13485:e + + + + + + + +SCHCRWLR_FAB0C026_00267876 - + session_package_61fa13bc - - -SESSION_PACKAGE - -[table] -SESSION_REF - -INTEGER -PACKAGE_REF - -INTEGER -REQUIRED - -INTEGER -ENABLED - -INTEGER - + + +SESSION_PACKAGE + +[table] +SESSION_REF + +INTEGER +PACKAGE_REF + +INTEGER +REQUIRED + +INTEGER +ENABLED + +INTEGER + - + session_package_61fa13bc:w->package_fab13485:e - - - - - - - + + + + + + + +SCHCRWLR_FAB0C026_61F99F5D session_package_61fa13bc:w->session_a11c82d5:e - - - - - - - + + + + + + + +SCHCRWLR_A11C0E76_61F99F5D + + + +spec_27641a:w->package_fab13485:e + + + + + + + +SCHCRWLR_FAB0C026_0026EFBB package_extension_default_d8d04687 - - -PACKAGE_EXTENSION_DEFAULT - -[table] -PACKAGE_EXTENSION_REF - -INTEGER -ENTITY_CODE - -INTEGER -ENTITY_QUALIFIER - -TEXT -PARENT_CODE - -INTEGER -MANUFACTURER_CODE - -INTEGER -"VALUE" - -TEXT - + + +PACKAGE_EXTENSION_DEFAULT + +[table] +PACKAGE_EXTENSION_REF + +INTEGER +ENTITY_CODE + +INTEGER +ENTITY_QUALIFIER + +TEXT +PARENT_CODE + +INTEGER +MANUFACTURER_CODE + +INTEGER +"VALUE" + +TEXT + package_extension_default_d8d04687:w->package_extension_2789e3a5:e - - - - - - - + + + + + + + +SCHCRWLR_27896F46_D8CFD228 package_extension_value_8e65d377 - - -PACKAGE_EXTENSION_VALUE - -[table] -PACKAGE_EXTENSION_VALUE_ID - -INTEGER - -auto-incremented -PACKAGE_EXTENSION_REF - -INTEGER -SESSION_REF - -INTEGER -ENTITY_CODE - -INTEGER -PARENT_CODE - -INTEGER -"VALUE" - -TEXT - + + +PACKAGE_EXTENSION_VALUE + +[table] +PACKAGE_EXTENSION_VALUE_ID + +INTEGER + +auto-incremented +PACKAGE_EXTENSION_REF + +INTEGER +SESSION_REF + +INTEGER +ENTITY_CODE + +INTEGER +PARENT_CODE + +INTEGER +"VALUE" + +TEXT + package_extension_value_8e65d377:w->package_extension_2789e3a5:e - - - - - - - + + + + + + + +SCHCRWLR_27896F46_8E655F18 - + package_extension_value_8e65d377:w->session_a11c82d5:e - - - - - - - + + + + + + + +SCHCRWLR_A11C0E76_8E655F18 user_28582a - - -"USER" - -[table] -USER_ID - -INTEGER - -auto-incremented -USER_KEY - -TEXT -CREATION_TIME - -INTEGER - + + +"USER" + +[table] +USER_ID + +INTEGER + +auto-incremented +USER_KEY + +TEXT +CREATION_TIME + +INTEGER + session_a11c82d5:w->user_28582a:e - - - - - - - + + + + + + + +SCHCRWLR_3ED95AD5_A11C0E76 session_key_value_334d9527 - - -SESSION_KEY_VALUE - -[table] -SESSION_REF - -INTEGER -KEY - -TEXT -"VALUE" - -TEXT - + + +SESSION_KEY_VALUE + +[table] +SESSION_REF + +INTEGER +KEY + +TEXT +"VALUE" + +TEXT + - + session_key_value_334d9527:w->session_a11c82d5:e - - - - - - - + + + + + + + +SCHCRWLR_A11C0E76_334D20C8 session_log_7f10ae3a - - -SESSION_LOG - -[table] -SESSION_REF - -INTEGER -"TIMESTAMP" - -TEXT -LOG - -TEXT - + + +SESSION_LOG + +[table] +SESSION_REF + +INTEGER +"TIMESTAMP" + +TEXT +LOG + +TEXT + - + session_log_7f10ae3a:w->session_a11c82d5:e - - - - - - - + + + + + + + +SCHCRWLR_A11C0E76_7F1039DB session_notice_84addd20 - - -SESSION_NOTICE - -[table] -SESSION_REF - -INTEGER -NOTICE_TYPE - -TEXT -NOTICE_MESSAGE - -TEXT -NOTICE_SEVERITY - -INTEGER -NOTICE_ID - -INTEGER - -auto-incremented -DISPLAY - -INTEGER -SEEN - -INTEGER - + + +SESSION_NOTICE + +[table] +SESSION_REF + +INTEGER +NOTICE_TYPE + +TEXT +NOTICE_MESSAGE + +TEXT +NOTICE_SEVERITY + +INTEGER +NOTICE_ID + +INTEGER + +auto-incremented +DISPLAY + +INTEGER +SEEN + +INTEGER + - + session_notice_84addd20:w->session_a11c82d5:e - - - - - - - + + + + + + + +SCHCRWLR_A11C0E76_84AD68C1 setting_a12b0e8f - - -SETTING - -[table] -CATEGORY - -TEXT -KEY - -TEXT -"VALUE" - -TEXT - + + +SETTING + +[table] +CATEGORY + +TEXT +KEY + +TEXT +"VALUE" + +TEXT + diff --git a/src-electron/db/db-mapping.js b/src-electron/db/db-mapping.js index 5f3edba78a..fcb813b84a 100644 --- a/src-electron/db/db-mapping.js +++ b/src-electron/db/db-mapping.js @@ -124,6 +124,7 @@ exports.map = { entryType: x.ARRAY_TYPE, isArray: x.ARRAY_TYPE ? 1 : 0, mustUseTimedWrite: dbApi.fromDbBool(x.MUST_USE_TIMED_WRITE), + apiMaturity: x.API_MATURITY, } }, @@ -519,6 +520,7 @@ exports.map = { minInterval: x.MIN_INTERVAL, maxInterval: x.MAX_INTERVAL, reportableChange: x.REPORTABLE_CHANGE, + apiMaturity: x.API_MATURITY, } }, @@ -580,6 +582,7 @@ exports.map = { storageOption: x.STORAGE_OPTION, tokenId: x.TOKEN_ID, // Endpoint type attribute's token id type: x.TYPE != 'array' ? x.TYPE : x.ARRAY_TYPE, // Attribute type + apiMaturity: x.API_MATURITY, } }, diff --git a/src-electron/db/query-attribute.js b/src-electron/db/query-attribute.js index 27c0726317..2f307b97db 100644 --- a/src-electron/db/query-attribute.js +++ b/src-electron/db/query-attribute.js @@ -54,7 +54,8 @@ async function selectEndpointTypeAttributesByEndpointTypeRefAndClusterRef( INCLUDED_REPORTABLE, MIN_INTERVAL, MAX_INTERVAL, - REPORTABLE_CHANGE + REPORTABLE_CHANGE, + API_MATURITY from ENDPOINT_TYPE_ATTRIBUTE where @@ -197,7 +198,8 @@ async function selectAllAttributeDetailsFromEnabledClusters( ENDPOINT_TYPE_ATTRIBUTE.DEFAULT_VALUE, ENDPOINT_TYPE_ATTRIBUTE.MIN_INTERVAL, ENDPOINT_TYPE_ATTRIBUTE.MAX_INTERVAL, - ENDPOINT_TYPE_ATTRIBUTE.REPORTABLE_CHANGE + ENDPOINT_TYPE_ATTRIBUTE.REPORTABLE_CHANGE, + ATTRIBUTE.API_MATURITY FROM ATTRIBUTE INNER JOIN ENDPOINT_TYPE_ATTRIBUTE ON ATTRIBUTE.ATTRIBUTE_ID = ENDPOINT_TYPE_ATTRIBUTE.ATTRIBUTE_REF @@ -254,7 +256,8 @@ async function selectAttributeDetailsFromAllEndpointTypesAndClustersUtil( ATTRIBUTE.MANUFACTURER_CODE, ENDPOINT_TYPE_CLUSTER.SIDE, CLUSTER.NAME AS CLUSTER_NAME, - ENDPOINT_TYPE_CLUSTER.ENABLED + ENDPOINT_TYPE_CLUSTER.ENABLED, + ATTRIBUTE.API_MATURITY FROM ATTRIBUTE INNER JOIN @@ -857,7 +860,8 @@ SELECT A.IS_NULLABLE, A.IS_SCENE_REQUIRED, A.ARRAY_TYPE, - A.MUST_USE_TIMED_WRITE + A.MUST_USE_TIMED_WRITE, + A.API_MATURITY FROM ATTRIBUTE AS A INNER JOIN CLUSTER AS C ON C.CLUSTER_ID = A.CLUSTER_REF @@ -913,7 +917,8 @@ SELECT A.IS_NULLABLE, A.IS_SCENE_REQUIRED, A.ARRAY_TYPE, - A.MUST_USE_TIMED_WRITE + A.MUST_USE_TIMED_WRITE, + A.API_MATURITY FROM ATTRIBUTE AS A WHERE A.PACKAGE_REF IN (${dbApi.toInClause(packageIds)}) AND A.CODE = ? @@ -1005,7 +1010,8 @@ async function selectTokenAttributesForEndpoint( CLUSTER.NAME AS CLUSTER_NAME, CLUSTER.DEFINE AS CLUSTER_DEFINE, ENDPOINT_TYPE_ATTRIBUTE.SINGLETON, - ENDPOINT_TYPE_ATTRIBUTE.STORAGE_OPTION + ENDPOINT_TYPE_ATTRIBUTE.STORAGE_OPTION, + ATTRIBUTE.API_MATURITY FROM ATTRIBUTE INNER JOIN diff --git a/src-electron/db/query-endpoint.js b/src-electron/db/query-endpoint.js index 0e7f2377ad..698c7ce4d3 100644 --- a/src-electron/db/query-endpoint.js +++ b/src-electron/db/query-endpoint.js @@ -135,6 +135,7 @@ SELECT A.IS_SCENE_REQUIRED, A.IS_OPTIONAL, A.DEFINE, + A.API_MATURITY, EA.STORAGE_OPTION, EA.SINGLETON, EA.BOUNDED, @@ -192,6 +193,7 @@ ORDER BY A.MANUFACTURER_CODE, A.CODE maxInterval: row.MAX_INTERVAL, reportableChange: row.REPORTABLE_CHANGE, define: row.DEFINE, + apiMaturity: row.API_MATURITY, } }) } diff --git a/src-electron/db/query-impexp.js b/src-electron/db/query-impexp.js index 6e7ccae637..4a44b84361 100644 --- a/src-electron/db/query-impexp.js +++ b/src-electron/db/query-impexp.js @@ -566,7 +566,7 @@ async function exportAttributesFromEndpointTypeCluster( endpointClusterId ) { let mapFunction = (x) => { - return { + let result = { name: x.NAME, code: x.CODE, mfgCode: x.MANUFACTURER_CODE, @@ -582,6 +582,11 @@ async function exportAttributesFromEndpointTypeCluster( maxInterval: x.MAX_INTERVAL, reportableChange: x.REPORTABLE_CHANGE, } + if (x.API_MATURITY) { + result.apiMaturity = x.API_MATURITY + } + + return result } return dbApi .dbAll( diff --git a/src-electron/db/query-loader.js b/src-electron/db/query-loader.js index 8ea4178db3..cfc1f23043 100644 --- a/src-electron/db/query-loader.js +++ b/src-electron/db/query-loader.js @@ -159,11 +159,13 @@ INSERT INTO ATTRIBUTE ( MUST_USE_TIMED_WRITE, MANUFACTURER_CODE, INTRODUCED_IN_REF, - REMOVED_IN_REF + REMOVED_IN_REF, + API_MATURITY ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, (SELECT SPEC_ID FROM SPEC WHERE CODE = ? AND PACKAGE_REF = ?), - (SELECT SPEC_ID FROM SPEC WHERE CODE = ? AND PACKAGE_REF = ?) + (SELECT SPEC_ID FROM SPEC WHERE CODE = ? AND PACKAGE_REF = ?), + ? )` const SELECT_CLUSTER_SPECIFIC_DATA_TYPE = ` @@ -224,6 +226,7 @@ function attributeMap(clusterId, packageId, attributes) { packageId, attribute.removedIn, packageId, + attribute.apiMaturity, ]) } diff --git a/src-electron/db/query-zcl.js b/src-electron/db/query-zcl.js index c08aed2982..ba6def2a7b 100644 --- a/src-electron/db/query-zcl.js +++ b/src-electron/db/query-zcl.js @@ -670,7 +670,8 @@ SELECT IS_NULLABLE, IS_SCENE_REQUIRED, ARRAY_TYPE, - MUST_USE_TIMED_WRITE + MUST_USE_TIMED_WRITE, + API_MATURITY FROM ATTRIBUTE WHERE (CLUSTER_REF = ? OR CLUSTER_REF IS NULL) AND PACKAGE_REF IN (${dbApi.toInClause(packageIds)}) @@ -715,7 +716,8 @@ SELECT IS_NULLABLE, IS_SCENE_REQUIRED, ARRAY_TYPE, - MUST_USE_TIMED_WRITE + MUST_USE_TIMED_WRITE, + API_MATURITY FROM ATTRIBUTE WHERE SIDE = ? @@ -779,7 +781,8 @@ SELECT A.IS_NULLABLE, A.IS_SCENE_REQUIRED, A.ARRAY_TYPE, - A.MUST_USE_TIMED_WRITE + A.MUST_USE_TIMED_WRITE, + A.API_MATURITY FROM ATTRIBUTE AS A, CLUSTER AS C @@ -823,7 +826,8 @@ SELECT IS_NULLABLE, IS_SCENE_REQUIRED, ARRAY_TYPE, - MUST_USE_TIMED_WRITE + MUST_USE_TIMED_WRITE, + API_MATURITY FROM ATTRIBUTE WHERE ATTRIBUTE_ID = ?`, [id] @@ -886,7 +890,8 @@ SELECT A.IS_NULLABLE, A.IS_SCENE_REQUIRED, A.ARRAY_TYPE, - A.MUST_USE_TIMED_WRITE + A.MUST_USE_TIMED_WRITE, + A.API_MATURITY FROM ATTRIBUTE AS A WHERE ATTRIBUTE_ID = ?`, [clusterRef, clusterRef, attributeId] @@ -925,6 +930,7 @@ SELECT A.IS_SCENE_REQUIRED, A.ARRAY_TYPE, A.MUST_USE_TIMED_WRITE, + A.API_MATURITY, C.CODE AS CLUSTER_CODE FROM ATTRIBUTE AS A @@ -978,7 +984,8 @@ SELECT IS_NULLABLE, IS_SCENE_REQUIRED, ARRAY_TYPE, - MUST_USE_TIMED_WRITE + MUST_USE_TIMED_WRITE, + API_MATURITY FROM ATTRIBUTE WHERE SIDE = ? AND PACKAGE_REF IN (${dbApi.toInClause(packageIds)}) diff --git a/src-electron/db/zap-schema.sql b/src-electron/db/zap-schema.sql index c5567115cd..0074c0339d 100644 --- a/src-electron/db/zap-schema.sql +++ b/src-electron/db/zap-schema.sql @@ -279,6 +279,7 @@ CREATE TABLE IF NOT EXISTS "ATTRIBUTE" ( "MUST_USE_TIMED_WRITE" integer, "INTRODUCED_IN_REF" integer, "REMOVED_IN_REF" integer, + "API_MATURITY" text, foreign key (INTRODUCED_IN_REF) references SPEC(SPEC_ID), foreign key (REMOVED_IN_REF) references SPEC(SPEC_ID), foreign key (CLUSTER_REF) references CLUSTER(CLUSTER_ID), diff --git a/src-electron/zcl/zcl-loader-silabs.js b/src-electron/zcl/zcl-loader-silabs.js index f51181189b..08a6d148ea 100644 --- a/src-electron/zcl/zcl-loader-silabs.js +++ b/src-electron/zcl/zcl-loader-silabs.js @@ -598,6 +598,7 @@ function prepareCluster(cluster, context, isExtension = false) { isNullable: attribute.$.isNullable == 'true' ? true : false, entryType: attribute.$.entryType, mustUseTimedWrite: attribute.$.mustUseTimedWrite == 'true', + apiMaturity: attribute.$.apiMaturity, } att.access = extractAccessIntoArray(attribute) if (att.manufacturerCode == null) { diff --git a/test/gen-matter-api-maturity.test.js b/test/gen-matter-api-maturity.test.js index bce65af3f3..6709f4190c 100644 --- a/test/gen-matter-api-maturity.test.js +++ b/test/gen-matter-api-maturity.test.js @@ -96,6 +96,12 @@ test( // Expect that the maturity test cluster is tagged as internal expect(ept).toContain('client cluster ApiMaturityTest = 4386 (internal) {') expect(ept).toContain('server cluster ApiMaturityTest = 4386 (internal) {') + + // attribute tagging + expect(ept).toContain('optional int8u attribute stableAttribute = 0;') + expect(ept).toContain( + 'optional int8u attribute provisionalAttribute = 1 (provisional);' + ) }, testUtil.timeout.long() ) diff --git a/test/gen-meta.test.js b/test/gen-meta.test.js index fd94ac8291..9197d89c16 100644 --- a/test/gen-meta.test.js +++ b/test/gen-meta.test.js @@ -71,21 +71,33 @@ test( const attributes = await queryZcl.selectAllAttributes(db, [ zclContext.packageId, ]) - expect(attributes.length).toBe(4) - expect(attributes[0].name).toBe('at1') - expect(attributes[1].name).toBe('at2') + expect(attributes.length).toBeGreaterThanOrEqual(4) - let access - access = await queryAccess.selectAttributeAccess(db, attributes[0].id) - expect(access.length).toBe(1) - expect(access[0].operation).toBe('write') - expect(access[0].role).toBe('manage') - expect(access[0].accessModifier).toBe('fabric-scoped') - access = await queryAccess.selectAttributeAccess(db, attributes[1].id) - expect(access.length).toBe(1) - expect(access[0].operation).toBeNull() - expect(access[0].role).toBeNull() - expect(access[0].accessModifier).toBe('fabric-sensitive') + // Expect attributes at1 and at2 to be found + let hasAt1 = false + let hasAt2 = false + + for (const attr of attributes) { + if (attr.name == 'at1') { + hasAt1 = true + + let access = await queryAccess.selectAttributeAccess(db, attr.id) + expect(access.length).toBe(1) + expect(access[0].operation).toBe('write') + expect(access[0].role).toBe('manage') + expect(access[0].accessModifier).toBe('fabric-scoped') + } else if (attr.name == 'at2') { + hasAt2 = true + + let access = await queryAccess.selectAttributeAccess(db, attr.id) + expect(access.length).toBe(1) + expect(access[0].operation).toBeNull() + expect(access[0].role).toBeNull() + expect(access[0].accessModifier).toBe('fabric-sensitive') + } + } + expect(hasAt1).toBeTruthy() + expect(hasAt2).toBeTruthy() const structs = await queryZcl.selectAllStructsWithItemCount(db, [ zclContext.packageId, diff --git a/test/gen-template/matter-api-maturity/codegen_test.zapt b/test/gen-template/matter-api-maturity/codegen_test.zapt index 1bf5e1a7ce..33930af0cd 100644 --- a/test/gen-template/matter-api-maturity/codegen_test.zapt +++ b/test/gen-template/matter-api-maturity/codegen_test.zapt @@ -7,7 +7,65 @@ Here are all clusters: cluster {{asUpperCamelCase name}} = {{code}} {{~#if apiMaturity}} ({{apiMaturity}}){{/if}} {{!~}} { - // TODO: add attributes, structures and any other things needed here + {{#zcl_enums}} + enum {{asUpperCamelCase name preserveAcronyms=true}} : ENUM{{multiply size 8}}; + + {{/zcl_enums}} + {{#zcl_bitmaps}} + bitmap {{asUpperCamelCase name preserveAcronyms=true}} : BITMAP{{multiply size 8}}; + + {{/zcl_bitmaps}} + {{#zcl_events}} + {{priority}} event {{asUpperCamelCase name preserveAcronyms=true}} = {{code}} { + {{#zcl_event_fields}} + {{#if isOptional~}}optional {{/if~}} + {{~#if isNullable~}}nullable {{/if~}} + {{~#if isFabricSensitive~}}fabric_sensitive {{/if~}} + {{type}} {{asLowerCamelCase name~}} + {{~#if isArray~}} [] {{~/if}} = {{fieldIdentifier}}; + {{/zcl_event_fields}} + } + + {{/zcl_events}} + {{#zcl_structs}} + struct {{name}} { + {{#zcl_struct_items}} + {{#if isOptional~}}optional {{/if~}} + {{~#if isNullable~}}nullable {{/if~}} + {{~#if isFabricSensitive~}}fabric_sensitive {{/if~}} + {{type}} {{asLowerCamelCase label~}} + {{~#if isArray~}} [] {{~/if}} = {{fieldIdentifier}}; + {{/zcl_struct_items}} + } + + {{/zcl_structs}} + + {{#zcl_attributes_server}} + {{#unless isGlobalAttribute}} + {{! ensure indent ~}} + {{#if isOptional~}} optional {{/if~}} + {{~#unless isWritableAttribute~}} readonly {{/unless~}} + {{~#if isNullable~}} nullable {{/if~}} + {{type}} attribute {{asLowerCamelCase name~}} {{~#if isArray~}} [] {{~/if}} = {{code~}} + {{~#if apiMaturity}} ({{apiMaturity}}) {{~/if~}}; + {{/unless}} + + {{/zcl_attributes_server}} + + {{#zcl_commands}} + command {{asUpperCamelCase commandName}} = {{code}} { + {{#zcl_command_arguments}} + {{#if isOptional~}}optional {{/if~}} + {{~#if isNullable~}}nullable {{/if~}} + {{~#if isFabricSensitive~}}fabric_sensitive {{/if~}} + {{type}} {{asLowerCamelCase label~}} + {{~#if isArray~}} [] {{~/if}} = {{fieldIdentifier}}; + {{/zcl_command_arguments}} + } + + {{/zcl_commands}} } {{~/all_user_clusters}} + + diff --git a/test/resource/meta/api_maturity.xml b/test/resource/meta/api_maturity.xml index 029534ed7b..2b0d1b84d1 100644 --- a/test/resource/meta/api_maturity.xml +++ b/test/resource/meta/api_maturity.xml @@ -30,6 +30,9 @@ limitations under the License. + StableAttribute + ProvisionalAttribute + StableAttribute A Test command diff --git a/zcl-builtin/shared/schema/zcl.xsd b/zcl-builtin/shared/schema/zcl.xsd index 24dd0dff1c..172a73b675 100644 --- a/zcl-builtin/shared/schema/zcl.xsd +++ b/zcl-builtin/shared/schema/zcl.xsd @@ -479,6 +479,7 @@ This schema describes the format of the XML files, that describe the ZCL specifi +