# Specify the IP or DNS name of the Management Server.
MSIP="{{ local_mgmt_ip }}"

# Specify the Edge admin credentials.
ADMIN_EMAIL={{ opdk_user_email }}
APIGEE_ADMINPW={{ opdk_user_pass }} # If omitted, you are prompted for it.

# Specify organization name and administrator.
ORG_NAME={{ org_name }} # lowercase only, no spaces, underscores, or periods.

# Set the organization administrator.
# Do not use sys admin as organization administrator.
#
# Create a new user for the organization administrator.
NEW_USER="{{ new_user }}"
{% if new_user == 'y' %}

# New user information if NEW_USER="y". USER_NAME=new@user.com
USER_NAME={{ opdk_user_email }}
FIRST_NAME={{ first_name }}
LAST_NAME={{ last_name }}
USER_PWD={{ opdk_user_pass }}
ORG_ADMIN={{ opdk_user_email }}

{% else %}

# Specify an existing user as the organization admin, # omit USER_NAME, FIRST_NAME, LAST_NAME, USER_PWD.
# NEW_USER="n"
# ORG_ADMIN=existing@user.com
ORG_ADMIN={{ opdk_user_email }}

{% endif %}

# Specify environment name.
ENV_NAME={{ env_name }}

# Specify virtual host information.
VHOST_PORT={{ virtual_host_port }}
VHOST_NAME={{ virtual_host_name }}

# If you have a DNS entry for the virtual host.
VHOST_ALIAS="{{ vhost_alias }}"

# If you do not have a DNS entry for the virtual host,
# specify the IP and port of each router as a space-separated list:
# VHOST_ALIAS="firstRouterIP:9001 secondRouterIP:9001"

# Specify the analytics group.
# Default name is axgroup001.use sys admin as organization administrator.
AXGROUP={{ ax_group }}

USE_ALL_MPS="{{ use_all_mps }}"