###
# ============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 for other components
#1300-1399	Security/Permission Related
#2300-2399	Availability/Timeout Related
#3300-3399	Data Access/Integrity Related
#4300-4399	Schema Interface Type/Validation
#5300-5399	Business/Flow Processing Related
#6300-6399	Reserved \u2013 do not use
#9300-9399	Unknown Errors
#
######
#{classification} description
# I = Information
# W = Warning
# E = Error
# F = Fatal
########################################################################
ASDC_GENERAL_WARNING=\
                  MSO-ASDC-5301W|\
                  WARNING: {0}|\
                  Please check other logs for more detailed info|\
                  General warning
ASDC_AUDIT_EXEC=\
                  MSO-ASDC-5302I|\
                  Executing method: {0}. {1}|\
                  No resolution needed|\
                  Executing method
ASDC_GENERAL_METRICS=\
                  MSO-ASDC-5305I|\
                  Executed method: {0}. {1}|\
                  No resolution needed|\
                  Generate information for Metric events
ASDC_CREATE_SERVICE=\
                  MSO-ASDC-5306I|\
                  Creating new VNF Resource for service {0} with id {1} and version {2}|\
                  No resolution needed|\
                  Method triggered to create new VNF Resource
ASDC_CREATE_ARTIFACT=\
                  MSO-ASDC-5307I|\
                  Installing new {0} for service {1} with id {2} and version {3}|\
                  No resolution needed|\
                  Method triggered to create new VNF Resource
ASDC_ARTIFACT_ALREADY_DEPLOYED=\
                  MSO-ASDC-5308W|\
                  Constraint violation caught, artifact is already deployed {0} and version {1}|\
                  No resolution needed|\
                  Artifact is already deployed
ASDC_ARTIFACT_INSTALL_EXC=\
                  MSO-ASDC-5309E|\
                  Exception caught during installation of the {0}. Transaction rollback.|\
                  Please check other logs for more detailed info|\
                  Exception caught during installation of the artifact
ASDC_CHECK_HEAT_TEMPLATE=\
                  MSO-ASDC-5310I|\
                  Start to verify whether {0} with name {1} and version {2} is already deployed|\
                  No resolution needed|\
                  Check artifact
ASDC_ARTIFACT_ALREADY_DEPLOYED_DETAIL=\
                  MSO-ASDC-5311I|\
                  ResourceInstanceName:{0} (ResourceUUID:{1}) is already deployed for this Service:{2}/{3}(ServiceUUID:{4}) (ResourceName: {5})|\
                  No resolution needed|\
                  Resource is already deployed
ASDC_ARTIFACT_NOT_DEPLOYED_DETAIL=\
                  MSO-ASDC-5312I|\
                 ResourceInstanceName:{0} (ResourceUUID:{1}) is not yet deployed for this Service:{2}/{3}(ServiceUUID:{4}) (ResourceName: {5})|\
                  No resolution needed|\
                  Resource is not yet deployed
ASDC_INIT_ASDC_CLIENT_EXC=\
                  MSO-ASDC-5314W|\
                  ASDControllerException caught during the Init/closing of ASDC Client with address {0} and environment {1}|\
                  Please check other logs for more detailed info|\
                  ASDControllerException caught during the Init/closing of ASDC Client
ASDC_LOAD_ASDC_CLIENT_EXC=\
                  MSO-ASDC-5315W|\
                  ASDCParametersException caught during loading/reloading of the ASDC Client with address {0} and environment {1}|\
                  Please check other logs for more detailed info|\
                  ASDCParametersException caught during loading/reloading of the ASDC Client
ASDC_SHUTDOWN_ASDC_CLIENT_EXC=\
                  MSO-ASDC-5317W|\
                  {0} caught during the ASDC Controller with address {1} and environment {2} shutdown|\
                  Please check other logs for more detailed info|\
                  Exception caught during the ASDC Controller shutdown
ASDC_START_INSTALL_ARTIFACT=\
                  MSO-ASDC-5318I|\
                  Trying to install the artifact:{0}|\
                  No resolution needed|\
                  Trying to install the artifact
ASDC_ARTIFACT_TYPE_NOT_SUPPORT=\
                  MSO-ASDC-5319W|\
                  This artifact type is not supported:{0}|\
                  No resolution needed|\
                  Artifact type is not supported
ASDC_ARTIFACT_ALREADY_EXIST=\
                  MSO-ASDC-5320I|\
                  No need to download the artifact as it exists already in MSO:{0} (UUID:{1}) associated to ResourceName {2}|\
                  No resolution needed|\
                  Artifact already exists
