###
# ============LICENSE_START=======================================================
# ECOMP MSO
# ================================================================================
# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
# ================================================================================
# 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.
# ============LICENSE_END=========================================================
###

########################################################################
#Resource key=Error Code|Message text|Resolution text |Description text
#######
# {component}-{subcomponent}-{4-digit code}{classification}
#Newlines can be utilized to add some clarity ensuring continuing line
#has atleast one leading space
#ResourceKey=\
#             ERR0000E\
#             Sample error msg txt\
#             Sample resolution msg\
#             Sample description txt
#
#######
#Error code classification category
#1000-1099	Security/Permission Related
#2000-2099	Availability/Timeout Related
#3000-3099	Data Access/Integrity Related
#4000-4099	Schema Interface Type/Validation
#5000-5099	Business/Flow Processing Related
#6000-8099	Reserved \u2013 do not use
#9000-9099	Unknown Errors
#
######
#{classification} description
# I = Information
# W = Warning
# E = Error
# F = Fatal
########################################################################
APIH_QUERY_FOUND=\
				  MSO-APIH-3000I|\
                  Requests found when query DB with parameters {0}={1}|\
                  No resolution needed|\
                  Requests found when API Handler query DB
APIH_QUERY_NOT_FOUND=\
                  MSO-APIH-3001I|\
                  Request not found when query DB with parameters {0}={1}|\
                  No resolution needed|\
                  Request not found when API Handler query DB
APIH_DB_ACCESS_EXC=\
                  MSO-APIH-3003E|\
                  Unable to access DB|\
                  Please check other logs for more detailed info|\
                  Unable to access DB
APIH_DB_ACCESS_EXC_REASON=\
                  MSO-APIH-3005E|\
                  Unable to access DB: {0}|\
                  Please check other logs for more detailed info|\
                  Unable to access DB
APIH_DB_ATTRIBUTE_NOT_FOUND=\
                  MSO-APIH-3006E|\
                  Attribute {0} not found in DB|\
                  Please check other logs for more detailed info|\
                  Attribute not found in DB
APIH_DB_INSERT_EXC=\
                  MSO-APIH-3007E|\
                  Unable to insert record to DB|\
                  Please check other logs for more detailed info|\
                  Unable to insert record to DB
APIH_DB_UPDATE_EXC=\
                  MSO-APIH-3008E|\
                  Unable to update record to DB: {0}|\
                  Please check other logs for more detailed info|\
                  Unable to insert record to DB
APIH_VALIDATION_ERROR=\
                  MSO-APIH-4000E|\
                  Validation failed|\
                  Please check other logs for more detailed info|\
                  Validation failed
APIH_REQUEST_VALIDATION_ERROR=\
                  MSO-APIH-4001E|\
                  Validation of the input request failed, for incoming request:{0}|\
                  Please check other logs for more detailed info|\
                  Validation of the input request failed
APIH_SERVICE_VALIDATION_ERROR=\
                  MSO-APIH-4002E|\
                  Service params failed schema validation|\
                  Please check other logs for more detailed info|\
                  Service params failed schema validation
APIH_REQUEST_VALIDATION_ERROR_REASON=\
                  MSO-APIH-4003E|\
                  Validation of the input request failed:{0}|\
                  Please verify the input request|\
                  Validation of the input request failed
APIH_VNFREQUEST_VALIDATION_ERROR=\
                  MSO-APIH-4004E|\
                  Validation of the VNF Request failed|\
                  Please verify the VNF Request|\
                  Validation of the VNF Request failed
APIH_QUERY_PARAM_WRONG=\
                  MSO-APIH-5003W|\
                  Bad Request: {0}|\
                  Please verify the request|\
                  Bad Request
APIH_GENERAL_WARNING=\
                  MSO-APIH-5004W|\
                  WARNING: {0}|\
                  Please check other logs for more detailed info|\
                  General warning
APIH_AUDIT_EXEC=\
                  MSO-APIH-5005I|\
                  Executing request: {0}. {1}|\
                  No resolution needed|\
                  Executing method
APIH_GENERAL_METRICS=\
                  MSO-APIH-5008I|\
                  Executed method: {0}. {1}|\
                  No resolution needed|\
                  Generate information for Metric events
APIH_REQUEST_NULL=\
				          MSO-APIH-5009W|\
                  The request received by MSO is null|\
                  Please check other logs for more detailed info|\
                  The request received by MSO is null
APIH_DUPLICATE_FOUND=\
				          MSO-APIH-5011W|\
                  Duplicated request found: {0}|\
                  Please check other logs for more detailed info|\
                  Duplicated request found
APIH_BAD_ORDER=\
				          MSO-APIH-5012W|\
                  Request received with wrong order: {0}|\
                  Please check other logs for more detailed info|\
                  Request received with wrong order
