Catalog alignment

Issue-ID: SDC-2724
Signed-off-by: ys9693 <ys9693@att.com>
Change-Id: I52b4aacb58cbd432ca0e1ff7ff1f7dd52099c6fe
diff --git a/catalog-be/src/main/resources/application-context.xml b/catalog-be/src/main/resources/application-context.xml
index b3dcbc1..ca36de1 100644
--- a/catalog-be/src/main/resources/application-context.xml
+++ b/catalog-be/src/main/resources/application-context.xml
@@ -1,11 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
-  xmlns:aop="http://www.springframework.org/schema/aop" xmlns:util="http://www.springframework.org/schema/util"
+  xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="
         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
-        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
-        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">
+        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
 
   <context:annotation-config />
   <aop:aspectj-autoproxy proxy-target-class="true" />
@@ -14,8 +13,8 @@
           base-package= "org.openecomp.sdc.be.components.health,
                          org.openecomp.sdc.be.servlets,
                          org.openecomp.sdc.be.externalapi.servlet,
-                         org.openecomp.sdc.be.components.scheduledtasks
-                         ">
+                         org.openecomp.sdc.be.components.scheduledtasks,
+                         org.openecomp.sdc.be.facade.operations">
   </context:component-scan>
 
   <bean class="org.openecomp.sdc.be.dao.config.DAOSpringConfig"/>
@@ -29,9 +28,10 @@
       <aop:pointcut id="lockingTransaction" expression="@annotation(org.openecomp.sdc.be.components.impl.lock.LockingTransactional) and args(componentId, componentType,..)"/>
       <aop:around method="lock" arg-names="proceedingJoinPoint,componentId,componentType" pointcut-ref="lockingTransaction"/>
     </aop:aspect>
+    <aop:aspect id="roleAuthorizationAspect" ref="roleAuthorizationHandler">
+      <aop:pointcut id="roleAuthorize" expression="@annotation(permissions)"/>
+      <aop:before method="authorizeRole" arg-names="joinPoint, permissions" pointcut-ref="roleAuthorize"/>
+    </aop:aspect>
   </aop:config>
 
-
-  <util:properties id="elasticsearchConfig" location="file:${config.home}/elasticsearch.yml" />
-  
 </beans>
diff --git a/catalog-be/src/main/resources/cadi.properties b/catalog-be/src/main/resources/cadi.properties
new file mode 100644
index 0000000..5b6c24f
--- /dev/null
+++ b/catalog-be/src/main/resources/cadi.properties
@@ -0,0 +1,55 @@
+# Configure AAF
+aaf_locate_url=https://aafist.test.att.com:8095
+aaf_url=https://aafist.test.att.com:8095/locate/com.att.aaf.service:2.0
+
+#aaf_url=https://DME2RESOLVE/service=com.att.authz.AuthorizationService/version=2.0/envContext=TEST/routeOffer=BAU_SE
+
+#if you are running aaf service from a docker image you have to use aaf service IP and port number
+aaf_id=m00468@portal.ecomp.att.com
+#Encrypt the password using AAF Jar
+aaf_password= enc:uI_J4jBL4YUcIZZa5uZKj3QMUC63hbS8TmDn5PSp5nO
+# Sample CADI Properties, from CADI 1.4.2
+hostname=ecomp.att.com
+csp_domain=PROD
+
+# Add Absolute path to Keyfile
+cadi_keyfile=/opt/app/jetty/base/be/etc/keyfile
+
+
+# This is required to accept Certificate Authentication from Certman certificates.
+# can be TEST, IST or PROD
+aaf_env=IST
+
+# DEBUG prints off all the properties.  Use to get started.
+cadi_loglevel=DEBUG
+
+
+# Become CSO Poodle Compliant by only allowing sanctioned TLS versions
+# The following is the default
+# cadi_protocols=TLSv1.1,TLSv1.2
+
+# Default TrustStore - REQUIRED for changing PROTOCOL Defaults for DME2
+# Read https://wiki.web.att.com/pages/viewpage.action?pageId=574623569#URGENT:SolvingSSL2-3/TLSv1removalissues-Up-to-dateTruststore
+# Add Absolute path to truststore2018.jks
+cadi_truststore=/opt/app/jetty/base/be/etc/cadi_truststore.jks
+# Note: This is the ONLY password that doesn't have to be encrypted. All Java's TrustStores are this passcode by default, because they are public certs
+cadi_truststore_password=changeit
+
+# how to turn on SSL Logging
+#javax.net.debug=ssl
+
+##
+# Hint
+# Use "maps.bing.com" to get Lat and Long for an Address
+AFT_LATITUDE=32.780140
+AFT_LONGITUDE=-96.800451
+AFT_ENVIRONMENT=AFTUAT
+AFT_DME2_CLIENT_IGNORE_SSL_CONFIG=true
+DME2.DEBUG=true
+AFT_DME2_HTTP_EXCHANGE_TRACE_ON=true
+
+cadi_latitude=32.780140
+cadi_longitude=-96.800451
+
+aaf_root_ns=com.att.aaf
+aaf_api_version=2.0
\ No newline at end of file
diff --git a/catalog-be/src/main/resources/config/configuration.yaml b/catalog-be/src/main/resources/config/configuration.yaml
index 2df1fc4..3dca458 100644
--- a/catalog-be/src/main/resources/config/configuration.yaml
+++ b/catalog-be/src/main/resources/config/configuration.yaml
@@ -23,12 +23,26 @@
 
 version: 1.1.0
 released: 2012-11-30
-toscaConformanceLevel: 9.0
+toscaConformanceLevel: 12.0
 minToscaConformanceLevel: 3.0
 
+# access restriction
+authCookie:
+  securityKey: "AGLDdG4D04BKm2IxIWEr8o=="
+  maxSessionTimeOut: 24*60*60*1000
+  sessionIdleTimeOut: 2*60*60*1000
+  cookieName: "AuthenticationCookie"
+  path: /
+  domain: ""
+  isHttpOnly: true
+  # redirect variable name from portal.properties file
+  redirectURL: "ecomp_redirect_url"
+  excludedUrls: ['/config', '/configmgr', '/kibanaProxy', '/healthcheck', '/v1/catalog', '/v1/catalog/archive', '/v1/followed', '/v1/catalog/upload.*', '/v1/consumers', '/v1/screen', '/v1/catalogUpdateTimea', '/v1/user.*']
+
 # These values are necessary for running upgrade migration 1710.0 process
 enableAutoHealing: false
 appVersion: 1.1.0
+artifactGeneratorConfig: Artifact-Generator.properties
 resourcesForUpgrade:
  8.0:
   - org.openecomp.resource.cp.extCP
@@ -52,8 +66,6 @@
 # The read timeout towards Janus Graph DB when health check is invoked:
 janusGraphHealthCheckReadTimeout: 1
 
-# The interval to try and reconnect to Elasticsearch when it is down during ASDC startup:
-esReconnectIntervalInSeconds: 3
 uebHealthCheckReconnectIntervalInSeconds: 15
 uebHealthCheckReadTimeout: 4
 
@@ -105,33 +117,9 @@
         - { name: dox, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['DC-sdc-iltlv650', '1']}
         - { name: sdcaudit, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['DC-sdc-iltlv650', '1']}
         - { name: sdcartifact, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['DC-sdc-iltlv650', '1']}
-        - { name: sdccomponent, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['DC-sdc-iltlv650', '1']}       
+        - { name: sdccomponent, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['DC-sdc-iltlv650', '1']}
         - { name: sdcrepository, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['DC-sdc-iltlv650', '1']}
 
-
-#Application-specific settings of ES
-elasticSearch:
-    # Mapping of index prefix to time-based frame. For example, if below is configured:
-    #
-    # - indexPrefix: auditingevents
-    #    creationPeriod: minute
-    #
-    # then ES object of type which is mapped to "auditingevents-*" template, and created on 2015-12-23 13:24:54, will enter "auditingevents-2015-12-23-13-24" index.
-    # Another object created on 2015-12-23 13:25:54, will enter "auditingevents-2015-12-23-13-25" index.
-    # If creationPeriod: month, both of the above will enter "auditingevents-2015-12" index.
-    #
-    # PLEASE NOTE: the timestamps are created in UTC/GMT timezone! This is needed so that timestamps will be correctly presented in Kibana.
-    #
-    # Legal values for creationPeriod - year, month, day, hour, minute, none (meaning no time-based behaviour).
-    #
-    # If no creationPeriod is configured for indexPrefix, default behavour is creationPeriod: month.
-    
-    indicesTimeFrequency:
-      - indexPrefix: auditingevents
-        creationPeriod: month
-      - indexPrefix: monitoring_events
-        creationPeriod: month
-
 artifactTypes:
    - CHEF
    - PUPPET
@@ -178,11 +166,6 @@
 #        - VF
 #        - VL
 deploymentResourceArtifacts:
-  cdsBlueprint:
-      displayName: "CDS Blueprint"
-      type: CONTROLLER_BLUEPRINT_ARCHIVE
-      description: "CDS deployment artifact"
-      fileExtension: "zip"
 #  heat:
 #      displayName: "Base HEAT Template"
 #      type: HEAT
@@ -321,7 +304,10 @@
     isProxy: false
     probeIntervalInSeconds: 15
 
-defaultHeatArtifactTimeoutMinutes: 60
+heatArtifactDeploymentTimeout:
+  defaultMinutes: 30
+  minMinutes: 1
+  maxMinutes: 120
 
 serviceDeploymentArtifacts:
     CONTROLLER_BLUEPRINT_ARCHIVE:
@@ -352,7 +338,7 @@
             - xml
     AAI_VF_INSTANCE_MODEL:
         acceptedTypes:
-            - xml 
+            - xml
     CLOUD_TECHNOLOGY_SPECIFIC_ARTIFACT:
         acceptedTypes:
             - zip
@@ -465,7 +451,7 @@
         acceptedTypes:
         validForResourceTypes:
             - VF
-            - VFCMT       
+            - VFCMT
     DCAE_EVENT:
         acceptedTypes:
         validForResourceTypes:
@@ -521,7 +507,6 @@
     ONBOARDED_PACKAGE:
         acceptedTypes:
             - csar
-            - zip
         validForResourceTypes:
             - VF
             - PNF
@@ -600,7 +585,7 @@
         validForResourceTypes: *allResourceTypes
     OTHER:
         acceptedTypes:
-        validForResourceTypes: 
+        validForResourceTypes:
             - VFC
             - CVFC
             - CP
@@ -631,10 +616,6 @@
 
 resourceInformationalDeployedArtifacts:
 
-requirementsToFulfillBeforeCert:
-
-capabilitiesToConsumeBeforeCert:
-
 unLoggedUrls:
    - /sdc2/rest/healthCheck
 
@@ -662,6 +643,12 @@
     port: 8080
     healthCheckUri: "/dcae/healthCheck"
 
+ecompPortal:
+    protocol: https
+    host: ecomp-portal-web-tdevn2.mtn23a.ecomp.cci.att.com
+    port: 8443
+    healthCheckUri: "/ecompui/portalApi/healthCheck"
+
 switchoverDetector:
     gBeFqdn: AIO-BE.ecomp.idns.cip.com
     gFeFqdn: AIO-FE.ecomp.idns.cip.com
@@ -703,6 +690,7 @@
     stringMaxLength: 2500
 
 disableAudit: false
+consumerBusinessLogic: false
 
 vfModuleProperties:
     min_vf_module_instances:
@@ -761,6 +749,7 @@
         path: "event.structure.faultFields.structure.alarmAdditionalInformation.comment"
         searchable: "true"
 
+#Tenant isolation consumer
 dmaapConsumerConfiguration:
     active: true
     hosts: olsd004.wnsnet.ws.com:3905
@@ -789,13 +778,50 @@
     credential:
         username: m09875@sdc.com
         password: mockhmXYcznAljMSisdy8zgcag==
+    aftDme2SslEnable: true
+    aftDme2ClientIgnoreSslConfig: false
+    aftDme2ClientKeystore: /opt/app/jetty/base/be/config/.truststore
+    aftDme2ClientKeystorePassword: hmXYcznAljMSisdy8zgcag==
+    aftDme2ClientSslCertAlias: certman
+
+#Performence microservice dmaap producer
+dmaapProducerConfiguration:
+    active: false
+    consumerGroup: asdc
+    consumerId: mama #mama - in Order To Consume Remove This String And Replace It With -> mama
+    timeoutMs: 15000
+    limit: 1
+    pollingInterval: 2
+    topic: com.sdc.23911-SDCforTestDev-v001
+    latitude: 32.109333
+    longitude: 34.855499
+    version: 1.0
+    serviceName: dmaap-v1.dev.dmaap.dt.saat.acsi.com/events
+    environment: TEST
+    partner: BOT_R
+    routeOffer: MR1
+    protocol: http
+    contenttype: application/json
+    dme2TraceOn: true
+    aftEnvironment: AFTUAT
+    aftDme2ConnectionTimeoutMs: 15000
+    aftDme2RoundtripTimeoutMs: 240000
+    aftDme2ReadTimeoutMs: 50000
+    dme2preferredRouterFilePath: DME2preferredRouter.txt
+    timeLimitForNotificationHandleMs: 120000
+    credential:
+        username: m09875@sdc.com
+        password: mockhmXYcznAljMSisdy8zgcag==
+        aftDme2SslEnable: true
+    aftDme2ClientIgnoreSslConfig: false
+    aftDme2ClientKeystore: /opt/app/jetty/base/be/config/.truststore
+    aftDme2ClientKeystorePassword: hmXYcznAljMSisdy8zgcag==
+    aftDme2ClientSslCertAlias: certman
 
 
-        
+
 dmeConfiguration:
-    dme2Search: DME2SEARCH
-    dme2Resolve: DME2RESOLVE
-
+    lookupUriFormat: "http://DME2RESOLVE/service=%s/version=1.0.0/envContext=%s/routeOffer=DEFAULT"
 
 excludedPolicyTypesMapping:
    # VF:
@@ -808,21 +834,49 @@
     CR:
        - org.openecomp.groups.VfModule
        - org.openecomp.groups.heat.HeatStack
+       - org.openecomp.groups.Group
        - tosca.groups.Root
     PNF:
        - org.openecomp.groups.VfModule
        - org.openecomp.groups.heat.HeatStack
+       - org.openecomp.groups.Group
        - tosca.groups.Root
     VF:
        - org.openecomp.groups.VfModule
        - org.openecomp.groups.heat.HeatStack
+       - org.openecomp.groups.Group
        - tosca.groups.Root
     Service:
        - org.openecomp.groups.VfModule
        - org.openecomp.groups.heat.HeatStack
+       - org.openecomp.groups.Group
        - tosca.groups.Root
 
 healthStatusExclude:
    - DE
-   - ES
    - DMAAP
+   - DMAAP_PRODUCER
+   - ECOMP_PORTAL
+
+aafNamespace: com.att.sdc
+
+aafAuthNeeded: false
+
+cadiFilterParams:
+    hostname: 192.168.33.10
+    csp_domain: PROD
+    cadi_keyfile: /opt/app/jetty/base/be/config/catalog-be/keyfile
+    cadi_loglevel: DEBUG
+    cadi_truststore: /opt/app/jetty/base/be/config/.truststore
+    cadi_truststore_password: enc:HdzGwQGAK5Rc29vzn3Kqoy9BCTbJNGgNxd72zpCUtjg
+    #aaf_url: https://DME2RESOLVE/service=com.att.authz.AuthorizationService/version=2.0/envContext=TEST/routeOffer=BAU_SE
+    aaf_id: m09875@sdc.att.com
+    aaf_password: enc:HdzGwQGAK5Rc29vzn3Kqoy9BCTbJNGgNxd72zpCUtjg
+    aaf_env: DEV
+    aafLocateUrl: https://aaf.api.simpledemo.onap.org:8095
+    aaf_url: https://AAF_LOCATE_URL/AAF_NS.service:2.0
+    AFT_LATITUDE: "32.780140"
+    AFT_LONGITUDE: "-96.800451"
+    AFT_ENVIRONMENT: AFTUAT
+    cadiX509Issuers: "CN=intermediateCA_1, OU=OSAAF, O=ONAP, C=US"
+
diff --git a/catalog-be/src/main/resources/config/distribution-engine-configuration.yaml b/catalog-be/src/main/resources/config/distribution-engine-configuration.yaml
index 4a788ca..1817ecb 100644
--- a/catalog-be/src/main/resources/config/distribution-engine-configuration.yaml
+++ b/catalog-be/src/main/resources/config/distribution-engine-configuration.yaml
@@ -82,4 +82,3 @@
           password: OTLEp5lfVhYdyw5EAtTUBQ==
        numOfRetries: 3
        
-currentArtifactInstallationTimeout: 120
diff --git a/catalog-be/src/main/resources/config/error-configuration.yaml b/catalog-be/src/main/resources/config/error-configuration.yaml
index 3045e9e..25989df 100644
--- a/catalog-be/src/main/resources/config/error-configuration.yaml
+++ b/catalog-be/src/main/resources/config/error-configuration.yaml
@@ -16,90 +16,96 @@
         code: 204,
         message: "No Content"
     }
-#--------POL4050-----------------------------
+    #--------POL4050-----------------------------
     NOT_ALLOWED: {
         code: 405,
         message: "Error: Method not allowed.",
         messageId: "POL4050"
     }
-#--------POL5000-----------------------------
+    #--------POL5000-----------------------------
     GENERAL_ERROR: {
         code: 500,
         message: "Error: Internal Server Error. Please try again later.",
         messageId: "POL5000"
     }
-#---------POL5001------------------------------
+    #---------POL5001------------------------------
     MISSING_X_ECOMP_INSTANCE_ID: {
         code: 400  ,
         message: "Error: Missing 'X-ECOMP-InstanceID' HTTP header.",
         messageId: "POL5001"
     }
-#---------POL5002------------------------------
+    #---------POL5002------------------------------
     AUTH_REQUIRED: {
         code: 401  ,
         message: "Error: Authentication is required to use the API.",
         messageId: "POL5002"
     }
-#---------POL5003------------------------------
+    #---------POL5003------------------------------
     AUTH_FAILED: {
         code: 403  ,
         message: "Error: Not authorized to use the API.",
         messageId: "POL5003"
     }
-#---------POL5004------------------------------
+    #---------POL5004------------------------------
     MISSING_USER_ID: {
         code: 400  ,
         message: "Error: Missing 'USER_ID' HTTP header.",
         messageId: "POL5004"
     }
-#---------SVC4000-----------------------------
+    #---------POL5005------------------------------
+    SESSION_EXPIRED: {
+        code: 403  ,
+        message: "Your session has expired. Please close the SDC tab and re-enter the SDC application.",
+        messageId: "POL5005"
+    }
+    #---------SVC4000-----------------------------
     INVALID_CONTENT: {
         code: 400,
         message: "Error: Invalid content.",
         messageId: "SVC4000"
     }
-#---------SVC4002-----------------------------
+    #---------SVC4002-----------------------------
     MISSING_INFORMATION: {
         code: 403,
         message: "Error: Missing information.",
         messageId: "SVC4002"
     }
-#---------SVC4003------------------------------
-# %1 - Users's ID
+    #---------SVC4003------------------------------
+    # %1 - Users's ID
     USER_NOT_FOUND: {
         code: 404,
         message: "Error: User '%1' was not found.",
         messageId: "SVC4003"
     }
-#---------SVC4004-----------------------------
-# %1 - Users's email address
+    #---------SVC4004-----------------------------
+    # %1 - Users's email address
     INVALID_EMAIL_ADDRESS: {
         code: 400,
         message: "Error: Invalid email address '%1'.",
         messageId: "SVC4004"
     }
-#---------SVC4005------------------------------
-# %1 - role
+    #---------SVC4005------------------------------
+    # %1 - role
     INVALID_ROLE: {
         code: 400,
         message: "Error: Invalid role '%1'.",
         messageId: "SVC4005"
     }
-#---------SVC4006------------------------------
-# %1 - Users's USER_ID
+    #---------SVC4006------------------------------
+    # %1 - Users's USER_ID
     USER_ALREADY_EXIST: {
         code: 409,
         message: "Error: User with '%1' ID already exists.",
         messageId: "SVC4006"
     }
-#---------SVC4007------------------------------
+    #---------SVC4007------------------------------
     DELETE_USER_ADMIN_CONFLICT: {
         code: 409,
         message: "Error: An administrator can only be deleted by another administrator.",
         messageId: "SVC4007"
     }
-#---------SVC4008-----------------------------
-# %1 - Users's userId
+    #---------SVC4008-----------------------------
+    # %1 - Users's userId
     INVALID_USER_ID: {
         code: 400,
         message: "Error: Invalid userId '%1'.",
@@ -111,105 +117,105 @@
         message: "Error: User Defined '%1'.",
         messageId: "SVC4009"
     }
-#---------SVC4049------------------------------
-# %1 - service/resource
+    #---------SVC4049------------------------------
+    # %1 - service/resource
     COMPONENT_MISSING_CONTACT: {
         code: 400,
         message: "Error: Invalid Content. Missing %1 contact.",
         messageId: "SVC4049"
     }
-#---------SVC4050-----------------------------
-# %1 - Service/Resource/Additional parameter
-# %2 - service/resource/label name
+    #---------SVC4050-----------------------------
+    # %1 - Service/Resource/Additional parameter
+    # %2 - service/resource/label name
     COMPONENT_NAME_ALREADY_EXIST: {
         code: 409,
         message: "Error: %1 with name '%2' already exists.",
         messageId: "SVC4050"
     }
-#---------SVC4051------------------------------
-# %1 - resource/service
+    #---------SVC4051------------------------------
+    # %1 - resource/service
     COMPONENT_MISSING_CATEGORY: {
         code: 400,
         message: "Error: Invalid Content. Missing %1 category.",
         messageId: "SVC4051"
     }
 
-#---------SVC4052------------------------------
+    #---------SVC4052------------------------------
     COMPONENT_MISSING_TAGS: {
         code: 400,
         message: "Error: Invalid Content. At least one tag has to be specified.",
         messageId: "SVC4052"
     }
 
-#---------SVC4053------------------------------
-# %1 - service/resource
+    #---------SVC4053------------------------------
+    # %1 - service/resource
     COMPONENT_MISSING_DESCRIPTION: {
         code: 400,
         message: "Error: Invalid Content. Missing %1 description.",
         messageId: "SVC4053"
     }
-#---------SVC4054------------------------------
-# %1 - resource/service
+    #---------SVC4054------------------------------
+    # %1 - resource/service
     COMPONENT_INVALID_CATEGORY: {
         code: 400,
         message: "Error: Invalid Content. Value %1 for the field Category is invalid.",
         messageId: "SVC4054"
     }
-#---------SVC4055------------------------------
+    #---------SVC4055------------------------------
     MISSING_VENDOR_NAME: {
         code: 400,
         message: "Error: Invalid Content. Missing vendor name.",
         messageId: "SVC4055"
     }
-#---------SVC4056------------------------------
+    #---------SVC4056------------------------------
     MISSING_VENDOR_RELEASE: {
         code: 400,
         message: "Error: Invalid Content. Missing vendor release.",
         messageId: "SVC4056"
     }
 
