#  ============LICENSE_START=======================================================
#  Copyright (C) 2021 Pantheon.tech
#  Modifications Copyright (C) 2021-2022 Bell Canada
#  Modifications Copyright (C) 2021-2024 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:
        show-sql: false
        ddl-auto: create
        open-in-view: false
        properties:
            hibernate.enable_lazy_load_no_trans: true
            hibernate.dialect: org.hibernate.dialect.PostgreSQLDialect
            # Please ensure these values match those used in integration-test/src/test/resources/application.yml
            hibernate.id.new_generator_mappings: true
            hibernate.jdbc.batch_size: 100

    datasource:
        url: jdbc:postgresql://${DB_HOST}:${DB_PORT:5432}/cpsdb
        username: ${DB_USERNAME}
        password: ${DB_PASSWORD}
        driverClassName: org.postgresql.Driver
        hikari:
            minimumIdle: 5
            maximumPoolSize: 80
            idleTimeout: 60000
            connectionTimeout: 120000
            leakDetectionThreshold: 30000
            pool-name: CpsDatabasePool

    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: io.cloudevents.kafka.CloudEventSerializer
            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: io.cloudevents.kafka.CloudEventDeserializer
                spring.json.use.type.headers: false

    jackson:
        default-property-inclusion: NON_NULL
        serialization:
            FAIL_ON_EMPTY_BEANS: false
    sql:
        init:
            mode: ALWAYS
app:
    ncmp:
        async-m2m:
            topic: ${NCMP_ASYNC_M2M_TOPIC:ncmp-async-m2m}
        avc:
            subscription-topic: ${NCMP_CM_AVC_SUBSCRIPTION:subscription}
            subscription-forward-topic-prefix: ${NCMP_FORWARD_CM_AVC_SUBSCRIPTION:ncmp-dmi-cm-avc-subscription-}
            subscription-response-topic: ${NCMP_RESPONSE_CM_AVC_SUBSCRIPTION:dmi-ncmp-cm-avc-subscription}
            subscription-outcome-topic: ${NCMP_OUTCOME_CM_AVC_SUBSCRIPTION:subscription-response}
            cm-events-topic: ${NCMP_CM_EVENTS_TOPIC:cm-events}
    lcm:
        events:
            topic: ${LCM_EVENTS_TOPIC:ncmp-events}
    dmi:
        cm-events:
            topic: ${DMI_CM_EVENTS_TOPIC:dmi-cm-events}
        device-heartbeat:
            topic: ${DMI_DEVICE_HEARTBEAT_TOPIC:dmi-device-heartbeat}


notification:
    enabled: true
    async:
        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: /actuator/**,/swagger-ui.html,/swagger-ui/**,/swagger-resources/**,/api-docs/**,/v3/api-docs/**
    auth:
        username: ${CPS_USERNAME}
        password: ${CPS_PASSWORD}

# Actuator
management:
    endpoints:
        web:
            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
ncmp:
    dmi:
        httpclient:
            connectionTimeoutInSeconds: 180
            maximumConnectionsPerRoute: 50
            maximumConnectionsTotal: 100
            idleConnectionEvictionThresholdInSeconds: 5
        auth:
            username: ${DMI_USERNAME}
            password: ${DMI_PASSWORD}
            enabled: ${DMI_AUTH_ENABLED:true}
        api:
            base-path: dmi

    timers:
        advised-modules-sync:
            sleep-time-ms: 5000
        locked-modules-sync:
            sleep-time-ms: 300000
        cm-handle-data-sync:
            sleep-time-ms: 30000
        subscription-forwarding:
            dmi-response-timeout-ms: 30000
        model-loader:
            retry-time-ms: 1000
        trust-level:
            dmi-availability-watchdog-ms: 30000

    modules-sync-watchdog:
        async-executor:
            parallelism-level: 10

    model-loader:
        subscription: true
        maximum-attempt-count: 20

# Custom Hazelcast Config.
hazelcast:
    cluster-name: ${CPS_NCMP_CACHES_CLUSTER_NAME:"cps-and-ncmp-common-cache-cluster"}
    mode:
        kubernetes:
            enabled: ${HAZELCAST_MODE_KUBERNETES_ENABLED:false}
            service-name: ${CPS_NCMP_SERVICE_NAME:"cps-and-ncmp-service"}
