#  Copyright (c) 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.

#####################################################
#     below is the format of defining event         #
#####################################################
#domain: domain name.  [Only one domain name can be defined at the top]
#
#author: the author name who defined this event.
#date: the date when this event was defined, format is YYYY-MM-DD.
#logged: source file which refer to this event.
#usage: the usage of this event.
#//Define event name and event properties.
#@EVENT_NAME: the event definition part begin.
#  // __BASE is used for defining the basic info of the event.
#  // "type" optional values are: FAULT, STATISTICS, SECURITY, BEHAVIOR.
#  // "level" optional values are: CRITICAL, MINOR.
#  // "tag" set tags with may used by subscriber of this event, multiple tags devided by space.
#  // "desc" full description of this event.
#  @PARAMETER: {type: parameter type, arrsize: array length(optional), desc: parameter description}.
#  // follow the __BASE block, each line defines a parameter of this event.
#  // "type" optional values are: INT8, UINT8, INT16, UINT16, INT32, UINT32, INT64, UINT64, FLOAT, DOUBLE, STRING.
#  // "arrsize" of the parameter is an array, set a non-zero value.
#  // "desc" full description of this parameter.

#####################################################
#   Example of some hiviewdfx events definition     #
#####################################################

domain: DISTDATAMGR

DATABASE_FAULT:
  __BASE: {type: FAULT, level: CRITICAL, desc: The event is database fault }
  APP_ID: {type: STRING, desc: app id }
  STORE_ID: {type: STRING, desc: store id }
  MODULE_NAME: {type: STRING, desc: module name }
  ERROR_TYPE: {type: INT32, desc: fault type }

DATABASE_SYNC_FAILED:
  __BASE: {type: FAULT, level: CRITICAL, desc: The event is database fault }
  APP_ID: {type: STRING, desc: app id }
  STORE_ID: {type: STRING, desc: store id }
  MODULE_NAME: {type: STRING, desc: module name }
  ERROR_TYPE: {type: INT32, desc: fault type }

DATABASE_CORRUPTED_FAILED:
  __BASE: {type: FAULT, level: CRITICAL, desc: The event is database fault }
  APP_ID: {type: STRING, desc: app id }
  STORE_ID: {type: STRING, desc: store id }
  MODULE_NAME: {type: STRING, desc: module name }
  ERROR_TYPE: {type: INT32, desc: fault type }

DATABASE_REKEY_FAILED:
  __BASE: {type: FAULT, level: CRITICAL, desc: The event is database fault }
  APP_ID: {type: STRING, desc: app id }
  STORE_ID: {type: STRING, desc: store id }
  MODULE_NAME: {type: STRING, desc: module name }
  ERROR_TYPE: {type: INT32, desc: fault type }

COMMUNICATION_FAULT:
  __BASE: {type: FAULT, level: CRITICAL, desc: The event is communication fault }
  ANONYMOUS_UID: {type: STRING, desc: uid with anonymous }
  APP_ID: {type: STRING, desc: app id }
  STORE_ID: {type: STRING, desc: store id }
  SYNC_ERROR_INFO: {type: STRING, desc: error info include deviceid and error code}

VISIT_STATISTIC:
  __BASE: {type: STATISTIC, level: MINOR, desc: The event is api visit statistic }
  TAG: {type: STRING, desc: tag which value is PowerStats }
  APP_ID: {type: STRING, desc: app id }
  INTERFACE_NAME: {type: STRING, desc: interface name }
  TIMES: {type: INT32, desc: interface visit time at one hour }

TRAFFIC_STATISTIC:
  __BASE: {type: STATISTIC, level: MINOR, desc: The event is api visit statistic }
  TAG: {type: STRING, desc: tag which value is PowerStats }
  APP_ID: {type: STRING, desc: app id }
  ANONYMOUS_DID: {type: STRING, desc: decice id with anonymous }
  SEND_SIZE: {type: INT32, desc: send date size at one hour }
  RECEIVED_SIZE: {type: INT32, desc: received date size at one hour }

API_PERFORMANCE_STATISTIC:
  __BASE: {type: STATISTIC, level: MINOR, desc: The event is api visit statistic }
  INTERFACES: {type: STRING, desc: api performanace of one day }

DATABASE_BEHAVIOUR:
  __BASE: {type: BEHAVIOR, level: MINOR, desc: The event is behaviour record }
  ANONYMOUS_UID: {type: STRING, desc: uid with anonymous }
  APP_ID: {type: STRING, desc: app id }
  STORE_ID: {type: STRING, desc: store id }
  BEHAVIOUR_INFO: {type: STRING, desc: behaviour type and behaviour resulte }

UDMF_DATA_BEHAVIOR:
  __BASE: {type: BEHAVIOR, level: MINOR, desc: The event is behaviour record }
  APP_ID: {type: STRING, desc: app id }
  CHANNEL: {type: STRING, desc: channel name }
  DATA_SIZE: {type: INT64, desc: data size }
  DATA_TYPE: {type: STRING, desc: data type }
  OPERATION: {type: STRING, desc: data operation }
  RESULT: {type: STRING, desc: data operation result }

OPEN_DATABASE_FAILED:
  __BASE: {type: FAULT, level: CRITICAL, desc: The database open failed}
  APP_ID: {type: STRING, desc: app id }
  STORE_ID: {type: STRING, desc: store id }
  ERROR_CODE: {type: STRING, desc: error code}

ARKDATA_CLOUD_SYNC_FAULT:
  __BASE: {type: FAULT, level: CRITICAL, desc: The event is cloud sync fault}
  FAULT_TIME: {type: INT64, desc: time of fault happened }
  FAULT_TYPE: {type: STRING, desc: type of cloud sync fault }
  BUNDLE_NAME: {type: STRING, desc: bundle name }
  MODULE_NAME: {type: STRING, desc: module name }
  STORE_NAME: {type: STRING, desc: store name }
  BUSINESS_TYPE: {type: STRING, desc: business type }
  ERROR_CODE: {type: INT32, desc: error code }
  APPENDIX: {type: STRING, desc: such as uid/tokenid }