#  Copyright (c) 2021-2022 Huawei Device Co., Ltd.
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.

domain: AAFWK

LIFECYCLE_TIMEOUT:
  __BASE: {type: FAULT, level: CRITICAL, tag: STABILITY, desc: ability timeout}
  PID: {type: INT32, desc: pid}
  UID: {type: INT32, desc: uid}
  PACKAGE_NAME: {type: STRING, desc: package name}
  PROCESS_NAME: {type: STRING, desc: process name}
  MSG: {type: STRING, desc: application event message}

APP_LIFECYCLE_TIMEOUT:
  __BASE: {type: FAULT, level: CRITICAL, tag: STABILITY, desc: application timeout}
  PID: {type: INT32, desc: pid}
  UID: {type: INT32, desc: uid}
  PACKAGE_NAME: {type: STRING, desc: package name}
  PROCESS_NAME: {type: STRING, desc: process name}
  MSG: {type: STRING, desc: application event message}

JS_ERROR:
  __BASE: {type: FAULT, level: CRITICAL, tag: STABILITY, desc: js runtime error}
  PACKAGE_NAME: {type: STRING, desc: app package name}
  VERSION: {type: STRING, desc: app version}
  TYPE: {type: INT32, desc: js crash type}
  HAPPEN_TIME: {type: INT64, desc: fault trigger time}
  REASON: {type: STRING, desc: error type}
  JSVM: {type: STRING, desc: js runtime type}
  SUMMARY: {type: STRING, desc: fault summary}

THREAD_BLOCK_3S:
  __BASE: {type: FAULT, level: CRITICAL, tag: STABILITY, desc: application freeze}
  PID: {type: INT32, desc: pid}
  UID: {type: INT32, desc: uid}
  PACKAGE_NAME: {type: STRING, desc: package name}
  PROCESS_NAME: {type: STRING, desc: process name}
  MSG: {type: STRING, desc: application event message}

THREAD_BLOCK_6S:
  __BASE: {type: FAULT, level: CRITICAL, tag: STABILITY, desc: application freeze}
  PID: {type: INT32, desc: pid}
  UID: {type: INT32, desc: uid}
  PACKAGE_NAME: {type: STRING, desc: package name}
  PROCESS_NAME: {type: STRING, desc: process name}
  MSG: {type: STRING, desc: application event message}

# fault event

START_ABILITY_ERROR:
  __BASE: {type: FAULT, level: MINOR, tag: ability, desc: start ability error}
  USER_ID: {type: INT32, desc: userId}
  ERROR_CODE: {type: INT32, desc: error code}
  BUNDLE_NAME: {type: STRING, desc: bundle name}
  MODULE_NAME: {type: STRING, desc: module name}
  ABILITY_NAME: {type: STRING, desc: ability name}
  
TERMINATE_ABILITY_ERROR:
  __BASE: {type: FAULT, level: MINOR, tag: ability, desc: terminate ability error}
  USER_ID: {type: INT32, desc: userId}
  ERROR_CODE: {type: INT32, desc: error code}
  BUNDLE_NAME: {type: STRING, desc: bundle name}
  MODULE_NAME: {type: STRING, desc: module name}
  ABILITY_NAME: {type: STRING, desc: ability name}
  
START_EXTENSION_ERROR:
  __BASE: {type: FAULT, level: MINOR, tag: ability, desc: start extensionAbility error}
  USER_ID: {type: INT32, desc: userId}
  ERROR_CODE: {type: INT32, desc: error code}
  BUNDLE_NAME: {type: STRING, desc: bundle name}
  MODULE_NAME: {type: STRING, desc: module name}
  ABILITY_NAME: {type: STRING, desc: ability name}
  
STOP_EXTENSION_ERROR:
  __BASE: {type: FAULT, level: MINOR, tag: ability, desc: stop extensionAbility error}
  USER_ID: {type: INT32, desc: userId}
  ERROR_CODE: {type: INT32, desc: error code}
  BUNDLE_NAME: {type: STRING, desc: bundle name}
  MODULE_NAME: {type: STRING, desc: module name}
  ABILITY_NAME: {type: STRING, desc: ability name}
  
CONNECT_SERVICE_ERROR:
  __BASE: {type: FAULT, level: MINOR, tag: ability, desc: connect serviceExtensionAbility error}
  USER_ID: {type: INT32, desc: userId}
  ERROR_CODE: {type: INT32, desc: error code}
  BUNDLE_NAME: {type: STRING, desc: bundle name}
  MODULE_NAME: {type: STRING, desc: module name}
  ABILITY_NAME: {type: STRING, desc: ability name}
  