ASDC_ARTIFACT_DOWNLOAD_SUC=\
                  MSO-ASDC-5321I|\
                  Artifact successfully downloaded:{0} (UUID:{1}) (SIZE in Bytes:{2})|\
                  No resolution needed|\
                  Artifact successfully downloaded
ASDC_ARTIFACT_DOWNLOAD_FAIL=\
                  MSO-ASDC-5322E|\
                  Artifact :{0} could not be downloaded correctly from ASDC URL {1} (UUID:{2}) Error message is {3})|\
                  Please check other logs for more detailed info|\
                  Artifact download failed
ASDC_START_DEPLOY_ARTIFACT=\
                  MSO-ASDC-5323I|\
                  Trying to deploy the artifact:{0} (UUID:{1})|\
                  No resolution needed|\
                  Trying to deploy the artifact
ASDC_ARTIFACT_DEPLOY_SUC=\
                  MSO-ASDC-5324I|\
                  Resource successfully installed:{0} (UUID:{1}) (Nb of Modules:{2})|\
                  No resolution needed|\
                  Resource successfully installed
ASDC_SEND_NOTIF_ASDC=\
                  MSO-ASDC-5325I|\
                  Sending {0} ({1}) notification to ASDC for artifact:{2}|\
                  No resolution needed|\
                  Sending notif to ASDC
ASDC_SEND_NOTIF_ASDC_EXEC=\
                  MSO-ASDC-5326W|\
                  Exception caught when trying to notify ASDC|\
                  Please check other logs for more detailed info|\
                  Exception caught when trying to notify ASDC
ASDC_RECEIVE_CALLBACK_NOTIF=\
                  MSO-ASDC-5327I|\
                  Receive a callback notification in ASDC, nb of artifacts: {0} (ServiceUUID:{1})|\
                  No resolution needed|\
                  Receive a callback notification in ASDC
ASDC_RECEIVE_SERVICE_NOTIF=\
                  MSO-ASDC-5328I|\
                  Notification is ServiceVNF, (ServiceUUID:{0})|\
                  No resolution needed|\
                  Receive a callback notification for ServiceVNF
ASDC_ARTIFACT_NULL=\
                  MSO-ASDC-5329I|\
                  Nothing to deploy artifact is NULL, (ServiceUUID:{0})|\
                  No resolution needed|\
                  Nothing to deploy artifact is NULL
ASDC_SERVICE_NOT_SUPPORT=\
                  MSO-ASDC-5330W|\
                  Notification received, (ServiceUUID:{0}) is not a ServiceVNF and is therefore skipped|\
                  No resolution needed|\
                  Service not support
ASDC_INIT_ASDC_CLIENT_SUC=\
                  MSO-ASDC-5331I|\
                  ASDC Controller successfully initialized|\
                  No resolution needed|\
                  ASDC client initialized
ASDC_PROPERTIES_LOAD_SUCCESS=\
                  MSO-ASDC-5332I|\
                  Properties file loaded successfully|\
                  No resolution needed|\
                  Properties file loaded successfully                    
ASDC_GENERAL_EXCEPTION_ARG=\
                  MSO-ASDC-9300E|\
                  Exception: {0}|\
                  Please check other logs for more detailed info|\
                  General exception with reason
ASDC_GENERAL_EXCEPTION=\
                  MSO-ASDC-9301E|\
                  Exception encountered|\
                  Please check other logs for more detailed info|\
                  Exception encountered
ASDC_ARTIFACT_CHECK_EXC=\
                  MSO-ASDC-9302E|\
                  Exception caught during checking existence of the artifact|\
                  Please check other logs for more detailed info|\
                  Exception caught during checking existence of the artifact
ASDC_SINGLETON_CHECKT_EXC=\
                  MSO-ASDC-9303E|\
                  Exception caught during the singleton check for ASDC with address {0} and environment {1}|\
                  Please check other logs for more detailed info|\
                  Exception caught during the singleton check
ASDC_PROPERTIES_NOT_FOUND=\
                  MSO-ASDC-9304E|\
                  Properties file: {0} not found|\
                  Please verify whether properties file exist or readable|\
                  Please verify whether properties file exist or readable|\
                  Properties file not found
ASDC_GENERAL_INFO=\
                  MSO-ASDC-9305I|\
                  INFO: {0}|\
                  No resolution needed|\
                  General Info
