#  ============LICENSE_START=======================================================
#  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=========================================================

cps:
    tracing:
        sampler:
            jaeger_remote:
                endpoint: http://jaeger-Remote-test-url
        exporter:
            endpoint: http://exporter-test-url
        enabled: true

spring:
    kafka:
        producer:
            value-serializer: io.cloudevents.kafka.CloudEventSerializer
        consumer:
            value-deserializer: org.springframework.kafka.support.serializer.ErrorHandlingDeserializer
            properties:
                spring.deserializer.value.delegate.class: io.cloudevents.kafka.CloudEventDeserializer

app:
    ncmp:
        async-m2m:
            topic: ncmp-async-m2m
        avc:
            cm-subscription-ncmp-in: subscription
            cm-events-topic: cm-events
            cm-subscription-dmi-in: ${CM_SUBSCRIPTION_DMI_IN_TOPIC:ncmp-dmi-cm-avc-subscription}

ncmp:
    dmi:
        httpclient:
            data-services:
                maximumInMemorySizeInMegabytes: 1
                maximumConnectionsTotal: 2
                pendingAcquireMaxCount: 3
                connectionTimeoutInSeconds: 4
                readTimeoutInSeconds: 5
                writeTimeoutInSeconds: 6
            model-services:
                maximumInMemorySizeInMegabytes: 11
                maximumConnectionsTotal: 12
                pendingAcquireMaxCount: 13
                connectionTimeoutInSeconds: 14
                readTimeoutInSeconds: 15
                writeTimeoutInSeconds: 16
            healthCheckServices:
                maximumInMemorySizeInMegabytes: 21
                maximumConnectionsTotal: 22
                pendingAcquireMaxCount: 23
                connectionTimeoutInSeconds: 24
                readTimeoutInSeconds: 25
                writeTimeoutInSeconds: 26
        auth:
            username: some-user
            password: some-password
            enabled: true
        api:
            base-path: dmi
    timers:
        trust-level:
            dmi-availability-watchdog-ms: 30000

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

    policy-executor:
        enabled: true
        server:
            address: http://localhost
            port: 8785
        httpclient:
            all-services:
                maximumInMemorySizeInMegabytes: 31
                maximumConnectionsTotal: 32
                pendingAcquireMaxCount: 33
                connectionTimeoutInSeconds: 34
                readTimeoutInSeconds: 35
                writeTimeoutInSeconds: 36

# Custom Hazelcast Config.
hazelcast:
  cluster-name: "cps-and-ncmp-test-caches"
  mode:
    kubernetes:
      enabled: false
      service-name: "cps-and-ncmp-service"
