From 0b855c08fd98fb8fa0f4bc40d8df430c897b4bad Mon Sep 17 00:00:00 2001 From: Ankitkumar Patel Date: Sun, 11 Feb 2018 17:51:13 -0500 Subject: Re-org folders, onboard test folder, test config Reorganized the folder structure. Onboarded testcases. Added test config. Issue-ID: OPTFRA-74 Change-Id: I97882a162a405a18ffd287495039e15ae9d0ad7b Signed-off-by: Ankitkumar Patel --- models/policy/cmso/xacml/placementPolicies.xcore | 718 -------------------- .../policy/placement/xacml/placementPolicies.xcore | 728 --------------------- 2 files changed, 1446 deletions(-) delete mode 100644 models/policy/cmso/xacml/placementPolicies.xcore delete mode 100644 models/policy/placement/xacml/placementPolicies.xcore (limited to 'models/policy') diff --git a/models/policy/cmso/xacml/placementPolicies.xcore b/models/policy/cmso/xacml/placementPolicies.xcore deleted file mode 100644 index 3348cb0..0000000 --- a/models/policy/cmso/xacml/placementPolicies.xcore +++ /dev/null @@ -1,718 +0,0 @@ -/* - * This XCORE file contains models for the placement optimization policies in SNIRO. - * @author Ankitkumar Patel - * @version 0.0.1 - * @since 2017-04-13 - */ - -package com.att.ecomp.sniro.policies.placement - -import java.util.UUID - -annotation "http://ecomp.att.com" as ecomp -annotation "http://ecomp.att.com/policy" as policy - -type UUID wraps UUID - -/* - * Comparison operators - */ -enum ComparisonOperator{ - less=1, grater=2, lessEqual=3, greaterEqual=4, equal=5, notEqual=6 -} - -enum TenantType{ - GW_TENANT_ID=1, PORTAL_TENANT_ID=2 -} - -/* - * Computational operators - */ -enum ComputationalOperator{ - sum=1, product=2 -} - - -/* - * Qualifier types - */ -enum Qualifier{ - same=1, different=2 -} - -/* - * Zone category - */ -enum ZoneCategory{ - disaster=1, region=2, complex=3, time=4, maintenance=5 -} - -/* - * Geographical region types - */ -enum GeoRegion{ - US=1, EMEA=2, AP=3, CALA=4, CA=5, INTERNATIONAL=6 -} - -/* - * Parameters - */ -enum Parameter{ - distance=0, latency=1, aic_version=2 - //thoughput=1, geoDistance=1, airDistance=2, latency=3, bandwidth=4 -} - - -/* - * The type of inventory defined in AIC - */ -enum InventoryType{ - service=1, cloud=2 -} - -/* - * The type of AT&T network - */ - enum NetworkType{ - ip=1 - } - -/* - * Objective functions. - */ - -enum ObjectiveFunction{ - minimize=1, maximize=2 -} - -/* - * This is a model of a condition. - * @param parameter This is the parameter of interest. - * @param operator This is a comparison operator. - * @param value This is a value of a parameter - */ -class ConditionalInfo{ - @ecomp(^type = "configuration") - Parameter parameter - @ecomp(^type = "configuration") - ComparisonOperator operator - @ecomp(^type = "configuration") - String value -} - -enum LocationInfo{ - customer_loc=1, none=2, customer_pref_loc=3 -} - - -/* - * Model for distance to location property. - * @param distanceCondition This is a distance condition. - * @param locationInfo This is a location with respect to which distance condition is applied. - */ -class DistanceToLocationProperty{ - //distanceCondition.parameter must be distance. - @ecomp(^type = "configuration") - contains ConditionalInfo distanceCondition - @ecomp(^type = "configuration") - LocationInfo locationInfo -} - -enum DistanceToLocationPolicyType{ - distance_to_location=1 -} - -/* - * Model for distance to location policy. - * @param identity This is an identity created by a user. - * @param type This is the type of a policy. - * @param resourceInstance This is a list of resource instances over which this policy is applied. - * @param distanceToLocationProperty This is the distance properties of the policy. - */ -@policy ( - policyTemplate = "SNIRO-PLACEMENT" -) -class DistanceToLocationPolicy extends SniroPolicyMetaInfo{ - @ecomp(^type = "configuration") - @policy (matching = "true") - DistanceToLocationPolicyType ^type - @ecomp(^type = "configuration") - String[] resourceInstanceType - @ecomp(^type = "configuration") - contains DistanceToLocationProperty distanceToLocationProperty -} - -/* - * The property associated with the NetworkBetweenDemandsPolicy. - * @param latencyCondition The latency property associated with the policy. - * @param locationInfo The customer location information. - */ -class NetworkToLocationProperty{ - //latencyCondition.parameter must be latency. - @ecomp(^type = "configuration") - contains ConditionalInfo latencyCondition - @ecomp(^type = "configuration") - LocationInfo locationInfo -} - -enum NetworkToLocationPolicyType{ - network_to_location=1 -} - -/* - * Network between demands policy. - * @param type The type of a policy. - * @param resourceInstanceType The resources associated with a policy. - * @param networkToLocationProperty The property associated with the policy. - */ - -@policy ( - policyTemplate = "SNIRO-PLACEMENT" -) -class NetworkToLocationPolicy extends SniroPolicyMetaInfo{ - @policy (matching = "true") - @ecomp(^type = "configuration") - NetworkToLocationPolicyType ^type - @ecomp(^type = "configuration") - String[] resourceInstanceType - @ecomp(^type = "configuration") - contains NetworkToLocationProperty networkToLocationProperty -} - -/* - * The property associated with the NetworkBetweenDemandsPolicy. - * @param latencyCondition The latency property associated with the policy. - */ -class NetworkBetweenDemandsProperty{ - //latencyCondition.parameter must be latency. - @ecomp(^type = "configuration") - contains ConditionalInfo latencyCondition -} - -enum NetworkBetweenDemandsPolicyType{ - network_between_demands=1 -} - -/* - * Network between demands policy. - * @param type The type of a policy. - * @param resourceInstanceType The resources associated with a policy. - * @param networkBetweenDemandsProperty The property associated with the policy. - */ -@policy ( - policyTemplate = "SNIRO-PLACEMENT" -) -class NetworkBetweenDemandsPolicy extends SniroPolicyMetaInfo{ - @policy (matching = "true") - @ecomp(^type = "configuration") - NetworkBetweenDemandsPolicyType ^type - @ecomp(^type = "configuration") - String[] resourceInstanceType - @ecomp(^type = "configuration") - contains NetworkBetweenDemandsProperty networkBetweenDemandsProperty -} - - -/* - * Network roles supported a VNF placement - * @param all A list of network roles. - */ -class NetworkRoles{ - @ecomp(^type = "configuration") - String[] all -} - -/* - * Complex names supported by a VNF placement - * @param any A list of complex names. - */ -class Complex{ - @ecomp(^type = "configuration") - String[] any -} -/* - * This are the AIC properties. - * @param aicVersion This is the version of AIC. - * @param aicType This is the type of AIC. - * @param dataPlace This is the type of data plane. - * @param hypervisor This is the type of hypervisor. - * @param networkRoles This is a list of connected networks. - * @param exclusivityGroups This is an exclusivity group Id - * @param state State in which a VNF should be located. - * @param country Country in which a VNF should be located. - * @param getRegion Geographical region in which a VNF should be located. - */ -class AicAttributeProperty{ - //aicVersionCondition.parameter must be aicVersion. - @ecomp(^type = "configuration") - String aicVersion - @ecomp(^type = "configuration") - String aicType - @ecomp(^type = "configuration") - String dataPlane - @ecomp(^type = "configuration") - String hypervisor - @ecomp(^type = "configuration") - contains NetworkRoles networkRoles - @ecomp(^type = "configuration") - contains Complex complex - @ecomp(^type = "configuration") - String exclusivityGroups - @ecomp(^type = "configuration") - String state - @ecomp(^type = "configuration") - String country - @ecomp(^type = "configuration") - GeoRegion geoRegion - @ecomp(^type = "configuration") - String replicationRole - -} - -enum AicAttributePolicyType{ - attribute=1 -} - -/* - * Model for the AIC attribute policy. - * @param type This is the type of a policy. - * @param resourceInstance This is a list of resources over which the policy is applied. - * @param aicAttributeProperty This is the properties associated with the policy. - */ -@policy ( - policyTemplate = "SNIRO-PLACEMENT" -) -class AicAttributePolicy extends SniroPolicyMetaInfo{ - @policy (matching = "true") - @ecomp(^type = "configuration") - AicAttributePolicyType ^type - @ecomp(^type = "configuration") - String[] resourceInstanceType - @ecomp(^type = "configuration") - contains AicAttributeProperty aicAttributeProperty -} - -/* - * The property associated with the capacity policy. - * @param tenant The tenant whose capacity needs to be checked. - * @param description The location of a heat template. - */ -class CapacityProperty{ - @ecomp(^type = "configuration") - TenantType tenant - @ecomp(^type = "configuration") - String description -} - -enum CapacityPolicyType{ - cloud_capacity=1 -} - -/* - * Capacity policy - * @param type The type of a policy. - * @param resourceInstanceType The type of resources associated with a policy. - * @param capacityProperty The property associated with a policy. - */ -@policy ( - policyTemplate = "SNIRO-PLACEMENT" -) -class CapacityPolicy extends SniroPolicyMetaInfo{ - @policy (matching = "true") - @ecomp(^type = "configuration") - CapacityPolicyType ^type - @ecomp(^type = "configuration") - String[] resourceInstanceType - @ecomp(^type = "configuration") - contains CapacityProperty capacityProperty -} - -enum InventoryGroupPolicyType{ - inventory_group = 1 -} - -/* - * Model for the inventory group policy. - * @param type This is the type of a policy. - * @param resourceInstance This is a list of resources that must be grouped/paired - */ -@policy ( - policyTemplate = "SNIRO-PLACEMENT" -) -class InventoryGroupPolicy extends SniroPolicyMetaInfo{ - @policy (matching = "true") - @ecomp(^type = "configuration") - InventoryGroupPolicyType ^type - @ecomp(^type = "configuration") - String[] resourceInstanceType -} - -/* - * This is the property associated with this policy. - * @param controller ECOMP controller. - * @param request This should be key-value pairs to be sent in a request. - */ -class ResourceInstanceProperty{ - @ecomp(^type = "configuration") - String controller - @ecomp(^type = "configuration") - String request -} - -enum ResourceInstancePolicyType{ - instance_fit=1 -} -/* - * Model for the resource instance policy. - * @param type This is the type of a policy. - * @param resourceInstance This is a list of resources. - * @param resourceInstanceProperty This is a property associated with each resource in the list. - */ -@policy ( - policyTemplate = "SNIRO-PLACEMENT" -) -class ResourceInstancePolicy extends SniroPolicyMetaInfo{ - @policy (matching = "true") - @ecomp(^type = "configuration") - ResourceInstancePolicyType ^type - @ecomp(^type = "configuration") - String[] resourceInstanceType - @ecomp(^type = "configuration") - contains ResourceInstanceProperty resourceInstanceProperty - -} - -/* - * This is the property associated with this policy. - * @param controller ECOMP controller - * @param request This should be key-value pairs to be sent in a request. - */ -class ResourceRegionProperty{ - @ecomp(^type = "configuration") - String controller - @ecomp(^type = "configuration") - String request -} - -enum ResourceRegionPolicyType{ - region_fit=1 -} - -/* - * Model for the resource region policy - * @param type This is the type of a policy. - * @param resourceInstance This is a list of resources. - * @param resourceRegionProperty This is a property associated with this policy. - */ -@policy ( - policyTemplate = "SNIRO-PLACEMENT" -) -class ResourceRegionPolicy extends SniroPolicyMetaInfo{ - @policy (matching = "true") - @ecomp(^type = "configuration") - ResourceRegionPolicyType ^type - @ecomp(^type = "configuration") - String[] resourceInstanceType - @ecomp(^type = "configuration") - contains ResourceRegionProperty resourceRegionProperty -} - -/* - * This is the property associated with zone policy. - * @param qualifier This is the qualifier. - * @param category This is the category of a zone. - */ -class ZoneProperty{ - @ecomp(^type = "configuration") - Qualifier qualifier - @ecomp(^type = "configuration") - ZoneCategory category -} - -enum ZonePolicyType{ - zone=1 -} - -/* - * Model of the zone policy. - * @param type This is the type of a policy. - * @param resourceInstanceType This is a list of resources. - * @param zoneProperty This is the property associated with the policy. - */ -@policy ( - policyTemplate = "SNIRO-PLACEMENT" -) - -class ZonePolicy extends SniroPolicyMetaInfo{ - @policy (matching = "true") - @ecomp(^type = "configuration") - ZonePolicyType ^type - @ecomp(^type = "configuration") - String[] resourceInstanceType - @ecomp(^type = "configuration") - contains ZoneProperty zoneProperty -} - -/* - * The property associated with a VNF type. - * @param inventoryProvider The ECOMP entity providing inventory information. - * @param inventoryType The type of an inventory. - * @param serviceId The id of a service. - */ -class VNFPolicyProperty{ - @ecomp(^type = "configuration") - String inventoryProvider - @ecomp(^type = "configuration") - InventoryType inventoryType - @ecomp(^type = "configuration") - contains Attributes attributes -} - -/* - * The property associated with a Subscriber type. - * @param subscriberName The name of a subscriber. - * @param subscriberRole The role of a subscriber. - * @param provStatus The provisioning status of a subscriber. - */ -class SubscriberPolicyProperty{ - @ecomp(^type = "configuration") - String[] subscriberName - @ecomp(^type = "configuration") - String[] subscriberRole - @ecomp(^type = "configuration") - String[] provStatus -} - -enum VNFPolicyType{ - vnfPolicy=1 -} - -enum SubscriberPolicyType{ - subscriberPolicy=1 -} - -class Attributes{ - @ecomp(^type = "configuration") - String globalCustomerId - @ecomp(^type = "configuration") - String operationalStatus - @ecomp(^type = "configuration") - String[] orchestrationStatus - @ecomp(^type = "configuration") - String modelInvariantId - @ecomp(^type = "configuration") - String modelVersionId - @ecomp(^type = "configuration") - String equipmentRole -} - -/* - * Policy associated with a VNF. - * @param resourceInstance This parameter identifies a specific VNF. - * @param inventoryProvider This is the provider of inventory. - * @param inventoryType This is the type of inventory. - * @param serviceType The service associated with a VNF. - * @param serviceId The Id associated with a service. - * @param globalCustomerId The global id of a customer. - */ -@policy ( - policyTemplate = "SNIRO-PLACEMENT" -) -class VNFPolicy extends SniroPolicyMetaInfo{ - @policy (matching = "true") - @ecomp(^type = "configuration") - VNFPolicyType ^type - @ecomp(^type = "configuration") - String[] resourceInstanceType - @ecomp(^type = "configuration") - contains VNFPolicyProperty[] property -} - -/* - * Policy associated with a Subscriber. - * @param subscriberName The name of a subscriber. - * @param subscriberRole The role of a subscriber. - * @param provStatus The provisioning status of a subscriber. - */ -@policy ( - policyTemplate = "SNIRO-PLACEMENT" -) -class SubscriberPolicy extends SniroPolicyMetaInfo{ - @policy (matching = "true") - @ecomp(^type = "configuration") - SubscriberPolicyType ^type - @ecomp(^type = "configuration") - contains SubscriberPolicyProperty[] property -} - - -/* - * This is the property associated with this policy. - * @param providerUrl This is the url of provider to check the capacity. - * @param request This should be key-value pairs to be sent in a request. - */ -class InstanceReservationProperty{ - @ecomp(^type = "configuration") - String controller - @ecomp(^type = "configuration") - String request -} - -enum InstanceReservationPolicyType{ - instance_reservation=1 -} -/* - * Model for the resource instance policy. - * @param identity This is an identity created by a user. - * @param type This is the type of a policy. - * @param resourceInstance This is a list of resources. - * @param resourceInstanceProperty This is a property associated with each resource in the list. - */ -@policy ( - policyTemplate = "SNIRO-PLACEMENT" -) -class instanceReservationPolicy extends SniroPolicyMetaInfo{ - @policy (matching = "true") - @ecomp(^type = "configuration") - InstanceReservationPolicyType ^type - @ecomp(^type = "configuration") - String[] resourceInstanceType - @ecomp(^type = "configuration") - contains InstanceReservationProperty instanceReservationProperty - -} - -/* - * This is a model of an operand. - * @param parameter This is a parameter. - * @param associativity This is a list of entities with which a parameter is associated. - */ - /* -class Operand{ - @ecomp(^type = "configuration") - Parameter parameter - @ecomp(^type = "configuration") - Entity associativity -} -*/ - -/* - * This is the optimization function. - * @param identity This is an identity of a function. - * @param operation This is a computational operator. - * @param leftOperand This is a left operand of a function. - * @param rightOperand This is a right operand of a function. - */ -/* -class OptimizationFunction{ - @ecomp(^type = "configuration") - ExpressionIdentity identity - @ecomp(^type = "configuration") - ComputationalOperator operation - @ecomp(^type = "configuration") - contains Operand[] operands -} -*/ - -/* - * Properties associated with a sub-expression. - * @param weight The weight of an expression. - * @param parameter The parameter involved in an expression. - * @param entity The entities involved in an expression. - * @param operator The operator of an expression. - * @param customerLocationInfo The location of a customer. - */ -class AttributeProperty{ - @ecomp(^type = "configuration") - double weight - @ecomp(^type = "configuration") - Parameter parameter - @ecomp(^type = "configuration") - String[] resource - @ecomp(^type = "configuration") - ComputationalOperator operator - @ecomp(^type = "configuration") - LocationInfo customerLocationInfo -} - -enum PlacementOptimizationPolicyType{ - placementOptimization=1 -} - -/* - * @param operator An operator in an expression. - * @param parameterAttributes Represents sub-expression - */ -class ObjectiveParameter{ - @ecomp(^type = "configuration") - ComputationalOperator operator - @ecomp(^type = "configuration") - contains AttributeProperty[] parameterAttributes -} - -/* - * Model of the placement optimization policy. - * @param type This is the type of a policy. - * @param objective This is an objective function. - * @param objectiveParameter The parameter/expression to be optimized. - */ -@policy ( - policyTemplate = "SNIRO-PLACEMENT" -) - -class PlacementOptimizationPolicy extends SniroPolicyMetaInfo{ - @policy (matching = "true") - @ecomp(^type = "configuration") - PlacementOptimizationPolicyType ^type - @ecomp(^type = "configuration") - ObjectiveFunction objective - @ecomp(^type = "configuration") - contains ObjectiveParameter objectiveParameter -} - - -/* - * Meta information required for SNIRO policies. - * @param identity This is a user-defined identity. - * @param policyScope The scope of a policy - */ - -@policy ( - policyTemplate = "SNIRO" -) -class SniroPolicyMetaInfo{ - @ecomp(^type = "configuration") - String identity - @ecomp(^type = "configuration") - @policy (matching = "true") - contains Scope policyScope -} - -/* - * Scopes in which a policy is applicable. - * @param serviceType The type of a service. - * @param networkType The type of a network - * @param geoRigion The geographical region. - * @param resourceInstanceType The resources associated with a policy/ - * @param subscriberRole - */ -class Scope{ - @ecomp(^type = "configuration") - @policy (matching = "true") - String[] serviceType - @ecomp(^type = "configuration") - @policy (matching = "true") - String[] networkType - @ecomp(^type = "configuration") - @policy (matching = "true") - String[] geoRegion - @ecomp(^type = "configuration") - @policy (matching = "true") - String[] resourceInstanceType - @ecomp(^type = "configuration") - @policy (matching = "true") - String[] modelInvariantId - @ecomp(^type = "configuration") - @policy (matching = "true") - String[] subscriberRole -} \ No newline at end of file diff --git a/models/policy/placement/xacml/placementPolicies.xcore b/models/policy/placement/xacml/placementPolicies.xcore deleted file mode 100644 index 866488e..0000000 --- a/models/policy/placement/xacml/placementPolicies.xcore +++ /dev/null @@ -1,728 +0,0 @@ -/* - * ================================================================================ - * 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. -*/ - -package org.onap.oof.osdf.policies.placement - -import java.util.UUID - -annotation "http://org.onap" as onap -annotation "http://org.onap.policy" as policy - -type UUID wraps UUID - -/* - * Comparison operators - */ -enum ComparisonOperator{ - less=1, grater=2, lessEqual=3, greaterEqual=4, equal=5, notEqual=6 -} - -enum TenantType{ - GW_TENANT_ID=1, PORTAL_TENANT_ID=2 -} - -/* - * Computational operators - */ -enum ComputationalOperator{ - sum=1, product=2 -} - - -/* - * Qualifier types - */ -enum Qualifier{ - same=1, different=2 -} - -/* - * Zone category - */ -enum ZoneCategory{ - disaster=1, region=2, complex=3, time=4, maintenance=5 -} - -/* - * Geographical region types - */ -enum GeoRegion{ - US=1, EMEA=2, AP=3, CALA=4, CA=5, INTERNATIONAL=6 -} - -/* - * Parameters - */ -enum Parameter{ - distance=0, latency=1, cloud_version=2 - //thoughput=1, geoDistance=1, airDistance=2, latency=3, bandwidth=4 -} - - -/* - * The type of inventory defined in cloud - */ -enum InventoryType{ - service=1, cloud=2 -} - -/* - * The type of network - */ - enum NetworkType{ - ip=1 - } - -/* - * Objective functions. - */ - -enum ObjectiveFunction{ - minimize=1, maximize=2 -} - -/* - * This is a model of a condition. - * @param parameter This is the parameter of interest. - * @param operator This is a comparison operator. - * @param value This is a value of a parameter - */ -class ConditionalInfo{ - @onap(^type = "configuration") - Parameter parameter - @onap(^type = "configuration") - ComparisonOperator operator - @onap(^type = "configuration") - String value -} - -enum LocationInfo{ - customer_loc=1, none=2, customer_pref_loc=3 -} - - -/* - * Model for distance to location property. - * @param distanceCondition This is a distance condition. - * @param locationInfo This is a location with respect to which distance condition is applied. - */ -class DistanceToLocationProperty{ - //distanceCondition.parameter must be distance. - @onap(^type = "configuration") - contains ConditionalInfo distanceCondition - @onap(^type = "configuration") - LocationInfo locationInfo -} - -enum DistanceToLocationPolicyType{ - distance_to_location=1 -} - -/* - * Model for distance to location policy. - * @param identity This is an identity created by a user. - * @param type This is the type of a policy. - * @param resourceInstance This is a list of resource instances over which this policy is applied. - * @param distanceToLocationProperty This is the distance properties of the policy. - */ -@policy ( - policyTemplate = "OOF-PLACEMENT" -) -class DistanceToLocationPolicy extends OOFPolicyMetaInfo{ - @onap(^type = "configuration") - @policy (matching = "true") - DistanceToLocationPolicyType ^type - @onap(^type = "configuration") - String[] resourceInstanceType - @onap(^type = "configuration") - contains DistanceToLocationProperty distanceToLocationProperty -} - -/* - * The property associated with the NetworkBetweenDemandsPolicy. - * @param latencyCondition The latency property associated with the policy. - * @param locationInfo The customer location information. - */ -class NetworkToLocationProperty{ - //latencyCondition.parameter must be latency. - @onap(^type = "configuration") - contains ConditionalInfo latencyCondition - @onap(^type = "configuration") - LocationInfo locationInfo -} - -enum NetworkToLocationPolicyType{ - network_to_location=1 -} - -/* - * Network between demands policy. - * @param type The type of a policy. - * @param resourceInstanceType The resources associated with a policy. - * @param networkToLocationProperty The property associated with the policy. - */ - -@policy ( - policyTemplate = "OOF-PLACEMENT" -) -class NetworkToLocationPolicy extends OOFPolicyMetaInfo{ - @policy (matching = "true") - @onap(^type = "configuration") - NetworkToLocationPolicyType ^type - @onap(^type = "configuration") - String[] resourceInstanceType - @onap(^type = "configuration") - contains NetworkToLocationProperty networkToLocationProperty -} - -/* - * The property associated with the NetworkBetweenDemandsPolicy. - * @param latencyCondition The latency property associated with the policy. - */ -class NetworkBetweenDemandsProperty{ - //latencyCondition.parameter must be latency. - @onap(^type = "configuration") - contains ConditionalInfo latencyCondition -} - -enum NetworkBetweenDemandsPolicyType{ - network_between_demands=1 -} - -/* - * Network between demands policy. - * @param type The type of a policy. - * @param resourceInstanceType The resources associated with a policy. - * @param networkBetweenDemandsProperty The property associated with the policy. - */ -@policy ( - policyTemplate = "OOF-PLACEMENT" -) -class NetworkBetweenDemandsPolicy extends OOFPolicyMetaInfo{ - @policy (matching = "true") - @onap(^type = "configuration") - NetworkBetweenDemandsPolicyType ^type - @onap(^type = "configuration") - String[] resourceInstanceType - @onap(^type = "configuration") - contains NetworkBetweenDemandsProperty networkBetweenDemandsProperty -} - - -/* - * Network roles supported a VNF placement - * @param all A list of network roles. - */ -class NetworkRoles{ - @onap(^type = "configuration") - String[] all -} - -/* - * Complex names supported by a VNF placement - * @param any A list of complex names. - */ -class Complex{ - @onap(^type = "configuration") - String[] any -} -/* - * This are the cloud properties. - * @param cloudVersion This is the version of cloud. - * @param cloudType This is the type of cloud. - * @param dataPlace This is the type of data plane. - * @param hypervisor This is the type of hypervisor. - * @param networkRoles This is a list of connected networks. - * @param exclusivityGroups This is an exclusivity group Id - * @param state State in which a VNF should be located. - * @param country Country in which a VNF should be located. - * @param getRegion Geographical region in which a VNF should be located. - */ -class cloudAttributeProperty{ - //cloudVersionCondition.parameter must be cloudVersion. - @onap(^type = "configuration") - String cloudVersion - @onap(^type = "configuration") - String cloudType - @onap(^type = "configuration") - String dataPlane - @onap(^type = "configuration") - String hypervisor - @onap(^type = "configuration") - contains NetworkRoles networkRoles - @onap(^type = "configuration") - contains Complex complex - @onap(^type = "configuration") - String exclusivityGroups - @onap(^type = "configuration") - String state - @onap(^type = "configuration") - String country - @onap(^type = "configuration") - GeoRegion geoRegion - @onap(^type = "configuration") - String replicationRole - -} - -enum cloudAttributePolicyType{ - attribute=1 -} - -/* - * Model for the cloud attribute policy. - * @param type This is the type of a policy. - * @param resourceInstance This is a list of resources over which the policy is applied. - * @param cloudAttributeProperty This is the properties associated with the policy. - */ -@policy ( - policyTemplate = "OOF-PLACEMENT" -) -class cloudAttributePolicy extends OOFPolicyMetaInfo{ - @policy (matching = "true") - @onap(^type = "configuration") - cloudAttributePolicyType ^type - @onap(^type = "configuration") - String[] resourceInstanceType - @onap(^type = "configuration") - contains cloudAttributeProperty cloudAttributeProperty -} - -/* - * The property associated with the capacity policy. - * @param tenant The tenant whose capacity needs to be checked. - * @param description The location of a heat template. - */ -class CapacityProperty{ - @onap(^type = "configuration") - TenantType tenant - @onap(^type = "configuration") - String description -} - -enum CapacityPolicyType{ - cloud_capacity=1 -} - -/* - * Capacity policy - * @param type The type of a policy. - * @param resourceInstanceType The type of resources associated with a policy. - * @param capacityProperty The property associated with a policy. - */ -@policy ( - policyTemplate = "OOF-PLACEMENT" -) -class CapacityPolicy extends OOFPolicyMetaInfo{ - @policy (matching = "true") - @onap(^type = "configuration") - CapacityPolicyType ^type - @onap(^type = "configuration") - String[] resourceInstanceType - @onap(^type = "configuration") - contains CapacityProperty capacityProperty -} - -enum InventoryGroupPolicyType{ - inventory_group = 1 -} - -/* - * Model for the inventory group policy. - * @param type This is the type of a policy. - * @param resourceInstance This is a list of resources that must be grouped/paired - */ -@policy ( - policyTemplate = "OOF-PLACEMENT" -) -class InventoryGroupPolicy extends OOFPolicyMetaInfo{ - @policy (matching = "true") - @onap(^type = "configuration") - InventoryGroupPolicyType ^type - @onap(^type = "configuration") - String[] resourceInstanceType -} - -/* - * This is the property associated with this policy. - * @param controller onap controller. - * @param request This should be key-value pairs to be sent in a request. - */ -class ResourceInstanceProperty{ - @onap(^type = "configuration") - String controller - @onap(^type = "configuration") - String request -} - -enum ResourceInstancePolicyType{ - instance_fit=1 -} -/* - * Model for the resource instance policy. - * @param type This is the type of a policy. - * @param resourceInstance This is a list of resources. - * @param resourceInstanceProperty This is a property associated with each resource in the list. - */ -@policy ( - policyTemplate = "OOF-PLACEMENT" -) -class ResourceInstancePolicy extends OOFPolicyMetaInfo{ - @policy (matching = "true") - @onap(^type = "configuration") - ResourceInstancePolicyType ^type - @onap(^type = "configuration") - String[] resourceInstanceType - @onap(^type = "configuration") - contains ResourceInstanceProperty resourceInstanceProperty - -} - -/* - * This is the property associated with this policy. - * @param controller onap controller - * @param request This should be key-value pairs to be sent in a request. - */ -class ResourceRegionProperty{ - @onap(^type = "configuration") - String controller - @onap(^type = "configuration") - String request -} - -enum ResourceRegionPolicyType{ - region_fit=1 -} - -/* - * Model for the resource region policy - * @param type This is the type of a policy. - * @param resourceInstance This is a list of resources. - * @param resourceRegionProperty This is a property associated with this policy. - */ -@policy ( - policyTemplate = "OOF-PLACEMENT" -) -class ResourceRegionPolicy extends OOFPolicyMetaInfo{ - @policy (matching = "true") - @onap(^type = "configuration") - ResourceRegionPolicyType ^type - @onap(^type = "configuration") - String[] resourceInstanceType - @onap(^type = "configuration") - contains ResourceRegionProperty resourceRegionProperty -} - -/* - * This is the property associated with zone policy. - * @param qualifier This is the qualifier. - * @param category This is the category of a zone. - */ -class ZoneProperty{ - @onap(^type = "configuration") - Qualifier qualifier - @onap(^type = "configuration") - ZoneCategory category -} - -enum ZonePolicyType{ - zone=1 -} - -/* - * Model of the zone policy. - * @param type This is the type of a policy. - * @param resourceInstanceType This is a list of resources. - * @param zoneProperty This is the property associated with the policy. - */ -@policy ( - policyTemplate = "OOF-PLACEMENT" -) - -class ZonePolicy extends OOFPolicyMetaInfo{ - @policy (matching = "true") - @onap(^type = "configuration") - ZonePolicyType ^type - @onap(^type = "configuration") - String[] resourceInstanceType - @onap(^type = "configuration") - contains ZoneProperty zoneProperty -} - -/* - * The property associated with a VNF type. - * @param inventoryProvider The onap entity providing inventory information. - * @param inventoryType The type of an inventory. - * @param serviceId The id of a service. - */ -class VNFPolicyProperty{ - @onap(^type = "configuration") - String inventoryProvider - @onap(^type = "configuration") - InventoryType inventoryType - @onap(^type = "configuration") - contains Attributes attributes -} - -/* - * The property associated with a Subscriber type. - * @param subscriberName The name of a subscriber. - * @param subscriberRole The role of a subscriber. - * @param provStatus The provisioning status of a subscriber. - */ -class SubscriberPolicyProperty{ - @onap(^type = "configuration") - String[] subscriberName - @onap(^type = "configuration") - String[] subscriberRole - @onap(^type = "configuration") - String[] provStatus -} - -enum VNFPolicyType{ - vnfPolicy=1 -} - -enum SubscriberPolicyType{ - subscriberPolicy=1 -} - -class Attributes{ - @onap(^type = "configuration") - String globalCustomerId - @onap(^type = "configuration") - String operationalStatus - @onap(^type = "configuration") - String[] orchestrationStatus - @onap(^type = "configuration") - String modelInvariantId - @onap(^type = "configuration") - String modelVersionId - @onap(^type = "configuration") - String equipmentRole -} - -/* - * Policy associated with a VNF. - * @param resourceInstance This parameter identifies a specific VNF. - * @param inventoryProvider This is the provider of inventory. - * @param inventoryType This is the type of inventory. - * @param serviceType The service associated with a VNF. - * @param serviceId The Id associated with a service. - * @param globalCustomerId The global id of a customer. - */ -@policy ( - policyTemplate = "OOF-PLACEMENT" -) -class VNFPolicy extends OOFPolicyMetaInfo{ - @policy (matching = "true") - @onap(^type = "configuration") - VNFPolicyType ^type - @onap(^type = "configuration") - String[] resourceInstanceType - @onap(^type = "configuration") - contains VNFPolicyProperty[] property -} - -/* - * Policy associated with a Subscriber. - * @param subscriberName The name of a subscriber. - * @param subscriberRole The role of a subscriber. - * @param provStatus The provisioning status of a subscriber. - */ -@policy ( - policyTemplate = "OOF-PLACEMENT" -) -class SubscriberPolicy extends OOFPolicyMetaInfo{ - @policy (matching = "true") - @onap(^type = "configuration") - SubscriberPolicyType ^type - @onap(^type = "configuration") - contains SubscriberPolicyProperty[] property -} - - -/* - * This is the property associated with this policy. - * @param providerUrl This is the url of provider to check the capacity. - * @param request This should be key-value pairs to be sent in a request. - */ -class InstanceReservationProperty{ - @onap(^type = "configuration") - String controller - @onap(^type = "configuration") - String request -} - -enum InstanceReservationPolicyType{ - instance_reservation=1 -} -/* - * Model for the resource instance policy. - * @param identity This is an identity created by a user. - * @param type This is the type of a policy. - * @param resourceInstance This is a list of resources. - * @param resourceInstanceProperty This is a property associated with each resource in the list. - */ -@policy ( - policyTemplate = "OOF-PLACEMENT" -) -class InstanceReservationPolicy extends OOFPolicyMetaInfo{ - @policy (matching = "true") - @onap(^type = "configuration") - InstanceReservationPolicyType ^type - @onap(^type = "configuration") - String[] resourceInstanceType - @onap(^type = "configuration") - contains InstanceReservationProperty instanceReservationProperty - -} - -/* - * This is a model of an operand. - * @param parameter This is a parameter. - * @param associativity This is a list of entities with which a parameter is associated. - */ - /* -class Operand{ - @onap(^type = "configuration") - Parameter parameter - @onap(^type = "configuration") - Entity associativity -} -*/ - -/* - * This is the optimization function. - * @param identity This is an identity of a function. - * @param operation This is a computational operator. - * @param leftOperand This is a left operand of a function. - * @param rightOperand This is a right operand of a function. - */ -/* -class OptimizationFunction{ - @onap(^type = "configuration") - ExpressionIdentity identity - @onap(^type = "configuration") - ComputationalOperator operation - @onap(^type = "configuration") - contains Operand[] operands -} -*/ - -/* - * Properties associated with a sub-expression. - * @param weight The weight of an expression. - * @param parameter The parameter involved in an expression. - * @param entity The entities involved in an expression. - * @param operator The operator of an expression. - * @param customerLocationInfo The location of a customer. - */ -class AttributeProperty{ - @onap(^type = "configuration") - double weight - @onap(^type = "configuration") - Parameter parameter - @onap(^type = "configuration") - String[] resource - @onap(^type = "configuration") - ComputationalOperator operator - @onap(^type = "configuration") - LocationInfo customerLocationInfo -} - -enum PlacementOptimizationPolicyType{ - placementOptimization=1 -} - -/* - * @param operator An operator in an expression. - * @param parameterAttributes Represents sub-expression - */ -class ObjectiveParameter{ - @onap(^type = "configuration") - ComputationalOperator operator - @onap(^type = "configuration") - contains AttributeProperty[] parameterAttributes -} - -/* - * Model of the placement optimization policy. - * @param type This is the type of a policy. - * @param objective This is an objective function. - * @param objectiveParameter The parameter/expression to be optimized. - */ -@policy ( - policyTemplate = "OOF-PLACEMENT" -) - -class PlacementOptimizationPolicy extends OOFPolicyMetaInfo{ - @policy (matching = "true") - @onap(^type = "configuration") - PlacementOptimizationPolicyType ^type - @onap(^type = "configuration") - ObjectiveFunction objective - @onap(^type = "configuration") - contains ObjectiveParameter objectiveParameter -} - - -/* - * Meta information required for oof policies. - * @param identity This is a user-defined identity. - * @param policyScope The scope of a policy - */ - -@policy ( - policyTemplate = "OOF-PLACEMENT" -) -class OOFPolicyMetaInfo{ - @onap(^type = "configuration") - String identity - @onap(^type = "configuration") - @policy (matching = "true") - contains Scope policyScope -} - -/* - * Scopes in which a policy is applicable. - * @param serviceType The type of a service. - * @param networkType The type of a network - * @param geoRigion The geographical region. - * @param resourceInstanceType The resources associated with a policy/ - * @param subscriberRole - */ -class Scope{ - @onap(^type = "configuration") - @policy (matching = "true") - String[] serviceType - @onap(^type = "configuration") - @policy (matching = "true") - String[] networkType - @onap(^type = "configuration") - @policy (matching = "true") - String[] geoRegion - @onap(^type = "configuration") - @policy (matching = "true") - String[] resourceInstanceType - @onap(^type = "configuration") - @policy (matching = "true") - String[] modelInvariantId - @onap(^type = "configuration") - @policy (matching = "true") - String[] subscriberRole -} -- cgit 1.2.3-korg