-#---------SVC4057------------------------------
+    #---------SVC4057------------------------------
     MISSING_DERIVED_FROM_TEMPLATE: {
         code: 400,
         message: "Error: Invalid Content. Missing derived from template specification.",
         messageId: "SVC4057"
     }
 
-#---------SVC4058------------------------------
-# %1 - service/resource
+    #---------SVC4058------------------------------
+    # %1 - service/resource
     COMPONENT_MISSING_ICON: {
         code: 400,
         message: "Error: Invalid Content. Missing %1 icon.",
         messageId: "SVC4058"
     }
-#---------SVC4059------------------------------
-# %1 - service/resource
+    #---------SVC4059------------------------------
+    # %1 - service/resource
     COMPONENT_INVALID_ICON: {
         code: 400,
         message: "Error: Invalid Content. Invalid %1 icon.",
         messageId: "SVC4059"
     }
-#---------SVC4060------------------------------
+    #---------SVC4060------------------------------
     PARENT_RESOURCE_NOT_FOUND: {
         code: 400,
         message: "Error: Invalid Content. Derived from resource template was not found.",
         messageId: "SVC4060"
     }
-#---------SVC4061------------------------------
+    #---------SVC4061------------------------------
     MULTIPLE_PARENT_RESOURCE_FOUND: {
         code: 400,
         message: "Error: Invalid Content. Multiple derived from resource template is not allowed.",
         messageId: "SVC4061"
     }
 
-#---------SVC4062------------------------------
-# %1 - service/resource
+    #---------SVC4062------------------------------
+    # %1 - service/resource
     MISSING_COMPONENT_NAME: {
         code: 400,
         message: "Error: Invalid Content. Missing %1 name.",
         messageId: "SVC4062"
     }
-#---------SVC4063------------------------------
+    #---------SVC4063------------------------------
     #%1  -  resource/service name
     RESOURCE_NOT_FOUND: {
         code: 404,
@@ -217,205 +223,205 @@
         messageId: "SVC4063"
     }
 
-#---------SVC4064------------------------------
-# %1 - Service/Resource/Property
+    #---------SVC4064------------------------------
+    # %1 - Service/Resource/Property
     COMPONENT_INVALID_DESCRIPTION: {
         code: 400,
         message: "Error: Invalid Content. %1 description contains non-english characters.",
         messageId: "SVC4064"
     }
-#---------SVC4065------------------------------
-# %1 - Service/Resource/Property
-# %2 - max resource/service name length
+    #---------SVC4065------------------------------
+    # %1 - Service/Resource/Property
+    # %2 - max resource/service name length
     COMPONENT_DESCRIPTION_EXCEEDS_LIMIT: {
         code: 400,
         message: "Error: Invalid Content. %1 description exceeds limit of %2 characters.",
         messageId: "SVC4065"
     }
-#---------SVC4066------------------------------
-# %1 - max length
+    #---------SVC4066------------------------------
+    # %1 - max length
     COMPONENT_TAGS_EXCEED_LIMIT: {
         code: 400,
         message: "Error: Invalid Content. Tags overall length exceeds limit of %1 characters.",
         messageId: "SVC4066"
     }
-#---------SVC4067------------------------------
-# %1 - max length
+    #---------SVC4067------------------------------
+    # %1 - max length
     VENDOR_NAME_EXCEEDS_LIMIT: {
         code: 400,
         message: "Error: Invalid Content. Vendor name exceeds limit of %1 characters.",
         messageId: "SVC4067"
     }
-#---------SVC4068------------------------------
-# %1 - max length
+    #---------SVC4068------------------------------
+    # %1 - max length
     VENDOR_RELEASE_EXCEEDS_LIMIT: {
         code: 400,
         message: "Error: Invalid Content. Vendor release exceeds limit of %1 characters.",
         messageId: "SVC4068"
     }
 
-#---------SVC4069------------------------------
-# %1 - Service/Resource/Product
+    #---------SVC4069------------------------------
+    # %1 - Service/Resource/Product
     COMPONENT_INVALID_CONTACT: {
         code: 400,
-        message: "Error: Invalid Content. %1 Contact Id should be in format 'mnnnnnn' or 'aannna' or 'aannnn', where m=m ,a=a-zA-Z and n=0-9",
+        message: "Error: Invalid Content. %1 Contact Id should be in format 'mnnnnnn' or 'aannna' or 'aannnn', where m=m ,a=a-zA-Z and n=0-9. Max length: 50",
         messageId: "SVC4069"
     }
-#---------SVC4070------------------------------
-# %1 - Service/Resource
+    #---------SVC4070------------------------------
+    # %1 - Service/Resource
     INVALID_COMPONENT_NAME: {
         code: 400,
         message: 'Error: Invalid Content. Value %1 for Component name is invalid. Only alphanumeric characters and regular spaces are allowed.',
         messageId: "SVC4070"
     }
 
-#---------SVC4071------------------------------
+    #---------SVC4071------------------------------
     INVALID_VENDOR_NAME: {
         code: 400,
         message: 'Error: Invalid Content. Value %1 for the field Vendor name is invalid. Only alphanumeric characters and regular spaces are allowed.',
         messageId: "SVC4071"
     }
-#---------SVC4072------------------------------
+    #---------SVC4072------------------------------
     INVALID_VENDOR_RELEASE: {
         code: 400,
         message: 'Error: Invalid Content. Value %1 for the field Vendor release is invalid. Only alphanumeric characters and regular spaces are allowed.',
         messageId: "SVC4072"
     }
-#---------SVC4073------------------------------
-# %1 - Service/Resource
-# %2 - max  resource/service name
+    #---------SVC4073------------------------------
+    # %1 - Service/Resource
+    # %2 - max  resource/service name
     COMPONENT_NAME_EXCEEDS_LIMIT: {
         code: 400,
         message: "Error: Invalid Content. %1 name exceeds limit of %2 characters.",
         messageId: "SVC4073"
     }
-#---------SVC4080------------------------------
-# %1 - resource/service name
-# %2 - resource/service
-# %3 - First name of last modifier
-# %4 - Last name of last modifier
-# %5 - USER_ID of last modifier
+    #---------SVC4080------------------------------
+    # %1 - resource/service name
+    # %2 - resource/service
+    # %3 - First name of last modifier
+    # %4 - Last name of last modifier
+    # %5 - USER_ID of last modifier
     COMPONENT_IN_CHECKOUT_STATE: {
         code: 403,
         message: "Error: Requested '%1' %2 is locked for modification by %3 %4(%5).",
         messageId: "SVC4080"
     }
-#---------SVC4081-----------------------------
-# %1 - resource/service name
-# %2 - resource/service
-# %3 - First name of last modifier
-# %4 - Last name of last modifier
-# %5 - USER_ID of last modifier
+    #---------SVC4081-----------------------------
+    # %1 - resource/service name
+    # %2 - resource/service
+    # %3 - First name of last modifier
+    # %4 - Last name of last modifier
+    # %5 - USER_ID of last modifier
     COMPONENT_IN_CERT_IN_PROGRESS_STATE: {
         code: 403,
         message: "Error: Requested '%1' %2 is locked for certification by %3 %4(%5).",
         messageId: "SVC4081"
     }
 
-#-----------SVC4082---------------------------
-# %1 - resource/service name
-# %2 - resource/service
-# %3 - First name of last modifier
-# %4 - Last name of last modifier
-# %5 - USER_ID of last modifier
+    #-----------SVC4082---------------------------
+    # %1 - resource/service name
+    # %2 - resource/service
+    # %3 - First name of last modifier
+    # %4 - Last name of last modifier
+    # %5 - USER_ID of last modifier
     COMPONENT_SENT_FOR_CERTIFICATION: {
         code: 403,
         message: "Error: Requested '%1' %2 is sent for certification by %3 %4(%5).",
         messageId: "SVC4082"
     }
-#-----------SVC4083---------------------------
+    #-----------SVC4083---------------------------
     COMPONENT_VERSION_ALREADY_EXIST: {
         code: 409,
         message: "Error: Version of this %1 was already promoted.",
         messageId: "SVC4083"
     }
-#-----------SVC4084---------------------------
-# %1 - resource/service/product name
-# %2 - resource/service/product
-# %3 - First name of last modifier
-# %4 - Last name of last modifier
-# %5 - USER_ID of last modifier
+    #-----------SVC4084---------------------------
+    # %1 - resource/service/product name
+    # %2 - resource/service/product
+    # %3 - First name of last modifier
+    # %4 - Last name of last modifier
+    # %5 - USER_ID of last modifier
     COMPONENT_ALREADY_CHECKED_IN: {
         code: 409,
         message: "Error: The current version of '%1' %2 was already checked-in by %3 %4(%5).",
         messageId: "SVC4084"
     }
-#-----------SVC4085---------------------------
-# %1 - resource/service/product name
-# %2 - resource/service/product
-# %3 - First name of last modifier
-# %4 - Last name of last modifier
-# %5 - USER_ID of last modifier
+    #-----------SVC4085---------------------------
+    # %1 - resource/service/product name
+    # %2 - resource/service/product
+    # %3 - First name of last modifier
+    # %4 - Last name of last modifier
+    # %5 - USER_ID of last modifier
     COMPONENT_CHECKOUT_BY_ANOTHER_USER: {
         code: 403,
         message: "Error: %1 %2 has already been checked out by %3 %4(%5).",
         messageId: "SVC4085"
     }
-#-----------SVC4086---------------------------
-# %1  - resource/service name
-# %2  - resource/service
+    #-----------SVC4086---------------------------
+    # %1  - resource/service name
+    # %2  - resource/service
     COMPONENT_IN_USE: {
         code: 403,
         message: "Error: '%1' %2 is still held by previous action. Please try again later.",
         messageId: "SVC4086"
     }
-#-----------SVC4087---------------------------
-# %1 - component name
-# %2 - resource/service/product
+    #-----------SVC4087---------------------------
+    # %1 - component name
+    # %2 - resource/service/product
     COMPONENT_HAS_NEWER_VERSION: {
         code: 409,
         message: "Error: Checking out of the requested version of the '%1' %2 is not allowed as a newer version exists.",
         messageId: "SVC4087"
     }
-#-----------SVC4088---------------------------
-# %1 - resource/service name
-# %2 - resource/service
-# %3 - First name of last modifier
-# %4 - Last name of last modifier
-# %5 - USER_ID of last modifier
+    #-----------SVC4088---------------------------
+    # %1 - resource/service name
+    # %2 - resource/service
+    # %3 - First name of last modifier
+    # %4 - Last name of last modifier
+    # %5 - USER_ID of last modifier
     COMPONENT_ALREADY_CERTIFIED: {
         code: 403,
         message: "Error: Requested %1 %2 has already been certified by %3 %4(%5).",
         messageId: "SVC4088"
     }
-#-----------SVC4089---------------------------
-# %1 - resource/service name
-# %2 - resource/service
+    #-----------SVC4089---------------------------
+    # %1 - resource/service name
+    # %2 - resource/service
     COMPONENT_NOT_READY_FOR_CERTIFICATION: {
         code: 403,
         message: "Error: Requested '%1' %2 is not ready for certification.",
         messageId: "SVC4089"
     }
-#-----------SVC4100---------------------------
-#%1 - property name
+    #-----------SVC4100---------------------------
+    #%1 - property name
     PROPERTY_NOT_FOUND: {
         code: 404,
         message: "Error: Requested '%1' property was not found.",
         messageId: "SVC4100"
     }
-#-----------SVC4101---------------------------
-#%1 - property name
+    #-----------SVC4101---------------------------
+    #%1 - property name
     PROPERTY_ALREADY_EXIST: {
         code: 409,
         message: "Error: Property with '%1' name already exists.",
         messageId: "SVC4101"
     }
 
-#-----------SVC4102---------------------------
-# %1 - capability type name
+    #-----------SVC4102---------------------------
+    # %1 - capability type name
     CAPABILITY_TYPE_ALREADY_EXIST: {
         code: 409,
         message: "Error: Capability Type with name '%1' already exists.",
         messageId: "SVC4102"
     }
-#-----------SVC4114---------------------------
+    #-----------SVC4114---------------------------
     AUTH_FAILED_INVALIDE_HEADER: {
         code: 400,
         message: "Error: Invalid Authorization header.",
         messageId: "SVC4114"
     }
-#-----------SVC4115---------------------------
-# %1 - capability type name
+    #-----------SVC4115---------------------------
+    # %1 - capability type name
     MISSING_CAPABILITY_TYPE: {
         code: 400,
         message: "Error: Invalid Content. Missing Capability Type '%1'.",
@@ -426,216 +432,216 @@
         message: "Error: Invalid Content.",
         messageId: "SVC4116"
     }
-#-----------SVC4117---------------------------
-# %1 - resource instance name
-# %2 - resource instance name
-# %3 - requirement name
+    #-----------SVC4117---------------------------
+    # %1 - resource instance name
+    # %2 - resource instance name
+    # %3 - requirement name
     RESOURCE_INSTANCE_MATCH_NOT_FOUND: {
         code: 404,
         message: "Error: Match not found between resource instance '%1' and resource instance '%2' for requirement '%3'.",
         messageId: "SVC4117"
     }
-#-----------SVC4118---------------------------
-# %1 - resource instance name
-# %2 - resource instance name
-# %3 - requirement name
+    #-----------SVC4118---------------------------
+    # %1 - resource instance name
+    # %2 - resource instance name
+    # %3 - requirement name
     RESOURCE_INSTANCE_ALREADY_EXIST: {
         code: 409,
         message: "Error: Resource instances '%1' and '%2' are already associated with requirement '%3'.",
         messageId: "SVC4118"
     }
-#-----------SVC4119---------------------------
-# %1 - resource instance name
-# %2 - resource instance name
-# %3 - requirement name
+    #-----------SVC4119---------------------------
+    # %1 - resource instance name
+    # %2 - resource instance name
+    # %3 - requirement name
     RESOURCE_INSTANCE_RELATION_NOT_FOUND: {
         code: 404,
         message: "Error: No relation found between resource instances '%1' and '%2' for requirement '%3'.",
         messageId: "SVC4119"
     }
-#-----------SVC4120---------------------------
-# %1 - User's USER_ID
+    #-----------SVC4120---------------------------
+    # %1 - User's USER_ID
     USER_INACTIVE: {
         code: 404,
-        message: "Error: User %1 was not found.",
+        message: "Error: User %1 inactive.",
         messageId: "SVC4120"
     }
-#-----------SVC4121---------------------------
-# %1 - User's USER_ID
+    #-----------SVC4121---------------------------
+    # %1 - User's USER_ID
     USER_HAS_ACTIVE_ELEMENTS: {
         code: 403,
         message: "Error: User with %1 ID can not be deleted since it has active elements(resources/services/artifacts).",
         messageId: "SVC4121"
     }
-#-----------SVC4122---------------------------
-# %1 - artifact type
+    #-----------SVC4122---------------------------
+    # %1 - artifact type
     ARTIFACT_TYPE_NOT_SUPPORTED: {
         code: 400,
         message: "Error: Invalid artifact type '%1'.",
         messageId: "SVC4122"
     }
-#-----------SVC4123---------------------------
+    #-----------SVC4123---------------------------
     ARTIFACT_LOGICAL_NAME_CANNOT_BE_CHANGED: {
         code: 400,
         message: "Error: Artifact logical name cannot be changed.",
         messageId: "SVC4123"
     }
-#-----------SVC4124---------------------------
+    #-----------SVC4124---------------------------
     MISSING_ARTIFACT_TYPE: {
         code: 400,
         message: "Error: Missing artifact type.",
         messageId: "SVC4124"
     }
-#-----------SVC4125---------------------------
-# %1-artifact name
+    #-----------SVC4125---------------------------
+    # %1-artifact name
     ARTIFACT_EXIST: {
         code: 400,
         message: "Error: Artifact '%1' already exists.",
         messageId: "SVC4125"
     }
-#---------SVC4126------------------------------
-# %1 - resource/service/product/...
-# %2 - field (tag, vendor name...)
+    #---------SVC4126------------------------------
+    # %1 - resource/service/product/...
+    # %2 - field (tag, vendor name...)
     INVALID_FIELD_FORMAT: {
         code: 400,
         message: "Error:  Invalid %1 %2 format.",
         messageId: "SVC4126"
     }
-#-----------SVC4127---------------------------
+    #-----------SVC4127---------------------------
     ARTIFACT_INVALID_MD5: {
         code: 400,
         message: "Error: Invalid artifact checksum.",
         messageId: "SVC4127"
     }
-#-----------SVC4128---------------------------
+    #-----------SVC4128---------------------------
     MISSING_ARTIFACT_NAME: {
         code: 400,
         message: "Error: Invalid content. Missing artifact name.",
         messageId: "SVC4128"
     }
-#-----------SVC4129---------------------------
+    #-----------SVC4129---------------------------
     MISSING_PROJECT_CODE: {
         code: 400,
         message: "Error: Invalid Content. Missing PROJECT_CODE number.",
         messageId: "SVC4129"
     }
-#-----------SVC4130---------------------------
+    #-----------SVC4130---------------------------
     INVALID_PROJECT_CODE: {
         code: 400,
-        message: "Error: Invalid Content. PROJECT_CODE must be from 3 up to 50 characters.",
+        message: "Error: Invalid Content. PROJECT_CODE must be from 5 up to 50 characters.",
         messageId: "SVC4130"
     }
-#-----------SVC4131---------------------------
-# %1-resource/service
-# %2-srtifact/artifacts
-# %3-semicolomn separated list of artifact
+    #-----------SVC4131---------------------------
+    # %1-resource/service
+    # %2-srtifact/artifacts
+    # %3-semicolomn separated list of artifact
     COMPONENT_MISSING_MANDATORY_ARTIFACTS: {
         code: 403,
         message: "Error: Missing mandatory informational %1 %2: [%3].",
         messageId: "SVC4131"
     }
-#-----------SVC4132---------------------------
-# %1 - lifecycle  type name
+    #-----------SVC4132---------------------------
+    # %1 - lifecycle  type name
     LIFECYCLE_TYPE_ALREADY_EXIST: {
         code: 409,
         message: "Error: Lifecycle Type with name '%1' already exists.",
         messageId: "SVC4132"
     }
-#-----------SVC4133---------------------------
-# %1 - service version
-# %2 - service name
+    #-----------SVC4133---------------------------
+    # %1 - service version
+    # %2 - service name
     SERVICE_NOT_AVAILABLE_FOR_DISTRIBUTION: {
         code: 403,
         message: "Error: Version %1 of '%2' service is not available for distribution.",
         messageId: "SVC4133"
     }
-#-----------SVC4134---------------------------
+    #-----------SVC4134---------------------------
     MISSING_LIFECYCLE_TYPE: {
         code: 400,
         message: "Error: Invalid Content. Missing interface life-cycle type.",
         messageId: "SVC4134"
     }
-#---------SVC4135------------------------------
+    #---------SVC4135------------------------------
     SERVICE_CATEGORY_CANNOT_BE_CHANGED: {
         code: 400,
         message: "Error: Service category cannot be changed once the service is certified.",
         messageId: "SVC4135"
     }
-#---------SVC4136------------------------------
-# %1 - distribution environment name
+    #---------SVC4136------------------------------
+    # %1 - distribution environment name
     DISTRIBUTION_ENVIRONMENT_NOT_AVAILABLE: {
         code: 500,
         message: "Error: Requested distribution environment '%1' is not available.",
         messageId: "SVC4136"
     }
-#---------SVC4137------------------------------
-# %1 - distribution environment name
+    #---------SVC4137------------------------------
+    # %1 - distribution environment name
     DISTRIBUTION_ENVIRONMENT_NOT_FOUND: {
         code: 400,
         message: "Error: Requested distribution environment '%1' was not found.",
         messageId: "SVC4137"
     }
-#---------SVC4138------------------------------
+    #---------SVC4138------------------------------
     DISTRIBUTION_ENVIRONMENT_INVALID: {
         code: 400,
         message: "Error: Invalid distribution environment.",
         messageId: "SVC4138"
     }
-#---------SVC4200------------------------------
-# %1 - Service/Resource
-# %2 - max icon name length
+    #---------SVC4200------------------------------
+    # %1 - Service/Resource
+    # %2 - max icon name length
     COMPONENT_ICON_EXCEEDS_LIMIT: {
         code: 400,
         message: "Error: Invalid Content. %1 icon name exceeds limit of %2 characters.",
         messageId: "SVC4200"
     }
-#---------SVC4300------------------------------
+    #---------SVC4300------------------------------
     RESTRICTED_ACCESS: {
         code: 403,
         message: "Error: Restricted access.",
         messageId: "SVC4300"
     }
-#---------SVC4301------------------------------
+    #---------SVC4301------------------------------
     RESTRICTED_OPERATION: {
         code: 403,
         message: "Error: Restricted operation.",
         messageId: "SVC4301"
     }
-#---------SVC4500------------------------------
+    #---------SVC4500------------------------------
     MISSING_BODY: {
         code: 400  ,
         message: "Error: Missing request body.",
         messageId: "SVC4500"
     }
-#---------SVC4501------------------------------
+    #---------SVC4501------------------------------
     MISSING_PUBLIC_KEY: {
         code: 400  ,
         message: "Error: Invalid Content. Missing mandatory parameter 'apiPublicKey'." ,
         messageId: "SVC4501"
     }
-#---------SVC4502------------------------------
+    #---------SVC4502------------------------------
     DISTRIBUTION_ENV_DOES_NOT_EXIST: {
         code: 400  ,
         message: "Error: Invalid  Body  : Missing mandatory parameter 'distrEnvName'." ,
         messageId: "SVC4502"
     }
-#-----------SVC4503---------------------------
-# %1 - service name
+    #-----------SVC4503---------------------------
+    # %1 - service name
     SERVICE_NOT_FOUND: {
         code: 404,
         message: "Error: Requested '%1' service was not found.",
         messageId: "SVC4503"
     }
 
-#---------SVC4504------------------------------
-# %1 - Service/Resource
-# %2 - service/resource version
+    #---------SVC4504------------------------------
+    # %1 - Service/Resource
+    # %2 - service/resource version
     COMPONENT_VERSION_NOT_FOUND: {
         code: 404,
         message: "Error: %1 version %2 was not found.",
         messageId: "SVC4504"
     }
-#-----------SVC4505---------------------------
+    #-----------SVC4505---------------------------
     #%1-artifact name
 
     ARTIFACT_NOT_FOUND: {
@@ -643,807 +649,788 @@
         message: "Error: Artifact '%1' was not found.",
         messageId: "SVC4505"
     }
-#---------SVC4506------------------------------
+    #---------SVC4506------------------------------
     MISSING_ENV_NAME: {
         code: 400  ,
         message: "Error: Invalid Content. Missing mandatory parameter 'distrEnvName'.",
         messageId: "SVC4506"
     }
-#---------SVC4507------------------------------
+    #---------SVC4507------------------------------
     COMPONENT_INVALID_TAGS_NO_COMP_NAME: {
         code: 400,
         message: "Error: Invalid Content. One of the tags should be the component name.",
         messageId: "SVC4507"
     }
 
