#
# ============LICENSE_START====================================================
# org.onap.dcae
# =============================================================================
# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
# =============================================================================
# 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.
# ============LICENSE_END======================================================

tosca_definitions_version: cloudify_dsl_1_3


imports:
  - "http://www.getcloudify.org/spec/cloudify/3.4/types.yaml"
  - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_plugins_releases }}/dockerplugin/3.2.1/dockerplugin_types.yaml"
  - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_plugins_releases }}/relationshipplugin/1.0.0/relationshipplugin_types.yaml"
  - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_plugins_releases }}/dcaepolicyplugin/2.3.0/dcaepolicyplugin_types.yaml"
inputs: 
  aaiEnrichmentHost: 
    default: none
    type: string
  aaiEnrichmentPort: 
    default: 8443
    type: string
  cbs_host: 
    default: config-binding-service.dcae
    type: string
  cbs_port: 
    default: "10000"
    type: string
  consul_host: 
    default: consul-server.onap-consul
    type: string
  consul_port: 
    default: "8500"
    type: string
  dh_location_id: 
    default: zone1
    type: string
  dh_override: 
    default: component_dockerhost
    type: string
  dmaap_host: 
    default: dmaap.onap-message-router
    type: string
  dmaap_port: 
    default: 3904
    type: string
  enableAAIEnrichment: 
    default: false
    type: string
  enableRedisCaching: 
    default: false
    type: string
  external_port: 
    default: "32016"
    description: "Port for CDAPgui to be exposed"
    type: string
  policy_id: 
    default: none
    type: string
  redisHosts: 
    type: string
  tag_version: 
    default: "{{ ONAPTEMPLATE_DOCKERREGURL_org_onap_dcaegen2_releases }}/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.0.0"    
    type: string
node_templates: 
  docker_service_host: 
    properties: 
      docker_host_override: 
        get_input: dh_override
      location_id: 
        get_input: dh_location_id
    type: dcae.nodes.SelectedDockerHost
  tca_docker: 
    interfaces: 
      cloudify.interfaces.lifecycle: 
        start: 
          inputs: 
            envs: 
              AAIHOST: 
                get_input: aaiEnrichmentHost
              AAIPORT: 
                get_input: aaiEnrichmentPort
              CBS_HOST: 
                get_input: cbs_host
              CBS_PORT: 
                get_input: cbs_port
              CONFIG_BINDING_SERVICE: config_binding_service
              CONSUL_HOST: 
                get_input: consul_host
              CONSUL_PORT: 
                get_input: consul_port
              DMAAPHOST: 
                get_input: dmaap_host
              DMAAPPORT: 
                get_input: dmaap_port
              DMAAPPUBTOPIC: unauthenticated.DCAE_CL_OUTPUT
              DMAAPSUBTOPIC: unauthenticated.VES_MEASUREMENT_OUTPUT
#              SERVICE_11011_IGNORE: "true"
              SERVICE_11015_IGNORE: "true"
            ports:
              - concat: ["11011:", { get_input: external_port }]                       
        stop: 
          inputs: 
            cleanup_image: true
    properties: 
      application_config: 
        app_config: 
          appDescription: "DCAE Analytics Threshold Crossing Alert Application"
          appName: dcae-tca
          tcaAlertsAbatementTableName: TCAAlertsAbatementTable
          tcaAlertsAbatementTableTTLSeconds: "1728000"
          tcaSubscriberOutputStreamName: TCASubscriberOutputStream
          tcaVESAlertsTableName: TCAVESAlertsTable
          tcaVESAlertsTableTTLSeconds: "1728000"
          tcaVESMessageStatusTableName: TCAVESMessageStatusTable
          tcaVESMessageStatusTableTTLSeconds: "86400"
          thresholdCalculatorFlowletInstances: "2"
        app_preferences: 
          aaiEnrichmentHost: 
            get_input: aaiEnrichmentHost
          aaiEnrichmentIgnoreSSLCertificateErrors: "true"
          aaiEnrichmentPortNumber: "8443"
          aaiEnrichmentProtocol: https
          aaiEnrichmentUserName: DCAE
          aaiEnrichmentUserPassword: DCAE
          aaiVMEnrichmentAPIPath: /aai/v11/search/nodes-query
          aaiVNFEnrichmentAPIPath: /aai/v11/network/generic-vnfs/generic-vnf
          enableAAIEnrichment: 
            get_input: enableAAIEnrichment
          enableAlertCEFFormat: "false"
          enableRedisCaching: 
            get_input: enableRedisCaching
          publisherContentType: application/json
          publisherHostName: 
            get_input: dmaap_host
          publisherHostPort: 
            get_input: dmaap_port
          publisherMaxBatchSize: "1"
          publisherMaxRecoveryQueueSize: "100000"
          publisherPollingInterval: "20000"
          publisherProtocol: http
          publisherTopicName: unauthenticated.DCAE_CL_OUTPUT
          redisHosts: 
            get_input: redisHosts
          subscriberConsumerGroup: OpenDCAE-c12
          subscriberConsumerId: c12
          subscriberContentType: application/json
          subscriberHostName: 
            get_input: dmaap_host
          subscriberHostPort: 
            get_input: dmaap_port
          subscriberMessageLimit: "-1"
          subscriberPollingInterval: "30000"
          subscriberProtocol: http
          subscriberTimeoutMS: "-1"
          subscriberTopicName: unauthenticated.VES_MEASUREMENT_OUTPUT
          tca_policy: "{\"domain\":\"measurementsForVfScaling\",\"metricsPerEventName\":[{\"eventName\":\"vFirewallBroadcastPackets\",\"controlLoopSchemaType\":\"VNF\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta\",\"thresholdValue\":300,\"direction\":\"LESS_OR_EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ONSET\"},{\"closedLoopControlName\":\"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta\",\"thresholdValue\":700,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]},{\"eventName\":\"vLoadBalancer\",\"controlLoopSchemaType\":\"VM\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta\",\"thresholdValue\":300,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]},{\"eventName\":\"Measurement_vGMUX\",\"controlLoopSchemaType\":\"VNF\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":0,\"direction\":\"EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ABATED\"},{\"closedLoopControlName\":\"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":0,\"direction\":\"GREATER\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]}]}"
      docker_config: 
        healthcheck: 
          endpoint: /
          interval: 15s
          timeout: 1s
          type: http
      image: 
        get_input: tag_version
      service_component_type: dcaegen2-analytics_tca
    relationships: 
      - 
        target: docker_service_host
        type: dcae.relationships.component_contained_in
      - 
        target: tca_policy
        type: cloudify.relationships.depends_on
    type: dcae.nodes.DockerContainerForComponentsUsingDmaap
  tca_policy: 
    properties: 
      policy_id: 
        get_input: policy_id
    type: dcae.nodes.policy