tosca_definitions_version: tosca_simple_yaml_1_1_0
policy_types:
    onap.policies.controlloop.operational.common.Drools:
        derived_from: onap.policies.controlloop.operational.Common
        type_version: 1.0.0
        version: 1.0.0
        description: Operational policies for Drools PDP
        properties:
            controllerName:
                type: string
                description: Drools controller properties
                required: false
    onap.policies.controlloop.operational.Common:
        derived_from: tosca.policies.Root
        version: 1.0.0
        description: |
            Operational Policy for Control Loop execution. Originated in Frankfurt to support TOSCA Compliant
            Policy Types. This does NOT support the legacy Policy YAML policy type.
        properties:
            id:
                type: string
                description: The unique control loop id.
                required: true
            timeout:
                type: integer
                description: |
                    Overall timeout for executing all the operations. This timeout should equal or exceed the total
                    timeout for each operation listed.
                required: true
            abatement:
                type: boolean
                description: Whether an abatement event message will be expected for
                    the control loop from DCAE.
                required: true
                default: false
            trigger:
                type: string
                description: Initial operation to execute upon receiving an Onset
                    event message for the Control Loop.
                required: true
            operations:
                type: list
                description: List of operations to be performed when Control Loop
                    is triggered.
                required: true
                entry_schema:
                    type: onap.datatype.controlloop.Operation
data_types:
    onap.datatype.controlloop.Target:
        derived_from: tosca.datatypes.Root
        description: Definition for a entity in A&AI to perform a control loop operation
            on
        properties:
            targetType:
                type: string
                description: Category for the target type
                required: true
                constraints:
                -   valid_values:
                    - VNF
                    - VM
                    - VFMODULE
                    - PNF
            entityIds:
                type: map
                description: |
                    Map of values that identify the resource. If none are provided, it is assumed that the
                    entity that generated the ONSET event will be the target.
                required: false
                metadata:
                    clamp_possible_values: ClampExecution:CSAR_RESOURCES
                entry_schema:
                    type: string
    onap.datatype.controlloop.Actor:
        derived_from: tosca.datatypes.Root
        description: An actor/operation/target definition
        properties:
            actor:
                type: string
                description: The actor performing the operation.
                required: true
                metadata:
                    clamp_possible_values: Dictionary:DefaultActors,ClampExecution:CDS/actor
            operation:
                type: string
                description: The operation the actor is performing.
                required: true
                metadata:
                    clamp_possible_values: Dictionary:DefaultOperations, ClampExecution:CDS/operations
            target:
                type: onap.datatype.controlloop.Target
                description: The resource the operation should be performed on.
                required: true
            payload:
                type: map
                description: Name/value pairs of payload information passed by Policy
                    to the actor
                required: false
                metadata:
                    clamp_possible_values: ClampExecution:CDS/payload
                entry_schema:
                    type: string
    onap.datatype.controlloop.Operation:
        derived_from: tosca.datatypes.Root
        description: An operation supported by an actor
        properties:
            id:
                type: string
                description: Unique identifier for the operation
                required: true
            description:
                type: string
                description: A user-friendly description of the intent for the operation
                required: false
            operation:
                type: onap.datatype.controlloop.Actor
                description: The definition of the operation to be performed.
                required: true
            timeout:
                type: integer
                description: The amount of time for the actor to perform the operation.
                required: true
            retries:
                type: integer
                description: The number of retries the actor should attempt to perform
                    the operation.
                required: true
                default: 0
            success:
                type: string
                description: Points to the operation to invoke on success. A value
                    of "final_success" indicates and end to the operation.
                required: false
                default: final_success
            failure:
                type: string
                description: Points to the operation to invoke on Actor operation
                    failure.
                required: false
                default: final_failure
            failure_timeout:
                type: string
                description: Points to the operation to invoke when the time out for
                    the operation occurs.
                required: false
                default: final_failure_timeout
            failure_retries:
                type: string
                description: Points to the operation to invoke when the current operation
                    has exceeded its max retries.
                required: false
                default: final_failure_retries
            failure_exception:
                type: string
                description: Points to the operation to invoke when the current operation
                    causes an exception.
                required: false
                default: final_failure_exception
            failure_guard:
                type: string
                description: Points to the operation to invoke when the current operation
                    is blocked due to guard policy enforcement.
                required: false
                default: final_failure_guard