-#---------SVC4508------------------------------
+    #---------SVC4508------------------------------
     SERVICE_NAME_CANNOT_BE_CHANGED: {
         code: 400,
         message: "Error: Service name cannot be changed once the service is certified.",
         messageId: "SVC4508"
     }
 
-#---------SVC4509------------------------------
+    #---------SVC4509------------------------------
     SERVICE_ICON_CANNOT_BE_CHANGED: {
         code: 400,
         message: "Error: Icon cannot be changed once the service is certified.",
         messageId: "SVC4509"
     }
-#---------SVC4510------------------------------
-# %1 - icon name max length
+    #---------SVC4510------------------------------
+    # %1 - icon name max length
     SERVICE_ICON_EXCEEDS_LIMIT: {
         code: 400,
         message: "Error: Invalid Content. Icon name exceeds limit of %1 characters.",
         messageId: "SVC4510"
     }
-#---------SVC4511------------------------------
+    #---------SVC4511------------------------------
     DISTRIBUTION_REQUESTED_NOT_FOUND: {
         code: 404,
         message: "Error: Requested distribution was not found.",
         messageId: "SVC4511"
     }
-#---------SVC4512------------------------------
-# %1 - Distribution ID
+    #---------SVC4512------------------------------
+    # %1 - Distribution ID
     DISTRIBUTION_REQUESTED_FAILED: {
         code: 403,
         message: "Error: Requested distribution '%1' failed.",
         messageId: "SVC4512"
     }
-#---------SVC4513------------------------------
+    #---------SVC4513------------------------------
     RESOURCE_CATEGORY_CANNOT_BE_CHANGED: {
         code: 400,
         message: "Error: Resource category cannot be changed once the resource is certified.",
         messageId: "SVC4513"
     }
-#---------SVC4514------------------------------
+    #---------SVC4514------------------------------
     RESOURCE_NAME_CANNOT_BE_CHANGED: {
         code: 400,
         message: "Error: Resource name cannot be changed once the resource is certified.",
         messageId: "SVC4514"
     }
-#---------SVC4515------------------------------
+    #---------SVC4515------------------------------
     RESOURCE_ICON_CANNOT_BE_CHANGED: {
         code: 400,
         message: "Error: Icon cannot be changed once the resource is certified.",
         messageId: "SVC4515"
     }
-#---------SVC4516------------------------------
+    #---------SVC4516------------------------------
     RESOURCE_VENDOR_NAME_CANNOT_BE_CHANGED: {
         code: 400,
         message: "Error: Vendor name cannot be changed once the resource is certified.",
         messageId: "SVC4516"
     }
-#---------SVC4517------------------------------
+    #---------SVC4517------------------------------
     RESOURCE_DERIVED_FROM_CANNOT_BE_CHANGED: {
         code: 400,
         message: "Error: Derived from resource template cannot be changed once the resource is certified.",
         messageId: "SVC4517"
     }
-#---------SVC4518------------------------------
-# %1 - max length
+    #---------SVC4518------------------------------
+    # %1 - max length
     COMPONENT_SINGLE_TAG_EXCEED_LIMIT: {
         code: 400,
         message: "Error: Invalid Content. Single tag exceeds limit of %1 characters.",
         messageId: "SVC4518"
     }
-#---------SVC4519------------------------------
+    #---------SVC4519------------------------------
     INVALID_DEFAULT_VALUE: {
         code: 400,
         message: "Error: mismatch in data-type occurred for property %1. data type is %2 and default value found is %3.",
         messageId: "SVC4519"
     }
-#---------SVC4520------------------------------
-# %1 - service or resource
+    #---------SVC4520------------------------------
+    # %1 - service or resource
     ADDITIONAL_INFORMATION_MAX_NUMBER_REACHED: {
         code: 409,
         message: "Error: Maximal number of additional %1 parameters was reached.",
         messageId: "SVC4520"
     }
-#---------SVC4521------------------------------
+    #---------SVC4521------------------------------
     ADDITIONAL_INFORMATION_EMPTY_STRING_NOT_ALLOWED: {
         code: 400,
         message: "Error: Invalid Content. The Additional information label and value cannot be empty.",
         messageId: "SVC4521"
     }
-#---------SVC4522------------------------------
-# %1 - label/value
-# %2 - Maximal length of %1
+    #---------SVC4522------------------------------
+    # %1 - label/value
+    # %2 - Maximal length of %1
     ADDITIONAL_INFORMATION_EXCEEDS_LIMIT: {
         code: 400,
         message: "Error: Invalid Content. Additional information %1 exceeds limit of %2 characters.",
         messageId: "SVC4522"
     }
-#---------SVC4523------------------------------
+    #---------SVC4523------------------------------
     ADDITIONAL_INFORMATION_KEY_NOT_ALLOWED_CHARACTERS: {
         code: 400,
         message: 'Error: Invalid Content. Additional information label is not allowed to contain characters like <>:"\/|?* and space characters other than regular space.',
         messageId: "SVC4523"
     }
-#---------SVC4524------------------------------
+    #---------SVC4524------------------------------
     ADDITIONAL_INFORMATION_NOT_FOUND: {
         code: 409,
         message: "Error: Requested additional information was not found.",
         messageId: "SVC4524"
     }
-#---------SVC4525------------------------------
+    #---------SVC4525------------------------------
     ADDITIONAL_INFORMATION_VALUE_NOT_ALLOWED_CHARACTERS: {
         code: 400,
         message: 'Error: Invalid Content. Additional information contains non-english characters.',
         messageId: "SVC4525"
     }
-#---------SVC4526------------------------------
+    #---------SVC4526------------------------------
     RESOURCE_INSTANCE_NOT_FOUND: {
         code: 404,
         message: "Error: Requested '%1' resource instance was not found.",
         messageId: "SVC4526"
     }
-#---------SVC4527------------------------------
+    #---------SVC4527------------------------------
     ASDC_VERSION_NOT_FOUND: {
         code: 500,
         message: 'Error: ASDC version cannot be displayed.',
         messageId: "SVC4527"
     }
-#---------SVC4528------------------------------
-# %1-artifact url/artifact label/artifact description/VNF Service Indicator
+    #---------SVC4528------------------------------
+    # %1-artifact url/artifact label/artifact description/VNF Service Indicator
     MISSING_DATA: {
         code: 400,
         message: "Error: Invalid content. Missing %1.",
         messageId: "SVC4528"
     }
-#---------SVC4529------------------------------
-# %1-artifact url/artifact label/artifact description/artifact name
-# %2 - Maximal length of %1
+    #---------SVC4529------------------------------
+    # %1-artifact url/artifact label/artifact description/artifact name
+    # %2 - Maximal length of %1
     EXCEEDS_LIMIT: {
         code: 400,
         message: "Error: Invalid Content. %1 exceeds limit of %2 characters.",
         messageId: "SVC4529"
     }
-#---------SVC4530------------------------------
+    #---------SVC4530------------------------------
     ARTIFACT_INVALID_TIMEOUT: {
         code: 400,
         message: "Error: Invalid Content. Artifact Timeout should be set to valid positive non-zero number of minutes.",
         messageId: "SVC4530"
     }
-#---------SVC4531------------------------------
+    #---------SVC4531------------------------------
     SERVICE_IS_VNF_CANNOT_BE_CHANGED: {
         code: 400,
         message: "Error: VNF Indicator cannot be updated for certified service.",
         messageId: "SVC4531"
     }
- #---------SVC4532------------------------------
+    #---------SVC4532------------------------------
     RESOURCE_INSTANCE_NOT_FOUND_ON_SERVICE: {
         code: 404,
         message: "Error: Requested '%1' resource instance was not found on the service '%2.",
         messageId: "SVC4532"
     }
- #---------SVC4533------------------------------
- # %1 -  "HEAT"/"HEAT_ENV"/"MURANO_PKG"/"YANG_XML"
+    #---------SVC4533------------------------------
+    # %1 -  "HEAT"/"HEAT_ENV"/"MURANO_PKG"/"YANG_XML"
     WRONG_ARTIFACT_FILE_EXTENSION: {
         code: 400,
         message: "Error: Invalid file extension for %1 artifact type.",
         messageId: "SVC4533"
     }
 
-#---------SVC4534------------------------------
-# %1 -  "HEAT"/"HEAT_ENV"
+    #---------SVC4534------------------------------
+    # %1 -  "HEAT"/"HEAT_ENV"
     INVALID_YAML: {
         code: 400,
         message: "Error: Uploaded YAML file for %1 artifact is invalid.",
         messageId: "SVC4534"
     }
 
-#---------SVC4535------------------------------
-# %1 -  "HEAT"
+    #---------SVC4535------------------------------
+    # %1 -  "HEAT"
     INVALID_DEPLOYMENT_ARTIFACT_HEAT: {
         code: 400,
         message: "Error: Invalid %1 artifact.",
         messageId: "SVC4535"
     }
-#---------SVC4536------------------------------
-# %1 - "Resource"/"Service"
-# %2 -  resource/service name
-# %3 -  "HEAT"/"HEAT_ENV"/"MURANO_PKG"
-# %4 -  "HEAT"/"HEAT_ENV"/"MURANO_PKG
+    #---------SVC4536------------------------------
+    # %1 - "Resource"/"Service"
+    # %2 -  resource/service name
+    # %3 -  "HEAT"/"HEAT_ENV"/"MURANO_PKG"
+    # %4 -  "HEAT"/"HEAT_ENV"/"MURANO_PKG
     DEPLOYMENT_ARTIFACT_OF_TYPE_ALREADY_EXISTS: {
         code: 400,
         message: "Error: %1 '%2' already has a deployment artifact of %3 type .Please delete or update an existing %4 artifact.",
         messageId: "SVC4536"
     }
 
-#---------SVC4537------------------------------
+    #---------SVC4537------------------------------
     MISSING_HEAT: {
         code: 400,
         message: "Error: Missing HEAT artifact. HEAT_ENV artifact cannot be uploaded without corresponding HEAT template.",
         messageId: "SVC4537"
     }
-#---------SVC4538------------------------------
+    #---------SVC4538------------------------------
     MISMATCH_HEAT_VS_HEAT_ENV: {
         code: 400,
         message: "Error: Invalid artifact content. Parameter's set in HEAT_ENV '%1' artifact doesn't match the parameters in HEAT '%2' artifact.",
         messageId: "SVC4538"
     }
-#---------SVC4539------------------------------
+    #---------SVC4539------------------------------
     INVALID_RESOURCE_PAYLOAD: {
         code: 400,
         message: "Error: Invalid resource payload.",
         messageId: "SVC4539"
     }
-#---------SVC4540------------------------------
+    #---------SVC4540------------------------------
     INVALID_TOSCA_FILE_EXTENSION: {
         code: 400,
         message: "Error: Invalid file extension for TOSCA template.",
         messageId: "SVC4540"
     }
-#---------SVC4541------------------------------
+    #---------SVC4541------------------------------
     INVALID_YAML_FILE: {
         code: 400,
         message: "Error: Invalid YAML file.",
         messageId: "SVC4541"
     }
-#---------SVC4542------------------------------
+    #---------SVC4542------------------------------
     INVALID_TOSCA_TEMPLATE: {
         code: 400,
         message: "Error: Invalid TOSCA template.",
         messageId: "SVC4542"
     }
-#---------SVC4543------------------------------
+    #---------SVC4543------------------------------
     NOT_RESOURCE_TOSCA_TEMPLATE: {
         code: 400,
         message: "Error: Imported Service TOSCA template.",
         messageId: "SVC4543"
     }
-#---------SVC4544------------------------------
+    #---------SVC4544------------------------------
     NOT_SINGLE_RESOURCE: {
         code: 400,
         message: "Error: Imported TOSCA template should contain one resource definition.",
         messageId: "SVC4544"
     }
-#---------SVC4545------------------------------
+    #---------SVC4545------------------------------
     INVALID_RESOURCE_NAMESPACE: {
         code: 400,
         message: "Error: Invalid resource namespace.",
         messageId: "SVC4545"
     }
-#---------SVC4546------------------------------
+    #---------SVC4546------------------------------
     RESOURCE_ALREADY_EXISTS: {
         code: 400,
         message: "Error: Imported resource already exists in ASDC Catalog.",
         messageId: "SVC4546"
     }
-#---------SVC4549------------------------------
+    #---------SVC4549------------------------------
     INVALID_RESOURCE_CHECKSUM: {
         code: 400,
         message: "Error: Invalid resource checksum.",
         messageId: "SVC4549"
     }
-#---------SVC4550------------------------------
-    #%1  -  Consumer salt
-    INVALID_LENGTH: {
-        code: 400,
-        message: "Error: Invalid %1 length.",
-        messageId: "SVC4550"
-    }
     #---------SVC4551------------------------------
-    #%1  -  ECOMP User name
+    # %1  -  ECOMP User name
     ECOMP_USER_NOT_FOUND: {
         code: 404,
         message: "Error: ECOMP User '%1' was not found.",
         messageId: "SVC4551"
     }
-#---------SVC4552------------------------------
-    CONSUMER_ALREADY_EXISTS: {
-        code: 409,
-        message: "Error: ECOMP User already exists.",
-        messageId: "SVC4552"
-    }
-#---------SVC4553-----------------------------
-    #%1  -  Consumer name / Consumer password/ Consumer salt
-    INVALID_CONTENT_PARAM: {
-        code: 400,
-        message: "Error: %1 is invalid.",
-        messageId: "SVC4553"
-    }
     #---------SVC4554------------------------------
-# %1 - "Resource"/"Service"
+    # %1 - Artifact Id
+    # %2 - "Resource"/"Service"
     COMPONENT_ARTIFACT_NOT_FOUND: {
         code: 404,
-        message: "Error: Requested artifact doesn't belong to specified %1.",
+        message: "Error: Requested artifact %1 doesn't belong to specified %2.",
         messageId: "SVC4554"
     }
-#---------SVC4554------------------------------
-# %1 - "Service name"
+    #---------SVC4554------------------------------
+    # %1 - "Service name"
     SERVICE_DEPLOYMENT_ARTIFACT_NOT_FOUND: {
         code: 403,
         message: "Error: Requested '%1' service is not ready for certification. Service has to have at least one deployment artifact.",
         messageId: "SVC4554"
     }
-#---------SVC4555------------------------------
-#%1 - "Resource"/"Service"/"Product"
-#%2 - "category"
+    #---------SVC4555------------------------------
+    # %1 - "Resource"/"Service"/"Product"
+    # %2 - "category"
     COMPONENT_ELEMENT_INVALID_NAME_LENGTH: {
         code: 400,
         message: "Error: Invalid %1 %2 name length.",
         messageId: "SVC4555"
     }
-#---------SVC4556------------------------------
-#%1 - "Resource"/"Service"/"Product"
-#%2 - "category"
+    #---------SVC4556------------------------------
+    # %1 - "Resource"/"Service"/"Product"
+    # %2 - "category"
     COMPONENT_ELEMENT_INVALID_NAME_FORMAT: {
         code: 400,
         message: "Error: Invalid %1 %2 name format.",
         messageId: "SVC4556"
     }
-#---------SVC4557------------------------------
-#%1 - "Resource"/"Service"/"Product"
-#%2 - "category name"
+    #---------SVC4557------------------------------
+    # %1 - "Resource"/"Service"/"Product"
+    # %2 - "category name"
     COMPONENT_CATEGORY_ALREADY_EXISTS: {
         code: 409,
         message: "Error: %1 category name '%2' already exists.",
         messageId: "SVC4557"
     }
-#---------SVC4558------------------------------
-# %1 - "service"/"VF"
-# %2 - "Resource name"
+    #---------SVC4558------------------------------
+    # %1 - "service"/"VF"
+    # %2 - "Resource name"
     VALIDATED_RESOURCE_NOT_FOUND: {
         code: 403,
         message: "Error: Submit for Testing is not permitted as your '%1' includes non-validated '%2' resource.",
         messageId: "SVC4558"
     }
-#---------SVC4559------------------------------
-# %1 - "service"/"VF"
-# %2 - "Resource name"
+    #---------SVC4559------------------------------
+    # %1 - "service"/"VF"
+    # %2 - "Resource name"
     FOUND_ALREADY_VALIDATED_RESOURCE: {
         code: 403,
         message: "Error: Submit for Testing is not permitted as your '%1' includes non-validated '%2' resource. Please use already available validated resource version.",
         messageId: "SVC4559"
     }
-#---------SVC4560------------------------------
-# %1 - "service"/"VF"
-# %2 - "Resource name"
+    #---------SVC4560------------------------------
+    # %1 - "service"/"VF"
+    # %2 - "Resource name"
     FOUND_LIST_VALIDATED_RESOURCES: {
         code: 403,
         message: "Error: Submit for Testing is not permitted as your '%1' includes non-validated '%2' resource. Please use one of available validated resource versions.",
         messageId: "SVC4560"
     }
-#---------SVC4561------------------------------
-# %1 - "resource"/"product"
-# %2 - "category"
-# %3 - "category name"
+    #---------SVC4561------------------------------
+    # %1 - "resource"/"product"
+    # %2 - "category"
+    # %3 - "category name"
     COMPONENT_CATEGORY_NOT_FOUND: {
         code: 404,
         message: "Error: Requested %1 %2 '%3' was not found.",
         messageId: "SVC4561"
     }
-#---------SVC4562------------------------------
-# %1 - "Resource"/"Product"
-# %2 - "sub-category name"
-# %3 - "category name"
+    #---------SVC4562------------------------------
+    # %1 - "Resource"/"Product"
+    # %2 - "sub-category name"
+    # %3 - "category name"
     COMPONENT_SUB_CATEGORY_EXISTS_FOR_CATEGORY: {
         code: 409,
         message: "Error: %1 sub-category '%2' already exists under '%3' category.",
         messageId: "SVC4562"
     }
-#---------SVC4563------------------------------
-# %1 - "Product"
-# %2 - "grouping name"
-# %3 - "sub-category name"
+    #---------SVC4563------------------------------
+    # %1 - "Product"
+    # %2 - "grouping name"
+    # %3 - "sub-category name"
     COMPONENT_GROUPING_EXISTS_FOR_SUB_CATEGORY: {
         code: 409,
         message: "Error: %1 grouping '%2' already exists under '%3' sub-category.",
         messageId: "SVC4563"
     }
-#---------SVC4564------------------------------
-# %1 - product name
+    #---------SVC4564------------------------------
+    # %1 - product name
     PRODUCT_NOT_FOUND: {
         code: 404,
         message: "Error: Requested '%1' product was not found.",
         messageId: "SVC4564"
     }
-#---------SVC4565------------------------------
-# %1 - "HEAT"
-# %2  - parameter type ("string" , "boolean" , "number")
-# %3 -  parameter name
+    #---------SVC4565------------------------------
+    # %1 - "HEAT"
+    # %2  - parameter type ("string" , "boolean" , "number")
+    # %3 -  parameter name
     INVALID_HEAT_PARAMETER_VALUE: {
         code: 400,
         message: "Error: Invalid %1 artifact. Invalid %2 value set for '%3' parameter.",
         messageId: "SVC4565"
     }
-#---------SVC4566------------------------------
-# %1 - "HEAT"
-# %2  - parameter type ("string" , "boolean" , "number")
+    #---------SVC4566------------------------------
+    # %1 - "HEAT"
+    # %2  - parameter type ("string" , "boolean" , "number")
     INVALID_HEAT_PARAMETER_TYPE: {
         code: 400,
         message: "Error: Invalid %1 artifact. Unsupported '%2' parameter type.",
         messageId: "SVC4566"
     }
-#---------SVC4567------------------------------
-# %1 -  "YANG_XML"
+    #---------SVC4567------------------------------
+    # %1 -  "YANG_XML"
     INVALID_XML: {
         code: 400,
         message: "Error: Uploaded XML file for %1 artifact is invalid.",
         messageId: "SVC4567"
     }
-#---------SVC4567------------------------------
-# %1 - "User Name and UserId"
-# %2  -"checked-out"/"in-certification"
+    #---------SVC4569------------------------------
+    # %1 - "User Name and UserId"
+    # %2  -"component names ot IDs"
     CANNOT_DELETE_USER_WITH_ACTIVE_ELEMENTS: {
-        code: 409,
-        message: "Error: User cannot be deleted. User '%1' has %2 projects.",
-        messageId: "SVC4567"
+        code: 412,
+        message: "Error: User cannot be deleted. User '%1' has projects that cannot be committed: %2.",
+        messageId: "SVC4569"
     }
-#---------SVC4568------------------------------
-# %1 - "User Name and UserId"
-# %2  -"checked-out"/"in-certification"
+    #---------SVC4568------------------------------
+    # %1 - "User Name and UserId"
+    # %2  -"checked-out"/"in-certification"
     CANNOT_UPDATE_USER_WITH_ACTIVE_ELEMENTS: {
         code: 409,
         message: "Error: Role cannot be changed. User '%1' has %2 projects.",
         messageId: "SVC4568"
     }
-#---------SVC4570------------------------------
+    #---------SVC4570------------------------------
     UPDATE_USER_ADMIN_CONFLICT: {
         code: 409,
         message: "Error: An administrator is not allowed to change his/her role.",
         messageId: "SVC4570"
     }
-#---------SVC4571------------------------------
+    #---------SVC4571------------------------------
     SERVICE_CANNOT_CONTAIN_SUBCATEGORY: {
         code: 400,
         message: "Error: Sub category cannot be defined for service",
         messageId: "SVC4571"
     }
-#---------SVC4572------------------------------
-# %1 - "Resource"/"Service"
+    #---------SVC4572------------------------------
+    # %1 - "Resource"/"Service"
     COMPONENT_TOO_MUCH_CATEGORIES: {
         code: 400,
         message: "Error: %1 must have only 1 category",
         messageId: "SVC4572"
     }
-#---------SVC4574------------------------------
+    #---------SVC4574------------------------------
     RESOURCE_TOO_MUCH_SUBCATEGORIES: {
         code: 400,
         message: "Error: Resource must have only 1 sub category",
         messageId: "SVC4574"
     }
-#---------SVC4575------------------------------
+    #---------SVC4575------------------------------
     COMPONENT_MISSING_SUBCATEGORY: {
         code: 400,
         message: "Error: Missing sub category",
         messageId: "SVC4575"
     }
- #---------SVC4576------------------------------
-# %1 - "component type"
+    #---------SVC4576------------------------------
+    # %1 - "component type"
     UNSUPPORTED_ERROR: {
         code: 400,
         message: "Error : Requested component type %1 is unsupported.",
         messageId: "SVC4576"
     }
     #---------SVC4577------------------------------
-# %1 - "resource type"
+    # %1 - "resource type"
     RESOURCE_CANNOT_CONTAIN_RESOURCE_INSTANCES: {
         code: 409,
         message: "Error : Resource of type %1 cannot contain resource instances.",
         messageId: "SVC4577"
     }
