
# Copyright 2017-present Open Networking 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.


tosca_definitions_version: tosca_simple_yaml_1_0

description: Onboard the vSGW

imports:
   - custom_types/xos.yaml

topology_template:
  node_templates:
    servicecontroller#vsgw:
      type: tosca.nodes.ServiceController
      properties:
          base_url: file:///opt/xos_services/vSGW/xos/
          # The following will concatenate with base_url automatically, if
          # base_url is non-null.
          models: models.py
          admin: admin.py
          admin_template: templates/VSGWAdmin.html
          synchronizer: synchronizer/manifest
          synchronizer_run: vsgw-synchronizer.py
          #tosca_custom_types: vsgw.yaml
          tosca_resource: tosca/resources/vsgwtenant.py, tosca/resources/vsgwservice.py
          #rest_service: api/service/vsgwservice.py
          #rest_tenant: api/tenant/vsgwtenant.py
          private_key: file:///opt/xos/key_import/vSGW_rsa
          public_key: file:///opt/xos/key_import/vSGW_rsa.pub

