# 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.

tosca_definitions_version: tosca_simple_yaml_1_0

topology_template:
  policies:
    aria-service-proxy-plugin:
      type: aria.Plugin
      properties:
        version: 0.1
        
data_types:
  serviceproxy.waitconfig:
    properties:
      wait_for_service:
        type: boolean
        description: >-
          If True, wait for 'wait_time' for service to exist and other conditions
          to be True.  Otherwise don't retry in case of failure.
        required: false
        default: false
      wait_time:
        description: time to wait for service outputs to be available in seconds
        type: integer
        required: false
        default: 30
      wait_expression:
        description: >-
          boolean expression to wait for truth value.  Python syntax.  Outputs from target
          service are provided as variable names in the expression environment.
          Example: output1 > output2
        type: string
        required: false
        
node_types:

  aria.serviceproxy.ServiceProxy:
    derived_from: tosca.nodes.Root
    properties:
      service_name:
        description: the name of the service to proxy
        required: true
        type: string
      outputs:
        description: >-
          list of outputs that will be mapped to proxy attributes
          under the \"service_outputs" key
        required: false
        default: []
        type: list
        entry_schema:
          type: string
      wait_config:
        type: serviceproxy.waitconfig
        description: >-
          configuration of wait for service existence, outputs, and/or output values
        required: false
        default:
          wait_for_service:
            false
    attributes:
      last_update:
        description: time of last update
        type: timestamp
      service_outputs:
        description: outputs copied from proxied service
        type: map
        entry_schema:
          type: string
    interfaces:
      Standard:
        type: tosca.interfaces.node.lifecycle.Standard
        create:
          implementation: aria-service-proxy-plugin > aria_service_proxy.tasks.proxy_connect
            