-#---------SVC4578------------------------------
-# %1 - "Resource"/"Service"
-# %2 -  resource/service name
-# %3 -  "artifact name"
+    #---------SVC4578------------------------------
+    # %1 - "Resource"/"Service"
+    # %2 -  resource/service name
+    # %3 -  "artifact name"
     DEPLOYMENT_ARTIFACT_NAME_ALREADY_EXISTS: {
         code: 400,
         message: "Error: %1 '%2' already has a deployment artifact named '%3'.",
         messageId: "SVC4578"
     }
-#---------SVC4579------------------------------
-# %1 - "Category"/"Sub-Category"/"Group"
-# %2 -  category/sub-category/grouping name.
+    #---------SVC4579------------------------------
+    # %1 - "Category"/"Sub-Category"/"Group"
+    # %2 -  category/sub-category/grouping name.
     INVALID_GROUP_ASSOCIATION: {
         code: 400,
         message: "Error: Invalid group association. %1 '%2' was not found.",
         messageId: "SVC4579"
     }
-#---------SVC4580------------------------------
+    #---------SVC4580------------------------------
     EMPTY_PRODUCT_CONTACTS_LIST: {
         code: 400,
         message: "Error: Invalid content. At least one Product Contact has to be specified.",
         messageId: "SVC4580"
     }
-#---------SVC4581------------------------------
-# %1 - UserId
+    #---------SVC4581------------------------------
+    # %1 - UserId
     INVALID_PRODUCT_CONTACT: {
         code: 400,
         message: "Error: Invalid content. User '%1' cannot be set as Product Contact.",
         messageId: "SVC4581"
     }
-#---------SVC4582------------------------------
-# %1 - Product
-# %2 - "abbreviated"/"full"
+    #---------SVC4582------------------------------
+    # %1 - Product
+    # %2 - "abbreviated"/"full"
     MISSING_ONE_OF_COMPONENT_NAMES: {
         code: 400,
         message: "Error: Invalid content. Missing %1 %2 name.",
         messageId: "SVC4582"
     }
-#---------SVC4583------------------------------
-# %1 - "Icon"
-# %2 - "resource"/"service"/"product"
+    #---------SVC4583------------------------------
+    # %1 - "Icon"
+    # %2 - "resource"/"service"/"product"
     COMPONENT_PARAMETER_CANNOT_BE_CHANGED: {
         code: 400,
         message: "Error: %1 cannot be changed once the %2 is certified.",
         messageId: "SVC4583"
     }
-#---------SVC4584------------------------------
-# %1  - service/VF name
-# %2 - "service" /"VF"
-# %3 -  resource instance origin type
-# %4 -  resource instance name
-# %5 -  requirement/capability
-# %6 -  requirement/capability name
-# %7 -  "fulfilled" (for req)/"consumed (for cap)"
+    #---------SVC4584------------------------------
+    # %1  - service/VF name
+    # %2 - "service" /"VF"
+    # %3 -  resource instance origin type
+    # %4 -  resource instance name
+    # %5 -  requirement/capability
+    # %6 -  requirement/capability name
+    # %7 -  "fulfilled" (for req)/"consumed (for cap)"
     REQ_CAP_NOT_SATISFIED_BEFORE_CERTIFICATION: {
         code: 403,
         message: "Error:  Requested '%1' %2 is not ready for certification.  %3 '%4' has to have %5 '%6' %7.",
         messageId: "SVC4584"
     }
-#---------SVC4585------------------------------
+    #---------SVC4585------------------------------
     INVALID_OCCURRENCES: {
         code: 400,
         message: "Error: Invalid occurrences format.",
         messageId: "SVC4585"
     }
-#---------SVC4586------------------------------
-#---------SVC4586------------------------------
+    #---------SVC4586------------------------------
+    #---------SVC4586------------------------------
     INVALID_SERVICE_API_URL: {
         code: 400,
         message: 'Error: Invalid Service API URL. Please check whether your URL has a valid domain extension and does not contain the following characters - #?&@%+;,=$<>~^`\[]{}|"*!',
         messageId: "SVC4586"
     }
-#---------SVC4587------------------------------
-# %1  - Data type name
+    #---------SVC4587------------------------------
+    # %1  - Data type name
     DATA_TYPE_ALREADY_EXIST: {
         code: 409,
         message: 'Error: Data type %1 already exists.',
         messageId: "SVC4587"
     }
-#---------SVC4588------------------------------
-# %1  - Data type name
+    #---------SVC4588------------------------------
+    # %1  - Data type name
     DATA_TYPE_NOR_PROPERTIES_NEITHER_DERIVED_FROM: {
         code: 400,
         message: 'Error: Invalid Data type %1. Data type must have either a valid derived from declaration or at least one valid property',
         messageId: "SVC4588"
     }
-#---------SVC4589------------------------------
-# %1  - Data type name
+    #---------SVC4589------------------------------
+    # %1  - Data type name
     DATA_TYPE_PROPERTIES_CANNOT_BE_EMPTY: {
         code: 400,
         message: "Error: Invalid Data type %1. 'properties' parameter cannot be empty if provided.",
         messageId: "SVC4589"
     }
-#---------SVC4590------------------------------
-# %1  - Property type name
-# %2  - Property name
+    #---------SVC4590------------------------------
+    # %1  - Property type name
+    # %2  - Property name
     INVALID_PROPERTY_TYPE: {
         code: 400,
         message: "Error: Invalid Property type %1 in property %2.",
         messageId: "SVC4590"
     }
-#---------SVC4591------------------------------
-# %1  - Property inner type
-# %2  - Property name
+    #---------SVC4591------------------------------
+    # %1  - Property inner type
+    # %2  - Property name
     INVALID_PROPERTY_INNER_TYPE: {
         code: 400,
         message: "Error: Invalid property inner type %1, in property %2",
         messageId: "SVC4591"
     }
-#---------SVC4592------------------------------
-# %1  - component instance name
-# %2  - "resource instance"/"service instance"
+    #---------SVC4592------------------------------
+    # %1  - component instance name
+    # %2  - "resource instance"/"service instance"
     COMPONENT_INSTANCE_NOT_FOUND: {
         code: 404,
         message: "Error: Requested '%1' %2 was not found.",
         messageId: "SVC4592"
     }
-#---------SVC4593------------------------------
-# %1 - component instance name
-# %2 - "resource instance"/"service instance"
-# %3 - "resource/"service"/"product"
-# %4 - container name
+    #---------SVC4593------------------------------
+    # %1 - component instance name
+    # %2 - "resource instance"/"service instance"
+    # %3 - "resource/"service"/"product"
+    # %4 - container name
     COMPONENT_INSTANCE_NOT_FOUND_ON_CONTAINER: {
         code: 404,
         message: "Error: Requested '%1' %2 was not found on the %3 '%4'.",
         messageId: "SVC4593"
     }
-#---------SVC4594------------------------------
-#%1 - requirement / capability
-#%2 - requirement name
+    #---------SVC4594------------------------------
+    #%1 - requirement / capability
+    #%2 - requirement name
     IMPORT_DUPLICATE_REQ_CAP_NAME: {
         code: 400,
         message: "Error: Imported TOSCA template contains more than one %1 named '%2'.",
         messageId: "SVC4594"
     }
-#---------SVC4595------------------------------
-#%1 - requirement / capability
-#%2 - requirement name
-#%3 - parent containing the requirement
+    #---------SVC4595------------------------------
+    #%1 - requirement / capability
+    #%2 - requirement name
+    #%3 - parent containing the requirement
     IMPORT_REQ_CAP_NAME_EXISTS_IN_DERIVED: {
         code: 400,
         message: "Error: Imported TOSCA template contains %1 '%2' that is already defined by derived template %3.",
         messageId: "SVC4595"
     }
-#---------SVC4596------------------------------
-# %1  - Data type name
+    #---------SVC4596------------------------------
+    # %1  - Data type name
     DATA_TYPE_DERIVED_IS_MISSING: {
         code: 400,
         message: "Error: Invalid Content. The ancestor data type %1 cannot be found in the system.",
         messageId: "SVC4596"
     }
-#---------SVC4597------------------------------
-# %1  - Data type name
-# %2  - Property names
+    #---------SVC4597------------------------------
+    # %1  - Data type name
+    # %2  - Property names
     DATA_TYPE_PROPERTY_ALREADY_DEFINED_IN_ANCESTOR: {
         code: 400,
         message: "Error: Invalid Content. The data type %1 contains properties named %2 which are already defined in one of its ancestors.",
         messageId: "SVC4597"
     }
-#---------SVC4598------------------------------
-# %1  - Data type name
+    #---------SVC4598------------------------------
+    # %1  - Data type name
     DATA_TYPE_DUPLICATE_PROPERTY: {
         code: 400,
         message: "Error: Invalid Content. The data type %1 contains duplicate property.",
         messageId: "SVC4598"
     }
-#---------SVC4599------------------------------
-# %1  - Data type name
-# %2  - Property names
+    #---------SVC4599------------------------------
+    # %1  - Data type name
+    # %2  - Property names
     DATA_TYPE_PROEPRTY_CANNOT_HAVE_SAME_TYPE_OF_DATA_TYPE: {
         code: 400,
         message: "Error: Invalid Content. The data type %1 contains properties %2 which their type is this data type.",
         messageId: "SVC4599"
     }
-#---------SVC4600------------------------------
-# %1  - Data type name
+    #---------SVC4600------------------------------
+    # %1  - Data type name
     DATA_TYPE_CANNOT_HAVE_PROPERTIES: {
         code: 400,
         message: "Error: Invalid Content. The data type %1 cannot have properties since it is of type scalar",
         messageId: "SVC4600"
     }
-#---------SVC4601------------------------------
+    #---------SVC4601------------------------------
     NOT_TOPOLOGY_TOSCA_TEMPLATE: {
         code: 400,
         message: "Error: TOSCA yaml file %1 cannot be modeled to VF as it does not contain 'topology_template.",
         messageId: "SVC4601"
     }
-#---------SVC4602--------------------------------
-# %1 - yaml file name
-# %2 - node_template label
-# %3 - node_template type
+    #---------SVC4602--------------------------------
+    # %1 - yaml file name
+    # %2 - node_template label
+    # %3 - node_template type
     INVALID_NODE_TEMPLATE: {
         code: 400,
         message: "Error: TOSCA yaml file '%1' contains node_template '%2' of type '%3' that does not represent existing VFC/CP/VL",
         messageId: "SVC4602"
     }
-#---------SVC4603------------------------------
-# %1 - component type
-# %2 - component name
-# %3 - state
+    #---------SVC4603------------------------------
+    # %1 - component type
+    # %2 - component name
+    # %3 - state
     ILLEGAL_COMPONENT_STATE: {
         code: 403,
-        message: "Error: Component instance of %1 can not be created because the component '%2' is in an illegal state %3.",
+        message: "Error: Action is not allowed on %1 '%2' because it is in an illegal state %3.",
         messageId: "SVC4603"
     }
-#---------SVC4604------------------------------
-# %1 - csar file name
+    #---------SVC4604------------------------------
+    # %1 - csar file name
     CSAR_INVALID: {
         code: 400,
         message: "Error: TOSCA CSAR '%1' is invalid. 'TOSCA-Metadata/Tosca.meta' file must be provided.",
         messageId: "SVC4604"
     }
-#---------SVC4605------------------------------
-# %1 - csar file name
+    #---------SVC4605------------------------------
+    # %1 - csar file name
     CSAR_INVALID_FORMAT: {
         code: 400,
         message: "Error: TOSCA CSAR '%1' is invalid. Invalid 'TOSCA-Metadata/Tosca.meta' file format.",
         messageId: "SVC4605"
     }
-#---------SVC4606------------------------------
-# %1 - property name
-# %2 - property type
-# %3 - property innerType
-# %4 - default value is
+    #---------SVC4606------------------------------
+    # %1 - property name
+    # %2 - property type
+    # %3 - property innerType
+    # %4 - default value is
     INVALID_COMPLEX_DEFAULT_VALUE: {
         code: 400,
         message: "Error: Invalid default value of property %1. Data type is %2 with inner type %3 and default value found is %4.",
         messageId: "SVC4606"
     }
-#---------SVC4607------------------------------
-# %1 - csar file name
+    #---------SVC4607------------------------------
+    # %1 - csar file name
     CSAR_NOT_FOUND: {
         code: 400,
         message: "Error: TOSCA CSAR '%1' is not found.",
         messageId: "SVC4607"
     }
-#---------SVC4608------------------------------
-# %1 - artifact name
-# %2 - component type
-# %3 - actual component type
+    #---------SVC4608------------------------------
+    # %1 - artifact name
+    # %2 - component type
+    # %3 - actual component type
     MISMATCH_BETWEEN_ARTIFACT_TYPE_AND_COMPONENT_TYPE: {
         code: 400,
         message: "Error: Artifact %1 is only compatible with component of type %2, but component type is %3.",
         messageId: "SVC4608"
     }
 
-#---------SVC4609------------------------------
-# %1 -  "INVALID_JSON"
+    #---------SVC4609------------------------------
+    # %1 -  "INVALID_JSON"
     INVALID_JSON: {
         code: 400,
         message: "Error: Uploaded JSON file for %1 artifact is invalid.",
         messageId: "SVC4609"
     }
-#---------SVC4610------------------------------
-# %1 - csar file name
-# %2 - missing file name
+    #---------SVC4610------------------------------
+    # %1 - csar file name
+    # %2 - missing file name
     YAML_NOT_FOUND_IN_CSAR: {
         code: 400,
         message: "Error - TOSCA CSAR %1 is invalid. TOSCA-Metadata/Tosca.meta refers to file %2 that is not provided.",
         messageId: "SVC4610"
     }
-#---------SVC4611------------------------------
-# %1 - group name
+    #---------SVC4611------------------------------
+    # %1 - group name
     GROUP_MEMBER_EMPTY: {
         code: 400,
         message: "Error: Invalid Content. Group %1 member list was provided but does not have values",
         messageId: "SVC4611"
     }
-#---------SVC4612------------------------------
-# %1  - group name
+    #---------SVC4612------------------------------
+    # %1  - group name
     GROUP_TYPE_ALREADY_EXIST: {
         code: 409,
         message: 'Error: Group type %1 already exists.',
         messageId: "SVC4612"
     }
-#---------SVC4613------------------------------
-# %1 - group name
-# %2 - VF name(component name)
-# %3 - actual component type [VF]
+    #---------SVC4613------------------------------
+    # %1 - group name
+    # %2 - VF name(component name)
+    # %3 - actual component type [VF]
     GROUP_ALREADY_EXIST: {
         code: 409,
         message: "Error: Group with name '%1' already exists in %2 %3.",
         messageId: "SVC4613"
     }
-#---------SVC4614------------------------------
-# %1 - group type
+    #---------SVC4614------------------------------
+    # %1 - group type
     GROUP_TYPE_IS_INVALID: {
         code: 400,
         message: "Error: Invalid content. Group type %1 does not exist",
         messageId: "SVC4614"
     }
-#---------SVC4615------------------------------
-# %1 - group name
+    #---------SVC4615------------------------------
+    # %1 - group name
     GROUP_MISSING_GROUP_TYPE: {
         code: 400,
         message: "Error: Invalid Content. Missing Group Type for group '%1'",
         messageId: "SVC4615"
     }
-#---------SVC4616------------------------------
-# %1 - member name
-# %2 - group name
-# %3 - VF name
-# %4 - component type [VF ]
+    #---------SVC4616------------------------------
+    # %1 - member name
+    # %2 - group name
+    # %3 - VF name
+    # %4 - component type [VF ]
     GROUP_INVALID_COMPONENT_INSTANCE: {
         code: 400,
         message: "Error: Member '%1' listed in group '%2' is not part of '%3' %4.",
         messageId: "SVC4616"
     }
-#---------SVC4617------------------------------
-# %1 - member name
-# %2 - group name
-# %3 - group type
+    #---------SVC4617------------------------------
+    # %1 - member name
+    # %2 - group name
+    # %3 - group type
     GROUP_INVALID_TOSCA_NAME_OF_COMPONENT_INSTANCE: {
         code: 400,
         message: "Error: member %1 listed in group %2 is not part of allowed members of group type %3.",
         messageId: "SVC4617"
     }
-#---------SVC4618------------------------------
-# %1 - missing file name
-# %2 - csar file name
+    #---------SVC4618------------------------------
+    # %1 - missing file name
+    # %2 - csar file name
     ARTIFACT_NOT_FOUND_IN_CSAR: {
         code: 400,
         message: "Error: artifact %1 is defined in CSAR %2 manifest but is not provided",
@@ -1458,424 +1445,398 @@
         message: "Error: artifact %1 in type %2 already exists in type %3.",
         messageId: "SVC4619"
     }
-#---------SVC4620------------------------------
+    #---------SVC4620------------------------------
     FAILED_RETRIVE_ARTIFACTS_TYPES: {
         code: 400,
         message: "Error: Failed to retrieve list of suported artifact types.",
         messageId: "SVC4620"
     }
-#---------SVC4621------------------------------
-# %1 - artifact name
-# %2 - master
+    #---------SVC4621------------------------------
+    # %1 - artifact name
+    # %2 - master
     ARTIFACT_ALRADY_EXIST_IN_MASTER_IN_CSAR: {
         code: 400,
         message: "Error: artifact %1 already exists in master %2 .",
         messageId: "SVC4621"
     }
-#---------SVC4622------------------------------
-# %1 - artifact name
-# %2 - artifact type
-# %3 - master name
-# %4 - master type
+    #---------SVC4622------------------------------
+    # %1 - artifact name
+    # %2 - artifact type
+    # %3 - master name
+    # %4 - master type
     ARTIFACT_NOT_VALID_IN_MASTER: {
         code: 400,
         message: "Error: artifact %1 in type %2 can not be exists under master %3 in type %4.",
         messageId: "SVC4622"
     }
-#---------SVC4623------------------------------
-# %1 - artifact name
-# %2 - artifact type
-# %3 - env name
-# %4 - existing env
+    #---------SVC4623------------------------------
+    # %1 - artifact name
+    # %2 - artifact type
+    # %3 - env name
+    # %4 - existing env
     ARTIFACT_NOT_VALID_ENV: {
         code: 400,
         message: "Error: Artifact %1 in type %2 with env %3 already exists with another env %4",
         messageId: "SVC4623"
     }
-#---------SVC4624------------------------------
-# %1 - groups names
-# %2 - VF name
-# %3 - component type [VF ]
+    #---------SVC4624------------------------------
+    # %1 - groups names
+    # %2 - VF name
+    # %3 - component type [VF ]
     GROUP_IS_MISSING: {
         code: 400,
         message: "Error: Invalid Content. The groups '%1' cannot be found under %2 %3.",
         messageId: "SVC4624"
     }
-#---------SVC4625------------------------------
-# %1 - groups name
+    #---------SVC4625------------------------------
+    # %1 - groups name
     GROUP_ARTIFACT_ALREADY_ASSOCIATED: {
         code: 400,
         message: "Error: Invalid Content. Artifact already associated to group '%1'.",
         messageId: "SVC4625"
     }
-#---------SVC4626------------------------------
-# %1 - groups name
+    #---------SVC4626------------------------------
+    # %1 - groups name
     GROUP_ARTIFACT_ALREADY_DISSOCIATED: {
         code: 400,
         message: "Error: Invalid Content. Artifact already dissociated from group '%1'.",
         messageId: "SVC4626"
     }
-#---------SVC4627------------------------------
-# %1 - property name
-# %2 - group name
-# %3 - group type name
+    #---------SVC4627------------------------------
+    # %1 - property name
+    # %2 - group name
+    # %3 - group type name
     GROUP_PROPERTY_NOT_FOUND: {
         code: 400,
         message: "Error: property %1 listed in group %2 is not exist in group type %3.",
         messageId: "SVC4627"
     }
-#---------SVC4628------------------------------
-# %1 - csarUUID
-# %2 - VF name
+    #---------SVC4628------------------------------
+    # %1 - csarUUID
+    # %2 - VF name
     VSP_ALREADY_EXISTS: {
         code: 400,
         message: "Error: The VSP with UUID %1 was already imported for VF %2. Please select another or update the existing VF.",
         messageId: "SVC4628"
     }
-#---------SVC4629------------------------------
-# %1 - VF name
+    #---------SVC4629------------------------------
+    # %1 - VF name
     MISSING_CSAR_UUID: {
         code: 400,
         message: "Error: The Csar UUID or payload name is missing for VF %1.",
         messageId: "SVC4629"
     }
-#---------SVC4630------------------------------
-# %1 - VF name
-# %2 - new csarUUID
-# %3 - old csarUUID
+    #---------SVC4630------------------------------
+    # %1 - VF name
+    # %2 - new csarUUID
+    # %3 - old csarUUID
     RESOURCE_LINKED_TO_DIFFERENT_VSP: {
         code: 400,
         message: "Error: Resource %1 cannot be updated using CsarUUID %2 since the resource is linked to a different VSP with csarUUID %3.",
         messageId: "SVC4630"
     }
-#---------SVC4631------------------------------
-# %1  - policy name
+    #---------SVC4631------------------------------
+    # %1  - policy name
     POLICY_TYPE_ALREADY_EXIST: {
         code: 409,
         message: "Error: Policy type %1 already exists.",
         messageId: "SVC4631"
     }
-#---------SVC4632------------------------------
-# %1 - target name
-# %2 - policy type name
+    #---------SVC4632------------------------------
+    # %1 - target name
+    # %2 - policy type name
     TARGETS_NON_VALID: {
         code: 400,
         message: "Error: target %1 listed in policy type %2 is not a group or resource.",
         messageId: "SVC4632"
     }
-#---------SVC4633------------------------------
-# %1 - policy name
+    #---------SVC4633------------------------------
+    # %1 - policy name
     TARGETS_EMPTY: {
         code: 400,
         message: "Error: Invalid Content. Policy %1 target list was provided but does not have values",
         messageId: "SVC4633"
     }
-#---------SVC4634------------------------------
+    #---------SVC4634------------------------------
     DATA_TYPE_CANNOT_BE_EMPTY: {
         code: 500,
         message: "Error: Data types are empty. Please import the data types.",
         messageId: "SVC4634"
     }
-#---------SVC4635------------------------------
-# %1 - csar uuid
+    #---------SVC4635------------------------------
+    # %1 - csar uuid
     RESOURCE_FROM_CSAR_NOT_FOUND: {
         code: 400,
         message: "Error: resource from csar uuid %1 not found",
         messageId: "SVC4635"
     }
-#---------SVC4636------------------------------
-# %1 - Data type name
+    #---------SVC4636------------------------------
+    # %1 - Data type name
     DATA_TYPE_CANNOT_BE_UPDATED_BAD_REQUEST: {
         code: 400,
         message: 'Error: Data type %1 cannot be upgraded. The new data type does not contain old properties or the type of one of the properties has been changed.',
         messageId: "SVC4636"
     }
-#-----------SVC4637---------------------------
-#%1 - attribute name
+    #-----------SVC4637---------------------------
+    #%1 - attribute name
     ATTRIBUTE_NOT_FOUND: {
         code: 404,
         message: "Error: Requested '%1' attribute was not found.",
         messageId: "SVC4637"
     }