DISCONNECT_SERVICE_ERROR:
  __BASE: {type: FAULT, level: MINOR, tag: ability, desc: disconnect serviceExtensionAbility error}
  USER_ID: {type: INT32, desc: userId}
  ERROR_CODE: {type: INT32, desc: error code}
  BUNDLE_NAME: {type: STRING, desc: bundle name}
  MODULE_NAME: {type: STRING, desc: module name}
  ABILITY_NAME: {type: STRING, desc: ability name}

# ability behavior event

START_ABILITY:
  __BASE: {type: BEHAVIOR, level: MINOR, tag: PowerStats, desc: start ability}
  USER_ID: {type: INT32, desc: userId}
  BUNDLE_NAME: {type: STRING, desc: bundle name}
  MODULE_NAME: {type: STRING, desc: module name}
  ABILITY_NAME: {type: STRING, desc: ability name}

CLOSE_ABILITY:
  __BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: close ability}

TERMINATE_ABILITY:
  __BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: terminate ability}

ABILITY_ONFOREGROUND:
  __BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: start ability}
  BUNDLE_NAME: {type: STRING, desc: bundle name}
  MODULE_NAME: {type: STRING, desc: module name}
  ABILITY_NAME: {type: STRING, desc: ability name}

ABILITY_ONBACKGROUND:
  __BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: start ability}
  BUNDLE_NAME: {type: STRING, desc: bundle name}
  MODULE_NAME: {type: STRING, desc: module name}
  ABILITY_NAME: {type: STRING, desc: ability name}

# serviceExtensionAbility behavior event

START_SERVICE:
  __BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: start serviceExtensionAbility}
  USER_ID: {type: INT32, desc: userId}
  BUNDLE_NAME: {type: STRING, desc: bundle name}
  MODULE_NAME: {type: STRING, desc: module name}
  ABILITY_NAME: {type: STRING, desc: ability name}
  EXTENSION_TYPE: {type: STRING, desc: extension type}
  
STOP_SERVICE:
  __BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: stop serviceExtensionAbility}
  USER_ID: {type: INT32, desc: userId}
  BUNDLE_NAME: {type: STRING, desc: bundle name}
  MODULE_NAME: {type: STRING, desc: module name}
  ABILITY_NAME: {type: STRING, desc: ability name}
  EXTENSION_TYPE: {type: STRING, desc: extension type}
  
CONNECT_SERVICE:
  __BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: connect serviceAbility}
  USER_ID: {type: INT32, desc: userId}
  BUNDLE_NAME: {type: STRING, desc: bundle name}
  MODULE_NAME: {type: STRING, desc: module name}
  ABILITY_NAME: {type: STRING, desc: ability name}
  
DISCONNECT_SERVICE:
  __BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: disconnect serviceAbility}

# app behavior event

APP_ATTACH:
  __BASE: {type: BEHAVIOR, level: MINOR, tag: app, desc: attach app}
  APP_PID: {type: INT32, desc: app pid}
  VERSION_CODE: {type: INT32, desc: version code}
  VERSION_NAME: {type: STRING, desc: version name}
  PROCESS_NAME: {type: STRING, desc: process name}
  BUNDLE_NAME: {type: STRING, desc: bundle name}

APP_LAUNCH:
  __BASE: {type: BEHAVIOR, level: MINOR, tag: app, desc: launch app}
  APP_PID: {type: INT32, desc: app pid}
  VERSION_CODE: {type: INT32, desc: version code}
  VERSION_NAME: {type: STRING, desc: version name}
  PROCESS_NAME: {type: STRING, desc: process name}
  BUNDLE_NAME: {type: STRING, desc: bundle name}

APP_FOREGROUND:
  __BASE: {type: BEHAVIOR, level: MINOR, tag: PowerStats, desc: foreground app}
  APP_PID: {type: INT32, desc: app pid}
  VERSION_CODE: {type: INT32, desc: version code}
  VERSION_NAME: {type: STRING, desc: version name}
  PROCESS_NAME: {type: STRING, desc: process name}
  BUNDLE_NAME: {type: STRING, desc: bundle name}

APP_BACKGROUND:
  __BASE: {type: BEHAVIOR, level: MINOR, tag: PowerStats, desc: background app}
  APP_PID: {type: INT32, desc: app pid}
  VERSION_CODE: {type: INT32, desc: version code}
  VERSION_NAME: {type: STRING, desc: version name}
  PROCESS_NAME: {type: STRING, desc: process name}
  BUNDLE_NAME: {type: STRING, desc: bundle name}

APP_TERMINATE:
  __BASE: {type: BEHAVIOR, level: MINOR, tag: app, desc: terminate app}
  APP_PID: {type: INT32, desc: app pid}
  VERSION_CODE: {type: INT32, desc: version code}
  VERSION_NAME: {type: STRING, desc: version name}
  PROCESS_NAME: {type: STRING, desc: process name}
  BUNDLE_NAME: {type: STRING, desc: bundle name}