APIH_BPEL_RESPONSE_ERROR=\
				          MSO-APIH-5014E|\
                  Abnormal response received from BPEL server: {0}|\
                  Please check other logs for more detailed info|\
                  Abnormal response received from BPEL server
APIH_WARP_REQUEST=\
				          MSO-APIH-5015E|\
                  Error wrapping request|\
                  Please check other logs for more detailed info|\
                  Error wrapping request to be sent to BPEL server
APIH_ERROR_FROM_BPEL_SERVER=\
				          MSO-APIH-5016E|\
                  Error from {0} with status:{1} and responseBody:{2}|\
                  Please check other logs for more detailed info|\
                  Error from BPEL Server
APIH_CANNOT_READ_SCHEMA=\
				          MSO-APIH-5017E|\
                  MSO Configuration Error - Unable to read the schema file|\
                  Please check other logs for more detailed info|\
                  MSO Configuration Error - Unable to read the schema file
APIH_PROPERTY_LOAD_SUC=\
				          MSO-APIH-5018I|\
                  Properties file loaded successfully|\
                  No resolution needed|\
                  Properties file loaded successfully
APIH_NO_PROPERTIES=\
				          MSO-APIH-5019E|\
                  Missing or invalid properties file: {0}|\
                  Please verify whether properties file exist or redable|\
                  Missing or invalid properties file
APIH_LOAD_PROPERTIES_FAIL=\
				          MSO-APIH-5020E|\
                  Unable to load properties file: {0}|\
                  Please verify whether properties file exist or redable|\
                  Unable to load properties file
APIH_GENERATED_REQUEST_ID=\
				          MSO-APIH-5021I|\
                  Missing requestID. Assigned {0}|\
                  No resolution needed|\
                  Request ID is not available
APIH_REPLACE_REQUEST_ID=\
				          MSO-APIH-5022I|\
                  Replaced invalid requestID of {0}|\
                  No resolution needed|\
                  Request ID received is not compliant with ECOMP Standards
APIH_GENERATED_SERVICE_INSTANCE_ID=\
				          MSO-APIH-5023I|\
                  Missing serviceInstanceID. Assigned {0}|\
                  No resolution needed|\
                  Service Instance ID is not available
APIH_GENERAL_EXCEPTION_ARG=\
                  MSO-APIH-9000E|\
                  Exception: {0}|\
                  Please check other logs for more detailed info|\
                  General exception with reason
APIH_GENERAL_EXCEPTION=\
                  MSO-APIH-9001E|\
                  Exception encountered|\
                  Please check other logs for more detailed info|\
                  Exception encountered
APIH_HEALTH_CHECK_EXCEPTION=\
                  MSO-APIH-9002E|\
                  Exception during health check|\
                  Please check other logs for more detailed info|\
                  Exception during health check
APIH_READ_VNFOUTPUT_CLOB_EXCEPTION=\
                  MSO-APIH-9003E|\
                  Exception reading vnfOutputs Clob|\
                  Please check other logs for more detailed info|\
                  Exception reading vnfOutputs Clob
APIH_DUPLICATE_CHECK_EXC=\
				          MSO-APIH-9004E|\
                  Exception during the duplication check for post services|\
                  Please check other logs for more detailed info|\
                  Exception during the duplicate check for post services
APIH_BPEL_COMMUNICATE_ERROR=\
				          MSO-APIH-9005E|\
                  Exception during BPEL POST|\
                  Please check other logs for more detailed info|\
                  Exception during BPEL POST
APIH_SDNC_COMMUNICATE_ERROR=\
				          MSO-APIH-9006E|\
                  Exception when sending HTTP POST request to SDNC Adapter|\
                  Please check other logs for more detailed info|\
                  Exception when sending HTTP POST request to SDNC Adapter
APIH_SDNC_RESPONSE_ERROR=\
				          MSO-APIH-9007E|\
                  IOException getting SDNC Adapter response body|\
                  Please check other logs for more detailed info|\
                  IOException getting SDNC Adapter response body
APIH_JAXB_MARSH_ERROR=\
				          MSO-APIH-9008E|\
                  Exception when translating query results into string with Jaxb|\
                  Please check other logs for more detailed info|\
                  Exception when translating query results into string with Jaxb
APIH_JAXB_UNMARSH_ERROR=\
				          MSO-APIH-9009E|\
                  Exception when formatting for VNF outputs with Jaxb|\
                  Please check other logs for more detailed info|\
                  Exception when formatting for VNF outputs
APIH_DOM2STR_ERROR=\
				          MSO-APIH-9010E|\
                  Error converting xml Document to String|\
                  Please check other logs for more detailed info|\
                  Error converting xml Document to String
APIH_DUPLICATE_CHECK_EXC_ATT=\
				          MSO-APIH-9011E|\
                  Exception during the duplication check for post services with the same attribute: {0}|\
                  Please check other logs for more detailed info|\
                  Exception during the duplicate check for post services