-#-----------SVC4638---------------------------
-#%1 - attribute name
+    #-----------SVC4638---------------------------
+    #%1 - attribute name
     ATTRIBUTE_ALREADY_EXIST: {
         code: 409,
         message: "Error: Attribute with '%1' name already exists.",
         messageId: "SVC4638"
     }
-#-----------SVC4639---------------------------
-#%1 - property name
+    #-----------SVC4639---------------------------
+    #%1 - property name
     PROPERTY_NAME_ALREADY_EXISTS: {
         code: 409,
         message: "Error: Property with '%1' name and different type already exists.",
         messageId: "SVC4639"
     }
-#-----------SVC4640---------------------------
-#%1 - property name
+    #-----------SVC4640---------------------------
+    #%1 - property name
     INVALID_PROPERTY: {
         code: 409,
         message: "Error: Invalid property received.",
         messageId: "SVC4640"
     }
-#---------SVC4641-----------------------------
-#%1 - invalid filter
-#%2 - valid filters
+    #---------SVC4641-----------------------------
+    #%1 - invalid filter
+    #%2 - valid filters
     INVALID_FILTER_KEY: {
         code: 400,
         message: "Error: The filter %1 is not applicable. Please use one of the following filters: %2",
         messageId: "SVC4641"
     }
-#---------SVC4642-----------------------------
-#%1 - asset type
-#%2 - filter
+    #---------SVC4642-----------------------------
+    #%1 - asset type
+    #%2 - filter
     NO_ASSETS_FOUND: {
         code: 404,
         message: "No %1 were found to match criteria %2",
         messageId: "SVC4642"
     }
-#---------SVC4643------------------------------
-# %1 - "Resource"/"Product"
-# %2 - "sub-category name"
-# %3 - "category name"
+    #---------SVC4643------------------------------
+    # %1 - "Resource"/"Product"
+    # %2 - "sub-category name"
+    # %3 - "category name"
     COMPONENT_SUB_CATEGORY_NOT_FOUND_FOR_CATEGORY: {
         code: 404,
         message: "Error: %1 sub-category '%2' not found under category '%3'.",
         messageId: "SVC4643"
     }
-#---------SVC4644------------------------------
-# %1 - Format
+    #---------SVC4644------------------------------
+    # %1 - Format
     CORRUPTED_FORMAT: {
         code: 400,
         message: "Error: %1 format is corrupted.",
         messageId: "SVC4644"
     }
-#---------SVC4645------------------------------
-# %1 - "groupType"
+    #---------SVC4645------------------------------
+    # %1 - "groupType"
     INVALID_VF_MODULE_TYPE: {
         code: 400,
         message: "Error: Invalid group type '%1' (should be VfModule).",
         messageId: "SVC4645"
     }
-#---------SVC4646------------------------------
-# %1 - "groupName"
+    #---------SVC4646------------------------------
+    # %1 - "groupName"
     INVALID_VF_MODULE_NAME: {
         code: 400,
         message: "Error: Invalid Content. Group name '%1' contains invalid characters",
         messageId: "SVC4646"
     }
 
-#---------SVC4647------------------------------
-# %1 - "modifiedName"
+    #---------SVC4647------------------------------
+    # %1 - "modifiedName"
     INVALID_VF_MODULE_NAME_MODIFICATION: {
         code: 400,
         message: "Error: Invalid VF Module name modification, can not modify '%1'",
         messageId: "SVC4647"
     }
-#---------SVC4648------------------------------
-# %1 - "inputId"
-# %2 - "componentId"
+    #---------SVC4648------------------------------
+    # %1 - "inputId"
+    # %2 - "componentId"
     INPUT_IS_NOT_CHILD_OF_COMPONENT: {
         code: 400,
         message: "Error: Input id: '%1' is not child of component id: '%2'",
         messageId: "SVC4648"
     }
-#---------SVC4649------------------------------
-# %1 - "groupName"
+    #---------SVC4649------------------------------
+    # %1 - "groupName"
     GROUP_HAS_CYCLIC_DEPENDENCY: {
         code: 400,
         message: "Error: The group '%1' has cyclic dependency",
         messageId: "SVC4649"
     }
-#---------SVC4650------------------------------
-# %1 - "Component Type"
-# %2 - <ServiceName>
-# %3 - error description
+    #---------SVC4650------------------------------
+    # %1 - "Component Type"
+    # %2 - <ServiceName>
+    # %3 - error description
     AAI_ARTIFACT_GENERATION_FAILED: {
         code: 500,
         message: "Error: %1 %2 automatic generation of artifacts failed. Description: %3",
         messageId: "SVC4650"
     }
-#---------SVC4651------------------------------
+    #---------SVC4651------------------------------
     PARENT_RESOURCE_DOES_NOT_EXTEND: {
         code: 400,
         message: "Error: Once resource is certified, derived_from can be changed only to a sibling",
         messageId: "SVC4651"
     }
-#---------SVC4652------------------------------
-# %1 - resource/service
+    #---------SVC4652------------------------------
+    # %1 - resource/service
     COMPONENT_INVALID_SUBCATEGORY: {
         code: 400,
         message: "Error: Invalid Content. Invalid %1 sub category.",
         messageId: "SVC4652"
     }
-#---------SVC4653------------------------------
-# %1 - group instance uniqueId
-# %2 - service uniqueId
+    #---------SVC4653------------------------------
+    # %1 - group instance uniqueId
+    # %2 - service uniqueId
     GROUP_INSTANCE_NOT_FOUND_ON_COMPONENT_INSTANCE: {
         code: 404,
         message: "Error: Requested group instance %1 was not found on component %2.",
         messageId: "SVC4653"
     }
-#---------SVC4654------------------------------
-# %1 - group property name
-# %2 - valid min limit value
-# %3 - valid max limit value
+    #---------SVC4654------------------------------
+    # %1 - group property name
+    # %2 - valid min limit value
+    # %3 - valid max limit value
     INVALID_GROUP_MIN_MAX_INSTANCES_PROPERTY_VALUE: {
         code: 400,
         message: "Error: Value of %1 must be not higher than %2, and not lower than %3.",
         messageId: "SVC4654"
     }
-#---------SVC4655------------------------------
-# %1 - group property name
-# %2 - valid min limit value
-# %3 - valid max limit value
+    #---------SVC4655------------------------------
+    # %1 - group property name
+    # %2 - valid min limit value
+    # %3 - valid max limit value
     INVALID_GROUP_INITIAL_COUNT_PROPERTY_VALUE: {
         code: 400,
         message: "Error: Value of %1 must be between %2 and %3.",
         messageId: "SVC4655"
     }
-#---------SVC4656------------------------------
-# %1 - group property name
-# %2 - lower/higher
-# %3 - valid max/min value
+    #---------SVC4656------------------------------
+    # %1 - group property name
+    # %2 - lower/higher
+    # %3 - valid max/min value
     INVALID_GROUP_PROPERTY_VALUE_LOWER_HIGHER: {
         code: 400,
         message: "Error: Value of %1 must be %2 or equals to %3.",
         messageId: "SVC4656"
     }
-#---------SVC4657------------------------------
-# %1 - certificationRequest / startTesting
+    #---------SVC4657------------------------------
+    # %1 - certificationRequest / startTesting
     RESOURCE_VFCMT_LIFECYCLE_STATE_NOT_VALID: {
         code: 400,
         message: "Error - Lifecycle state %1 is not valid for resource of type VFCMT",
         messageId: "SVC4657"
     }
-#---------SVC4658------------------------------
-# %1 – asset type [service / resource ]
-# %2 – main asset uuid
-# %3 – not found asset type [service / resource]
-# %4 – not found asset name
+    #---------SVC4658------------------------------
+    # %1 – asset type [service / resource ]
+    # %2 – main asset uuid
+    # %3 – not found asset type [service / resource]
+    # %4 – not found asset name
     ASSET_NOT_FOUND_DURING_CSAR_CREATION: {
         code: 400,
         message: "Error: CSAR packaging failed for %1 %2. %3 %4 was not found",
         messageId: "SVC4658"
     }
-#---------SVC4659------------------------------
-# %1 – asset type [service / resource ]
-# %2 – main asset uuid
-# %3 – Artifact name
-# %4 – Artifact uuid
+    #---------SVC4659------------------------------
+    # %1 – asset type [service / resource ]
+    # %2 – main asset uuid
+    # %3 – Artifact name
+    # %4 – Artifact uuid
     ARTIFACT_PAYLOAD_NOT_FOUND_DURING_CSAR_CREATION: {
         code: 400,
         message: "Error: CSAR packaging failed for %1 %2. Artifact %3 [%4] was not found",
         messageId: "SVC4659"
     }
-#---------SVC4660------------------------------
-# %1 - assetType
-# %2 - matching generic node type name
+    #---------SVC4660------------------------------
+    # %1 - assetType
+    # %2 - matching generic node type name
     GENERIC_TYPE_NOT_FOUND: {
         code: 404,
         message: "Creation of %1 failed. Generic type %2 was not found",
         messageId: "SVC4660"
     }
-#---------SVC4661------------------------------
-# %1 - assetType
-# %2 - matching generic node type name
+    #---------SVC4661------------------------------
+    # %1 - assetType
+    # %2 - matching generic node type name
     TOSCA_SCHEMA_FILES_NOT_FOUND: {
         code: 400,
         message: "Error: CSAR packaging failed. TOSCA schema files for SDC-Version: %1 and Conformance-Level %2 were not found",
         messageId: "SVC4661"
     }
-#---------SVC4662------------------------------
-# %1 - file name
-# %2 - parser error
+    #---------SVC4662------------------------------
+    # %1 - file name
+    # %2 - parser error
     TOSCA_PARSE_ERROR: {
         code: 400,
         message: "Error: Invalid TOSCA template in file %1. %2",
         messageId: "SVC4662"
     }
-#---------SVC4663------------------------------
-# %1 - max length
+    #---------SVC4663------------------------------
+    # %1 - max length
     RESOURCE_VENDOR_MODEL_NUMBER_EXCEEDS_LIMIT: {
         code: 400,
         message: "Error: Invalid Content. Resource vendor model number exceeds limit of %1 characters.",
         messageId: "SVC4663"
     }
-#---------SVC4664------------------------------
+    #---------SVC4664------------------------------
     INVALID_RESOURCE_VENDOR_MODEL_NUMBER: {
         code: 400,
         message: 'Error: Invalid Content. Resource vendor model number is not allowed to contain characters like <>:"\/|?* and space characters other than regular space.',
         messageId: "SVC4664"
     }
-#---------SVC4665------------------------------
-# %1 - max length
-    SERVICE_TYPE_EXCEEDS_LIMIT: {
-        code: 400,
-        message: "Error: Invalid Content. Service type exceeds limit of %1 characters.",
-        messageId: "SVC4665"
-    }
-#---------SVC4666------------------------------
-    INVALID_SERVICE_TYPE: {
-        code: 400,
-        message: 'Error: Invalid Content. Serivce type is not allowed to contain characters like <>:"\/|?* and space characters other than regular space.',
-        messageId: "SVC4666"
-    }
-#---------SVC4667------------------------------
-# %1 - max length
-    SERVICE_ROLE_EXCEEDS_LIMIT: {
-        code: 400,
-        message: "Error: Invalid Content. Service role exceeds limit of %1 characters.",
-        messageId: "SVC4667"
-    }
-#---------SVC4668------------------------------
-    INVALID_SERVICE_ROLE: {
-        code: 400,
-        message: 'Error: Invalid Content. Service role is not allowed to contain characters like <>:"\/|?* and space characters other than regular space.',
-        messageId: "SVC4668"
-    }
 
-#---------SVC4669-----------------------------
+    #---------SVC4669-----------------------------
     INVALID_RESOURCE_TYPE: {
         code: 400,
         message: "Error: Invalid resource type.",
         messageId: "SVC4669"
     }
-#---------SVC4670------------------------------
+    #---------SVC4670------------------------------
     ARTIFACT_NAME_INVALID: {
         code: 400,
         message: "Error: Artifact name is invalid.",
         messageId: "SVC4670"
     }
-#---------SVC4671------------------------------ 
-# %1 - VSP name
-# %2 - VFC name
+    #---------SVC4671------------------------------
+    # %1 - VSP name
+    # %2 - VFC name
     CFVC_LOOP_DETECTED: {
         code: 400,
         message: 'Error: VSP %1 cannot be imported. The VSP contains internal loop in VFC %2',
         messageId: "SVC4671"
     }
-#---------SVC4672------------------------------ 
-# %1 - capability uniqueId
-# %2 - instance uniqueId
-# %3 - container uniqueId
+    #---------SVC4672------------------------------
+    # %1 - capability uniqueId
+    # %2 - instance uniqueId
+    # %3 - container uniqueId
     CAPABILITY_OF_INSTANCE_NOT_FOUND_ON_CONTAINER: {
         code: 404,
         message: "Error: Requested capability %1 of instance %2 was not found on the container %3.",
         messageId: "SVC4672"
     }
-#---------SVC4673------------------------------ 
-# %1 - requirement uniqueId
-# %2 - instance uniqueId
-# %3 - container uniqueId
+    #---------SVC4673------------------------------
+    # %1 - requirement uniqueId
+    # %2 - instance uniqueId
+    # %3 - container uniqueId
     REQUIREMENT_OF_INSTANCE_NOT_FOUND_ON_CONTAINER: {
         code: 404,
         message: "Error: Requested requirement %1 of instance %2 was not found on the container %3.",
         messageId: "SVC4673"
     }
-#---------SVC4674-----------------------------     
-# %1 - relation Id
-# %2 - container uniqueId
+    #---------SVC4674-----------------------------
+    # %1 - relation Id
+    # %2 - container uniqueId
     RELATION_NOT_FOUND: {
         code: 404,
         message: "Error: Requested relation %1 was not found on the container %2.",
@@ -1883,168 +1844,168 @@
     }
 
 
-#---------SVC4675------------------------------
+    #---------SVC4675------------------------------
     INVALID_SERVICE_STATE: {
         code: 409,
         message: "Service state is invalid for this action",
         messageId: "SVC4675"
     }
 
-#---------SVC4676------------------------------
+    #---------SVC4676------------------------------
     INVALID_RESPONSE_FROM_PROXY: {
         code: 502,
         message: "Error: The server was acting as a gateway or proxy and received an invalid response from the upstream server",
         messageId: "SVC4676"
     }
 
-#---------SVC4677------------------------------
+    #---------SVC4677------------------------------
     API_RESOURCE_NOT_FOUND: {
         code: 404,
         message: "Error: Requested '%1' was not found.",
         messageId: "SVC4677"
     }
 
-#---------SVC4678------------------------------
+    #---------SVC4678------------------------------
     BAD_REQUEST_MISSING_RESOURCE: {
         code: 400,
         message: "Error: The required resource name/id  is missing in the request",
         messageId: "SVC4678"
     }
-#---------SVC4679------------------------------
-# %1 forwarding path name maximum length
+    #---------SVC4679------------------------------
+    # %1 forwarding path name maximum length
     FORWARDING_PATH_NAME_MAXIMUM_LENGTH: {
         code: 400,
         message: "Forwarding path name too long, , maximum allowed 200 characters : '%1'.",
         messageId: "SVC4679"
     }
-#---------SVC4680------------------------------
-# %1 Forwarding path name already in use
+    #---------SVC4680------------------------------
+    # %1 Forwarding path name already in use
     FORWARDING_PATH_NAME_ALREADY_IN_USE: {
         code: 400,
         message: "Forwarding path name already in use : '%1'.",
         messageId: "SVC4680"
     }
-#---------SVC4681------------------------------
-# %1 Forwarding path name empty
+    #---------SVC4681------------------------------
+    # %1 Forwarding path name empty
     FORWARDING_PATH_NAME_EMPTY: {
         code: 400,
         message: "Forwarding Path Name can't be empty .",
         messageId: "SVC4681"
     }
-#---------SVC4682------------------------------
-# %1 - resource uniqueId
-# %2 - resource component type
+    #---------SVC4682------------------------------
+    # %1 - resource uniqueId
+    # %2 - resource component type
     RESOURCE_CANNOT_CONTAIN_POLICIES: {
         code: 400,
         message: "Error: The resource %1 type of %2 cannot contain policies.",
         messageId: "SVC4682"
     }
-#---------SVC4683------------------------------
-# %1 - policy uniqueId
-# %2 - component uniqueId
+    #---------SVC4683------------------------------
+    # %1 - policy uniqueId
+    # %2 - component uniqueId
     POLICY_NOT_FOUND_ON_CONTAINER: {
         code: 404,
         message: "Error: Requested policy %1 was not found on the container %2.",
         messageId: "SVC4683"
-}
-#---------SVC4684------------------------------
-# %1 - policy name
+    }
+    #---------SVC4684------------------------------
+    # %1 - policy name
     INVALID_POLICY_NAME: {
         code: 400,
         message: "Error: Invalid policy name %1 received.",
         messageId: "SVC4684"
     }
-#---------SVC4685------------------------------
-# %1 - policy name
+    #---------SVC4685------------------------------
+    # %1 - policy name
     POLICY_NAME_ALREADY_EXIST: {
         code: 409,
         message: "Error: The policy with the name %1 already exists.",
         messageId: "SVC4685"
     }
-#---------SVC4686------------------------------
-# %1 - policy name
+    #---------SVC4686------------------------------
+    # %1 - policy name
     POLICY_TARGET_DOES_NOT_EXIST: {
         code: 400,
         message: "Error: The targets %1 are not valid, all targets have to be on the topologyTemplate.",
         messageId: "SVC4686"
     }
-#---------SVC4687------------------------------
-# %1 - policy type
-# %2 - component type
+    #---------SVC4687------------------------------
+    # %1 - policy type
+    # %2 - component type
     EXCLUDED_POLICY_TYPE: {
         code: 400,
         message: "Error: The policy of the type %1 excluded to add to a component of the type %2.",
         messageId: "SVC4687"
     }
     #---------SVC4688------------------------------
-# %1 - group type
-# %2 - component type
+    # %1 - group type
+    # %2 - component type
     GROUP_TYPE_ILLEGAL_PER_COMPONENT: {
         code: 400,
         message: "Error: group type %1 not permitted in component of type %2",
         messageId: "SVC4688"
     }
     #---------SVC4689------------------------------
-# %1 - group type
-# %2 - component type
+    # %1 - group type
+    # %2 - component type
     POLICY_TARGET_TYPE_DOES_NOT_EXIST: {
         code: 400,
         message: "Error: The target types %1 are not valid.",
         messageId: "SVC4689"
     }
 
-#---------SVC4690------------------------------
-# %1 forwarding path protocol maximum length
+    #---------SVC4690------------------------------
+    # %1 forwarding path protocol maximum length
     FORWARDING_PATH_PROTOCOL_MAXIMUM_LENGTH: {
         code: 400,
         message: "Forwarding path protocol too long, , maximum allowed 200 characters : '%1'.",
         messageId: "SVC4690"
     }
 
-#---------SVC4691------------------------------
-# %1 forwarding path destination port maximum length
+    #---------SVC4691------------------------------
+    # %1 forwarding path destination port maximum length
     FORWARDING_PATH_DESTINATION_PORT_MAXIMUM_LENGTH: {
         code: 400,
         message: "Forwarding path destination port too long, , maximum allowed 200 characters : '%1'.",
         messageId: "SVC4691"
     }
 
-#---------POL4692------------------------------
+    #---------POL4692------------------------------
     MISSING_OLD_COMPONENT_INSTANCE: {
         code: 400  ,
         message: "Error: Missing 'componentInstanceId' HTTP param.",
         messageId: "POL4692"
     }
 
-#---------POL4693------------------------------
+    #---------POL4693------------------------------
     MISSING_NEW_COMPONENT_INSTANCE: {
         code: 400  ,
         message: "Error: Missing 'newComponentInstanceId' HTTP param.",
         messageId: "POL4693"
     }
 
-#---------SVC4694------------------------------
-# %1 External Reference Value
+    #---------SVC4694------------------------------
+    # %1 External Reference Value
     EXT_REF_NOT_FOUND: {
         code: 404,
         message: "Error: External Reference '%1' was not found.",
         messageId: "SVC4694"
     }
-#---------SVC4695-----------------------------
-# %1 - Interface Operation Name
+    #---------SVC4695-----------------------------
+    # %1 - Interface Operation Name
     INTERFACE_OPERATION_NAME_ALREADY_IN_USE: {
       code: 409,
       message: "Error: Interface Operation name '%1' already in use, Your current changes will not be saved.",
       messageId: "SVC4695"
     }
-#---------SVC4696-----------------------------
-# %1 - Interface Operation Name
+    #---------SVC4696-----------------------------
+    # %1 - Interface Operation Name
     INTERFACE_OPERATION_NAME_INVALID: {
       code: 400,
       message: "Error: Interface Operation name '%1' is Invalid, Operation name should not contain special character, space and should not be greater than 200 characters.",
       messageId: "SVC4696"
     }
-#---------SVC4697-----------------------------
+    #---------SVC4697-----------------------------
     INTERFACE_OPERATION_NAME_MANDATORY: {
       code: 400,
       message: "Error: Interface Operation name is mandatory, Operation name can't be empty.",
@@ -2057,14 +2018,14 @@
       message: "Error: Invalid input, only one operation is allowed in local interface type '%1'.",
       messageId: "SVC4698"
     }
-#---------SVC4699-----------------------------
-# %1 - Interface Operation input parameter name
+    #---------SVC4699-----------------------------
+    # %1 - Interface Operation input parameter name
     INTERFACE_OPERATION_INPUT_NAME_ALREADY_IN_USE: {
-      code: 400,
-      message: "Error: Interface Operation input parameter name '%1' already in use, Your current changes will not be saved.",
-      messageId: "SVC4699"
+        code: 400,
+        message: "Error: Interface Operation input parameter name '%1' already in use, Your current changes will not be saved.",
+        messageId: "SVC4699"
     }
-#---------SVC4700-----------------------------
+    #---------SVC4700-----------------------------
     INTERFACE_OPERATION_INPUT_NAME_MANDATORY: {
         code: 400,
         message: "Error: Interface operation input parameter name should not be empty.",
@@ -2077,61 +2038,68 @@
       message: "Error: Interface operation not found in the component '%1'.",
       messageId: "SVC4701"
     }
-#---------SVC4702-----------------------------
+    #---------SVC4702-----------------------------
     INTERFACE_OPERATION_NOT_DELETED: {
       code: 400,
       message: "Error: Failed to delete interface operation.",
       messageId: "SVC4702"
     }
-#-----------SVC4692---------------------------
+    #-----------SVC4692---------------------------
     RESOURCE_LIFECYCLE_STATE_NOT_VALID: {
         code: 400,
         message: "Error: Lifecycle state %1 is not valid for resource",
         messageId: "SVC4692"
     }
-#-----------SVC4693---------------------------
-#%1 - component name
+    #-----------SVC4693---------------------------
+    #%1 - component name
     COMPONENT_IS_ARCHIVED: {
         code: 400,
-        message: "Error: Component %1 is arhived",
+        message: "Error: Component %1 is archived",
         messageId: "SVC4693"
     }
