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