1710 Rebase - Second Attempt

This commit rebases changes from openecomp-mso/internal-staging-1710 up to and including this codecloud commit:
54483fc6606ddb1591a2e9da61bff8712325f924
Wed Sep 6 18:12:56 2017 -0400

Rebasing was done on a branch on top of this commit in so/master in ONAP:
93fbdfbe46104f8859d4754040f979cb7997c157
Thu Sep 7 16:42:59 2017 +0000

Change-Id: I4ad9abf40da32bf5bdca43e868b8fa2dbcd9dc59
Issue-id: SO-107
Signed-off-by: Arthur Martella <amartell@research.att.com>
diff --git a/asdc-controller/src/main/resources/resource-examples/cloud-nimbus.sh b/asdc-controller/src/main/resources/resource-examples/cloud-nimbus.sh
new file mode 100644
index 0000000..8e5a486
--- /dev/null
+++ b/asdc-controller/src/main/resources/resource-examples/cloud-nimbus.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+echo "Running first-boot script"
+FLAG="first-boot.sh"
+echo "First boot run" > ${FLAG}
+echo "$vm_name" >> ${FLAG}
+touch /var/lib/cloud/instance/payload/launch-params
+chmod 644 /var/lib/cloud/instance/payload/launch-params
+#for i in $(ls /sys/class/net); do
+#  echo "Restart $i" >> ${FLAG}
+#  ifdown ${i}
+#  ifup ${i}
+#done
diff --git a/asdc-controller/src/main/resources/resource-examples/hot-nimbus-oam_v1.0.env b/asdc-controller/src/main/resources/resource-examples/hot-nimbus-oam_v1.0.env
new file mode 100644
index 0000000..138feb5
--- /dev/null
+++ b/asdc-controller/src/main/resources/resource-examples/hot-nimbus-oam_v1.0.env
@@ -0,0 +1,18 @@
+parameters:
+  pcrf_oam_server_names: ZRDM1PCRF01OAM001,ZRDM1PCRF01OAM002
+  pcrf_oam_image_name: PCRF_8.995-ATTM1.0.3.qcow2
+  pcrf_oam_flavor_name: lc.4xlarge4
+  availabilityzone_name: nova
+  pcrf_cps_net_name: Mobisupport-25193-I-INT1_int_pcrf_net_0
+  pcrf_cps_net_ips: 172.26.16.111,172.26.16.112
+  pcrf_arbiter_vip: 172.26.16.115
+  pcrf_cps_net_mask: 255.255.255.0
+  pcrf_oam_net_name: MNS-25180-L-01_oam_protected_net_0
+  pcrf_oam_net_ips: 107.239.64.117,107.239.64.118
+  pcrf_oam_net_gw: 107.239.64.1
+  pcrf_oam_net_mask: 255.255.248.0
+  pcrf_oam_volume_id_1: a4aa05fb-fcdc-457b-8077-6845fdfc3257
+  pcrf_oam_volume_id_2: 93d8fc1f-f1c3-4933-86b2-039881ee910f
+  pcrf_security_group_name: nimbus_security_group
+  pcrf_vnf_id: 730797234b4a40aa99335157b02871cd
+
diff --git a/asdc-controller/src/main/resources/resource-examples/hot-nimbus-oam_v1.0.yaml b/asdc-controller/src/main/resources/resource-examples/hot-nimbus-oam_v1.0.yaml
new file mode 100644
index 0000000..2aa1235
--- /dev/null
+++ b/asdc-controller/src/main/resources/resource-examples/hot-nimbus-oam_v1.0.yaml
@@ -0,0 +1,109 @@
+heat_template_version: 2013-05-23
+
+description: heat template that creates multiple PCRF OAM nodes stack
+
+parameters:
+  pcrf_oam_server_names:
+    type: comma_delimited_list
+    label: PCRF OAM server names
+    description: name of the PCRF OAM instance
+  pcrf_oam_image_name:
+    type: string
+    label: PCRF OAM image name
+    description: PCRF OAM image name
+  pcrf_oam_flavor_name:
+    type: string
+    label: PCRF OAM flavor name
+    description: flavor name of PCRF OAM instance
+  availabilityzone_name:
+    type: string
+    label: availabilityzone name
+    description: availabilityzone name
+  pcrf_cps_net_name:
+    type: string
+    label: CPS network name
+    description: CPS network name
+  pcrf_cps_net_ips:
+    type: comma_delimited_list
+    label: CPS network ips
+    description: CPS network ips
+  pcrf_cps_net_mask:
+    type: string
+    label: CPS network mask
+    description: CPS network mask
+  pcrf_arbiter_vip:
+    type: string
+    label: OAM Arbiter LB VIP
+    description: OAM Arbiter LB VIP
+  pcrf_oam_net_name:
+    type: string
+    label: OAM network name
+    description: OAM network name
+  pcrf_oam_net_ips:
+    type: comma_delimited_list
+    label: OAM network ips
+    description: OAM network ips
+  pcrf_oam_net_gw:
+    type: string
+    label: CPS network gateway
+    description: CPS network gateway
+  pcrf_oam_net_mask:
+    type: string
+    label: CPS network mask
+    description: CPS network mask
+  pcrf_oam_volume_id_1:
+    type: string
+    label: CPS OAM 001 Cinder Volume
+    description: CPS OAM 001 Cinder Volumes
+  pcrf_oam_volume_id_2:
+    type: string
+    label: CPS OAM 002 Cinder Volume
+    description: CPS OAM 002 Cinder Volumes
+  pcrf_security_group_name:
+    type: string
+    label: security group name
+    description: the name of security group
+  pcrf_vnf_id:
+    type: string
+    label: PCRF VNF Id
+    description: PCRF VNF Id
+
+resources:
+  server_pcrf_oam_001:
+    type: nested-oam_v1.0.yaml
+    properties:
+      pcrf_oam_server_name: { get_param: [pcrf_oam_server_names, 0] }
+      pcrf_oam_image_name: { get_param: pcrf_oam_image_name }
+      pcrf_oam_flavor_name: { get_param: pcrf_oam_flavor_name }
+      availabilityzone_name: { get_param: availabilityzone_name }
+      pcrf_security_group_name: { get_param: pcrf_security_group_name }
+      pcrf_oam_volume_id: { get_param: pcrf_oam_volume_id_1 }
+      pcrf_cps_net_name: { get_param: pcrf_cps_net_name }
+      pcrf_cps_net_ip: { get_param: [pcrf_cps_net_ips, 0] }
+      pcrf_cps_net_mask: { get_param: pcrf_cps_net_mask }
+      pcrf_oam_net_name: { get_param: pcrf_oam_net_name }
+      pcrf_oam_net_ip: { get_param: [pcrf_oam_net_ips, 0] }
+      pcrf_oam_net_mask: { get_param: pcrf_oam_net_mask }
+      pcrf_oam_net_gw: { get_param: pcrf_oam_net_gw }
+      pcrf_arbiter_vip: { get_param: pcrf_arbiter_vip }
+      pcrf_vnf_id: {get_param: pcrf_vnf_id}
+
+  server_pcrf_oam_002:
+    type: nested-oam_v1.0.yaml
+    depends_on: [server_pcrf_oam_001]
+    properties:
+      pcrf_oam_server_name: { get_param: [pcrf_oam_server_names, 1] }
+      pcrf_oam_image_name: { get_param: pcrf_oam_image_name }
+      pcrf_oam_flavor_name: { get_param: pcrf_oam_flavor_name }
+      availabilityzone_name: { get_param: availabilityzone_name }
+      pcrf_security_group_name: { get_param: pcrf_security_group_name }
+      pcrf_oam_volume_id: { get_param: pcrf_oam_volume_id_2 }
+      pcrf_cps_net_name: { get_param: pcrf_cps_net_name }
+      pcrf_cps_net_ip: { get_param: [pcrf_cps_net_ips, 1] }
+      pcrf_cps_net_mask: { get_param: pcrf_cps_net_mask }
+      pcrf_oam_net_name: { get_param: pcrf_oam_net_name }
+      pcrf_oam_net_ip: { get_param: [pcrf_oam_net_ips, 1] }
+      pcrf_oam_net_mask: { get_param: pcrf_oam_net_mask }
+      pcrf_oam_net_gw: { get_param: pcrf_oam_net_gw }
+      pcrf_arbiter_vip: { get_param: pcrf_arbiter_vip }
+      pcrf_vnf_id: {get_param: pcrf_vnf_id}
diff --git a/asdc-controller/src/main/resources/resource-examples/nested-oam_v1.0.yaml b/asdc-controller/src/main/resources/resource-examples/nested-oam_v1.0.yaml
new file mode 100644
index 0000000..d3baf41
--- /dev/null
+++ b/asdc-controller/src/main/resources/resource-examples/nested-oam_v1.0.yaml
@@ -0,0 +1,156 @@
+heat_template_version: 2013-05-23
+
+description: nested heat template that creates a PCRF OAM node stack
+
+parameters:
+  pcrf_oam_server_name:
+    type: string
+    label: PCRF OAM server name
+    description: PCRF OAM server name
+  pcrf_oam_image_name:
+    type: string
+    label: image name
+    description: PCRF OAM image name
+  pcrf_oam_flavor_name:
+    type: string
+    label: PCRF OAM flavor name
+    description: flavor name of PCRF OAM instance
+  availabilityzone_name:
+    type: string
+    label: availabilityzone name
+    description: availabilityzone name
+  pcrf_cps_net_name:
+    type: string
+    label: CPS network name
+    description: CPS network name
+  pcrf_cps_net_ip:
+    type: string
+    label: CPS network ip
+    description: CPS network ip
+  pcrf_cps_net_mask:
+    type: string
+    label: CPS network mask
+    description: CPS network mask
+  pcrf_arbiter_vip:
+    type: string
+    label: OAM Arbiter LB VIP
+    description: OAM Arbiter LB VIP
+  pcrf_oam_net_name:
+    type: string
+    label: OAM network name
+    description: OAM network name
+  pcrf_oam_net_ip:
+    type: string
+    label: OAM network ip
+    description: OAM network ip
+  pcrf_oam_net_gw:
+    type: string
+    label: CPS network gateway
+    description: CPS network gateway
+  pcrf_oam_net_mask:
+    type: string
+    label: CPS network mask
+    description: CPS network mask
+  pcrf_oam_volume_id:
+    type: string
+    label: CPS OAM Cinder Volume
+    description: CPS OAM Cinder Volume
+  pcrf_security_group_name:
+    type: string
+    label: security group name
+    description: the name of security group
+  pcrf_vnf_id:
+    type: string
+    label: PCRF VNF Id
+    description: PCRF VNF Id
+
+resources:
+  network:
+    type: OS::Heat::CloudConfig
+    properties:
+      cloud_config:
+        write_files:
+          - path: /etc/sysconfig/network-scripts/ifcfg-eth0
+            permissions: "0644"
+            content:
+              str_replace:
+                template: { get_file: nimbus-ethernet }
+                params:
+                  $dev: eth0
+                  $ip: { get_param: pcrf_cps_net_ip }
+                  $netmask: { get_param: pcrf_cps_net_mask }
+          - path: /etc/sysconfig/network-scripts/ifcfg-eth1
+            permissions: "0644"
+            content:
+              str_replace:
+                template: { get_file: nimbus-ethernet-gw }
+                params:
+                  $dev: eth1
+                  $ip: { get_param: pcrf_oam_net_ip }
+                  $netmask: { get_param: pcrf_oam_net_mask }
+                  $gateway: { get_param: pcrf_oam_net_gw }
+        runcmd:
+          - ifdown eth0 && ifup eth0
+          - ifdown eth1 && ifup eth1
+  script_init:
+    type: OS::Heat::SoftwareConfig
+    properties:
+      group: ungrouped
+      config:
+        str_replace:
+          template: { get_file: cloud-nimbus.sh }
+          params:
+            $vm_name: { get_param: pcrf_oam_server_name }
+  pcrf_server_init:
+    type: OS::Heat::MultipartMime
+    properties:
+      parts:
+      - config: { get_resource: network}
+      - config: { get_resource: script_init}
+
+  pcrf_server_oam:
+    type: OS::Nova::Server
+    properties:
+      config_drive: "True"
+      name: { get_param: pcrf_oam_server_name }
+      image: { get_param: pcrf_oam_image_name }
+      flavor: { get_param: pcrf_oam_flavor_name }
+      availability_zone: { get_param: availabilityzone_name }
+      networks:
+        - port: { get_resource: pcrf_oam_port_0}
+        - port: { get_resource: pcrf_oam_port_1}
+      user_data_format: RAW
+      user_data:
+        get_resource: pcrf_server_init
+      metadata:
+        vnf_id: {get_param: pcrf_vnf_id}
+  
+  pcrf_oam_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: pcrf_cps_net_name }
+      fixed_ips:
+        - ip_address: { get_param: pcrf_cps_net_ip }
+      allowed_address_pairs:
+        - ip_address: { get_param: pcrf_arbiter_vip }
+      security_groups: [{ get_param: pcrf_security_group_name }]
+
+  pcrf_oam_port_1:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: pcrf_oam_net_name }
+      fixed_ips:
+        - ip_address: { get_param: pcrf_oam_net_ip }
+      security_groups: [{ get_param: pcrf_security_group_name }]
+
+  pcrf_oam_vol_attachment:
+    type: OS::Cinder::VolumeAttachment
+    properties:
+      volume_id: { get_param: pcrf_oam_volume_id }
+      mountpoint: /dev/vdd
+      instance_uuid: { get_resource: pcrf_server_oam }
+
+outputs:
+  pcrf_oam_vol_attachment_id:
+    description: the pcrf_oam_vol_attachment_id id
+    value: { get_resource: pcrf_oam_vol_attachment }
diff --git a/asdc-controller/src/main/resources/resource-examples/notif-structure.json b/asdc-controller/src/main/resources/resource-examples/notif-structure.json
new file mode 100644
index 0000000..103a799
--- /dev/null
+++ b/asdc-controller/src/main/resources/resource-examples/notif-structure.json
@@ -0,0 +1,138 @@
+{
+    "serviceName": "test-service",
+    "serviceInvariantUUID": "585822c7-4027-4f84-ba50-e9248606f132",
+    "serviceUUID": "4be40491-e2e5-4a84-a7e5-57c83b5b95fc",
+    "serviceVersion": "2.0",
+    "serviceArtifacts": 
+    [{
+		"artifactName": "service_Rg516VmmscSrvc_csar.csar",
+		"artifactType": "TOSCA_CSAR",
+		"artifactURL": "service_Rg516VmmscSrvc_csar.csar",
+		"artifactChecksum": "ZDc1MTcxMzk4ODk4N2U5MzMxOTgwMzYzZTI0MTg5Y2U\u003d",
+		"artifactDescription": "TOSCA representation of the asset",
+		"artifactTimeout": 0,
+		"artifactUUID": "123456-35a8-467f-b440-d0f6226b3516",
+		"artifactVersion": "5"
+    }
+ 
+    ],
+
+    "resources": 
+    [	
+        {
+            "resourceInstanceName": "resource-1",
+            "resourceInvariantUUID": "585822c7-4027-4f84-ba50-e9248606f134",
+            "resourceCustomizationUUID": "6402d92d-0050-46a9-8202-623a46680ba7",
+            "resourceName": "resourceName-1",
+            "resourceType": "VF",
+            "resourceUUID": "585822c7-4027-4f84-ba50-e9248606f136",
+            "resourceVersion": "2.0",
+            "category": "Resource",
+            "subcategory": "Resource",
+            "artifacts": 
+            [
+                {
+                    "artifactChecksum": "ZDc1MTcxMzk4ODk4N2U5MzMxOTgwMzYzZTI0MTg5Y2U\u003d",
+                    "artifactDescription": "Meta data for VFModule",
+                    "artifactName": "vnf-module-artifact.json",
+                    
+                    "artifactType": "VF_MODULES_METADATA",
+                    "artifactURL": "vnf-module-artifact.json",
+                    "artifactUUID": "VfArtifact-UUID1",
+                    "artifactVersion": "1.0"
+
+                },
+                {
+                    "artifactChecksum": "ZDc1MTcxMzk4ODk4N2U5MzMxOTgwMzYzZTI0MTg5Y2U\u003d",
+                    "artifactDescription": "Nimbus Heat OAM",
+                    "artifactName": "hot-nimbus-oam_v1.0.yaml",
+                    "artifactTimeout": 100,
+                    "artifactType": "HEAT_ARTIFACT",
+                    "artifactURL": "hot-nimbus-oam_v1.0.yaml",
+                    "artifactUUID": "Heat-Artifact-Artifact-UUID1",
+                    "artifactVersion": "1.0",
+                    "generatedArtifact": "EnvArtifact-Artifact-UUID1"
+                    
+                },
+                
+                {
+                    "artifactChecksum": "ZDc1MTcxMzk4ODk4N2U5MzMxOTgwMzYzZTI0MTg5Y2U\u003d",
+                    "artifactDescription": "Nimbus Heat OAM Artifact",
+                    "artifactName": "hot-nimbus-oam_v1.0.yaml",
+                    "artifactTimeout": 100,
+                    "artifactType": "HEAT",
+                    "artifactURL": "hot-nimbus-oam_v1.0.yaml",
+                    "artifactUUID": "Heat-Artifact-UUID1",
+                    "artifactVersion": "1.0",
+                    "generatedArtifact": "EnvArtifact-UUID1"
+                    
+                },
+
+                {
+                    "artifactChecksum": "ZDc1MTcxMzk4ODk4N2U5MzMxOTgwMzYzZTI0MTg5Y2U\u003d",
+                    "artifactDescription": "Nimbus Heat ENV OAM",
+                    "artifactName": "hot-nimbus-oam_v1.0.env",
+                    
+                    "artifactType": "HEAT_ENV",
+                    "artifactURL": "hot-nimbus-oam_v1.0.env",
+                    "artifactUUID": "EnvArtifact-UUID1",
+                    "artifactVersion": "1.0"
+                  
+                },
+                
+                {
+                    "artifactChecksum": "ZDc1MTcxMzk4ODk4N2U5MzMxOTgwMzYzZTI0MTg5Y2U\u003d",
+                    "artifactDescription": "Nimbus Heat OAM",
+                    "artifactName": "hot-nimbus-oam_v2.0.yaml",
+                    "artifactTimeout": 100,
+                    "artifactType": "HEAT_ARTIFACT",
+                    "artifactURL": "hot-nimbus-oam_v1.0.yaml",
+                    "artifactUUID": "Heat-Artifact-Artifact-UUID2",
+                    "artifactVersion": "2.0",
+                    "generatedArtifact": "EnvArtifact-Artifact-UUID2"
+                    
+                },
+                
+                {
+                    "artifactChecksum": "ZDc1MTcxMzk4ODk4N2U5MzMxOTgwMzYzZTI0MTg5Y2U\u003d",
+                    "artifactDescription": "Nimbus Heat OAM",
+                    "artifactName": "hot-nimbus-oam_v2.0.yaml",
+                    "artifactTimeout": 100,
+                    "artifactType": "HEAT",
+                    "artifactURL": "hot-nimbus-oam_v1.0.yaml",
+                    "artifactUUID": "Heat-Artifact-UUID2",
+                    "artifactVersion": "2.0",
+                    "generatedArtifact": "EnvArtifact-UUID2"
+                    
+                },
+
+                {
+                    "artifactChecksum": "ZDc1MTcxMzk4ODk4N2U5MzMxOTgwMzYzZTI0MTg5Y2U\u003d",
+                    "artifactDescription": "Nimbus Heat ENV OAM",
+                    "artifactName": "hot-nimbus-oam_v2.0.env",
+                    
+                    "artifactType": "HEAT_ENV",
+                    "artifactURL": "hot-nimbus-oam_v1.0.env",
+                    "artifactUUID": "EnvArtifact-UUID2",
+                    "artifactVersion": "2.0"
+                  
+                },
+
+                {
+                    "artifactChecksum": "ZDc1MTcxMzk4ODk4N2U5MzMxOTgwMzYzZTI0MTg5Y2U\u003d",
+                    "artifactDescription": "Nested OAM",
+                    "artifactName": "nested-oam_v1.0.yaml",
+                    "artifactTimeout": 10,
+                    "artifactType": "HEAT_NESTED",
+                    "artifactURL": "nested-oam_v1.0.yaml",
+                    "artifactUUID": "NestedArtifact-UUID3",
+                    "artifactVersion": "1.0"
+          
+                }
+            ]
+        }
+    ],
+
+    "serviceDescription": "test service for unit testing",
+    "distributionID": "35120a87-1f82-4276-9735-f6de5a244d65"
+}
\ No newline at end of file
diff --git a/asdc-controller/src/main/resources/resource-examples/resource_Extvl.csar b/asdc-controller/src/main/resources/resource-examples/resource_Extvl.csar
new file mode 100644
index 0000000..7976e51
--- /dev/null
+++ b/asdc-controller/src/main/resources/resource-examples/resource_Extvl.csar
Binary files differ
diff --git a/asdc-controller/src/main/resources/resource-examples/service-ServiceFdnt-csar-0904-2.csar b/asdc-controller/src/main/resources/resource-examples/service-ServiceFdnt-csar-0904-2.csar
new file mode 100644
index 0000000..fc21af3
--- /dev/null
+++ b/asdc-controller/src/main/resources/resource-examples/service-ServiceFdnt-csar-0904-2.csar
Binary files differ
diff --git a/asdc-controller/src/main/resources/resource-examples/service-ServiceFdnt-with-allotted.csar b/asdc-controller/src/main/resources/resource-examples/service-ServiceFdnt-with-allotted.csar
new file mode 100644
index 0000000..41ee2c7
--- /dev/null
+++ b/asdc-controller/src/main/resources/resource-examples/service-ServiceFdnt-with-allotted.csar
Binary files differ
diff --git a/asdc-controller/src/main/resources/resource-examples/service_Rg511NfmService.csar b/asdc-controller/src/main/resources/resource-examples/service_Rg511NfmService.csar
new file mode 100644
index 0000000..2686e4b
--- /dev/null
+++ b/asdc-controller/src/main/resources/resource-examples/service_Rg511NfmService.csar
Binary files differ
diff --git a/asdc-controller/src/main/resources/resource-examples/service_Rg516VmmscSrvc_csar.csar b/asdc-controller/src/main/resources/resource-examples/service_Rg516VmmscSrvc_csar.csar
new file mode 100644
index 0000000..d2983ce
--- /dev/null
+++ b/asdc-controller/src/main/resources/resource-examples/service_Rg516VmmscSrvc_csar.csar
Binary files differ
diff --git a/asdc-controller/src/main/resources/resource-examples/vnf-module-artifact.json b/asdc-controller/src/main/resources/resource-examples/vnf-module-artifact.json
new file mode 100644
index 0000000..0608000
--- /dev/null
+++ b/asdc-controller/src/main/resources/resource-examples/vnf-module-artifact.json
@@ -0,0 +1,45 @@
+[
+  {
+    "vfModuleModelName": "VF_RI2_G6_withArtifacts::module-0",
+    "vfModuleModelInvariantUUID": "585822c7-4027-4f84-ba50-e9248606f131",
+    "vfModuleModelVersion": "1.0",
+    "vfModuleModelUUID": "ac53bd31-b2b1-42ce-826a-a9420712cbff.VF_RI2_G6_withArtifacts::module-0.group",
+    "vfModuleModelCustomizationUUID": "customization-uuid",
+    "isBase": true,
+    "properties": {
+        "vf_module_type": "Base",
+        "vf_module_label": "label1",
+        "min_vf_module_instances": "1",
+        "max_vf_module_instances": "2",
+        "initial_count": "3",
+        "vf_module_description": "description"
+    },
+    "artifacts": [
+      "Heat-Artifact-UUID1",
+      "Heat-Artifact-Artifact-UUID1",
+      "EnvArtifact-UUID1",
+      "NestedArtifact-UUID3"
+    ]
+  }, 
+  {
+    "vfModuleModelName": "VF_RI2_G6_withArtifacts::module-1",
+    "vfModuleModelInvariantUUID": "585822c7-4027-4f84-ba50-e9248606f132",
+    "vfModuleModelVersion": "1.0",
+    "vfModuleModelUUID": "ac53bd31-b2b1-42ce-826a-a9420712cbff.VF_RI2_G6_withArtifacts::module-1.group",
+    "vfModuleModelCustomizationUUID": "customization-uuid2",
+    "isBase": true,
+    "properties": {
+        "vf_module_type": "Base",
+        "vf_module_label": "label1",
+        "min_vf_module_instances": "1",
+        "max_vf_module_instances": "2",
+        "initial_count": "3",
+        "vf_module_description": "description"
+    },
+    "artifacts": [
+      "Heat-Artifact-UUID2",
+      "Heat-Artifact-Artifact-UUID2",
+      "EnvArtifact-UUID2"
+    ]
+  }
+]
\ No newline at end of file