-#-----------SVC4703---------------------------
-#%1 - component name
+    #-----------SVC4703---------------------------
+    #%1 - component name
     COMPONENT_IS_NOT_HIHGEST_CERTIFIED: {
         code: 400,
         message: "Error: Component %1 is not highest certified",
         messageId: "SVC4703"
     }
-#---------SVC4704------------------------------
-# %1 - "service"/"VF"
-# %2 - "Resource name"
+    #---------SVC4704------------------------------
+    # %1 - "service"/"VF"
+    # %2 - "Resource name"
     ARCHIVED_ORIGINS_FOUND: {
         code: 403,
         message: "Error: Action is not permitted as your '%1' '%2' includes archived resources",
         messageId: "SVC4704"
     }
-#---------SVC4705------------------------------
-# %1-artifact name
+    #---------SVC4705------------------------------
+    # %1-artifact name
     ARTIFACT_PAYLOAD_EMPTY: {
         code: 400,
         message: "Error: Invalid content. Uploaded file %1 is empty. Please retry with the correct file.",
         messageId: "SVC4705"
     }
-#---------SVC4706------------------------------
-# %1-input(s) name(s) string
+    #---------SVC4800------------------------------
+    # %1 - "component id"
+    UPDATE_CATALOG_FAILED: {
+        code: 403,
+        message: "Error: update catalog for component '%1' failed.",
+        messageId: "SVC4800"
+    }
+    #---------SVC4706------------------------------
+    # %1-input(s) name(s) string
     INPUTS_NOT_FOUND: {
         code: 400,
         message: "Error: missing input value(s) %1.",
         messageId: "SVC4706"
     }
     #---------SVC4707-----------------------------
-# %1 – asset type [service / resource ]
-# %2 – main asset uuid
+    # %1 – asset type [service / resource ]
+    # %2 – main asset uuid
     ERROR_DURING_CSAR_CREATION: {
-      code: 404,
-      message: "Error: CSAR packaging failed for %1 %2.",
-      messageId: "SVC4706"
+        code: 404,
+        message: "Error: CSAR packaging failed for %1 %2.",
+        messageId: "SVC4706"
     }
 #---------SVC4708-----------------------------
 # %1 - Interface Operation input property name, component type
@@ -2160,18 +2128,128 @@
       message: "Error: Interface not found in the component '%1'.",
       messageId: "SVC4711"
     }
+    #---------SVC4709-----------------------------
+    INVALID_PROPERTY_CONSTRAINTS: {
+      # %1 – property constraints type
+      # %2 – received property constraints value
+      # %3 – property type
+        code: 400,
+        message: "Error: Invalid %1 %2 for the type %3 have been received.",
+        messageId: "SVC4709"
+    }
+    #---------SVC4710-----------------------------
+    INVALID_PROPERTY_CONSTRAINTS_FORMAT: {
+      # %1 – received property constraints json section
+        code: 400,
+        message: "Error: Invalid format of the received property constraints section: %1. The property constraints section should be a list.",
+        messageId: "SVC4710"
+    }
+    #---------SVC4711-----------------------------
+    CANNOT_DELETE_VALID_VALUES: {
+      # %1 – property constraints type
+      # %2 – missing valid values
+        code: 400,
+        message: "Error: Deletion of existing %1 is not permitted on an update. Missing values: %2",
+        messageId: "SVC4711"
+    }
+    #---------SVC4712------------------------------
+    MISSING_PROPERTY_NAME: {
+        code: 400  ,
+        message: "Error: Invalid Content. Missing mandatory parameter 'name'." ,
+        messageId: "SVC4712"
+    }
+    #---------SVC4713------------------------------
+    MISSING_PROPERTY_VALUE: {
+        code: 400  ,
+        message: "Error: Invalid Content. Missing mandatory parameter 'value'." ,
+        messageId: "SVC4713"
+    }
+
+    #---------SVC4712---------------------------
+    INVALID_INSTANTIATION_TYPE: {
+        code: 400,
+        message: "Invalid instantiationType: %1",
+        messageId: "SVC4712"
+    }
+
+    #----------SVC4713---------------------------
+    MISSING_ECOMP_GENERATED_NAMING: {
+        code: 400,
+        message: "Missing ecompGeneratedNaming property",
+        messageId: "SVC4713"
+    }
+
+    #-----------SVC4714--------------------------
+    NAMING_POLICY_EXCEEDS_LIMIT: {
+        code: 400,
+        message: "Error: Invalid Content. Naming policy exceeds limit of %1 characters.",
+        messageId: "SVC4714"
+    }
+
+    #---------SVC4715------------------------------
+    INVALID_NAMING_POLICY: {
+        code: 400,
+        message: 'Error: Invalid Content. Naming policy is not allowed to contain characters like <>:"\/|?* and space characters other than regular space.',
+        messageId: "SVC4715"
+    }
+
+    #---------SVC4716------------------------------
+    INVALID_ENVIRONMENT_CONTEXT: {
+        code: 400,
+        message: 'Error: Invalid Environment context: %1',
+        messageId: "SVC4716"
+    }
+
+    #---------SVC4717------------------------------
+    UNSUPPORTED_DISTRIBUTION_STATUS: {
+        code: 400,
+        message: 'Error: Unsupported distribution action: %1',
+        messageId: "SVC4717"
+    }
+    #---------SVC4718------------------------------
+    CONTAINER_CANNOT_CONTAIN_INSTANCE: {
+      # %1 - "container type"
+      # %2- “component type”
+        code: 400  ,
+        message: "Error : %1 can’t contain component instance %2" ,
+        messageId: "SVC4718"
+    }
+    #---------SVC4719------------------------------
+    CONTAINER_CANNOT_CONTAIN_COMPONENT_IN_STATE: {
+      # %1 - "container type"
+      # %2- "lifecycle state"
+        code: 400  ,
+        message: "Error: Container %1 can’t contain component in state %2" ,
+        messageId: "SVC4719"
+    }
+
+    #---------SVC4720------------------------------
+    MISSING_MANDATORY_PROPERTY: {
+      # %1 - "property name"
+        code: 400  ,
+        message: "Error: Missing mandatory %1 property" ,
+        messageId: "SVC4720"
+    }
+
+    #---------SVC4721------------------------------
+    MANDATORY_PROPERTY_MISSING_VALUE: {
+      # %1 - "property name"
+        code: 400  ,
+        message: "Error: Missing value for the mandatory %1 property" ,
+        messageId: "SVC4721"
+    }
 #---------SVC4712-----------------------------
     INTERFACE_LIFECYCLE_TYPES_NOT_FOUND: {
-        code: 404,
-        message: "Error: Interface Lifecycle types not found.",
-        messageId: "SVC4712"
+      code: 404,
+      message: "Error: Interface Lifecycle types not found.",
+      messageId: "SVC4712"
     }
 #---------SVC4713-----------------------------
 # %1 - Interface Operation Name
     INTERFACE_OPERATION_INVALID_FOR_GLOBAL_TYPE: {
-        code: 400,
-        message: "Error: Invalid input, only pre-defined operation names are allowed in global interface type '%1'",
-        messageId: "SVC4713"
+      code: 400,
+      message: "Error: Invalid input, only pre-defined operation names are allowed in global interface type '%1'",
+      messageId: "SVC4713"
     }
 
     #---------SVC4714-----------------------------
@@ -2284,9 +2362,23 @@
     }
 
 #---------SVC4729------------------------------
-     # %1 - resource Id
+    # %1 - resource Id
     CAPABILITY_PROPERTIES_NOT_FOUND: {
         code: 400,
         message: "Error: Capability properties not found in the resource '%1'.",
         messageId: "SVC4729"
-    }
\ No newline at end of file
+    }
+#---------SVC4730------------------------------
+    # %1 - property name
+    PROPERTY_EXCEEDS_LIMIT: {
+      code: 400,
+      message: "Error: Invalid Content. %1 exceeds limit.",
+      messageId: "SVC4722"
+    }
+#---------SVC4731------------------------------
+    INVALID_PROPERY: {
+      # %1 - property name
+      code: 400,
+      message: 'Error: Invalid Content. %1 has invalid format.',
+      messageId: "SVC4723"
+    }
diff --git a/catalog-be/src/main/resources/config/logback.xml b/catalog-be/src/main/resources/config/logback.xml
index 7044d34..2098836 100644
--- a/catalog-be/src/main/resources/config/logback.xml
+++ b/catalog-be/src/main/resources/config/logback.xml
@@ -1,315 +1,253 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="5 seconds">
 
-	<property scope="system" name="ECOMP-component-name" value="SDC" />
-	<property scope="system" name="ECOMP-subcomponent-name" value="SDC-BE" />
-	<property file="${config.home}/catalog-be/configuration.yaml" />
-	<property scope="context" name="enable-all-log" value="false" />
+    <property scope="system" name="ECOMP-component-name" value="SDC"/>
+    <property scope="system" name="ECOMP-subcomponent-name" value="SDC-BE"/>
+    <property file="${config.home}/catalog-be/configuration.yaml"/>
+    <property scope="context" name="enable-all-log" value="false"/>
+    <property name="p_msg" value="%replace(%replace(%replace(%replace(%msg){'\t','\\\\t'}){'\n', '\\\\n'}){'\\\|', '-'}){'\r','\\\\r'}"/>
+    <property name="p_ex" value="%replace(%replace(%replace(%replace(%exception{full}){'\t','\\\\t'}){'\n', '\\\\n'}){'\\\|', '-'}){'\r','\\\\r'}"/>
+    <property name="p_debugInfo" value="%replace(%replace(%replace(%replace(%thread#%level#%logger{35}#%msg){'\t','\\\\t'}){'\n', '\\\\n'}){'\\\|', '-'}){'\r','\\\\r'}"/>
 
-	<!-- value used by pattern field list (| - is inter-field separator, || - unavailable or not applicable field value) (m - mandatory, o- optional)-->
-	<!--timestamp(m)| requestID(m)| serviceInstanceID(o)| threadID(m)| physicalServerName(o)| serviceName(m)| userID(m)| logLevel(m)| severity(o)| serverIpAddress(m)| serverName(m)| clientIpAddress(o)| className(m)| timer(o)| detailedMessage(o)-->
-	<property name="default-log-pattern"
-			  value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{BeginTimestamp}|%X{EndTimestamp}|%X{uuid}|%X{serviceInstanceID}|%thread|%X{ServerName}|%X{ServiceName}|${ECOMP-subcomponent-name}|%X{userId}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%level|%X{alarmSeverity}|%X{localAddr}|%X{ElapsedTime}|${beFqdn}|%X{remoteAddr}|%logger{35}|%X{timer}|ActivityType=&lt;%M&gt;, Desc=&lt;%msg&gt;%n" />
+    <property name="all-log-pattern"
+              value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{BeginTimestamp}|%X{EndTimestamp}|%X{uuid}|%X{serviceInstanceID}|%thread|%X{ServerName}|%X{ServiceName}|${ECOMP-subcomponent-name}|%X{userId}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceID}|%level|%X{alarmSeverity}|%X{localAddr}|%X{ElapsedTime}|${beFqdn}|%X{remoteAddr}|%logger{35}|%X{timer}|ActivityType=&lt;%M&gt;, Desc=&lt;${p_msg}&gt;%n"/>
 
-	<property name="error-log-pattern"
-			  value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{ErrorCategory}|%X{ErrorCode}|%msg|%n" />
+    <property name="debug-log-pattern"
+              value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|${p_debugInfo} ${p_ex}|^\n%n%nopex"/>
 
-	<property name="audit-log-pattern" value="%X{AuditBeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|ActivityType=&lt;%M&gt;, Desc=&lt;%msg&gt;%n" />
+    <property name="error-log-pattern"
+              value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{ErrorCategory}|%X{ErrorCode}|${p_msg} ${p_ex}|%n%nopex"/>
 
-	<property name="metric-log-pattern" value="%X{MetricBeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|ActivityType=&lt;%M&gt;, Desc=&lt;%msg&gt;%n" />
+    <property name="audit-log-pattern"
+              value="%X{EntryTimestamp}|%X{LogTimestamp}|%X{RequestID}|%X{ServiceInstanceID}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{Severity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%logger{35}|%X{Unused}|%X{ProcessKey}|%marker|InvocationID=%X{InvocationID}|%X{CustomField3}|%X{CustomField4}|ActivityType=&lt;%M&gt;, Desc=&lt;${p_msg}&gt;%n"/>
 
-	<property name="debug-log-pattern" value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%msg|^\n%n"/>
+    <property name="metric-log-pattern"
+              value="%X{InvokeTimestamp}|%X{EndTimestamp}|%X{RequestID}|%X{ServiceInstanceID}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceID}|%.-5level|%X{Severity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|||%X{ClassName}|%X{Unused}|%X{ProcessKey}|%marker|InvocationID=%X{OutgoingInvocationId}|%X{CustomField3}|%X{CustomField4}|ActivityType=&lt;%M&gt;, Desc=&lt;%msg&gt;%n" />
 
-	<!-- All log -->
-	<if condition='property("enable-all-log").equalsIgnoreCase("true")'>
-		<then>
-			<appender name="ALL_ROLLING"
-				class="ch.qos.logback.core.rolling.RollingFileAppender">
-				<file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/all.log
-				</file>
-
-				<rollingPolicy
-					class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-					<fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/all.log.%i
-					</fileNamePattern>
-					<minIndex>1</minIndex>
-					<maxIndex>10</maxIndex>
-				</rollingPolicy>
-
-				<triggeringPolicy
-					class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-					<maxFileSize>20MB</maxFileSize>
-				</triggeringPolicy>
-				<encoder>
-					<pattern>${default-log-pattern}</pattern>
-				</encoder>
-			</appender>
-
-			<appender name="ASYNC_ALL" class="ch.qos.logback.classic.AsyncAppender">
-				<appender-ref ref="ALL_ROLLING" />
-			</appender>
-		</then>
-	</if>
-
-	<!-- Error log -->
-	<appender name="ERROR_ROLLING"
-		class="ch.qos.logback.core.rolling.RollingFileAppender">
-		<file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/error.log
-		</file>
-
-		<!-- Audit messages filter - deny audit messages -->
-		<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-			<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
-				<marker>AUDIT_MARKER</marker>
-			</evaluator>
-			<onMismatch>NEUTRAL</onMismatch>
-			<onMatch>DENY</onMatch>
-		</filter>
-
-		<!-- Transaction messages filter - deny Transaction messages -->
-		<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-			<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
-				<marker>TRANSACTION_MARKER</marker>
-			</evaluator>
-			<onMismatch>NEUTRAL</onMismatch>
-			<onMatch>DENY</onMatch>
-		</filter>
-
-		<!-- deny all events with a level below INFO, that is TRACE and DEBUG -->
-		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-			<level>INFO</level>
-		</filter>
-
-		<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-			<fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/error.log.%i
-			</fileNamePattern>
-			<minIndex>1</minIndex>
-			<maxIndex>10</maxIndex>
-		</rollingPolicy>
-
-		<triggeringPolicy
-			class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-			<maxFileSize>20MB</maxFileSize>
-		</triggeringPolicy>
-		<encoder>
-			<pattern>${error-log-pattern}</pattern>
-		</encoder>
-	</appender>
-
-	<!-- Debug log -->
-	<appender name="DEBUG_ROLLING"
-		class="ch.qos.logback.core.rolling.RollingFileAppender">
-		<file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/debug.log
-		</file>
-
-		<!-- No need to deny audit messages - they are INFO only, will be denied
-			anyway -->
-		<!-- Transaction messages filter - deny Transaction messages, there are
-			some DEBUG level messages among them -->
-		<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-			<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
-				<marker>TRANSACTION_MARKER</marker>
-			</evaluator>
-			<onMismatch>NEUTRAL</onMismatch>
-			<onMatch>DENY</onMatch>
-		</filter>
-
-		<!-- accept DEBUG and TRACE level -->
-		<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-			<evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator">
-				<expression>
-					e.level.toInt() &lt;= DEBUG.toInt()
-				</expression>
-			</evaluator>
-			<OnMismatch>DENY</OnMismatch>
-			<!--<OnMatch>NEUTRAL</OnMatch>-->
-			<OnMatch>ACCEPT</OnMatch>
-		</filter>
-
-		<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-			<fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/debug.log.%i
-			</fileNamePattern>
-			<minIndex>1</minIndex>
-			<maxIndex>10</maxIndex>
-		</rollingPolicy>
-
-		<triggeringPolicy
-			class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-			<maxFileSize>20MB</maxFileSize>
-		</triggeringPolicy>
-		<encoder>
-			<pattern>${debug-log-pattern}</pattern>
-		</encoder>
-	</appender>
+    <property name="supportability-log-pattern"
+              value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{SupportablityComponentName}|%X{SupportablityAction}|%thread|%X{SupportablityComponentUUID}|%X{SupportablityStatus}|ActivityType=&lt;%M&gt;, Desc=&lt;${p_msg}&gt;%n"/>
 
 
-	<!-- ASDC debug by package-->
-	<appender name="PACKAGE_DEBUG_ROLLING"
-			  class="ch.qos.logback.core.rolling.RollingFileAppender">
-		<file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/debug_by_package.log
-		</file>
+    <!-- All log -->
+    <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
+        <then>
+            <appender name="ALL_ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
+                <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/all.log</file>
 
-		<!-- No need to deny audit messages - they are INFO only, will be denied
-			anyway -->
-		<!-- Transaction messages filter - deny Transaction messages, there are
-			some DEBUG level messages among them -->
-		<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-			<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
-				<marker>TRANSACTION_MARKER</marker>
-			</evaluator>
-			<onMismatch>NEUTRAL</onMismatch>
-			<onMatch>DENY</onMatch>
-		</filter>
+                <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+                    <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/all.log.%i
+                    </fileNamePattern>
+                    <minIndex>1</minIndex>
+                    <maxIndex>10</maxIndex>
+                </rollingPolicy>
 
-		<!-- accept DEBUG and TRACE level -->
-		<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-			<evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator">
-				<expression>
-					e.level.toInt() &lt;= DEBUG.toInt()
-				</expression>
-			</evaluator>
-			<OnMismatch>DENY</OnMismatch>
-			<OnMatch>NEUTRAL</OnMatch>
-		</filter>
+                <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+                    <maxFileSize>20MB</maxFileSize>
+                </triggeringPolicy>
 
-		<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-			<fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/debug_by_package.log.%i
-			</fileNamePattern>
-			<minIndex>1</minIndex>
-			<maxIndex>10</maxIndex>
-		</rollingPolicy>
+                <encoder>
+                    <pattern>${all-log-pattern}</pattern>
+                </encoder>
+            </appender>
+        </then>
+    </if>
 
-		<triggeringPolicy
-				class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-			<maxFileSize>20MB</maxFileSize>
-		</triggeringPolicy>
-		<encoder>
-			<pattern>${debug-log-pattern}</pattern>
-		</encoder>
-	</appender>
 
-	<!-- Audit log -->
-	<appender name="AUDIT_ROLLING"
-		class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <!-- Debug log -->
+    <appender name="DEBUG_ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/debug.log</file>
 
-		<file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/audit.log
-		</file>
+        <!-- Audit and Metric messages filter - deny audit and metric messages -->
+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
+                <marker>ENTRY</marker>
+                <marker>EXIT</marker>
+                <marker>INVOKE</marker>
+                <marker>INVOKE-RETURN</marker>
+                <marker>INVOKE-SYNCHRONOUS</marker>
+            </evaluator>
+            <onMismatch>NEUTRAL</onMismatch>
+            <onMatch>DENY</onMatch>
+        </filter>
 
-		<!-- Audit messages filter - accept audit messages -->
-		<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-			<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
-				<marker>AUDIT_MARKER</marker>
-				<marker>AUDIT</marker>
-			</evaluator>
-			<onMismatch>DENY</onMismatch>
-			<onMatch>ACCEPT</onMatch>
-		</filter>
+        <!-- accept INFO, DEBUG and TRACE level -->
+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+            <evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator">
+                <expression>
+                    e.level.toInt() &lt;= INFO.toInt()
+                </expression>
+            </evaluator>
+            <OnMismatch>DENY</OnMismatch>
+            <OnMatch>ACCEPT</OnMatch>
+        </filter>
 
-		<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-			<fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/audit.log.%i
-			</fileNamePattern>
-			<minIndex>1</minIndex>
-			<maxIndex>10</maxIndex>
-		</rollingPolicy>
+        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+            <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/debug.log.%i
+            </fileNamePattern>
+            <minIndex>1</minIndex>
+            <maxIndex>10</maxIndex>
+        </rollingPolicy>
 
-		<triggeringPolicy
-			class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-			<maxFileSize>20MB</maxFileSize>
-		</triggeringPolicy>
-		<encoder>
-			<pattern>${audit-log-pattern}</pattern>
-		</encoder>
-	</appender>
-	
-	<!-- Metrics log -->
-	<appender name="METRICS_ROLLING"
-		class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <maxFileSize>20MB</maxFileSize>
+        </triggeringPolicy>
 
-		<file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/metrics.log
-		</file>
+        <encoder>
+            <pattern>${debug-log-pattern}</pattern>
+        </encoder>
+    </appender>
 
-		<!-- Metric messages filter - accept metric messages -->
-		<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-			<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
-				<marker>METRICS</marker>
-			</evaluator>
-			<onMismatch>DENY</onMismatch>
-			<onMatch>ACCEPT</onMatch>
-		</filter>
 
-		<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-			<fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/metrics.log.%i
-			</fileNamePattern>
-			<minIndex>1</minIndex>
-			<maxIndex>10</maxIndex>
-		</rollingPolicy>
+    <!-- Error log -->
+    <appender name="ERROR_ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/error.log</file>
 
-		<triggeringPolicy
-			class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-			<maxFileSize>20MB</maxFileSize>
-		</triggeringPolicy>
-		<encoder>
-			<pattern>${metric-log-pattern}</pattern>
-		</encoder>
-	</appender>
+        <!-- deny all events with a level below WARN, that is INFO TRACE and DEBUG -->
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>WARN</level>
+        </filter>
 
-	<!-- SdncTransaction log -->
-	<appender name="TRANSACTION_ROLLING"
-		class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+            <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/error.log.%i
+            </fileNamePattern>
+            <minIndex>1</minIndex>
+            <maxIndex>10</maxIndex>
+        </rollingPolicy>
 
-		<file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/transaction.log
-		</file>
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <maxFileSize>20MB</maxFileSize>
+        </triggeringPolicy>
 
-		<!-- Transaction messages filter - accept audit messages -->
-		<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-			<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
-				<marker>TRANSACTION_MARKER</marker>
-			</evaluator>
-			<onMismatch>DENY</onMismatch>
-			<onMatch>ACCEPT</onMatch>
-		</filter>
+        <encoder>
+            <pattern>${error-log-pattern}</pattern>
+        </encoder>
+    </appender>
 
-		<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-			<fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/transaction.log.%i
-			</fileNamePattern>
-			<minIndex>1</minIndex>
-			<maxIndex>10</maxIndex>
-		</rollingPolicy>
 
