#  ============LICENSE_START=======================================================
#  Copyright (C) 2021 Pantheon.tech
#  Modifications Copyright (C) 2021 Bell Canada
#  Modifications Copyright (C) 2021-2022 Nordix Foundation
#  ================================================================================
#  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.
#
#  SPDX-License-Identifier: Apache-2.0
#  ============LICENSE_END=========================================================

server:
    port: 8080

rest:
    api:
        cps-base-path: /cps/api
        ncmp-base-path: /ncmp
        ncmp-inventory-base-path: /ncmpInventory

spring:
    main:
        banner-mode: "off"
    application:
        name: "cps-application"
    jpa:
        ddl-auto: create
        open-in-view: false
        properties:
            hibernate:
                enable_lazy_load_no_trans: true
                dialect: org.hibernate.dialect.PostgreSQLDialect

    datasource:
        url: jdbc:postgresql://${DB_HOST}:${DB_PORT:5432}/cpsdb
        username: ${DB_USERNAME}
        password: ${DB_PASSWORD}
        driverClassName: org.postgresql.Driver
        initialization-mode: always

    cache:
        type: caffeine
        cache-names: yangSchema
        caffeine:
            spec: maximumSize=10000,expireAfterAccess=10m

    liquibase:
        change-log: classpath:changelog/changelog-master.yaml
        labels: ${LIQUIBASE_LABELS}

    servlet:
        multipart:
            enabled: true
            max-file-size: 100MB
            max-request-size: 100MB

    kafka:
        bootstrap-servers: ${KAFKA_BOOTSTRAP_SERVER:localhost:9092}
        security:
            protocol: PLAINTEXT
        producer:
            value-serializer: org.springframework.kafka.support.serializer.JsonSerializer
            client-id: cps-core
        consumer:
            group-id: ${NCMP_CONSUMER_GROUP_ID:ncmp-group}
            key-deserializer: org.springframework.kafka.support.serializer.ErrorHandlingDeserializer
            value-deserializer: org.springframework.kafka.support.serializer.ErrorHandlingDeserializer
            properties:
                spring.deserializer.key.delegate.class: org.apache.kafka.common.serialization.StringDeserializer
                spring.deserializer.value.delegate.class: org.springframework.kafka.support.serializer.JsonDeserializer
                spring.json.value.default.type: org.onap.cps.ncmp.event.model.DmiAsyncRequestResponseEvent
                spring.json.use.type.headers: false

    jackson:
      default-property-inclusion: NON_NULL
app:
    ncmp:
        async-m2m:
            topic: ${NCMP_ASYNC_M2M_TOPIC:ncmp-async-m2m}
        events:
            topic: ${NCMP_EVENTS_TOPIC:ncmp-events}
notification:
    data-updated:
        enabled: false
        topic: ${CPS_CHANGE_EVENT_TOPIC:cps.data-updated-events}
        filters:
            enabled-dataspaces: ${NOTIFICATION_DATASPACE_FILTER_PATTERNS:""}
    async:
        enabled: false
        executor:
            core-pool-size: 2
            max-pool-size: 10
            queue-capacity: 500
            wait-for-tasks-to-complete-on-shutdown: true
            thread-name-prefix: Async-
            time-out-value-in-ms: 2000

springdoc:
    swagger-ui:
        disable-swagger-default-url: true
        urlsPrimaryName: cps-core
        urls:
            - name: cps-core
              url: /api-docs/cps-core/openapi.yaml
            - name: cps-ncmp
              url: /api-docs/cps-ncmp/openapi.yaml
            - name: cps-ncmp-inventory
              url: /api-docs/cps-ncmp/openapi-inventory.yaml


security:
    # comma-separated uri patterns which do not require authorization
    permit-uri: /manage/**,/swagger-ui.html,/swagger-ui/**,/swagger-resources/**,/api-docs/**
    auth:
        username: ${CPS_USERNAME}
        password: ${CPS_PASSWORD}

# Actuator
management:
    server:
        port: 8081
    endpoints:
        web:
            base-path: /manage
            exposure:
                include: info,health,loggers,prometheus
    endpoint:
        health:
            show-details: always
            # kubernetes probes: liveness and readiness
            probes:
                enabled: true

logging:
    format: json
    level:
        org:
            springframework: INFO
            onap:
                cps: INFO

dmi:
    auth:
        username: ${DMI_USERNAME}
        password: ${DMI_PASSWORD}
    api:
        base-path: dmi

timers:
    advised-modules-sync:
        sleep-time-ms: 30000