#########
#  ============LICENSE_START====================================================
#  org.onap.aaf
#  ===========================================================================
#  Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
#  ===========================================================================
#  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====================================================
#
cadi_protocols=TLSv1.1,TLSv1.2

################################
# Locator info
#
# Sample versions for 
#   1) no container
#   2) Docker
#   3) Helm (Kubernetes and Helm)
#   4) OOM (Kubernetes with OOM)
################################
aaf_locator_app_ns=%AAF_NS
aaf_locator_name=%NS.%N
aaf_locator_name.docker=%CNS.%NS.%N
aaf_locator_name.helm=%CNS.%NS.%N
aaf_locator_name.oom=%CNS.%NS.%N
aaf_locator_fqdn.docker=aaf-%N
aaf_locator_fqdn.helm=aaf-%N.%CNS
aaf_locator_fqdn.oom=aaf-%N.%CNS

################################
# AAF URLs 
################################
aaf_locate_url=https://localhost:8095
aaf_url=https://AAF_LOCATE_URL/%CNS.%AAF_NS.service:2.1
aaf_oauth2_introspect_url=https://AAF_LOCATE_URL/%CNS.%AAF_NS.oauth:2.1/introspect
aaf_oauth2_token_url=https://AAF_LOCATE_URL/%CNS.%AAF_NS.oauth:2.1/token
cm_url=https://AAF_LOCATE_URL/%CNS.%AAF_NS.cm:2.1
gui_url=https://AAF_LOCATE_URL/%CNS.%AAF_NS.gui.2.1
fs_url=https://AAF_LOCATE_URL/%CNS.%AAF_NS.fs.2.1