-		<triggeringPolicy
-			class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-			<maxFileSize>20MB</maxFileSize>
-		</triggeringPolicy>
-		<encoder>
-			<pattern>${default-log-pattern}</pattern>
-		</encoder>
-	</appender>
-	
-	<!-- Asynchronicity Configurations -->
-	<appender name="ASYNC_DEBUG" class="ch.qos.logback.classic.AsyncAppender">
-	      <appender-ref ref="DEBUG_ROLLING" />
-	</appender>
+    <!-- Audit log -->
+    <appender name="AUDIT_ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/audit.log</file>
 
-	<appender name="ASYNC_TRANSACTION" class="ch.qos.logback.classic.AsyncAppender">
-	      <appender-ref ref="TRANSACTION_ROLLING" />
-	</appender>
-	
-	<appender name="ASYNC_ERROR" class="ch.qos.logback.classic.AsyncAppender">
-	      <appender-ref ref="ERROR_ROLLING" />
-	</appender>
+        <!-- Audit messages filter - accept audit messages -->
+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
+                <marker>ENTRY</marker>
+                <marker>EXIT</marker>
+            </evaluator>
+            <onMismatch>DENY</onMismatch>
+            <onMatch>ACCEPT</onMatch>
+        </filter>
 
-	<root level="INFO">
-		<appender-ref ref="ASYNC_ERROR" />
-		<appender-ref ref="ASYNC_DEBUG" />
-		<appender-ref ref="AUDIT_ROLLING" />
-		<appender-ref ref="ASYNC_TRANSACTION" />
-		<appender-ref ref="METRICS_ROLLING" />
-		<if condition='property("enable-all-log").equalsIgnoreCase("true")'>
-			<then>
-				<appender-ref ref="ALL_ROLLING" />
-			</then>
-		</if>
-	</root>
+        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+            <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/audit.log.%i
+            </fileNamePattern>
+            <minIndex>1</minIndex>
+            <maxIndex>10</maxIndex>
+        </rollingPolicy>
 
-	<logger name="org.openecomp.sdc" level="INFO" />
-</configuration>
\ No newline at end of file
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <maxFileSize>20MB</maxFileSize>
+        </triggeringPolicy>
+
+        <encoder>
+            <pattern>${audit-log-pattern}</pattern>
+        </encoder>
+    </appender>
+
+
+    <!-- Metrics log -->
+    <appender name="METRICS_ROLLING"
+              class="ch.qos.logback.core.rolling.RollingFileAppender">
+
+        <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/metrics.log
+        </file>
+
+        <!-- Metric messages filter - accept metric messages -->
+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
+                <marker>INVOKE</marker>
+                <marker>INVOKE-RETURN</marker>
+                <marker>INVOKE-SYNCHRONOUS</marker>
+            </evaluator>
+            <onMismatch>DENY</onMismatch>
+            <onMatch>ACCEPT</onMatch>
+        </filter>
+
+        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+            <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/metrics.log.%i
+            </fileNamePattern>
+            <minIndex>1</minIndex>
+            <maxIndex>10</maxIndex>
+        </rollingPolicy>
+
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <maxFileSize>20MB</maxFileSize>
+        </triggeringPolicy>
+
+        <encoder>
+            <pattern>${metric-log-pattern}</pattern>
+        </encoder>
+    </appender>
+
+
+    <!-- Supporability log -->
+    <appender name="SUPPORTABILITY_ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
+
+        <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/supportability.log</file>
+
+        <!-- Supporability messages filter - accept suppportability messages -->
+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
+                <marker>SUPPORTABILITY_MARKER</marker>
+            </evaluator>
+            <onMismatch>DENY</onMismatch>
+            <onMatch>ACCEPT</onMatch>
+        </filter>
+
+        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+            <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/supportability.log.%i
+            </fileNamePattern>
+            <minIndex>1</minIndex>
+            <maxIndex>10</maxIndex>
+        </rollingPolicy>
+
+        <triggeringPolicy
+                class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <maxFileSize>20MB</maxFileSize>
+        </triggeringPolicy>
+
+        <encoder>
+            <pattern>${supportability-log-pattern}</pattern>
+        </encoder>
+    </appender>
+
+
+    <!-- Asynchronicity Configurations -->
+    <appender name="ASYNC_DEBUG" class="ch.qos.logback.classic.AsyncAppender">
+        <appender-ref ref="DEBUG_ROLLING"/>
+    </appender>
+
+    <appender name="ASYNC_ERROR" class="ch.qos.logback.classic.AsyncAppender">
+        <appender-ref ref="ERROR_ROLLING"/>
+    </appender>
+
+    <appender name="ASYNC_ALL" class="ch.qos.logback.classic.AsyncAppender">
+        <appender-ref ref="ALL_ROLLING"/>
+    </appender>
+
+
+    <root level="INFO">
+        <appender-ref ref="ASYNC_DEBUG"/>
+        <appender-ref ref="ASYNC_ERROR"/>
+        <appender-ref ref="AUDIT_ROLLING"/>
+        <appender-ref ref="METRICS_ROLLING"/>
+        <appender-ref ref="SUPPORTABILITY_ROLLING"/>
+        <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
+            <then>
+                <appender-ref ref="ASYNC_ALL"/>
+            </then>
+        </if>
+    </root>
+
+    <logger name="org.openecomp.sdc" level="INFO"/>
+</configuration>
diff --git a/catalog-be/src/main/resources/elasticsearch.yml b/catalog-be/src/main/resources/elasticsearch.yml
deleted file mode 100644
index 71ccdbb..0000000
--- a/catalog-be/src/main/resources/elasticsearch.yml
+++ /dev/null
@@ -1,399 +0,0 @@
-
-cluster.name: elasticsearch
-
-discovery.zen.ping.multicast.enabled: false
-discovery.zen.ping.unicast.enabled: true
-discovery.zen.ping.unicast.hosts: elasticsearch_host
-
-http.cors.enabled: true
-
-path.home: "/home/vagrant/catalog-be/config"
-
-elasticSearch.transportclient: true
-
-transport.client.initial_nodes:
-   - elasticsearch_host:9300
-
-#shield.user: asdc:Aa12345
-#shield.ssl.keystore.path: "/vagrant/install/resources/catalog-be/keystore/es-client.jks"
-#shield.ssl.keystore.password: Aa123456
-#shield.transport.ssl: true
-
-##################### Elasticsearch Configuration Example #####################
-
-# This file contains an overview of various configuration settings,
-# targeted at operations staff. Application developers should
-# consult the guide at <http://elasticsearch.org/guide>.
-#
-# The installation procedure is covered at
-# <http://elasticsearch.org/guide/en/elasticsearch/reference/current/setup.html>.
-#
-# Elasticsearch comes with reasonable defaults for most settings,
-# so you can try it out without bothering with configuration.
-#
-# Most of the time, these defaults are just fine for running a production
-# cluster. If you're fine-tuning your cluster, or wondering about the
-# effect of certain configuration option, please _do ask_ on the
-# mailing list or IRC channel [http://elasticsearch.org/community].
-
-# Any element in the configuration can be replaced with environment variables
-# by placing them in ${...} notation. For example:
-#
-# node.rack: ${RACK_ENV_VAR}
-
-# For information on supported formats and syntax for the config file, see
-# <http://elasticsearch.org/guide/en/elasticsearch/reference/current/setup-configuration.html>
-
-
-################################### Cluster ###################################
-
-# Cluster name identifies your cluster for auto-discovery. If you're running
-# multiple clusters on the same network, make sure you're using unique names.
-#
-# cluster.name: elasticsearch
-
-
-#################################### Node #####################################
-
-# Node names are generated dynamically on startup, so you're relieved
-# from configuring them manually. You can tie this node to a specific name:
-#
-# node.name: "Franz Kafka"
-
-# Every node can be configured to allow or deny being eligible as the master,
-# and to allow or deny to store the data.
-#
-# Allow this node to be eligible as a master node (enabled by default):
-#
-# node.master: true
-#
-# Allow this node to store data (enabled by default):
-#
-# node.data: true
-
-# You can exploit these settings to design advanced cluster topologies.
-#
-# 1. You want this node to never become a master node, only to hold data.
-#    This will be the "workhorse" of your cluster.
-#
-# node.master: false
-# node.data: true
-#
-# 2. You want this node to only serve as a master: to not store any data and
-#    to have free resources. This will be the "coordinator" of your cluster.
-#
-# node.master: true
-# node.data: false
-#
-# 3. You want this node to be neither master nor data node, but
-#    to act as a "search load balancer" (fetching data from nodes,
-#    aggregating results, etc.)
-#
-# node.master: false
-# node.data: false
-
-# Use the Cluster Health API [http://localhost:9200/_cluster/health], the
-# Node Info API [http://localhost:9200/_nodes] or GUI tools
-# such as <http://www.elasticsearch.org/overview/marvel/>,
-# <http://github.com/karmi/elasticsearch-paramedic>,
-# <http://github.com/lukas-vlcek/bigdesk> and
-# <http://mobz.github.com/elasticsearch-head> to inspect the cluster state.
-
-# A node can have generic attributes associated with it, which can later be used
-# for customized shard allocation filtering, or allocation awareness. An attribute
-# is a simple key value pair, similar to node.key: value, here is an example:
-#
-# node.rack: rack314
-
-# By default, multiple nodes are allowed to start from the same installation location
-# to disable it, set the following:
-# node.max_local_storage_nodes: 1
-
-
-#################################### Index ####################################
-
-# You can set a number of options (such as shard/replica options, mapping
-# or analyzer definitions, translog settings, ...) for indices globally,
-# in this file.
-#
-# Note, that it makes more sense to configure index settings specifically for
-# a certain index, either when creating it or by using the index templates API.
-#
-# See <http://elasticsearch.org/guide/en/elasticsearch/reference/current/index-modules.html> and
-# <http://elasticsearch.org/guide/en/elasticsearch/reference/current/indices-create-index.html>
-# for more information.
-
-# Set the number of shards (splits) of an index (5 by default):
-#
-# index.number_of_shards: 5
-
-# Set the number of replicas (additional copies) of an index (1 by default):
-#
-# index.number_of_replicas: 1
-
-# Note, that for development on a local machine, with small indices, it usually
-# makes sense to "disable" the distributed features:
-#
-index.number_of_shards: 1
-index.number_of_replicas: 0
-
-# These settings directly affect the performance of index and search operations
-# in your cluster. Assuming you have enough machines to hold shards and
-# replicas, the rule of thumb is:
-#
-# 1. Having more *shards* enhances the _indexing_ performance and allows to
-#    _distribute_ a big index across machines.
-# 2. Having more *replicas* enhances the _search_ performance and improves the
-#    cluster _availability_.
-#
-# The "number_of_shards" is a one-time setting for an index.
-#
-# The "number_of_replicas" can be increased or decreased anytime,
-# by using the Index Update Settings API.
-#
-# Elasticsearch takes care about load balancing, relocating, gathering the
-# results from nodes, etc. Experiment with different settings to fine-tune
-# your setup.
-
-# Use the Index Status API (<http://localhost:9200/A/_status>) to inspect
-# the index status.
-
-
-#################################### Paths ####################################
-
-# Path to directory containing configuration (this file and logging.yml):
-#
-path.conf: /src/test/resources
-
-# Path to directory where to store index data allocated for this node.
-#
-path.data: target/esdata
-#
-# Can optionally include more than one location, causing data to be striped across
-# the locations (a la RAID 0) on a file level, favouring locations with most free
-# space on creation. For example:
-#
-# path.data: /path/to/data1,/path/to/data2
-
-# Path to temporary files:
-#
-path.work: /target/eswork
-
-# Path to log files:
-#
-path.logs: /target/eslogs
-
-# Path to where plugins are installed:
-#
-# path.plugins: /path/to/plugins
-
-
-#################################### Plugin ###################################
-
-# If a plugin listed here is not installed for current node, the node will not start.
-#
-# plugin.mandatory: mapper-attachments,lang-groovy
-
-
-################################### Memory ####################################
-
-# Elasticsearch performs poorly when JVM starts swapping: you should ensure that
-# it _never_ swaps.
-#
-# Set this property to true to lock the memory:
-#
-# bootstrap.mlockall: true
-
-# Make sure that the ES_MIN_MEM and ES_MAX_MEM environment variables are set
-# to the same value, and that the machine has enough memory to allocate
-# for Elasticsearch, leaving enough memory for the operating system itself.
-#
-# You should also make sure that the Elasticsearch process is allowed to lock
-# the memory, eg. by using `ulimit -l unlimited`.
-
-
-############################## Network And HTTP ###############################
-
-# Elasticsearch, by default, binds itself to the 0.0.0.0 address, and listens
-# on port [9200-9300] for HTTP traffic and on port [9300-9400] for node-to-node
-# communication. (the range means that if the port is busy, it will automatically
-# try the next port).
-
-# Set the bind address specifically (IPv4 or IPv6):
-#
-# network.bind_host: 192.168.0.1
-
-# Set the address other nodes will use to communicate with this node. If not
-# set, it is automatically derived. It must point to an actual IP address.
-#
-# network.publish_host: 192.168.0.1
-
-# Set both 'bind_host' and 'publish_host':
-#
-# network.host: 192.168.0.1
-
-# Set a custom port for the node to node communication (9300 by default):
-#
-# transport.tcp.port: 9300
-
-# Enable compression for all communication between nodes (disabled by default):
-#
-# transport.tcp.compress: true
-
-# Set a custom port to listen for HTTP traffic:
-#
-# http.port: 9200
-
-# Set a custom allowed content length:
-#
-# http.max_content_length: 100mb
-
-# Disable HTTP completely:
-#
-# http.enabled: false
-
-
-################################### Gateway ###################################
-
-# The gateway allows for persisting the cluster state between full cluster
-# restarts. Every change to the state (such as adding an index) will be stored
-# in the gateway, and when the cluster starts up for the first time,
-# it will read its state from the gateway.
-
-# There are several types of gateway implementations. For more information, see
-# <http://elasticsearch.org/guide/en/elasticsearch/reference/current/modules-gateway.html>.
-
-# The default gateway type is the "local" gateway (recommended):
-#
-# gateway.type: local
-
-# Settings below control how and when to start the initial recovery process on
-# a full cluster restart (to reuse as much local data as possible when using shared
-# gateway).
-
-# Allow recovery process after N nodes in a cluster are up:
-#
-gateway.recover_after_nodes: 1
-
-# Set the timeout to initiate the recovery process, once the N nodes
-# from previous setting are up (accepts time value):
-#
-# gateway.recover_after_time: 5m
-
-# Set how many nodes are expected in this cluster. Once these N nodes
-# are up (and recover_after_nodes is met), begin recovery process immediately
-# (without waiting for recover_after_time to expire):
-#
-gateway.expected_nodes: 1
-
-
-############################# Recovery Throttling #############################
-
-# These settings allow to control the process of shards allocation between
-# nodes during initial recovery, replica allocation, rebalancing,
-# or when adding and removing nodes.
-
-# Set the number of concurrent recoveries happening on a node:
-#
-# 1. During the initial recovery
-#
-# cluster.routing.allocation.node_initial_primaries_recoveries: 4
-#
-# 2. During adding/removing nodes, rebalancing, etc
-#
-# cluster.routing.allocation.node_concurrent_recoveries: 2
-
-# Set to throttle throughput when recovering (eg. 100mb, by default 20mb):
-#
-# indices.recovery.max_bytes_per_sec: 20mb
-
-# Set to limit the number of open concurrent streams when
-# recovering a shard from a peer:
-#
-# indices.recovery.concurrent_streams: 5
-
-
-################################## Discovery ##################################
-
-# Discovery infrastructure ensures nodes can be found within a cluster
-# and master node is elected. Multicast discovery is the default.
-
-# Set to ensure a node sees N other master eligible nodes to be considered
-# operational within the cluster. Its recommended to set it to a higher value
-# than 1 when running more than 2 nodes in the cluster.
-#
-# discovery.zen.minimum_master_nodes: 1
-
-# Set the time to wait for ping responses from other nodes when discovering.
-# Set this option to a higher value on a slow or congested network
-# to minimize discovery failures:
-#
-# discovery.zen.ping.timeout: 3s
-
-# For more information, see
-# <http://elasticsearch.org/guide/en/elasticsearch/reference/current/modules-discovery-zen.html>
-
-# Unicast discovery allows to explicitly control which nodes will be used
-# to discover the cluster. It can be used when multicast is not present,
-# or to restrict the cluster communication-wise.
-#
-# 1. Disable multicast discovery (enabled by default):
-#
-# discovery.zen.ping.multicast.enabled: false
-#
-# 2. Configure an initial list of master nodes in the cluster
-#    to perform discovery when new nodes (master or data) are started:
-#
-# discovery.zen.ping.unicast.hosts: ["host1", "host2:port"]
-
-# EC2 discovery allows to use AWS EC2 API in order to perform discovery.
-#
-# You have to install the cloud-aws plugin for enabling the EC2 discovery.
-#
-# For more information, see
-# <http://elasticsearch.org/guide/en/elasticsearch/reference/current/modules-discovery-ec2.html>
-#
-# See <http://elasticsearch.org/tutorials/elasticsearch-on-ec2/>
-# for a step-by-step tutorial.
-
-# GCE discovery allows to use Google Compute Engine API in order to perform discovery.
-#
-# You have to install the cloud-gce plugin for enabling the GCE discovery.
-#
-# For more information, see <https://github.com/elasticsearch/elasticsearch-cloud-gce>.
-
-# Azure discovery allows to use Azure API in order to perform discovery.
-#
-# You have to install the cloud-azure plugin for enabling the Azure discovery.
-#
-# For more information, see <https://github.com/elasticsearch/elasticsearch-cloud-azure>.
-
-################################## Slow Log ##################################
-
-# Shard level query and fetch threshold logging.
-
-#index.search.slowlog.threshold.query.warn: 10s
-#index.search.slowlog.threshold.query.info: 5s
-#index.search.slowlog.threshold.query.debug: 2s
-#index.search.slowlog.threshold.query.trace: 500ms
-
-#index.search.slowlog.threshold.fetch.warn: 1s
-#index.search.slowlog.threshold.fetch.info: 800ms
-#index.search.slowlog.threshold.fetch.debug: 500ms
-#index.search.slowlog.threshold.fetch.trace: 200ms
-
-#index.indexing.slowlog.threshold.index.warn: 10s
-#index.indexing.slowlog.threshold.index.info: 5s
-#index.indexing.slowlog.threshold.index.debug: 2s
-#index.indexing.slowlog.threshold.index.trace: 500ms
-
-################################## GC Logging ################################
-
-#monitor.jvm.gc.young.warn: 1000ms
-#monitor.jvm.gc.young.info: 700ms
-#monitor.jvm.gc.young.debug: 400ms
-
-#monitor.jvm.gc.old.warn: 10s
-#monitor.jvm.gc.old.info: 5s
-#monitor.jvm.gc.old.debug: 2s
-
diff --git a/catalog-be/src/main/resources/import/tosca/heat-types/extVl/extVl.yml b/catalog-be/src/main/resources/import/tosca/heat-types/extVl/extVl.yml
index 53b453c..581d688 100644
--- a/catalog-be/src/main/resources/import/tosca/heat-types/extVl/extVl.yml
+++ b/catalog-be/src/main/resources/import/tosca/heat-types/extVl/extVl.yml
@@ -17,7 +17,7 @@
       network_scope:
         type: string
         constraints:
-          valid_values: ["VF", "SERVICE", "GLOBAL"]
+        - valid_values: ["VF", "SERVICE", "GLOBAL"]
         description: >
           Uniquely identifies the network scope. Valid values for the network scope  
           includes:
diff --git a/catalog-be/src/main/resources/portal.properties b/catalog-be/src/main/resources/portal.properties
index 185a4fb..a182e80 100644
--- a/catalog-be/src/main/resources/portal.properties
+++ b/catalog-be/src/main/resources/portal.properties
@@ -54,6 +54,7 @@
 
 # Name of java class that implements the OnBoardingApiService interface.
 portal.api.impl.class = org.openecomp.sdc.be.ecomp.PortalRestAPICentralServiceImpl
+# Use this tag if the app is centralized remote/local
 role_access_centralized = remote
 
 # URL of the Portal where this app is onboarded
@@ -75,4 +76,8 @@
 # then only the ueb_app_key is required.
 ueb_app_key = REPLACE-ME-UEB-APP-KEY-EPSDK-APP-OS
 
-
+# Connection and Read timeout values
+#ext_req_connection_timeout = 15000
+#ext_req_read_timeout = 20000
+#Add AAF namespace if the app is centralized
+aaf_namespace = com.att.sdc
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py
index 74ecf71..969c2f8 100644
--- a/catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py
+++ b/catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py
@@ -60,13 +60,13 @@
                   "extContrailCP",
 				  "portMirroringByPolicy",
 				  "forwardingPath",
+				  "configuration",
 				  "VRFObject",
 				  "extVirtualMachineInterfaceCP",
 				  "VLANNetworkReceptor",
 				  "VRFEntry",
                   "subInterfaceV2",
                   "contrailV2VLANSubInterfaceV2",
-                  "configuration",
                   "fabricConfiguration"
 				  ]
 		
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importNodeType.py b/catalog-be/src/main/resources/scripts/import/tosca/importNodeType.py
index 24218b6..1418722 100644
--- a/catalog-be/src/main/resources/scripts/import/tosca/importNodeType.py
+++ b/catalog-be/src/main/resources/scripts/import/tosca/importNodeType.py
@@ -56,7 +56,8 @@
 
 		c.setopt(c.WRITEFUNCTION, buffer.write)
 		if scheme == 'https':
-			c.setopt(c.SSL_VERIFYPEER, 0)
+			c.setopt(pycurl.SSL_VERIFYPEER, 0)
+			c.setopt(pycurl.SSL_VERIFYHOST, 0)
 
 		res = c.perform()
 	
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeAll.py b/catalog-be/src/main/resources/scripts/import/tosca/importNormativeAll.py
index 19ffc17..e4f536f 100644
--- a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeAll.py
+++ b/catalog-be/src/main/resources/scripts/import/tosca/importNormativeAll.py
@@ -4,6 +4,7 @@
 import json
 import copy
 import time
+# from importNormativeElements import createNormativeElement
 from importNormativeElements import *
 from importNormativeTypes import importNormativeTypes
 from importHeatTypes import importHeatTypes
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeElements.py b/catalog-be/src/main/resources/scripts/import/tosca/importNormativeElements.py
index 3d5e9fd..47ed633 100644
--- a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeElements.py
+++ b/catalog-be/src/main/resources/scripts/import/tosca/importNormativeElements.py
@@ -17,11 +17,9 @@
 #		python importUsers.py [-f <input file> | --ifile=<input file> ]												 				           									#
 #																																		       									#
 #################################################################################################################################################################################
