{
   "name":"vCPE-HPA-Requirement-Optional",
   "template":{
      "homing_template_version":"2017-10-10",
      "parameters":{
         "service_name":"Residential vCPE",
         "service_id":"vcpe_service_id",
         "customer_lat":45.395968,
         "customer_long":-71.135344,
         "REQUIRED_MEM":4,
         "REQUIRED_DISK":100,
         "pnf_id":"some_pnf_id"
      },
      "locations":{
         "customer_loc":{
            "latitude":{
               "get_param":"customer_lat"
            },
            "longitude":{
               "get_param":"customer_long"
            }
         }
      },
      "demands":{
         "vG":[
            {
               "inventory_provider":"aai",
               "inventory_type":"cloud"
            }
         ]
      },
      "constraints":{
         "constraint_vg_customer":{
            "type":"distance_to_location",
            "demands":[
               "vG"
            ],
            "properties":{
               "distance":"< 100 km",
               "location":"customer_loc"
            }
         },
         "hpa_constraint":{
            "type":"hpa",
            "demands":[
               "vG"
            ],
            "properties":{
               "evaluate":[
                  {
                     "id":"vg_1",
                     "type":"vnfc",
                     "directives":[
                        {
                           "type":"flavor_directives",
                           "attributes":[
                              {
                                 "attribute_name":"flavor_label_1",
                                 "attribute_value":""
                              }
                           ]
                        }
                     ],
                     "flavorProperties":[
                        {
                           "hpa-feature":"basicCapabilities",
                           "hpa-version":"v1",
                           "architecture":"generic",
                           "mandatory": "True",
                           "directives":[],
                           "hpa-feature-attributes":[
                              {
                                 "hpa-attribute-key":"numVirtualCpu",
                                 "hpa-attribute-value":"4",
                                 "operator":">="
                              },
                              {
                                 "hpa-attribute-key":"virtualMemSize",
                                 "hpa-attribute-value":"8",
                                 "operator":">=",
                                 "unit":"GB"
                              }
                           ]
                        },
                         {
                           "hpa-feature":"instructionSetExtensions",
                           "hpa-version":"v1",
                           "architecture":"Intel64",
                           "mandatory": "True",
                           "directives":[],
                           "hpa-feature-attributes":[
                              {
                                 "hpa-attribute-key":"instructionSetExtensions",
                                 "hpa-attribute-value":["aes", "sse", "avx", "smt"],
                                 "operator":"ALL",
                                 "unit":""
                              }
                           ]
                        },
                        {
                           "hpa-feature":"numa",
                           "hpa-version":"v1",
                           "architecture":"generic",
                           "mandatory":"False",
                           "score":"3",
                           "directives":[],
                           "hpa-feature-attributes":[
                              {
                                 "hpa-attribute-key":"numaNodes",
                                 "hpa-attribute-value":"2",
                                 "operator":"="
                              },
                              {
                                 "hpa-attribute-key":"numaCpu-0",
                                 "hpa-attribute-value":"2",
                                 "operator":"="
                              },
                              {
                                 "hpa-attribute-key":"numaCpu-1",
                                 "hpa-attribute-value":"4",
                                 "operator":"="
                              },
                              {
                                 "hpa-attribute-key":"numaMem-0",
                                 "hpa-attribute-value":"2",
                                 "operator":"=",
                                 "unit":"GB"
                              },
                              {
                                 "hpa-attribute-key":"numaMem-1",
                                 "hpa-attribute-value":"4",
                                 "operator":"=",
                                 "unit":"GB"
                              }
                           ]
                        }
                     ]
                  },
                  {
                     "id":"vg_2",
                     "type":"vnfc",
                     "directives":[
                        {
                           "type":"flavor_directives",
                           "attributes":[
                              {
                                 "attribute_name":"flavor_label_2",
                                 "attribute_value":""
                              }
                           ]
                        }
                     ],
                     "flavorProperties":[
                        {
                           "hpa-feature":"basicCapabilities",
                           "hpa-version":"v1",
                           "architecture":"generic",
                           "mandatory": "True",
                           "directives":[],
                           "hpa-feature-attributes":[
                              {
                                 "hpa-attribute-key":"numVirtualCpu",
                                 "hpa-attribute-value":"4",
                                 "operator":">="
                              },
                              {
                                 "hpa-attribute-key":"virtualMemSize",
                                 "hpa-attribute-value":"8",
                                 "operator":">=",
                                 "unit":"GB"
                              }
                           ]
                        },
                         {
                           "hpa-feature":"ovsDpdk",
                           "hpa-version":"v1",
                           "architecture":"generic",
                           "mandatory": "False",
                           "score":"5",
                           "directives":[],
                           "hpa-feature-attributes":[
                              {
                                 "hpa-attribute-key":"dataProcessingAccelerationLibrary",
                                 "hpa-attribute-value":"v18.02",
                                 "operator":"="
                              }
                           ]
                        },
                        {
                           "hpa-feature":"numa",
                           "hpa-version":"v1",
                           "architecture":"generic",
                           "mandatory":"False",
                           "score":"3",
                           "directives":[],
                           "hpa-feature-attributes":[
                              {
                                 "hpa-attribute-key":"numaNodes",
                                 "hpa-attribute-value":"2",
                                 "operator":"="
                              },
                              {
                                 "hpa-attribute-key":"numaCpu-0",
                                 "hpa-attribute-value":"2",
                                 "operator":"="
                              },
                              {
                                 "hpa-attribute-key":"numaCpu-1",
                                 "hpa-attribute-value":"4",
                                 "operator":"="
                              },
                              {
                                 "hpa-attribute-key":"numaMem-0",
                                 "hpa-attribute-value":"2",
                                 "operator":"=",
                                 "unit":"GB"
                              },
                              {
                                 "hpa-attribute-key":"numaMem-1",
                                 "hpa-attribute-value":"4",
                                 "operator":"=",
                                 "unit":"GB"
                              }
                           ]
                        }
                     ]
                  }
               ]
            }
         }
      },
      "optimization":{
         "minimize":{
            "sum":[
               {
                  "distance_between":[
                     "customer_loc",
                     "vG"
                  ]
               }
            ]
         }
      }
   },
   "timeout":5,
   "limit":3
}