#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you 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.
#

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

server:
  port: 2020
  contextPath: /provisioner/v1/*

flyway:
  enabled: false

cassandra:
  clusterName: staging_cluster
  contactPoints: 127.0.0.1:9042,127.0.0.2:9042,127.0.0.3:9042
  replication:
    default:
      type: Network
      replicas: datacenter1:3

postgresql:
  driverClass: org.postgresql.Driver
  database: seshat
  host: localhost
  port: 5432
  user: postgres
  password: postgres

spring:
  datasource:
    driver-class-name: org.postgresql.Driver
    url: jdbc:postgresql://localhost:5432/seshat
    username: postgres
    password: postgres