-def import_element(scheme, be_host, be_port, admin_user, exit_on_success, file_dir, url_suffix, element_name,
-                   element_form_name,
+def import_element(scheme, be_host, be_port, admin_user, exit_on_success, file_dir, url_suffix, element_name, element_form_name,
                    with_metadata=False):
-    result = createNormativeElement(scheme, be_host, be_port, admin_user, file_dir, url_suffix, element_name,
-                                    element_form_name, with_metadata)
+    result = createNormativeElement(scheme, be_host, be_port, admin_user, file_dir, url_suffix, element_name, element_form_name, with_metadata)
     print_frame_line()
     print_name_and_return_code(result[0], result[1])
     print_frame_line()
@@ -33,6 +31,7 @@
             error_and_exit(0, None)
 
 
+
 def createNormativeElement(scheme, be_host, be_port, admin_user, file_dir, url_suffix, element_name, element_form_name,
                            with_metadata=False):
     try:
@@ -41,37 +40,35 @@
         c = pycurl.Curl()
 
         url = scheme + '://' + be_host + ':' + be_port + url_suffix
-        c.setopt(pycurl.URL, url)
-        c.setopt(pycurl.POST, 1)
+        c.setopt(c.URL, url)
+        c.setopt(c.POST, 1)
 
         admin_header = 'USER_ID: ' + admin_user
         c.setopt(pycurl.HTTPHEADER, [admin_header])
 
         type_file_name = file_dir + "/" + element_name
 
-        multi_part_form_data = create_multipart_form_data(element_form_name, type_file_name, with_metadata,
-                                                          element_name)
+        multi_part_form_data = create_multipart_form_data(element_form_name, type_file_name, with_metadata, element_name)
 
         c.setopt(pycurl.HTTPPOST, multi_part_form_data)
-        c.setopt(pycurl.WRITEFUNCTION, buffer.write)
+        c.setopt(c.WRITEFUNCTION, buffer.write)
 
         if scheme == 'https':
-            # security "man in middle" vulnerability
             c.setopt(pycurl.SSL_VERIFYPEER, 0)
             c.setopt(pycurl.SSL_VERIFYHOST, 0)
 
         c.perform()
 
-        http_res = c.getinfo(pycurl.RESPONSE_CODE)
+        http_res = c.getinfo(c.RESPONSE_CODE)
         if http_res is not None:
             debug("http response=", http_res)
         debug("response buffer", buffer.getvalue())
         c.close()
-        return element_name, http_res, buffer.getvalue()
+        return (element_name, http_res, buffer.getvalue())
 
     except Exception as inst:
         print("ERROR=" + str(inst))
-        return element_name, None, None
+        return (element_name, None, None)
 
 
 def create_multipart_form_data(element_form_name, type_file_name, with_metadata, element_name):
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeRelationships.py b/catalog-be/src/main/resources/scripts/import/tosca/importNormativeRelationships.py
index a86e520..7adcf33 100644
--- a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeRelationships.py
+++ b/catalog-be/src/main/resources/scripts/import/tosca/importNormativeRelationships.py
@@ -5,7 +5,7 @@
 import copy
 from importNormativeElements import createNormativeElement
 from importCommon import *
-import importCommon 
+import importCommon
 
 #################################################################################################################################################################################################
 #																																		       													#
@@ -22,62 +22,62 @@
 #																																		       													#
 #################################################################################################################################################################################################
 
-	
+
 def usage():
-	print sys.argv[0], '[optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ]'
+    print sys.argv[0], '[optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ]'
 
 
 def importNormativeRelationships(scheme, beHost, bePort, adminUser, exitOnSuccess, fileDir):
-	result = createNormativeElement(scheme, beHost, bePort, adminUser, fileDir, "/sdc2/rest/v1/catalog/uploadType/relationship", "relationshipTypes", "relationshipTypeZip")
-	
-	print_frame_line()
-        print_name_and_return_code(result[0], result[1])
-        print_frame_line()
+    result = createNormativeElement(scheme, beHost, bePort, adminUser, fileDir, "/sdc2/rest/v1/catalog/uploadType/relationship", "relationshipTypes", "relationshipTypeZip")
 
-        if ( result[1] == None or result[1] not in [200, 201, 409] ):
-                importCommon.error_and_exit(1, None)
-        else:
-		if (exitOnSuccess == True):
-                	importCommon.error_and_exit(0, None)
+    print_frame_line()
+    print_name_and_return_code(result[0], result[1])
+    print_frame_line()
+
+    if ( result[1] == None or result[1] not in [200, 201, 409] ):
+        importCommon.error_and_exit(1, None)
+    else:
+        if (exitOnSuccess == True):
+            importCommon.error_and_exit(0, None)
 
 
 def main(argv):
-	print 'Number of arguments:', len(sys.argv), 'arguments.'
+    print 'Number of arguments:', len(sys.argv), 'arguments.'
 
-	beHost = 'localhost' 
-	bePort = '8080'
-	adminUser = 'jh0003'
-	scheme = 'http'
+    beHost = 'localhost'
+    bePort = '8080'
+    adminUser = 'jh0003'
+    scheme = 'http'
 
-	try:
-		opts, args = getopt.getopt(argv,"i:p:u:h:s:",["ip=","port=","user=","scheme="])
-	except getopt.GetoptError:
-		usage()
-		importCommon.error_and_exit(2, 'Invalid input')
-		 
-	for opt, arg in opts:
-	#print opt, arg
-		if opt == '-h':
-			usage()                        
-			sys.exit(3)
-		elif opt in ("-i", "--ip"):
-			beHost = arg
-		elif opt in ("-p", "--port"):
-			bePort = arg
-		elif opt in ("-u", "--user"):
-			adminUser = arg
-		elif opt in ("-s", "--scheme"):
-			scheme = arg
+    try:
+        opts, args = getopt.getopt(argv,"i:p:u:h:s:",["ip=","port=","user=","scheme="])
+    except getopt.GetoptError:
+        usage()
+        importCommon.error_and_exit(2, 'Invalid input')
 
-	print 'scheme =',scheme,', be host =',beHost,', be port =', bePort,', user =', adminUser
-	
-	if ( beHost == None ):
-		usage()
-		sys.exit(3)
+    for opt, arg in opts:
+        #print opt, arg
+        if opt == '-h':
+            usage()
+            sys.exit(3)
+        elif opt in ("-i", "--ip"):
+            beHost = arg
+        elif opt in ("-p", "--port"):
+            bePort = arg
+        elif opt in ("-u", "--user"):
+            adminUser = arg
+        elif opt in ("-s", "--scheme"):
+            scheme = arg
 
-	importNormativeRelationships(scheme, beHost, bePort, adminUser, True, "../../../import/tosca/relationship-types/")
+    print 'scheme =',scheme,', be host =',beHost,', be port =', bePort,', user =', adminUser
+
+    if ( beHost == None ):
+        usage()
+        sys.exit(3)
+
+    importNormativeRelationships(scheme, beHost, bePort, adminUser, True, "../../../import/tosca/relationship-types/")
 
 
 if __name__ == "__main__":
-        main(sys.argv[1:])
+    main(sys.argv[1:])
 
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/importNormativeTypes.py
index b74cead..6eea374 100644
--- a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeTypes.py
+++ b/catalog-be/src/main/resources/scripts/import/tosca/importNormativeTypes.py
@@ -19,158 +19,154 @@
 #########################################################################################################################################################################################
 
 def createNormativeType(scheme, beHost, bePort, adminUser, fileDir, ELEMENT_NAME, updateversion):
-    try:
-        log("in create normative type ", ELEMENT_NAME)
-        debug("userId", adminUser)
-        debug("fileDir", fileDir)
+	
+	try:
+		log("in create normative type ", ELEMENT_NAME)
+		debug("userId", adminUser)
+		debug("fileDir", fileDir)
+		
+		buffer = StringIO()
+		c = pycurl.Curl()
 
-        buffer = StringIO()
-        c = pycurl.Curl()
+		url = scheme + '://' + beHost + ':' + bePort + '/sdc2/rest/v1/catalog/upload/multipart'
+		if updateversion != None:
+			url += '?createNewVersion=' + updateversion
+		c.setopt(c.URL, url)
+		c.setopt(c.POST, 1)		
 
-        url = scheme + '://' + beHost + ':' + bePort + '/sdc2/rest/v1/catalog/upload/multipart'
-        if updateversion != None:
-            url += '?createNewVersion=' + updateversion
-        c.setopt(pycurl.URL, url)
-        c.setopt(pycurl.POST, 1)
+		adminHeader = 'USER_ID: ' + adminUser
+		#c.setopt(pycurl.HTTPHEADER, ['Content-Type: application/json', 'Accept: application/json', adminHeader])
+		c.setopt(pycurl.HTTPHEADER, [adminHeader])
 
-        adminHeader = 'USER_ID: ' + adminUser
-        # c.setopt(pycurl.HTTPHEADER, ['Content-Type: application/json', 'Accept: application/json', adminHeader])
-        c.setopt(pycurl.HTTPHEADER, [adminHeader])
+		yml_path = fileDir + ELEMENT_NAME + "/" + ELEMENT_NAME + ".yml"
+		path = fileDir + ELEMENT_NAME + "/" + ELEMENT_NAME + ".zip"
 
-        yml_path = fileDir + ELEMENT_NAME + "/" + ELEMENT_NAME + ".yml"
-        path = fileDir + ELEMENT_NAME + "/" + ELEMENT_NAME + ".zip"
+		zf = zipfile.ZipFile(path, "w")
+		zf.write(yml_path, ELEMENT_NAME + '.yml')
+		zf.close()
 
-        zf = zipfile.ZipFile(path, "w")
-        zf.write(yml_path, ELEMENT_NAME + '.yml')
-        zf.close()
+		debug(path)
+        	CURRENT_JSON_FILE=fileDir + ELEMENT_NAME + "/" + ELEMENT_NAME + ".json"
+        	#sed -i 's/"userId": ".*",/"userId": "'${USER_ID}'",/' ${CURRENT_JSON_FILE}
 
-        debug(path)
-        CURRENT_JSON_FILE = fileDir + ELEMENT_NAME + "/" + ELEMENT_NAME + ".json"
-        # sed -i 's/"userId": ".*",/"userId": "'${USER_ID}'",/' ${CURRENT_JSON_FILE}
+		jsonFile = open(CURRENT_JSON_FILE)
+		
+		debug("before load json")
+		json_data = json.load(jsonFile, strict=False)
+		debug(json_data)
+	
+		jsonAsStr = json.dumps(json_data)
 
-        jsonFile = open(CURRENT_JSON_FILE)
+		send = [('resourceMetadata', jsonAsStr), ('resourceZip', (pycurl.FORM_FILE, path))]
+		debug(send)
+		c.setopt(pycurl.HTTPPOST, send)		
 
-        debug("before load json")
-        json_data = json.load(jsonFile, strict=False)
-        debug(json_data)
+		#data = json.dumps(user)
+		#c.setopt(c.POSTFIELDS, data)	
 
-        jsonAsStr = json.dumps(json_data)
+		if scheme == 'https':
+			c.setopt(pycurl.SSL_VERIFYPEER, 0)
+			c.setopt(pycurl.SSL_VERIFYHOST, 0)
 
-        send = [('resourceMetadata', jsonAsStr), ('resourceZip', (pycurl.FORM_FILE, path))]
-        debug(send)
-        c.setopt(pycurl.HTTPPOST, send)
+		#c.setopt(c.WRITEFUNCTION, lambda x: None)
+		c.setopt(c.WRITEFUNCTION, buffer.write)
+		#print("before perform")	
+		res = c.perform()
+	
+		#print("Before get response code")	
+		httpRes = c.getinfo(c.RESPONSE_CODE)
+		if (httpRes != None):
+			debug("http response=", httpRes)
+		#print('Status: ' + str(responseCode))
+		debug(buffer.getvalue())
+		c.close()
 
-        # data = json.dumps(user)
-        # c.setopt(c.POSTFIELDS, data)
+		return (ELEMENT_NAME, httpRes, buffer.getvalue())
 
-        if scheme == 'https':
-            # security "man in middle" vulnerability
-            c.setopt(pycurl.SSL_VERIFYPEER, 0)
-            c.setopt(pycurl.SSL_VERIFYHOST, 0)
-
-        # c.setopt(c.WRITEFUNCTION, lambda x: None)
-        c.setopt(pycurl.WRITEFUNCTION, buffer.write)
-        # print("before perform")
-        c.perform()
-
-        # print("Before get response code")
-        httpRes = c.getinfo(pycurl.RESPONSE_CODE)
-        if (httpRes != None):
-            debug("http response=", httpRes)
-        # print('Status: ' + str(responseCode))
-        debug(buffer.getvalue())
-        c.close()
-
-        return ELEMENT_NAME, httpRes, buffer.getvalue()
-
-    except Exception as inst:
-        print("ERROR=" + str(inst))
-        return ELEMENT_NAME, None, None
+	except Exception as inst:
+		print("ERROR=" + str(inst))
+		return (ELEMENT_NAME, None, None)				
 
 
 def usage():
-    print sys.argv[0], \
-        '[optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | ' \
-        '--ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ] ' \
-        '[-v <true|false> | --updateversion=<true|false>]'
+	print sys.argv[0], '[optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ] [-v <true|false> | --updateversion=<true|false>]'
 
 
 def importNormativeTypes(scheme, beHost, bePort, adminUser, fileDir, updateversion):
-    normativeTypes = ["root", "compute", "softwareComponent", "webServer", "webApplication", "DBMS", "database",
-                      "objectStorage", "blockStorage", "containerRuntime", "containerApplication", "loadBalancer",
-                      "port", "network"]
-    # normativeTypes = [ "root" ]
-    responseCodes = [200, 201]
-
-    if (updateversion == 'false'):
-        responseCodes = [200, 201, 409]
-
-    results = []
-    for normativeType in normativeTypes:
-        result = createNormativeType(scheme, beHost, bePort, adminUser, fileDir, normativeType, updateversion)
-        results.append(result)
-        if (result[1] == None or result[1] not in responseCodes):
-            print "Failed creating normative type " + normativeType + ". " + str(result[1])
-    return results
+	
+	normativeTypes = [ "root", "compute", "softwareComponent", "webServer", "webApplication", "DBMS", "database", "objectStorage", "blockStorage", "containerRuntime", "containerApplication", "loadBalancer", "port", "network"]
+	#normativeTypes = [ "root" ]
+	responseCodes = [200, 201]
+	
+	if(updateversion == 'false'):
+		responseCodes = [200, 201, 409]
+	
+        results = []
+        for normativeType in normativeTypes:
+                result = createNormativeType(scheme, beHost, bePort, adminUser, fileDir, normativeType, updateversion)
+                results.append(result)
+                if ( result[1] == None or result[1] not in responseCodes ):
+			print "Failed creating normative type " + normativeType + ". " + str(result[1]) 				
+	return results
 
 
 def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
+	print 'Number of arguments:', len(sys.argv), 'arguments.'
 
-    beHost = 'localhost'
-    bePort = '8080'
-    adminUser = 'jh0003'
-    updateversion = 'true'
-    scheme = 'http'
+	beHost = 'localhost' 
+	bePort = '8080'
+	adminUser = 'jh0003'
+	updateversion = 'true'
+	scheme = 'http'
 
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:v:h:s:", ["ip=", "port=", "user=", "updateversion=", "scheme="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
+	try:
+		opts, args = getopt.getopt(argv,"i:p:u:v:h:s:",["ip=","port=","user=","updateversion=","scheme="])
+	except getopt.GetoptError:
+		usage()
+		error_and_exit(2, 'Invalid input')
+		 
+	for opt, arg in opts:
+	#print opt, arg
+		if opt == '-h':
+			usage()                        
+			sys.exit(3)
+		elif opt in ("-i", "--ip"):
+			beHost = arg
+		elif opt in ("-p", "--port"):
+			bePort = arg
+		elif opt in ("-u", "--user"):
+			adminUser = arg
+		elif opt in ("-s", "--scheme"):
+			scheme = arg
+		elif opt in ("-v", "--updateversion"):
+			if (arg.lower() == "false" or arg.lower() == "no"):
+				updateversion = 'false'
 
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            beHost = arg
-        elif opt in ("-p", "--port"):
-            bePort = arg
-        elif opt in ("-u", "--user"):
-            adminUser = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-        elif opt in ("-v", "--updateversion"):
-            if (arg.lower() == "false" or arg.lower() == "no"):
-                updateversion = 'false'
+	print 'scheme =',scheme,', be host =',beHost,', be port =', bePort,', user =', adminUser, ', updateversion =', updateversion
+	
+	if ( beHost == None ):
+		usage()
+		sys.exit(3)
 
-    print 'scheme =', scheme, ', be host =', beHost, ', be port =', bePort, ', user =', adminUser, ', updateversion =', updateversion
+	results = importNormativeTypes(scheme, beHost, bePort, adminUser, "../../../import/tosca/normative-types/", updateversion)
 
-    if (beHost == None):
-        usage()
-        sys.exit(3)
-
-    results = importNormativeTypes(scheme, beHost, bePort, adminUser, "../../../import/tosca/normative-types/",
-                                   updateversion)
-
-    print "-----------------------------"
-    for result in results:
-        print "{0:20} | {1:6}".format(result[0], result[1])
-    print "-----------------------------"
-
-    responseCodes = [200, 201]
-
-    if (updateversion == 'false'):
-        responseCodes = [200, 201, 409]
-
-    failedNormatives = filter(lambda x: x[1] == None or x[1] not in responseCodes, results)
-    if (len(failedNormatives) > 0):
-        error_and_exit(1, None)
-    else:
-        error_and_exit(0, None)
+	print "-----------------------------"
+	for result in results:
+		print "{0:20} | {1:6}".format(result[0], result[1])
+	print "-----------------------------"
+	
+	responseCodes = [200, 201]
+	
+	if(updateversion == 'false'):
+		responseCodes = [200, 201, 409]
+	
+	failedNormatives = filter(lambda x: x[1] == None or x[1] not in responseCodes, results)
+	if (len(failedNormatives) > 0):
+		error_and_exit(1, None)
+	else:
+		error_and_exit(0, None)
 
 
 if __name__ == "__main__":
-    main(sys.argv[1:])
+        main(sys.argv[1:])
+
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importONAPNormativeAll.py b/catalog-be/src/main/resources/scripts/import/tosca/importONAPNormativeAll.py
index 3e9103a..c573a44 100644
--- a/catalog-be/src/main/resources/scripts/import/tosca/importONAPNormativeAll.py
+++ b/catalog-be/src/main/resources/scripts/import/tosca/importONAPNormativeAll.py
@@ -66,8 +66,8 @@
 	opts = []
 
 	try:
-		opts, args = getopt.getopt(argv, "i:p:u:d:v:h:s",
-								   ["scheme=", "ip=", "port=", "user=", "debug=", "updateversion="])
+		opts, args = getopt.getopt(argv, "i:p:u:d:v:h:s:",
+                                           ["ip=", "port=", "user=", "debug=", "updateversion=", "scheme="])
 	except getopt.GetoptError:
 		usage()
 		error_and_exit(2, 'Invalid input')
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importUsersFromYaml.py b/catalog-be/src/main/resources/scripts/import/tosca/importUsersFromYaml.py
index 23e854b..09fe726 100644
--- a/catalog-be/src/main/resources/scripts/import/tosca/importUsersFromYaml.py
+++ b/catalog-be/src/main/resources/scripts/import/tosca/importUsersFromYaml.py
@@ -60,7 +60,8 @@
 		c.setopt(c.URL, url)
 
 		if scheme == 'https':
-			c.setopt(c.SSL_VERIFYPEER, 0)
+			c.setopt(pycurl.SSL_VERIFYPEER, 0)
+			c.setopt(pycurl.SSL_VERIFYHOST, 0)
 
 		#adminHeader = 'USER_ID: ' + adminUser
 		c.setopt(pycurl.HTTPHEADER, ['Content-Type: application/json', 'Accept: application/json'])
@@ -106,7 +107,8 @@
 		c.setopt(c.POSTFIELDS, data)
 
 		if scheme == 'https':
-			c.setopt(c.SSL_VERIFYPEER, 0)
+			c.setopt(pycurl.SSL_VERIFYPEER, 0)
+			c.setopt(pycurl.SSL_VERIFYHOST, 0)
 
 		c.setopt(c.WRITEFUNCTION, lambda x: None)
 		#print("before perform")	
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/typesToUpgrade.json b/catalog-be/src/main/resources/scripts/import/tosca/typesToUpgrade.json
index 1ef7285..ffda46e 100644
--- a/catalog-be/src/main/resources/scripts/import/tosca/typesToUpgrade.json
+++ b/catalog-be/src/main/resources/scripts/import/tosca/typesToUpgrade.json
@@ -1,7 +1,35 @@
 {
   "heat": [
-    "Generic_PNF"
+    "AbstractSubstitute",
+    "cinderVolume",
+    "contrailAbstractSubstitute",
+    "contrailCompute",
+    "contrailNetworkRules",
+    "contrailPort",
+    "contrailV2NetworkRules",
+    "contrailV2VirtualMachineInterface",
+    "contrailVirtualNetwork",
+    "contrailV2VLANSubInterface",
+    "contrailV2VLANSubInterfaceV2",
+    "contrailVirtualNetwork",
+    "extContrailCP",
+    "extCp",
+    "extNeutronCP",
+    "extVirtualMachineInterfaceCP",
+    "extVl",
+    "forwardingPath",
+    "Generic_PNF",
+    "Generic_Service",
+    "Generic_VF",
+    "Generic_VFC",
+    "globalCompute",
+    "globalPort",
+    "neutronNet",
+    "neutronPort",
+    "novaServer",
+    "securityRules"
   ],
   "normative": [
+    "loadBalancer"
   ]
-}
\ No newline at end of file
+}
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/upgradeONAPNormative.py b/catalog-be/src/main/resources/scripts/import/tosca/upgradeONAPNormative.py
index b4447c2..222d22d 100644
--- a/catalog-be/src/main/resources/scripts/import/tosca/upgradeONAPNormative.py
+++ b/catalog-be/src/main/resources/scripts/import/tosca/upgradeONAPNormative.py
@@ -59,7 +59,6 @@
 	updateOnapVersion = 'false'
 	importCommon.debugFlag = False
 	scheme = 'http'
-	opts = []
 
 	try:
 		opts, args = getopt.getopt(argv, "i:p:u:d:v:h:s",
diff --git a/catalog-be/src/main/resources/swagger/index.html b/catalog-be/src/main/resources/swagger/index.html
index 1e6926d..0e9a9e8 100644
--- a/catalog-be/src/main/resources/swagger/index.html
+++ b/catalog-be/src/main/resources/swagger/index.html
@@ -1,20 +1,3 @@
-<!--
-  ~ Copyright (C) 2018 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.
-  -->
- 
- 
 <!DOCTYPE html>
 <html>
 <head>
diff --git a/catalog-be/src/main/resources/swagger/o2c.html b/catalog-be/src/main/resources/swagger/o2c.html
index cec91e5..88e8bf1 100644
--- a/catalog-be/src/main/resources/swagger/o2c.html
+++ b/catalog-be/src/main/resources/swagger/o2c.html
@@ -1,20 +1,3 @@
-<!--
-  ~ Copyright (C) 2018 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.
-  -->
- 
- 
 <script>
 var qp = null;
 if(window.location.hash) {