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

spring:
  datasource:
    initialization-mode: always
    initialize: true
    url: jdbc:postgresql://postgres:5432/cps_template_db
    username: postgres
    password: postgres
    continue-on-error: true
  jpa:
    hibernate:
      ddl-auto: update
    properties:
      hibernate:
        temp:
          use_jdbc_metadata_defaults: false
    database-platform: org.hibernate.dialect.PostgreSQLDialect
app:
  cpsCoreConfiguration:
    url: http://192.168.1.5:8883/cps/api/v1/dataspaces/E2EDemo
    username: cpsuser
    password: cpsr0cks!
  ncmpConfiguration:
    url: http://192.168.1.5:8883/cps/api/v1
    username: cpsuser
    password: cpsr0cks!
  cpsClient: cpsCore
  schemaToAnchor:
    ran-coverage-area: coverage-area-onap
    e2e-cavsta-schemaset: e2e-cavsta1

