From 2ae0ac0083483078350b1bc697e09683a8781957 Mon Sep 17 00:00:00 2001 From: eHanan Date: Mon, 16 Sep 2019 12:25:40 +0100 Subject: [PATCH] Fixing SO-2337 filename too long issue Change-Id: I02ce1a948d79219e9c373f43a22c00dba57074ff Issue-ID: SO-2337 Signed-off-by: eHanan --- ...service-Manualdistributiontestservice-csar.csar | Bin 71960 -> 0 bytes .../artifacts/TOSCA.meta | 7 - .../VSP_manualDistributionTestVSP_Information.txt | 50 - .../artifacts/annotations.yml | 30 - .../artifacts/artifacts.yml | 49 - .../artifacts/base_ves_med1.env | 11 - .../artifacts/base_ves_med1.yaml | 86 - .../artifacts/capabilities.yml | 310 -- .../manualdistributiontestvnf0/artifacts/csar.meta | 2 - .../manualdistributiontestvnf0/artifacts/data.yml | 2417 ---------- .../artifacts/descriptor.yaml | 66 - .../artifacts/groups.yml | 144 - .../artifacts/interfaces.yml | 138 - .../manualdistributiontestvnf0_modules.json | 25 - .../manualdistributiontestvnf0/artifacts/nodes.yml | 4980 -------------------- .../artifacts/policies.yml | 492 -- .../artifacts/relationships.yml | 149 - .../artifacts/resource-Extneutroncp-template.yml | 182 - ...anualdistributiontestvsp-template-interface.yml | 1863 -------- ...resource-Manualdistributiontestvsp-template.yml | 673 --- ...utiontestvspComputeNodesHeatSimple-template.yml | 131 - ...ontestvspNodesSimplecvfc-template-interface.yml | 1892 -------- ...distributiontestvspNodesSimplecvfc-template.yml | 705 --- ...ldistributiontestservice-template-interface.yml | 1768 ------- ...vice-Manualdistributiontestservice-template.yml | 537 --- .../artifacts/vendor-license-model.xml | 1 - .../artifacts/vf-license-model.xml | 1 - .../distribution-test-zip/zipped_sdc_csar.tar.gz | Bin 0 -> 129539 bytes .../so/integration-etsi-testing/docker-compose.yml | 12 +- tests/so/etsi/etsi_tests.robot | 2 +- 30 files changed, 5 insertions(+), 16718 deletions(-) delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/artifacts/service-Manualdistributiontestservice-csar.csar delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/TOSCA.meta delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/VSP_manualDistributionTestVSP_Information.txt delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/annotations.yml delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/artifacts.yml delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/base_ves_med1.env delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/base_ves_med1.yaml delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/capabilities.yml delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/csar.meta delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/data.yml delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/descriptor.yaml delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/groups.yml delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/interfaces.yml delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/manualdistributiontestvnf0_modules.json delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/nodes.yml delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/policies.yml delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/relationships.yml delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/resource-Extneutroncp-template.yml delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/resource-Manualdistributiontestvsp-template-interface.yml delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/resource-Manualdistributiontestvsp-template.yml delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/resource-ManualdistributiontestvspComputeNodesHeatSimple-template.yml delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/resource-ManualdistributiontestvspNodesSimplecvfc-template-interface.yml delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/resource-ManualdistributiontestvspNodesSimplecvfc-template.yml delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/service-Manualdistributiontestservice-template-interface.yml delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/service-Manualdistributiontestservice-template.yml delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/vendor-license-model.xml delete mode 100644 plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/vf-license-model.xml create mode 100644 plans/so/integration-etsi-testing/config/distribution-test-zip/zipped_sdc_csar.tar.gz diff --git a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/artifacts/service-Manualdistributiontestservice-csar.csar b/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/artifacts/service-Manualdistributiontestservice-csar.csar deleted file mode 100644 index c7a325e46a7a60eef37e0c290f98bf8bb1e3c753..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71960 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 /tmp/vnfid.log - -outputs: - oam_management_v4_address: - description: The IP address of the oam_management_v4_address - value: { get_param: node_ip } - diff --git a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/capabilities.yml b/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/capabilities.yml deleted file mode 100644 index 85af71a8..00000000 --- a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/capabilities.yml +++ /dev/null @@ -1,310 +0,0 @@ -# -# 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. -# -tosca_definitions_version: tosca_simple_yaml_1_1 -imports: -- data.yml -capability_types: - tosca.capabilities.Root: - description: The TOSCA root Capability Type all other TOSCA base Capability Types derive from - tosca.capabilities.Attachment: - derived_from: tosca.capabilities.Root - tosca.capabilities.Node: - derived_from: tosca.capabilities.Root - tosca.capabilities.Container: - derived_from: tosca.capabilities.Root - properties: - num_cpus: - type: integer - required: false - constraints: - - greater_or_equal: 1 - cpu_frequency: - type: scalar-unit.frequency - required: false - constraints: - - greater_or_equal: 0.1 GHz - disk_size: - type: scalar-unit.size - required: false - constraints: - - greater_or_equal: 0 MB - mem_size: - type: scalar-unit.size - required: false - constraints: - - greater_or_equal: 0 MB - org.openecomp.capabilities.PortMirroring: - derived_from: tosca.capabilities.Root - properties: - connection_point: - type: org.openecomp.datatypes.PortMirroringConnectionPointDescription - tosca.capabilities.Endpoint: - derived_from: tosca.capabilities.Root - properties: - protocol: - type: string - default: tcp - port: - type: PortDef - required: false - secure: - type: boolean - default: false - url_path: - type: string - required: false - port_name: - type: string - required: false - network_name: - type: string - required: false - default: PRIVATE - initiator: - type: string - default: source - constraints: - - valid_values: - - source - - target - - peer - ports: - type: map - required: false - constraints: - - min_length: 1 - entry_schema: - type: PortSpec - attributes: - ip_address: - type: string - tosca.capabilities.DatabaseEndpoint: - derived_from: tosca.capabilities.Endpoint - tosca.capabilities.Endpoint.Public: - derived_from: tosca.capabilities.Endpoint - properties: - network_name: PUBLIC - floating: - description: | - indicates that the public address should be allocated from a pool of floating IPs that are associated with the network. - type: boolean - default: false - status: experimental - dns_name: - description: The optional name to register with DNS - type: string - required: false - status: experimental - tosca.capabilities.Endpoint.Admin: - derived_from: tosca.capabilities.Endpoint - properties: - secure: true - tosca.capabilities.Endpoint.Database: - derived_from: tosca.capabilities.Endpoint - tosca.capabilities.OperatingSystem: - derived_from: tosca.capabilities.Root - properties: - architecture: - type: string - required: false - type: - type: string - required: false - distribution: - type: string - required: false - version: - type: version - required: false - tosca.capabilities.Scalable: - derived_from: tosca.capabilities.Root - properties: - min_instances: - type: integer - default: 1 - max_instances: - type: integer - default: 1 - default_instances: - type: integer - tosca.capabilities.network.Bindable: - derived_from: tosca.capabilities.Node - tosca.capabilities.Container.Docker: - derived_from: tosca.capabilities.Container - properties: - version: - type: list - required: false - entry_schema: version - publish_all: - type: boolean - default: false - required: false - publish_ports: - type: list - entry_schema: PortSpec - required: false - expose_ports: - type: list - entry_schema: PortSpec - required: false - volumes: - type: list - entry_schema: string - required: false - tosca.capabilities.network.Linkable: - derived_from: tosca.capabilities.Root - org.openecomp.capabilities.AllottedResource: - derived_from: tosca.capabilities.Root - tosca.capabilities.nfv.Metric: - derived_from: tosca.capabilities.Endpoint - org.openecomp.capabilities.Metric: - derived_from: tosca.capabilities.nfv.Metric - description: A node type that includes the Metric capability indicates that it can be monitored. - properties: - unit: - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - attributes: - value: - type: string - description: Runtime monitored value - status: SUPPORTED - org.openecomp.capabilities.metric.Ceilometer: - derived_from: org.openecomp.capabilities.Metric - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - status: SUPPORTED - org.openecomp.capabilities.metric.SnmpPolling: - derived_from: org.openecomp.capabilities.Metric - description: A node type that includes the Metric capability indicates that it can be monitored using snmp polling. - properties: - oid: - type: string - description: Object Id of the metric - required: true - status: SUPPORTED - org.openecomp.capabilities.metric.SnmpTrap: - derived_from: org.openecomp.capabilities.Metric - description: A node type that includes the Metric capability indicates that it can be monitored using snmp trap. - properties: - oid: - type: string - description: Object Id of the metric - required: true - status: SUPPORTED - org.openecomp.capabilities.Forwarder: - derived_from: tosca.capabilities.Root - org.openecomp.capabilities.VLANAssignment: - derived_from: tosca.capabilities.Root - description: ability to expose routing information of the internal network - properties: - vfc_instance_group_reference: - type: string - description: Ability to recognize capability per vfc instance group on vnf instance - required: true - org.openecomp.capabilities.RoutingConfiguration: - derived_from: tosca.capabilities.Root - org.openecomp.capabilities.FabricConfiguration: - derived_from: tosca.capabilities.Root - tosca.capabilities.nfv.VirtualStorage: - derived_from: tosca.capabilities.Root - description: Describes the attachment capabilities related to Vdu.Storage - tosca.capabilities.nfv.VirtualCompute: - derived_from: tosca.capabilities.Node - description: Describes the capabilities related to virtual compute resources - properties: - logical_node: - type: map - description: Describes the Logical Node requirements - required: false - entry_schema: - type: tosca.datatypes.nfv.LogicalNodeData - requested_additional_capabilities: - type: map - description: Describes additional capability for a particular VDU - required: false - entry_schema: - type: tosca.datatypes.nfv.RequestedAdditionalCapability - compute_requirements: - type: map - required: false - entry_schema: - type: string - virtual_memory: - type: tosca.datatypes.nfv.VirtualMemory - description: Describes virtual memory of the virtualized compute - required: true - virtual_cpu: - type: tosca.datatypes.nfv.VirtualCpu - description: Describes virtual CPU(s) of the virtualized compute - required: true - virtual_local_storage: - type: list - description: A list of virtual system disks created and destroyed as part of the VM lifecycle - required: false - entry_schema: - type: tosca.datatypes.nfv.VirtualBlockStorageData - description: virtual system disk definition - tosca.capabilities.nfv.VirtualBindable: - derived_from: tosca.capabilities.Node - description: Indicates that the node that includes it can be pointed by a tosca.relationships.nfv.VirtualBindsTo relationship type which is used to model the VduHasCpd association - tosca.capabilities.nfv.VirtualLinkable: - derived_from: tosca.capabilities.Root - description: A node type that includes the VirtualLinkable capability indicates that it can be pointed by tosca.relationships.nfv.VirtualLinksTo relationship type - tosca.capabilities.nfv.ExtVirtualLinkable: - derived_from: tosca.capabilities.Root - tosca.capabilities.nfv.Forwarder: - derived_from: tosca.capabilities.Root - tosca.capabilities.nfv.ext.GuestOs: - derived_from: tosca.capabilities.Root - tosca.capabilities.nfv.ext.ImageFile: - derived_from: tosca.capabilities.Root - tosca.capabilities.nfv.ext.LocalAttachment: - derived_from: tosca.capabilities.Root - tosca.capabilities.nfv.ext.Compute.Container.Architecture: - derived_from: tosca.capabilities.Root - properties: - num_cpus: - type: string - required: false - flavor_extra_specs: - type: map - required: false - entry_schema: - type: string - mem_size: - type: string - required: false diff --git a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/csar.meta b/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/csar.meta deleted file mode 100644 index bc3359ce..00000000 --- a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/csar.meta +++ /dev/null @@ -1,2 +0,0 @@ -SDC-TOSCA-Meta-File-Version: 1.0 -SDC-TOSCA-Definitions-Version: 9.0 diff --git a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/data.yml b/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/data.yml deleted file mode 100644 index 552513af..00000000 --- a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/data.yml +++ /dev/null @@ -1,2417 +0,0 @@ -# -# 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. -# -tosca_definitions_version: tosca_simple_yaml_1_1 -data_types: - tosca.datatypes.Root: - description: The TOSCA root Data Type all other TOSCA base Data Types derive from - integer: - derived_from: tosca.datatypes.Root - string: - derived_from: tosca.datatypes.Root - boolean: - derived_from: tosca.datatypes.Root - float: - derived_from: tosca.datatypes.Root - list: - derived_from: tosca.datatypes.Root - map: - derived_from: tosca.datatypes.Root - json: - derived_from: tosca.datatypes.Root - scalar-unit: - derived_from: tosca.datatypes.Root - scalar-unit.size: - derived_from: scalar-unit - scalar-unit.time: - derived_from: scalar-unit - scalar-unit.frequency: - derived_from: scalar-unit - tosca.datatypes.Credential: - derived_from: tosca.datatypes.Root - properties: - protocol: - type: string - required: false - token_type: - type: string - default: password - token: - type: string - keys: - type: map - required: false - entry_schema: - type: string - user: - type: string - required: false - org.openecomp.datatypes.PortMirroringConnectionPointDescription: - derived_from: tosca.datatypes.Root - properties: - nf_naming_code: - type: string - nfc_naming_code: - type: string - network_role: - type: string - pps_capacity: - type: string - nf_type: - type: string - description: deprecated - nfc_type: - type: string - description: deprecated - tosca.datatypes.TimeInterval: - derived_from: tosca.datatypes.Root - properties: - start_time: - type: timestamp - required: true - end_time: - type: timestamp - required: true - tosca.datatypes.network.NetworkInfo: - derived_from: tosca.datatypes.Root - properties: - network_name: - type: string - network_id: - type: string - addresses: - type: list - entry_schema: - type: string - tosca.datatypes.network.PortInfo: - derived_from: tosca.datatypes.Root - properties: - port_name: - type: string - port_id: - type: string - network_id: - type: string - mac_address: - type: string - addresses: - type: list - entry_schema: - type: string - tosca.datatypes.network.PortDef: - derived_from: integer - constraints: - - in_range: - - 1 - - 65535 - tosca.datatypes.network.PortSpec: - derived_from: tosca.datatypes.Root - properties: - protocol: - type: string - required: true - default: tcp - constraints: - - valid_values: - - udp - - tcp - - igmp - target: - type: tosca.datatypes.network.PortDef - target_range: - type: range - constraints: - - in_range: - - 1 - - 65535 - source: - type: tosca.datatypes.network.PortDef - source_range: - type: range - constraints: - - in_range: - - 1 - - 65535 - org.openecomp.datatypes.heat.network.AddressPair: - derived_from: tosca.datatypes.Root - description: MAC/IP address pairs - properties: - mac_address: - type: string - description: MAC address - required: false - status: SUPPORTED - ip_address: - type: string - description: IP address - required: false - status: SUPPORTED - org.openecomp.datatypes.heat.network.subnet.HostRoute: - derived_from: tosca.datatypes.Root - description: Host route info for the subnet - properties: - destination: - type: string - description: The destination for static route - required: false - status: SUPPORTED - nexthop: - type: string - description: The next hop for the destination - required: false - status: SUPPORTED - org.openecomp.datatypes.heat.network.AllocationPool: - derived_from: tosca.datatypes.Root - description: The start and end addresses for the allocation pool - properties: - start: - type: string - description: Start address for the allocation pool - required: false - status: SUPPORTED - end: - type: string - description: End address for the allocation pool - required: false - status: SUPPORTED - org.openecomp.datatypes.heat.network.neutron.Subnet: - derived_from: tosca.datatypes.Root - description: A subnet represents an IP address block that can be used for assigning IP addresses to virtual instances - properties: - tenant_id: - type: string - description: The ID of the tenant who owns the network - required: false - status: SUPPORTED - enable_dhcp: - type: boolean - description: Set to true if DHCP is enabled and false if DHCP is disabled - required: false - default: true - status: SUPPORTED - ipv6_address_mode: - type: string - description: IPv6 address mode - required: false - status: SUPPORTED - constraints: - - valid_values: - - dhcpv6-stateful - - dhcpv6-stateless - - slaac - ipv6_ra_mode: - type: string - description: IPv6 RA (Router Advertisement) mode - required: false - status: SUPPORTED - constraints: - - valid_values: - - dhcpv6-stateful - - dhcpv6-stateless - - slaac - value_specs: - type: map - description: Extra parameters to include in the request - required: false - default: {} - status: SUPPORTED - entry_schema: - type: string - allocation_pools: - type: list - description: The start and end addresses for the allocation pools - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.network.AllocationPool - subnetpool: - type: string - description: The name or ID of the subnet pool - required: false - status: SUPPORTED - dns_nameservers: - type: list - description: A specified set of DNS name servers to be used - required: false - default: [] - status: SUPPORTED - entry_schema: - type: string - host_routes: - type: list - description: The gateway IP address - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.network.subnet.HostRoute - ip_version: - type: integer - description: The gateway IP address - required: false - default: 4 - status: SUPPORTED - constraints: - - valid_values: - - '4' - - '6' - name: - type: string - description: The name of the subnet - required: false - status: SUPPORTED - prefixlen: - type: integer - description: Prefix length for subnet allocation from subnet pool - required: false - status: SUPPORTED - constraints: - - greater_or_equal: 0 - cidr: - type: string - description: The CIDR - required: false - status: SUPPORTED - gateway_ip: - type: string - description: The gateway IP address - required: false - status: SUPPORTED - org.openecomp.datatypes.heat.novaServer.network.PortExtraProperties: - derived_from: tosca.datatypes.Root - description: Nova server network expand properties for port - properties: - port_security_enabled: - type: boolean - description: Flag to enable/disable port security on the port - required: false - status: SUPPORTED - mac_address: - type: string - description: MAC address to give to this port - required: false - status: SUPPORTED - admin_state_up: - type: boolean - description: The administrative state of this port - required: false - default: true - status: SUPPORTED - qos_policy: - type: string - description: The name or ID of QoS policy to attach to this port - required: false - status: SUPPORTED - allowed_address_pairs: - type: list - description: Additional MAC/IP address pairs allowed to pass through the port - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.network.AddressPair - binding:vnic_type: - type: string - description: The vnic type to be bound on the neutron port - required: false - status: SUPPORTED - constraints: - - valid_values: - - macvtap - - direct - - normal - value_specs: - type: map - description: Extra parameters to include in the request - required: false - default: {} - status: SUPPORTED - entry_schema: - type: string - org.openecomp.datatypes.heat.novaServer.network.AddressInfo: - derived_from: tosca.datatypes.network.NetworkInfo - description: Network addresses with corresponding port id - properties: - port_id: - type: string - description: Port id - required: false - status: SUPPORTED - org.openecomp.datatypes.heat.neutron.port.FixedIps: - derived_from: tosca.datatypes.Root - description: subnet/ip_address - properties: - subnet: - type: string - description: Subnet in which to allocate the IP address for this port - required: false - status: SUPPORTED - ip_address: - type: string - description: IP address desired in the subnet for this port - required: false - status: SUPPORTED - subnet_id: - type: string - description: Subnet in which to allocate the IP address for this port - required: false - status: SUPPORTED - org.openecomp.datatypes.heat.FileInfo: - derived_from: tosca.datatypes.Root - description: Heat File Info - properties: - file: - type: string - description: The required URI string (relative or absolute) which can be used to locate the file - required: true - status: SUPPORTED - file_type: - type: string - description: The type of the file - required: true - status: SUPPORTED - constraints: - - valid_values: - - base - - env - - volume - - network - org.openecomp.datatypes.heat.contrail.network.rule.PortPairs: - derived_from: tosca.datatypes.Root - description: source and destination port pairs - properties: - start_port: - type: string - description: Start port - required: false - status: SUPPORTED - end_port: - type: string - description: End port - required: false - status: SUPPORTED - org.openecomp.datatypes.heat.contrail.network.rule.Rule: - derived_from: tosca.datatypes.Root - description: policy rule - properties: - src_ports: - type: list - description: Source ports - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.contrail.network.rule.PortPairs - protocol: - type: string - description: Protocol - required: false - status: SUPPORTED - dst_addresses: - type: list - description: Destination addresses - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.contrail.network.rule.VirtualNetwork - apply_service: - type: string - description: Service to apply - required: false - status: SUPPORTED - dst_ports: - type: list - description: Destination ports - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.contrail.network.rule.PortPairs - src_addresses: - type: list - description: Source addresses - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.contrail.network.rule.VirtualNetwork - direction: - type: string - description: Direction - required: false - status: SUPPORTED - org.openecomp.datatypes.heat.contrail.network.rule.RuleList: - derived_from: tosca.datatypes.Root - description: list of policy rules - properties: - policy_rule: - type: list - description: Contrail network rule - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.contrail.network.rule.Rule - org.openecomp.datatypes.heat.contrail.network.rule.VirtualNetwork: - derived_from: tosca.datatypes.Root - description: source and destination addresses - properties: - virtual_network: - type: string - description: Virtual network - required: false - status: SUPPORTED - org.openecomp.datatypes.heat.network.neutron.SecurityRules.Rule: - derived_from: tosca.datatypes.Root - description: Rules Pairs - properties: - remote_group_id: - type: string - description: The remote group ID to be associated with this security group rule - required: false - status: SUPPORTED - protocol: - type: string - description: The protocol that is matched by the security group rule - required: false - status: SUPPORTED - constraints: - - valid_values: - - tcp - - udp - - icmp - ethertype: - type: string - description: Ethertype of the traffic - required: false - default: IPv4 - status: SUPPORTED - constraints: - - valid_values: - - IPv4 - - IPv6 - port_range_max: - type: integer - description: 'The maximum port number in the range that is matched by the - security group rule. ' - required: false - status: SUPPORTED - constraints: - - in_range: - - 0 - - 65535 - remote_ip_prefix: - type: string - description: The remote IP prefix (CIDR) to be associated with this security group rule - required: false - status: SUPPORTED - remote_mode: - type: string - description: Whether to specify a remote group or a remote IP prefix - required: false - default: remote_ip_prefix - status: SUPPORTED - constraints: - - valid_values: - - remote_ip_prefix - - remote_group_id - direction: - type: string - description: The direction in which the security group rule is applied - required: false - default: ingress - status: SUPPORTED - constraints: - - valid_values: - - egress - - ingress - port_range_min: - type: integer - description: The minimum port number in the range that is matched by the security group rule. - required: false - status: SUPPORTED - constraints: - - in_range: - - 0 - - 65535 - org.openecomp.datatypes.heat.substitution.SubstitutionFiltering: - derived_from: tosca.datatypes.Root - description: Substitution Filter - properties: - substitute_service_template: - type: string - description: Substitute Service Template - required: true - status: SUPPORTED - index_value: - type: integer - description: Index value of the substitution service template runtime instance - required: false - default: 0 - status: SUPPORTED - constraints: - - greater_or_equal: 0 - count: - type: string - description: Count - required: false - default: 1 - status: SUPPORTED - scaling_enabled: - type: boolean - description: Indicates whether service scaling is enabled - required: false - default: true - status: SUPPORTED - mandatory: - type: boolean - description: Mandatory - required: false - default: true - status: SUPPORTED - org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.RefDataSequence: - derived_from: tosca.datatypes.Root - description: network policy refs data sequence - properties: - network_policy_refs_data_sequence_major: - type: integer - description: Network Policy ref data sequence Major - required: false - status: SUPPORTED - network_policy_refs_data_sequence_minor: - type: integer - description: Network Policy ref data sequence Minor - required: false - status: SUPPORTED - org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.RefData: - derived_from: tosca.datatypes.Root - description: network policy refs data - properties: - network_policy_refs_data_sequence: - type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.RefDataSequence - description: Network Policy ref data sequence - required: false - status: SUPPORTED - org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.ref.data.IpamSubnet: - derived_from: tosca.datatypes.Root - description: Network Ipam Ref Data Subnet - properties: - network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len: - type: string - description: Network ipam refs data ipam subnets ip prefix len - required: false - status: SUPPORTED - network_ipam_refs_data_ipam_subnets_subnet_ip_prefix: - type: string - description: Network ipam refs data ipam subnets ip prefix - required: false - status: SUPPORTED - org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.ref.data.IpamSubnetList: - derived_from: tosca.datatypes.Root - description: Network Ipam Ref Data Subnet List - properties: - network_ipam_refs_data_ipam_subnets_subnet: - type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.ref.data.IpamSubnet - description: Network ipam refs data ipam subnets - required: false - status: SUPPORTED - network_ipam_refs_data_ipam_subnets_addr_from_start: - type: string - description: Network ipam refs data ipam subnets addr from start - required: false - status: SUPPORTED - org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.IpamRefData: - derived_from: tosca.datatypes.Root - description: Network Ipam Ref Data - properties: - network_ipam_refs_data_ipam_subnets: - type: list - description: Network ipam refs data ipam subnets - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.ref.data.IpamSubnetList - org.openecomp.datatypes.heat.contrailV2.network.rule.SrcVirtualNetwork: - derived_from: tosca.datatypes.Root - description: source addresses - properties: - network_policy_entries_policy_rule_src_addresses_virtual_network: - type: string - description: Source addresses Virtual network - required: false - status: SUPPORTED - org.openecomp.datatypes.heat.contrailV2.network.rule.DstVirtualNetwork: - derived_from: tosca.datatypes.Root - description: destination addresses - properties: - network_policy_entries_policy_rule_dst_addresses_virtual_network: - type: string - description: Destination addresses Virtual network - required: false - status: SUPPORTED - org.openecomp.datatypes.heat.contrailV2.network.rule.DstPortPairs: - derived_from: tosca.datatypes.Root - description: destination port pairs - properties: - network_policy_entries_policy_rule_dst_ports_start_port: - type: string - description: Start port - required: false - status: SUPPORTED - network_policy_entries_policy_rule_dst_ports_end_port: - type: string - description: End port - required: false - status: SUPPORTED - org.openecomp.datatypes.heat.contrailV2.network.rule.SrcPortPairs: - derived_from: tosca.datatypes.Root - description: source port pairs - properties: - network_policy_entries_policy_rule_src_ports_start_port: - type: string - description: Start port - required: false - status: SUPPORTED - network_policy_entries_policy_rule_src_ports_end_port: - type: string - description: End port - required: false - status: SUPPORTED - org.openecomp.datatypes.heat.contrailV2.network.rule.ActionList: - derived_from: tosca.datatypes.Root - description: Action List - properties: - network_policy_entries_policy_rule_action_list_simple_action: - type: string - description: Simple Action - required: false - status: SUPPORTED - network_policy_entries_policy_rule_action_list_apply_service: - type: list - description: Apply Service - required: false - status: SUPPORTED - entry_schema: - type: string - org.openecomp.datatypes.heat.contrailV2.network.rule.Rule: - derived_from: tosca.datatypes.Root - description: policy rule - properties: - network_policy_entries_policy_rule_dst_addresses: - type: list - description: Destination addresses - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.contrailV2.network.rule.DstVirtualNetwork - network_policy_entries_policy_rule_dst_ports: - type: list - description: Destination ports - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.contrailV2.network.rule.DstPortPairs - network_policy_entries_policy_rule_protocol: - type: string - description: Protocol - required: false - status: SUPPORTED - network_policy_entries_policy_rule_src_addresses: - type: list - description: Source addresses - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.contrailV2.network.rule.SrcVirtualNetwork - network_policy_entries_policy_rule_direction: - type: string - description: Direction - required: false - status: SUPPORTED - network_policy_entries_policy_rule_src_ports: - type: list - description: Source ports - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.contrailV2.network.rule.SrcPortPairs - network_policy_entries_policy_rule_action_list: - type: org.openecomp.datatypes.heat.contrailV2.network.rule.ActionList - description: Action list - required: false - status: SUPPORTED - org.openecomp.datatypes.heat.contrailV2.network.rule.RuleList: - derived_from: tosca.datatypes.Root - description: list of policy rules - properties: - network_policy_entries_policy_rule: - type: list - description: Contrail network rule - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.contrailV2.network.rule.Rule - org.openecomp.datatypes.heat.network.contrail.port.StaticRoute: - derived_from: tosca.datatypes.Root - description: static route - properties: - prefix: - type: string - description: Route prefix - required: false - status: SUPPORTED - next_hop: - type: string - description: Next hop - required: false - status: SUPPORTED - next_hop_type: - type: string - description: Next hop type - required: false - status: SUPPORTED - org.openecomp.datatypes.heat.network.contrail.AddressPair: - derived_from: tosca.datatypes.Root - description: Address Pair - properties: - address_mode: - type: string - description: Address mode active-active or active-standy - required: false - status: SUPPORTED - constraints: - - valid_values: - - active-active - - active-standby - prefix: - type: string - description: IP address prefix - required: false - status: SUPPORTED - mac_address: - type: string - description: Mac address - required: false - status: SUPPORTED - org.openecomp.datatypes.heat.network.contrail.InterfaceData: - derived_from: tosca.datatypes.Root - description: Interface Data - properties: - static_routes: - type: list - description: An ordered list of static routes to be added to this interface - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.network.contrail.port.StaticRoute - virtual_network: - type: string - description: Virtual Network for this interface - required: true - status: SUPPORTED - allowed_address_pairs: - type: list - description: List of allowed address pair for this interface - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.network.contrail.AddressPair - ip_address: - type: string - description: IP for this interface - required: false - status: SUPPORTED - org.openecomp.datatypes.heat.contrailV2.virtual.machine.interface.Properties: - derived_from: tosca.datatypes.Root - description: Virtual Machine Interface Properties. - properties: - virtual_machine_interface_properties_service_interface_type: - type: string - description: Service Interface Type. - required: false - status: SUPPORTED - org.openecomp.datatypes.Root: - derived_from: tosca.datatypes.Root - description: | - The ECOMP root Data Type all other Data Types derive from - properties: - supplemental_data: - type: map - entry_schema: - description: | - A placeholder for missing properties that would be included in future ecomp model versions. fromat : - type: string - org.openecomp.datatypes.AssignmentRequirements: - derived_from: org.openecomp.datatypes.Root - properties: - is_required: - description: | - "true" indicates that assignment is required - type: boolean - default: false - required: true - count: - description: number of assignments required - type: integer - required: false - org.openecomp.datatypes.network.SubnetAssignments: - derived_from: org.openecomp.datatypes.Root - properties: - ip_network_address_plan: - type: string - required: false - description: Reference to EIPAM, VLAN or other address plan ID used to assign subnets to this network - dhcp_enabled: - type: boolean - required: false - description: \"true\" indicates the network has 1 or more policies - ip_version: - type: integer - constraints: - - valid_values: - - 4 - - 6 - required: true - description: The IP version of the subnet - cidr_mask: - type: integer - required: true - description: The default subnet CIDR mask - min_subnets_count: - type: integer - default: 1 - required: true - description: Quantity of subnets that must be initially assigned - org.openecomp.datatypes.network.IPv4SubnetAssignments: - derived_from: org.openecomp.datatypes.network.SubnetAssignments - properties: - use_ipv4: - type: boolean - required: true - description: Indicates IPv4 subnet assignments - org.openecomp.datatypes.network.IPv6SubnetAssignments: - derived_from: org.openecomp.datatypes.network.SubnetAssignments - properties: - use_ipv6: - type: boolean - required: true - description: Indicates IPv6 subnet assignments - org.openecomp.datatypes.network.NetworkAssignments: - derived_from: org.openecomp.datatypes.Root - properties: - ecomp_generated_network_assignment: - type: boolean - required: true - default: false - description: | - \"true\" indicates that the network assignments will be auto-generated by ECOMP \"false\" indicates operator-supplied Network assignments file upload is required (e.g. VID will present prompt to operator to upload operator-supplied Network assignments file). - is_shared_network: - type: boolean - required: true - description: \"true\" means this network is shared by multiple Openstack tenants - is_external_network: - type: boolean - required: true - default: false - description: | - \"true\" means this Contrail external network - ipv4_subnet_default_assignment: - type: org.openecomp.datatypes.network.IPv4SubnetAssignments - required: true - description: IPv4 defualt subnet assignments - ipv6_subnet_default_assignment: - type: org.openecomp.datatypes.network.IPv6SubnetAssignments - required: true - description: IPv6 defualt subnet assignments - related_networks: - type: list - required: false - description: Related Networks List. - entry_schema: - type: org.openecomp.datatypes.network.RelatedNetworksAssignments - is_trunked: - type: boolean - required: true - description: \"true\" indicates that network is trunked - default: false - org.openecomp.datatypes.network.ProviderNetwork: - derived_from: org.openecomp.datatypes.Root - properties: - is_provider_network: - type: boolean - required: true - description: \"true\" indicates that this a Neutron provider type of network - physical_network_name: - type: string - required: false - constraints: - - valid_values: - - Physnet41 - - Physnet42 - - Physnet43 - - Physnet44 - - Physnet21 - - Physnet22 - - sriovnet1 - - sriovnet2 - - oam - description: | - Identifies the NUMA processor cluster to which this physical network interface belongs. NUMA instance correlates to the first digit of the Physical Network Name suffix (e.g. \"01\" = NUMA 0, \"11\" = NUMA 1) - numa: - type: string - required: false - constraints: - - valid_values: - - NUMA 0 - - NUMA 1 - description: | - PNIC instance within the NUMA processor cluster PNIC Instance correlates to the second digit of the Physical Network Name suffix (e.g. "01" = PNIC 1, "02" = "PNIC 2) - pnic_instance: - type: integer - required: false - description: PNIC instance within the NUMA processor cluster - org.openecomp.datatypes.network.NetworkFlows: - derived_from: org.openecomp.datatypes.Root - properties: - is_network_policy: - type: boolean - required: false - default: false - description: \"true\" indicates the network has 1 or more policies - network_policy: - type: string - required: false - description: 'Identifies the specific Cloud network policy that must be applied - to this network (source: from Policy Manager).' - is_bound_to_vpn: - type: boolean - required: false - default: false - description: \"true\" indicates the network has 1 or more vpn bindings - vpn_binding: - type: string - required: false - description: 'Identifies the specific VPN Binding entry in A&AI that must - be applied when creating this network (source: A&AI)' - org.openecomp.datatypes.network.VlanRequirements: - derived_from: org.openecomp.datatypes.Root - properties: - vlan_range_plan: - type: string - required: true - description: reference to a vlan range plan - vlan_type: - type: string - required: true - constraints: - - valid_values: - - c-tag - - s-tag - description: identifies the vlan type (e.g., c-tag) - vlan_count: - type: integer - required: true - description: identifies the number of vlan tags to assign to the CP from the plan - org.openecomp.datatypes.network.IpRequirements: - derived_from: org.openecomp.datatypes.Root - properties: - ip_version: - type: integer - required: true - constraints: - - valid_values: - - 4 - - 6 - ip_count: - description: identifies the number of ip address to assign to the CP from the plan - type: integer - required: false - floating_ip_count: - type: integer - required: false - subnet_role: - type: string - required: false - assingment_method: - type: string - required: true - constraints: - - valid_values: - - fixed - - dhcp - dhcp_enabled: - type: boolean - required: false - ip_count_required: - description: identifies the number of ip address to assign to the CP from the plan - type: org.openecomp.datatypes.AssignmentRequirements - required: false - floating_ip_count_required: - type: org.openecomp.datatypes.AssignmentRequirements - required: false - ip_address_plan_name: - type: string - required: false - vrf_name: - type: string - required: false - org.openecomp.datatypes.network.MacAssignments: - derived_from: org.openecomp.datatypes.Root - properties: - mac_range_plan: - type: string - required: true - description: reference to a MAC address range plan - mac_count: - type: integer - required: true - description: identifies the number of MAC addresses to assign to the CP from the plan - org.openecomp.datatypes.EcompHoming: - derived_from: org.openecomp.datatypes.Root - properties: - ecomp_selected_instance_node_target: - type: boolean - required: true - default: false - description: | - \"true\" indicates that the target deployment node for this instance will be auto-selected by ECOMP \"false\" indicates operator-supplied instance target deployment node required (e.g. VID will present a prompt to operator and collect the operator-selected target node for the deployment of this Network instance). - homing_policy: - type: string - required: false - description: Referenc to a service level homing policy that ECOMP will use for instance deployment target node - instance_node_target: - type: string - required: false - description: Instance target deployment node - org.openecomp.datatypes.EcompNaming: - derived_from: org.openecomp.datatypes.Root - properties: - ecomp_generated_naming: - type: boolean - required: true - default: true - description: | - \"true\" indicates that the name for the instance will be auto-generated by ECOMP. \"false\" indicates operator-supplied name required (e.g. VID will present prompt to operator and collect the operator-supplied instance name). - naming_policy: - type: string - required: false - description: Referenc to naming policy that ECOMP will use when the name is auto-generated - org.openecomp.datatypes.network.MacRequirements: - derived_from: org.openecomp.datatypes.Root - properties: - mac_range_plan: - description: reference to a MAC address range plan - type: string - required: false - mac_count: - description: identifies the number of MAC addresses to assign to the CP from the plan - type: integer - required: false - mac_count_required: - description: identifies the number of MAC addresses to assign to the CP from the plan - type: org.openecomp.datatypes.AssignmentRequirements - org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairIp: - derived_from: tosca.datatypes.Root - description: Virtual Machine Sub Interface Address Pair IP. - properties: - ip_prefix: - type: string - description: IP Prefix. - required: false - status: SUPPORTED - ip_prefix_len: - type: integer - description: IP Prefix Len. - required: false - status: SUPPORTED - org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.MacAddress: - derived_from: tosca.datatypes.Root - description: Virtual Machine Sub Interface Mac Address. - properties: - mac_address: - type: list - description: Mac Addresses List. - required: false - status: SUPPORTED - entry_schema: - type: string - org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.Properties: - derived_from: tosca.datatypes.Root - description: Virtual Machine Sub Interface VLAN Properties. - properties: - sub_interface_vlan_tag: - type: string - description: Sub Interface VLAN Tag. - required: false - status: SUPPORTED - org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPair: - derived_from: tosca.datatypes.Root - description: Virtual Machine Sub Interface Address Pair. - properties: - address_mode: - type: string - description: Address Mode. - required: false - status: SUPPORTED - ip: - type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairIp - description: IP. - required: false - status: SUPPORTED - mac: - type: string - description: Mac. - required: false - status: SUPPORTED - org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs: - derived_from: tosca.datatypes.Root - description: Virtual Machine Sub Interface Address Pairs. - properties: - allowed_address_pair: - type: list - description: Addresses pair List. - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPair - org.openecomp.datatypes.Naming: - derived_from: org.openecomp.datatypes.Root - properties: - ecomp_generated_naming: - description: | - "true" indicates that the name for the instance will be auto-generated by ECOMP. "false" indicates operator-supplied name required (e.g. VID will present prompt to operator and collect the operator-supplied instance name). - type: boolean - default: true - required: true - naming_policy: - description: Reference to naming policy that ECOMP will use when the name is auto-generated - type: string - required: false - instance_name: - description: indicates operator-supplied name required (e.g. VID will present prompt to operator and collect the operator-supplied instance name). - type: string - required: false - org.openecomp.datatypes.flavors.ComputeFlavor: - derived_from: tosca.datatypes.Root - properties: - num_cpus: - type: integer - disk_size: - type: scalar-unit.size - mem_size: - type: scalar-unit.size - org.openecomp.datatypes.flavors.LicenseFlavor: - derived_from: tosca.datatypes.Root - properties: - feature_group_uuid: - type: string - org.openecomp.datatypes.flavors.VendorInfo: - derived_from: tosca.datatypes.Root - properties: - manufacturer_reference_number: - type: string - vendor_model: - type: string - org.openecomp.datatypes.flavors.DeploymentFlavor: - derived_from: tosca.datatypes.Root - properties: - sp_part_number: - type: string - vendor_info: - type: org.openecomp.datatypes.flavors.VendorInfo - compute_flavor: - type: org.openecomp.datatypes.flavors.ComputeFlavor - license_flavor: - type: org.openecomp.datatypes.flavors.LicenseFlavor - required: false - org.openecomp.datatypes.ImageInfo: - derived_from: tosca.datatypes.Root - properties: - software_version: - type: string - file_name: - type: string - file_hash: - type: string - description: checksum/signature - file_hash_type: - type: string - required: false - default: md5 - org.openecomp.datatypes.network.RelatedNetworksAssignments: - derived_from: org.openecomp.datatypes.Root - properties: - related_network_role: - type: string - description: The network role of the related network, sharing provider network. - required: false - tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties: - derived_from: tosca.datatypes.Root - description: VnfcAdditionalConfigurableProperties type is an empty base type for deriving data types for describing additional configurable properties for a given VNFC. - properties: - description: - type: string - required: false - tosca.datatypes.nfv.VnfcConfigurableProperties: - derived_from: tosca.datatypes.Root - description: Defines the configurable properties of a VNFC - properties: - additional_vnfc_configurable_properties: - type: tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties - description: Describes additional configuration for VNFC that can be modified using the ModifyVnfInfo operation - required: false - tosca.datatypes.nfv.RequestedAdditionalCapability: - derived_from: tosca.datatypes.Root - description: describes requested additional capability for a particular VDU - properties: - requested_additional_capability_name: - type: string - description: Identifies a requested additional capability for the VDU. - required: true - support_mandatory: - type: boolean - description: Indicates whether the requested additional capability is mandatory for successful operation. - required: true - min_requested_additional_capability_version: - type: string - description: Identifies the minimum version of the requested additional capability. - required: false - preferred_requested_additional_capability_version: - type: string - description: Identifies the preferred version of the requested additional capability. - required: false - target_performance_parameters: - type: map - description: Identifies specific attributes, dependent on the requested additional capability type. - required: true - entry_schema: - type: string - tosca.datatypes.nfv.VirtualMemory: - derived_from: tosca.datatypes.Root - description: supports the specification of requirements related to virtual memory of a virtual compute resource - properties: - virtual_mem_size: - type: scalar-unit.size - description: Amount of virtual memory. - required: true - virtual_mem_oversubscription_policy: - type: string - description: The memory core oversubscription policy in terms of virtual memory to physical memory on the platform. - required: false - vdu_mem_requirements: - type: map - description: The hardware platform specific VDU memory requirements. A map of strings that contains a set of key-value pairs that describes hardware platform specific VDU memory requirements. - required: false - entry_schema: - type: string - numa_enabled: - type: boolean - description: It specifies the memory allocation to be cognisant of the relevant process/core allocation. - required: false - default: false - tosca.datatypes.nfv.VirtualCpuPinning: - derived_from: tosca.datatypes.Root - description: Supports the specification of requirements related to the virtual CPU pinning configuration of a virtual compute resource - properties: - virtual_cpu_pinning_policy: - type: string - description: 'Indicates the policy for CPU pinning. The policy can take values - of "static" or "dynamic". In case of "dynamic" the allocation of virtual - CPU cores to logical CPU cores is decided by the VIM. (e.g.: SMT (Simultaneous - Multi-Threading) requirements). In case of "static" the allocation is requested - to be according to the virtual_cpu_pinning_rule.' - required: false - constraints: - - valid_values: - - static - - dynamic - virtual_cpu_pinning_rule: - type: list - description: Provides the list of rules for allocating virtual CPU cores to logical CPU cores/threads - required: false - entry_schema: - type: string - tosca.datatypes.nfv.VirtualCpu: - derived_from: tosca.datatypes.Root - description: Supports the specification of requirements related to virtual CPU(s) of a virtual compute resource - properties: - cpu_architecture: - type: string - description: CPU architecture type. Examples are x86, ARM - required: false - num_virtual_cpu: - type: integer - description: Number of virtual CPUs - required: true - constraints: - - greater_than: 0 - virtual_cpu_clock: - type: scalar-unit.frequency - description: Minimum virtual CPU clock rate - required: false - virtual_cpu_oversubscription_policy: - type: string - description: CPU core oversubscription policy e.g. the relation of virtual CPU cores to physical CPU cores/threads. - required: false - vdu_cpu_requirements: - type: map - description: The hardware platform specific VDU CPU requirements. A map of strings that contains a set of key-value pairs describing VDU CPU specific hardware platform requirements. - required: false - entry_schema: - type: string - virtual_cpu_pinning: - type: tosca.datatypes.nfv.VirtualCpuPinning - description: The virtual CPU pinning configuration for the virtualised compute resource. - required: false - tosca.datatypes.nfv.LogicalNodeData: - derived_from: tosca.datatypes.Root - description: Describes compute, memory and I/O requirements associated with a particular VDU. - properties: - logical_node_requirements: - type: map - description: The logical node-level compute, memory and I/O requirements. A map of strings that contains a set of key-value pairs that describes hardware platform specific deployment requirements, including the number of CPU cores on this logical node, a memory configuration specific to a logical node or a requirement related to the association of an I/O device with the logical node. - required: false - entry_schema: - type: string - tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements: - derived_from: tosca.datatypes.Root - description: Describes requirements on a virtual network interface - properties: - name: - type: string - description: Provides a human readable name for the requirement. - required: false - description: - type: string - description: Provides a human readable description of the requirement. - required: false - support_mandatory: - type: boolean - description: Indicates whether fulfilling the constraint is mandatory (TRUE) for successful operation or desirable (FALSE). - required: true - network_interface_requirements: - type: map - description: The network interface requirements. A map of strings that contain a set of key-value pairs that describes the hardware platform specific network interface deployment requirements. - required: true - entry_schema: - type: string - nic_io_requirements: - type: tosca.datatypes.nfv.LogicalNodeData - description: references (couples) the CP with any logical node I/O requirements (for network devices) that may have been created. Linking these attributes is necessary so that so that I/O requirements that need to be articulated at the logical node level can be associated with the network interface requirements associated with the CP. - required: false - tosca.datatypes.nfv.injectFile: - derived_from: tosca.datatypes.Root - properties: - source_path: - type: string - required: true - dest_path: - type: string - required: true - tosca.datatypes.nfv.L2AddressData: - derived_from: tosca.datatypes.Root - description: Describes the information on the MAC addresses to be assigned to a connection point. - properties: - mac_address_assignment: - type: boolean - description: Specifies if the address assignment is the responsibility of management and orchestration function or not. If it is set to True, it is the management and orchestration function responsibility - required: true - tosca.datatypes.nfv.L3AddressData: - derived_from: tosca.datatypes.Root - description: Provides information about Layer 3 level addressing scheme and parameters applicable to a CP - properties: - ip_address_assignment: - type: boolean - description: Specifies if the address assignment is the responsibility of management and orchestration function or not. If it is set to True, it is the management and orchestration function responsibility - required: true - floating_ip_activated: - type: boolean - description: Specifies if the floating IP scheme is activated on the Connection Point or not - required: true - ip_address_type: - type: string - description: Defines address type. The address type should be aligned with the address type supported by the layer_protocols properties of the parent VnfExtCp - required: false - constraints: - - valid_values: - - ipv4 - - ipv6 - number_of_ip_address: - type: integer - description: Minimum number of IP addresses to be assigned - required: false - constraints: - - greater_than: 0 - fixed_ip_address: - type: list - entry_schema: - type: string - required: false - tosca.datatypes.nfv.AddressData: - derived_from: tosca.datatypes.Root - description: Describes information about the addressing scheme and parameters applicable to a CP - properties: - address_type: - type: string - description: Describes the type of the address to be assigned to a connection point. The content type shall be aligned with the address type supported by the layerProtocol property of the connection point - required: true - constraints: - - valid_values: - - mac_address - - ip_address - l2_address_data: - type: tosca.datatypes.nfv.L2AddressData - description: Provides the information on the MAC addresses to be assigned to a connection point. - required: false - l3_address_data: - type: tosca.datatypes.nfv.L3AddressData - description: Provides the information on the IP addresses to be assigned to a connection point - required: false - tosca.datatypes.nfv.ConnectivityType: - derived_from: tosca.datatypes.Root - description: describes additional connectivity information of a virtualLink - properties: - layer_protocols: - type: list - description: Identifies the protocol a virtualLink gives access to (ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire).The top layer protocol of the virtualLink protocol stack shall always be provided. The lower layer protocols may be included when there are specific requirements on these layers. - required: true - entry_schema: - type: string - constraints: - - valid_values: - - ethernet - - mpls - - odu2 - - ipv4 - - ipv6 - - pseudo-wire - flow_pattern: - type: string - description: Identifies the flow pattern of the connectivity - required: false - constraints: - - valid_values: - - line - - tree - - mesh - tosca.datatypes.nfv.VlFlavour: - derived_from: tosca.datatypes.Root - properties: - flavourId: - type: string - tosca.datatypes.nfv.ext.AddressPairs: - properties: - ip: - type: string - required: false - mac: - type: string - required: false - tosca.datatypes.nfv.ext.FloatingIP: - properties: - external_network: - type: string - required: false - ip_address: - type: string - required: false - tosca.datatypes.nfv.ext.LocationInfo: - properties: - availability_zone: - type: string - required: false - vimid: - type: integer - required: false - tenant: - type: string - required: false - tosca.datatypes.nfv.ext.HostRouteInfo: - properties: - destination: - type: string - required: false - nexthop: - type: string - required: false - tosca.datatypes.nfv.ext.InjectData: - properties: - file_name: - type: string - required: false - file_data: - type: string - required: false - tosca.datatypes.nfv.ext.zte.WatchDog: - properties: - enable_delay: - type: integer - required: false - action: - type: string - required: false - tosca.datatypes.nfv.ext.LocalAffinityOrAntiAffinityRule: - properties: - scope: - type: string - required: false - affinity_antiaffinity: - type: string - required: false - tosca.datatypes.nfv.VduProfile: - derived_from: tosca.datatypes.Root - description: describes additional instantiation data for a given Vdu.Compute used in a specific deployment flavour. - properties: - min_number_of_instances: - type: integer - description: Minimum number of instances of the VNFC based on this Vdu.Compute that is permitted to exist for a particular VNF deployment flavour. - required: true - constraints: - - greater_or_equal: 0 - max_number_of_instances: - type: integer - description: Maximum number of instances of the VNFC based on this Vdu.Compute that is permitted to exist for a particular VNF deployment flavour. - required: true - constraints: - - greater_or_equal: 0 - watchdog: - type: string - required: true - vmBootUpTimeOut: - type: integer - required: false - tosca.datatypes.nfv.LinkBitrateRequirements: - derived_from: tosca.datatypes.Root - description: describes the requirements in terms of bitrate for a virtual link - properties: - root: - type: integer - description: Specifies the throughput requirement in bits per second of the link (e.g. bitrate of E-Line, root bitrate of E-Tree, aggregate capacity of E-LAN). - required: true - constraints: - - greater_or_equal: 0 - leaf: - type: integer - description: Specifies the throughput requirement in bits per second of leaf connections to the link when applicable to the connectivity type (e.g. for E-Tree and E LAN branches). - required: false - constraints: - - greater_or_equal: 0 - tosca.datatypes.nfv.Qos: - derived_from: tosca.datatypes.Root - description: describes QoS data for a given VL used in a VNF deployment flavour - properties: - latency: - type: scalar-unit.time - description: Specifies the maximum latency - required: true - constraints: - - greater_than: 0 s - packet_delay_variation: - type: scalar-unit.time - description: Specifies the maximum jitter - required: true - constraints: - - greater_or_equal: 0 s - packet_loss_ratio: - type: float - description: Specifies the maximum packet loss ratio - required: false - constraints: - - in_range: - - 0.0 - - 1.0 - tosca.datatypes.nfv.IpAllocationPool: - derived_from: tosca.datatypes.Root - description: Specifies a range of IP addresses - properties: - start_ip_address: - type: string - description: The IP address to be used as the first one in a pool of addresses derived from the cidr block full IP range - required: true - end_ip_address: - type: string - description: The IP address to be used as the last one in a pool of addresses derived from the cidr block full IP range - required: true - tosca.datatypes.nfv.L2ProtocolData: - derived_from: tosca.datatypes.Root - description: describes L2 protocol data for a given virtual link used in a specific VNF deployment flavour. - properties: - name: - type: string - description: Identifies the network name associated with this L2 protocol. - required: false - network_type: - type: string - description: Specifies the network type for this L2 protocol.The value may be overridden at run-time. - required: false - constraints: - - valid_values: - - flat - - vlan - - vxlan - - gre - vlan_transparent: - type: boolean - description: Specifies whether to support VLAN transparency for this L2 protocol or not. - required: false - default: false - mtu: - type: integer - description: Specifies the maximum transmission unit (MTU) value for this L2 protocol. - required: false - constraints: - - greater_than: 0 - segmentation_id: - type: integer - required: false - physical_network: - type: string - required: false - tosca.datatypes.nfv.L3ProtocolData: - derived_from: tosca.datatypes.Root - description: describes L3 protocol data for a given virtual link used in a specific VNF deployment flavour. - properties: - name: - type: string - description: Identifies the network name associated with this L3 protocol. - required: false - ip_version: - type: string - description: Specifies IP version of this L3 protocol.The value of the ip_version property shall be consistent with the value of the layer_protocol in the connectivity_type property of the virtual link node. - required: true - constraints: - - valid_values: - - ipv4 - - ipv6 - cidr: - type: string - description: Specifies the CIDR (Classless Inter-Domain Routing) of this L3 protocol. The value may be overridden at run-time. - required: true - ip_allocation_pools: - type: list - description: Specifies the allocation pools with start and end IP addresses for this L3 protocol. The value may be overridden at run-time. - required: false - entry_schema: - type: tosca.datatypes.nfv.IpAllocationPool - gateway_ip: - type: string - description: Specifies the gateway IP address for this L3 protocol. The value may be overridden at run-time. - required: false - dhcp_enabled: - type: boolean - description: Indicates whether DHCP (Dynamic Host Configuration Protocol) is enabled or disabled for this L3 protocol. The value may be overridden at run-time. - required: false - ipv6_address_mode: - type: string - description: Specifies IPv6 address mode. May be present when the value of the ipVersion attribute is "ipv6" and shall be absent otherwise. The value may be overridden at run-time. - required: false - constraints: - - valid_values: - - slaac - - dhcpv6-stateful - - dhcpv6-stateless - tosca.datatypes.nfv.VirtualLinkProtocolData: - derived_from: tosca.datatypes.Root - description: describes one protocol layer and associated protocol data for a given virtual link used in a specific VNF deployment flavour - properties: - associated_layer_protocol: - type: string - description: Identifies one of the protocols a virtualLink gives access to (ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire) as specified by the connectivity_type property. - required: true - constraints: - - valid_values: - - ethernet - - mpls - - odu2 - - ipv4 - - ipv6 - - pseudo-wire - l2_protocol_data: - type: tosca.datatypes.nfv.L2ProtocolData - description: Specifies the L2 protocol data for a virtual link. Shall be present when the associatedLayerProtocol attribute indicates a L2 protocol and shall be absent otherwise. - required: false - l3_protocol_data: - type: tosca.datatypes.nfv.L3ProtocolData - description: Specifies the L3 protocol data for this virtual link. Shall be present when the associatedLayerProtocol attribute indicates a L3 protocol and shall be absent otherwise. - required: false - tosca.datatypes.nfv.VlProfile: - derived_from: tosca.datatypes.Root - description: Describes additional instantiation data for a given VL used in a specific VNF deployment flavour. - properties: - max_bitrate_requirements: - type: tosca.datatypes.nfv.LinkBitrateRequirements - description: Specifies the maximum bitrate requirements for a VL instantiated according to this profile. - required: true - min_bitrate_requirements: - type: tosca.datatypes.nfv.LinkBitrateRequirements - description: Specifies the minimum bitrate requirements for a VL instantiated according to this profile. - required: true - qos: - type: tosca.datatypes.nfv.Qos - description: Specifies the QoS requirements of a VL instantiated according to this profile. - required: false - virtual_link_protocol_data: - type: list - description: Specifies the protocol data for a virtual link. - required: false - entry_schema: - type: tosca.datatypes.nfv.VirtualLinkProtocolData - tosca.datatypes.nfv.VduLevel: - derived_from: tosca.datatypes.Root - description: Indicates for a given Vdu.Compute in a given level the number of instances to deploy - properties: - number_of_instances: - type: integer - description: Number of instances of VNFC based on this VDU to deploy for this level. - required: true - constraints: - - greater_or_equal: 0 - tosca.datatypes.nfv.ScaleInfo: - derived_from: tosca.datatypes.Root - description: Indicates for a given scaleAspect the corresponding scaleLevel - properties: - scale_level: - type: integer - description: The scale level for a particular aspect - required: true - constraints: - - greater_or_equal: 0 - tosca.datatypes.nfv.ScalingAspect: - derived_from: tosca.datatypes.Root - properties: - name: - type: string - required: true - description: - type: string - required: true - max_scale_level: - type: integer - required: true - constraints: - - greater_or_equal: 0 - step_deltas: - type: list - required: false - entry_schema: - type: string - tosca.datatypes.nfv.InstantiationLevel: - derived_from: tosca.datatypes.Root - description: Describes the scale level for each aspect that corresponds to a given level of resources to be instantiated within a deployment flavour in term of the number VNFC instances - properties: - description: - type: string - description: Human readable description of the level - required: true - scale_info: - type: map - description: Represents for each aspect the scale level that corresponds to this instantiation level. scale_info shall be present if the VNF supports scaling. - required: false - entry_schema: - type: tosca.datatypes.nfv.ScaleInfo - tosca.datatypes.nfv.VnfInstantiateOperationConfiguration: - derived_from: tosca.datatypes.Root - description: represents information that affect the invocation of the InstantiateVnf operation. - properties: - description: - type: string - required: false - tosca.datatypes.nfv.VnfScaleOperationConfiguration: - derived_from: tosca.datatypes.Root - description: Represents information that affect the invocation of the ScaleVnf operation - properties: - scaling_by_more_than_one_step_supported: - type: boolean - description: Signals whether passing a value larger than one in the numScalingSteps parameter of the ScaleVnf operation is supported by this VNF. - required: false - default: false - tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration: - derived_from: tosca.datatypes.Root - description: represents information that affect the invocation of the ScaleVnfToLevel operation - properties: - arbitrary_target_levels_supported: - type: boolean - description: Signals whether scaling according to the parameter "scaleInfo" is supported by this VNF - required: true - tosca.datatypes.nfv.VnfHealOperationConfiguration: - derived_from: tosca.datatypes.Root - description: represents information that affect the invocation of the HealVnf operation - properties: - causes: - type: list - description: Supported "cause" parameter values - required: false - entry_schema: - type: string - tosca.datatypes.nfv.VnfTerminateOperationConfiguration: - derived_from: tosca.datatypes.Root - description: represents information that affect the invocation of the TerminateVnf - properties: - min_graceful_termination_timeout: - type: scalar-unit.time - description: Minimum timeout value for graceful termination of a VNF instance - required: true - max_recommended_graceful_termination_timeout: - type: scalar-unit.time - description: Maximum recommended timeout value that can be needed to gracefully terminate a VNF instance of a particular type under certain conditions, such as maximum load condition. This is provided by VNF provider as information for the operator facilitating the selection of optimal timeout value. This value is not used as constraint - required: false - tosca.datatypes.nfv.VnfOperateOperationConfiguration: - derived_from: tosca.datatypes.Root - description: represents information that affect the invocation of the OperateVnf operation - properties: - min_graceful_stop_timeout: - type: scalar-unit.time - description: Minimum timeout value for graceful stop of a VNF instance - required: true - max_recommended_graceful_stop_timeout: - type: scalar-unit.time - description: Maximum recommended timeout value that can be needed to gracefully stop a VNF instance of a particular type under certain conditions, such as maximum load condition. This is provided by VNF provider as information for the operator facilitating the selection of optimal timeout value. This value is not used as constraint - required: false - tosca.datatypes.nfv.VnfChangeFlavourOperationConfiguration: - derived_from: tosca.datatypes.Root - description: represents information that affect the invocation of the ChangeVnfFlavour operation - properties: - description: - type: string - required: false - tosca.datatypes.nfv.VnfProfile: - derived_from: tosca.datatypes.Root - description: describes a profile for instantiating VNFs of a particular NS DF according to a specific VNFD and VNF DF. - properties: - instantiation_level: - type: string - description: Identifier of the instantiation level of the VNF DF to be used for instantiation. If not present, the default instantiation level as declared in the VNFD shall be used. - required: false - min_number_of_instances: - type: integer - description: Minimum number of instances of the VNF based on this VNFD that is permitted to exist for this VnfProfile. - required: true - constraints: - - greater_or_equal: 0 - max_number_of_instances: - type: integer - description: Maximum number of instances of the VNF based on this VNFD that is permitted to exist for this VnfProfile. - required: true - constraints: - - greater_or_equal: 0 - tosca.datatypes.nfv.UriAuthority: - derived_from: tosca.datatypes.Root - description: information that corresponds to the authority component of a URI as specified in IETF RFC 3986 [8] - properties: - user_info: - type: string - description: user_info field of the authority component of a URI - required: false - host: - type: string - description: host field of the authority component of a URI - required: false - port: - type: string - description: port field of the authority component of a URI - required: false - tosca.datatypes.nfv.UriComponents: - derived_from: tosca.datatypes.Root - description: information used to build a URI that complies with IETF RFC 3986 [8]. - properties: - scheme: - type: string - description: scheme component of a URI. - required: true - authority: - type: tosca.datatypes.nfv.UriAuthority - description: Authority component of a URI - required: false - path: - type: string - description: path component of a URI. - required: false - query: - type: string - description: query component of a URI. - required: false - fragment: - type: string - description: fragment component of a URI. - required: false - tosca.datatypes.nfv.InterfaceDetails: - derived_from: tosca.datatypes.Root - description: information used to access an interface exposed by a VNF - properties: - uri_components: - type: tosca.datatypes.nfv.UriComponents - description: Provides components to build a Uniform Ressource Identifier (URI) where to access the interface end point. - required: false - interface_specific_data: - type: map - description: Provides additional details that are specific to the type of interface considered. - required: false - entry_schema: - type: string - tosca.datatypes.nfv.VirtualLinkMonitoringParameter: - derived_from: tosca.datatypes.Root - description: Represents information on virtualised resource related performance metrics applicable to the VNF. - properties: - name: - type: string - description: Human readable name of the monitoring parameter - required: true - performance_metric: - type: string - description: Identifies a performance metric derived from those defined in ETSI GS NFV-IFA 027.The packetOutgoingVirtualLink and packetIncomingVirtualLink metrics shall be obtained by aggregation the PacketOutgoing and PacketIncoming measurements defined in clause 7.1 of GS NFV-IFA 027 of all virtual link ports attached to the virtual link to which the metrics apply. - required: true - constraints: - - valid_values: - - packet_outgoing_virtual_link - - packet_incoming_virtual_link - collection_period: - type: scalar-unit.time - description: Describes the recommended periodicity at which to collect the performance information. - required: false - constraints: - - greater_than: 0 s - tosca.datatypes.nfv.VnfcMonitoringParameter: - derived_from: tosca.datatypes.Root - description: Represents information on virtualised resource related performance metrics applicable to the VNF. - properties: - name: - type: string - description: Human readable name of the monitoring parameter - required: true - performance_metric: - type: string - description: Identifies the performance metric, according to ETSI GS NFV-IFA 027. - required: true - constraints: - - valid_values: - - v_cpu_usage_mean_vnf - - v_cpu_usage_peak_vnf - - v_memory_usage_mean_vnf - - v_memory_usage_peak_vnf - - v_disk_usage_mean_vnf - - v_disk_usage_peak_vnf - - byte_incoming_vnf_int_cp - - byte_outgoing_vnf_int_cp - - packet_incoming_vnf_int_cp - - packet_outgoing_vnf_int_cp - collection_period: - type: scalar-unit.time - description: Describes the recommended periodicity at which to collect the performance information. - required: false - constraints: - - greater_than: 0 s - tosca.datatypes.nfv.VnfChangeExtConnectivityOperationConfiguration: - derived_from: tosca.datatypes.Root - description: represents information that affect the invocation of the ChangeExtVnfConnectivity operation - properties: - description: - type: string - required: false - tosca.datatypes.nfv.VnfMonitoringParameter: - derived_from: tosca.datatypes.Root - description: Represents information on virtualised resource related performance metrics applicable to the VNF. - properties: - name: - type: string - description: Human readable name of the monitoring parameter - required: true - performance_metric: - type: string - description: Identifies the performance metric, according to ETSI GS NFV-IFA 027. - required: true - constraints: - - valid_values: - - v_cpu_usage_mean_vnf - - v_cpu_usage_peak_vnf - - v_memory_usage_mean_vnf - - v_memory_usage_peak_vnf - - v_disk_usage_mean_vnf - - v_disk_usage_peak_vnf - - byte_incoming_vnf_ext_cp - - byte_outgoing_vnf_ext_cp - - packet_incoming_vnf_ext_cp - - packet_outgoing_vnf_ext_cp - collection_period: - type: scalar-unit.time - description: Describes the recommended periodicity at which to collect the performance information. - required: false - constraints: - - greater_than: 0 s - tosca.datatypes.nfv.VnfLcmOperationsConfiguration: - derived_from: tosca.datatypes.Root - description: Represents information to configure lifecycle management operations - properties: - instantiate: - type: tosca.datatypes.nfv.VnfInstantiateOperationConfiguration - description: Configuration parameters for the InstantiateVnf operation - required: false - scale: - type: tosca.datatypes.nfv.VnfScaleOperationConfiguration - description: Configuration parameters for the ScaleVnf operation - required: false - scale_to_level: - type: tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration - description: Configuration parameters for the ScaleVnfToLevel operation - required: false - change_flavour: - type: tosca.datatypes.nfv.VnfChangeFlavourOperationConfiguration - description: Configuration parameters for the changeVnfFlavourOpConfig operation - required: false - heal: - type: tosca.datatypes.nfv.VnfHealOperationConfiguration - description: Configuration parameters for the HealVnf operation - required: false - terminate: - type: tosca.datatypes.nfv.VnfTerminateOperationConfiguration - description: Configuration parameters for the TerminateVnf operation - required: false - operate: - type: tosca.datatypes.nfv.VnfOperateOperationConfiguration - description: Configuration parameters for the OperateVnf operation - required: false - change_ext_connectivity: - type: tosca.datatypes.nfv.VnfChangeExtConnectivityOperationConfiguration - description: Configuration parameters for the changeExtVnfConnectivityOpConfig operation - required: false - tosca.datatypes.nfv.CpProtocolData: - derived_from: tosca.datatypes.Root - description: Describes and associates the protocol layer that a CP uses together with other protocol and connection point information - properties: - associated_layer_protocol: - type: string - required: true - description: One of the values of the property layer_protocols of the CP - constraints: - - valid_values: - - ethernet - - mpls - - odu2 - - ipv4 - - ipv6 - - pseudo-wire - address_data: - type: list - description: Provides information on the addresses to be assigned to the CP - entry_schema: - type: tosca.datatypes.nfv.AddressData - required: false - tosca.datatypes.nfv.VnfAdditionalConfigurableProperties: - derived_from: tosca.datatypes.Root - description: is an empty base type for deriving data types for describing additional configurable properties for a given VNF - properties: - description: - type: string - required: false - tosca.datatypes.nfv.VnfConfigurableProperties: - derived_from: tosca.datatypes.Root - description: indicates configuration properties for a given VNF (e.g. related to auto scaling and auto healing). - properties: - is_autoscale_enabled: - type: boolean - description: It permits to enable (TRUE)/disable (FALSE) the auto-scaling functionality. If the properties is not present for configuring, then VNF property is not supported - required: false - is_autoheal_enabled: - type: boolean - description: It permits to enable (TRUE)/disable (FALSE) the auto-healing functionality. If the properties is not present for configuring, then VNF property is not supported - required: false - additional_configurable_properties: - description: It provides VNF specific configurable properties that can be modified using the ModifyVnfInfo operation - required: false - type: tosca.datatypes.nfv.VnfAdditionalConfigurableProperties - tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions: - derived_from: tosca.datatypes.Root - description: is an empty base type for deriving data types for describing VNF-specific extension - properties: - description: - type: string - required: false - tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata: - derived_from: tosca.datatypes.Root - description: is an empty base type for deriving data types for describing VNF-specific metadata - properties: - description: - type: string - required: false - tosca.datatypes.nfv.VnfInfoModifiableAttributes: - derived_from: tosca.datatypes.Root - description: Describes VNF-specific extension and metadata for a given VNF - properties: - extensions: - type: tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions - description: \"Extension\" properties of VnfInfo that are writeable - required: false - metadata: - type: tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata - description: \"Metadata\" properties of VnfInfo that are writeable - required: false - tosca.datatypes.nfv.VirtualLinkBitrateLevel: - derived_from: tosca.datatypes.Root - description: Describes bitrate requirements applicable to the virtual link instantiated from a particicular VnfVirtualLink - properties: - description: - type: string - required: false - bitrate_requirements: - type: tosca.datatypes.nfv.LinkBitrateRequirements - description: Virtual link bitrate requirements for an instantiation level or bitrate delta for a scaling step - required: true - tosca.datatypes.nfv.VnfOperationAdditionalParameters: - derived_from: tosca.datatypes.Root - description: Is an empty base type for deriving data type for describing VNF-specific parameters to be passed when invoking lifecycle management operations - properties: - description: - type: string - required: false - tosca.datatypes.nfv.VirtualFileStorageData: - derived_from: tosca.datatypes.Root - description: VirtualFileStorageData describes file storage requirements associated with compute resources in a particular VDU - properties: - size_of_storage: - type: scalar-unit.size - description: Size of virtualized storage resource - required: true - file_system_protocol: - type: string - description: The shared file system protocol (e.g. NFS, CIFS) - required: true - tosca.datatypes.nfv.VirtualObjectStorageData: - derived_from: tosca.datatypes.Root - description: VirtualObjectStorageData describes object storage requirements associated with compute resources in a particular VDU - properties: - max_size_of_storage: - type: scalar-unit.size - description: Maximum size of virtualized storage resource - required: false - tosca.datatypes.nfv.VirtualBlockStorageData: - derived_from: tosca.datatypes.Root - description: VirtualBlockStorageData describes block storage requirements associated with compute resources in a particular VDU, either as a local disk or as virtual attached storage - properties: - size_of_storage: - type: scalar-unit.size - description: Size of virtualised storage resource - required: true - vdu_storage_requirements: - type: map - description: The hardware platform specific storage requirements. A map of strings that contains a set of key-value pairs that represents the hardware platform specific storage deployment requirements. - required: false - entry_schema: - type: string - rdma_enabled: - type: boolean - description: Indicates if the storage support RDMA - required: false - default: false - tosca.datatypes.nfv.SwImageData: - derived_from: tosca.datatypes.Root - description: describes information related to a software image artifact - properties: - name: - type: string - description: Name of this software image - required: true - version: - type: string - description: Version of this software image - required: true - checksum: - type: string - description: Checksum of the software image file - required: true - container_format: - type: string - description: The container format describes the container file format in which software image is provided - required: true - constraints: - - valid_values: - - aki - - ami - - ari - - bare - - docker - - ova - - ovf - disk_format: - type: string - description: The disk format of a software image is the format of the underlying disk image - required: true - constraints: - - valid_values: - - aki - - ami - - ari - - iso - - qcow2 - - raw - - vdi - - vhd - - vhdx - - vmdk - min_disk: - type: scalar-unit.size - description: The minimal disk size requirement for this software image - required: true - min_ram: - type: scalar-unit.size - description: The minimal RAM requirement for this software image - required: false - size: - type: scalar-unit.size - description: The size of this software image - required: true - operating_system: - type: string - description: Identifies the operating system used in the software image - required: false - supported_virtualisation_environments: - type: list - description: Identifies the virtualisation environments (e.g. hypervisor) compatible with this software image - required: false - entry_schema: - type: string - onap.datatypes.monitoring.metricsPerEventName: - derived_from: tosca.datatypes.Root - properties: - controlLoopSchemaType: - constraints: - - valid_values: - - VM - - VNF - description: Specifies Control Loop Schema Type for the event Name e.g. VNF, VM - required: true - type: string - eventName: - description: Event name to which thresholds need to be applied - required: true - type: string - policyName: - description: TCA Policy Scope Name - required: true - type: string - policyScope: - description: TCA Policy Scope - required: true - type: string - policyVersion: - description: TCA Policy Scope Version - required: true - type: string - thresholds: - description: Thresholds associated with eventName - entry_schema: - type: onap.datatypes.monitoring.thresholds - required: true - type: list - onap.datatypes.monitoring.tca_policy: - derived_from: tosca.datatypes.Root - properties: - domain: - constraints: - - equal: measurementsForVfScaling - default: measurementsForVfScaling - description: Domain name to which TCA needs to be applied - required: true - type: string - metricsPerEventName: - description: Contains eventName and threshold details that need to be applied to given eventName - entry_schema: - type: onap.datatypes.monitoring.metricsPerEventName - required: true - type: list - onap.datatypes.monitoring.thresholds: - derived_from: tosca.datatypes.Root - properties: - closedLoopControlName: - description: Closed Loop Control Name associated with the threshold - required: true - type: string - closedLoopEventStatus: - constraints: - - valid_values: - - ONSET - - ABATED - description: Closed Loop Event Status of the threshold - required: true - type: string - direction: - constraints: - - valid_values: - - LESS - - LESS_OR_EQUAL - - GREATER - - GREATER_OR_EQUAL - - EQUAL - description: Direction of the threshold - required: true - type: string - fieldPath: - constraints: - - valid_values: - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated - - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated - - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle - - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt - - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice - - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq - - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal - - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem - - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait - - $.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage - - $.event.measurementsForVfScalingFields.meanRequestLatency - - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered - - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached - - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured - - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree - - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed - - $.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value - description: Json field Path as per CEF message which needs to be analyzed for TCA - required: true - type: string - severity: - constraints: - - valid_values: - - CRITICAL - - MAJOR - - MINOR - - WARNING - - NORMAL - description: Threshold Event Severity - required: true - type: string - thresholdValue: - description: Threshold value for the field Path inside CEF message - required: true - type: integer - version: - description: Version number associated with the threshold - required: true - type: string diff --git a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/descriptor.yaml b/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/descriptor.yaml deleted file mode 100644 index 7192b690..00000000 --- a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/descriptor.yaml +++ /dev/null @@ -1,66 +0,0 @@ -tosca_definitions_version: tosca_simple_yaml_1_1 - -description: VNF Descriptor for dummy VNFD - -# ============LICENSE_START======================================================= -# Copyright (C) 2019 Nordix Foundation. -# ================================================================================ -# 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. -# -# SPDX-License-Identifier: Apache-2.0 -# ============LICENSE_END========================================================= -# - -imports: - - etsi_nfv_sol001_vnfd_0_10_0_type.yaml - -data_types: - node_types: - Vendor.vnf.name: - derived_from: tosca.nodes.nfv.VNF - properties: - # TODO: descriptor_id should be a UUID - descriptor_id: - type: string - constraints: [ valid_values: [ sgsn-mme_12df452s04131 ] ] - default: sgsn-mme_12df452s04131 - flavour_id: - type: string - constraints: [ valid_values: [ default ] ] - default: default - flavour_description: - type: string - default: '' - interfaces: - Vnflcm: - type: tosca.interfaces.nfv.Vnflcm - instantiate: - heal: - -topology_template: - node_templates: - dummy_Vnf: - type: Vendor.vnf.name - properties: - flavour_id: default - flavour_description: > - A customized VNF Deployment Flavour - lcm_operations_configuration: - scale: - scaling_by_more_than_one_step_supported: true - interfaces: - Vnflcm: - instantiate: - terminate: - heal: - scale: \ No newline at end of file diff --git a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/groups.yml b/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/groups.yml deleted file mode 100644 index 3fd26fff..00000000 --- a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/groups.yml +++ /dev/null @@ -1,144 +0,0 @@ -# -# 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. -# -tosca_definitions_version: tosca_simple_yaml_1_1 -imports: -- data.yml -group_types: - tosca.groups.Root: - description: The TOSCA Group Type all other TOSCA Group Types derive from - interfaces: - Standard: - type: tosca.interfaces.node.lifecycle.Standard - org.openecomp.groups.heat.HeatStack: - derived_from: tosca.groups.Root - description: Grouped all heat resources which are in the same heat stack - properties: - heat_file: - type: string - description: Heat file which associate to this group/heat stack - required: true - status: SUPPORTED - description: - type: string - description: group description - required: true - status: SUPPORTED - org.openecomp.groups.VfModule: - derived_from: tosca.groups.Root - description: Grouped all heat resources which are in the same VF Module - properties: - isBase: - type: boolean - description: Whether this module should be deployed before other modules - required: true - default: false - status: SUPPORTED - vf_module_label: - type: string - required: true - description: | - Alternate textual key used to reference this VF-Module model. Must be unique within the VNF model - vf_module_description: - type: string - required: true - description: | - Description of the VF-modules contents and purpose (e.g. "Front-End" or "Database Cluster") - min_vf_module_instances: - type: integer - required: true - description: The minimum instances of this VF-Module - max_vf_module_instances: - type: integer - required: false - description: The maximum instances of this VF-Module - initial_count: - type: integer - required: false - description: | - The initial count of instances of the VF-Module. The value must be in the range between min_vfmodule_instances and max_vfmodule_instances. If no value provided the initial count is the min_vfmodule_instances. - vf_module_type: - type: string - required: true - constraint: - - valid_values: - - Base - - Expansion - volume_group: - type: boolean - required: true - default: false - description: | - "true" indicates that this VF Module model requires attachment to a Volume Group. VID operator must select the Volume Group instance to attach to a VF-Module at deployment time. - availability_zone_count: - type: integer - required: false - description: | - Quantity of Availability Zones needed for this VF-Module (source: Extracted from VF-Module HEAT template) - vfc_list: - type: map - entry_schema: - description: : - type: string - required: false - description: | - Identifies the set of VM types and their count included in the VF-Module - org.openecomp.groups.NetworkCollection: - derived_from: tosca.groups.Root - description: groups l3-networks in network collection - properties: - network_collection_function: - type: string - required: true - description: network collection function - network_collection_description: - type: string - required: true - description: network collection description, free format text - org.openecomp.groups.VfcInstanceGroup: - derived_from: tosca.groups.Root - description: groups VFCs with same parent port role - properties: - vfc_instance_group_function: - type: string - required: true - description: function of this VFC group - vfc_parent_port_role: - type: string - required: true - description: common role of parent ports of VFCs in this group - network_collection_function: - type: string - required: true - description: network collection function assigned to this group - subinterface_role: - type: string - required: true - description: common role of subinterfaces of VFCs in this group, criteria the group is created - capabilities: - vlan_assignment: - type: org.openecomp.capabilities.VLANAssignment - properties: - vfc_instance_group_reference: - type: string - tosca.groups.nfv.PlacementGroup: - derived_from: tosca.groups.Root - description: PlacementGroup is used for describing the affinity or anti-affinity relationship applicable between the virtualization containers to be created based on different VDUs, or between internal VLs to be created based on different VnfVirtualLinkDesc(s) - properties: - description: - type: string - description: Human readable description of the group - required: true - members: - - tosca.nodes.nfv.Vdu.Compute - - tosca.nodes.nfv.VnfVirtualLink diff --git a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/interfaces.yml b/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/interfaces.yml deleted file mode 100644 index 35353603..00000000 --- a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/interfaces.yml +++ /dev/null @@ -1,138 +0,0 @@ -# -# 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. -# -tosca_definitions_version: tosca_simple_yaml_1_1 -imports: -- data.yml -interface_types: - tosca.interfaces.nfv.vnf.lifecycle.Nfv: - instantiate: - description: Invoked upon receipt of an Instantiate VNF request - instantiate_start: - description: Invoked before instantiate - instantiate_end: - description: Invoked after instantiate - terminate: - description: Invoked upon receipt Terminate VNF request - terminate_start: - description: Invoked before terminate - terminate_end: - description: Invoked after terminate - modify_information: - description: Invoked upon receipt of a Modify VNF Information request - modify_information_start: - description: Invoked before modify_information - modify_information_end: - description: Invoked after modify_information - change_flavour: - description: Invoked upon receipt of a Change VNF Flavour request - change_flavour_start: - description: Invoked before change_flavour - change_flavour_end: - description: Invoked after change_flavour - change_external_connectivity: - description: Invoked upon receipt of a Change External VNF Connectivity request - change_external_connectivity_start: - description: Invoked before change_external_connectivity - change_external_connectivity_end: - description: Invoked after change_external_connectivity - operate: - description: Invoked upon receipt of an Operate VNF request - operate_start: - description: Invoked before operate - operate_end: - description: Invoked after operate - heal: - description: Invoked upon receipt of a Heal VNF request - heal_start: - description: Invoked before heal - heal_end: - description: Invoked after heal - scale: - description: Invoked upon receipt of a Scale VNF request - scale_start: - description: Invoked before scale - scale_end: - description: Invoked after scale - scale_to_level: - description: Invoked upon receipt of a Scale VNF to Level request - scale_to_level_start: - description: Invoked before scale_to_level - scale_to_level_end: - description: Invoked after scale_to_level - tosca.interfaces.node.lifecycle.Standard: - create: - description: Standard lifecycle create operation. - configure: - description: Standard lifecycle configure operation. - start: - description: Standard lifecycle start operation. - stop: - description: Standard lifecycle stop operation. - delete: - description: Standard lifecycle delete operation. - tosca.interfaces.nfv.Vnflcm: - instantiate: - description: Invoked upon receipt of an Instantiate VNF request - instantiate_start: - description: Invoked before instantiate - instantiate_end: - description: Invoked after instantiate - terminate: - description: Invoked upon receipt Terminate VNF request - terminate_start: - description: Invoked before terminate - terminate_end: - description: Invoked after terminate - modify_information: - description: Invoked upon receipt of a Modify VNF Information request - modify_information_start: - description: Invoked before modify_information - modify_information_end: - description: Invoked after modify_information - change_flavour: - description: Invoked upon receipt of a Change VNF Flavour request - change_flavour_start: - description: Invoked before change_flavour - change_flavour_end: - description: Invoked after change_flavour - change_external_connectivity: - description: Invoked upon receipt of a Change External VNF Connectivity request - change_external_connectivity_start: - description: Invoked before change_external_connectivity - change_external_connectivity_end: - description: Invoked after change_external_connectivity - operate: - description: Invoked upon receipt of an Operate VNF request - operate_start: - description: Invoked before operate - operate_end: - description: Invoked after operate - heal: - description: Invoked upon receipt of a Heal VNF request - heal_start: - description: Invoked before heal - heal_end: - description: Invoked after heal - scale: - description: Invoked upon receipt of a Scale VNF request - scale_start: - description: Invoked before scale - scale_end: - description: Invoked after scale - scale_to_level: - description: Invoked upon receipt of a Scale VNF to Level request - scale_to_level_start: - description: Invoked before scale_to_level - scale_to_level_end: - description: Invoked after scale_to_level diff --git a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/manualdistributiontestvnf0_modules.json b/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/manualdistributiontestvnf0_modules.json deleted file mode 100644 index 9098234e..00000000 --- a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/manualdistributiontestvnf0_modules.json +++ /dev/null @@ -1,25 +0,0 @@ -[ - { - "vfModuleModelName": "manualDistributionTestVNF..base_ves_med1..module-0", - "vfModuleModelInvariantUUID": "dafd0c51-d03c-4849-a777-756e608ad6a5", - "vfModuleModelVersion": "1", - "vfModuleModelUUID": "b31a30a8-a4e4-4a5e-8f2d-ce7662ea4872", - "vfModuleModelCustomizationUUID": "6c3eafaf-dd98-4b35-8414-86e2beaed279", - "isBase": true, - "artifacts": [ - "e216d9da-18c4-460f-8b2b-d7f8dd9e9295", - "6243747f-e794-4519-82b2-6399846f1951" - ], - "properties": { - "min_vf_module_instances": "1", - "vf_module_label": "base_ves_med1", - "max_vf_module_instances": "1", - "vfc_list": "", - "vf_module_description": "", - "vf_module_type": "Base", - "availability_zone_count": "", - "volume_group": "false", - "initial_count": "1" - } - } -] \ No newline at end of file diff --git a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/nodes.yml b/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/nodes.yml deleted file mode 100644 index d188dd1b..00000000 --- a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/nodes.yml +++ /dev/null @@ -1,4980 +0,0 @@ -# -# 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. -# -tosca_definitions_version: tosca_simple_yaml_1_1 -imports: -- data.yml -- artifacts.yml -- capabilities.yml -- interfaces.yml -- relationships.yml -node_types: - tosca.nodes.LoadBalancer: - derived_from: tosca.nodes.Root - properties: - algorithm: - type: string - required: false - status: experimental - capabilities: - client: - type: tosca.capabilities.Endpoint.Public - occurrences: - - 0 - - UNBOUNDED - description: the Floating (IP) client's on the public network can connect to - requirements: - - application: - capability: tosca.capabilities.Endpoint - relationship: tosca.relationships.RoutesTo - occurrences: - - 0 - - UNBOUNDED - tosca.nodes.Container.Application: - derived_from: tosca.nodes.Root - requirements: - - host: - capability: tosca.capabilities.Container - node: tosca.nodes.Container - relationship: tosca.relationships.HostedOn - tosca.nodes.ObjectStorage: - derived_from: tosca.nodes.Root - properties: - name: - type: string - size: - type: scalar-unit.size - constraints: - - greater_or_equal: 0 GB - maxsize: - type: scalar-unit.size - constraints: - - greater_or_equal: 0 GB - capabilities: - storage_endpoint: - type: tosca.capabilities.Endpoint - tosca.nodes.network.Network: - derived_from: tosca.nodes.Root - properties: - ip_version: - type: integer - required: false - default: 4 - constraints: - - valid_values: - - 4 - - 6 - cidr: - type: string - required: false - start_ip: - type: string - required: false - end_ip: - type: string - required: false - gateway_ip: - type: string - required: false - network_name: - type: string - required: false - network_id: - type: string - required: false - segmentation_id: - type: string - required: false - network_type: - type: string - required: false - physical_network: - type: string - required: false - dhcp_enabled: - type: boolean - required: false - default: true - capabilities: - link: - type: tosca.capabilities.network.Linkable - tosca.nodes.BlockStorage: - derived_from: tosca.nodes.Root - properties: - size: - type: scalar-unit.size - constraints: - - greater_or_equal: 1 MB - volume_id: - type: string - required: false - snapshot_id: - type: string - required: false - capabilities: - attachment: - type: tosca.capabilities.Attachment - tosca.nodes.SoftwareComponent: - derived_from: tosca.nodes.Root - properties: - component_version: - type: version - required: false - admin_credential: - type: tosca.datatypes.Credential - required: false - requirements: - - host: - capability: tosca.capabilities.Container - node: tosca.nodes.Compute - relationship: tosca.relationships.HostedOn - tosca.nodes.DBMS: - derived_from: tosca.nodes.SoftwareComponent - properties: - root_password: - type: string - required: false - description: the optional root password for the DBMS service - port: - type: integer - required: false - description: the port the DBMS service will listen to for data and requests - capabilities: - host: - type: tosca.capabilities.Container - valid_source_types: - - tosca.nodes.Database - tosca.nodes.network.Port: - derived_from: tosca.nodes.Root - properties: - ip_address: - type: string - required: false - order: - type: integer - required: true - default: 0 - constraints: - - greater_or_equal: 0 - is_default: - type: boolean - required: false - default: false - ip_range_start: - type: string - required: false - ip_range_end: - type: string - required: false - requirements: - - link: - capability: tosca.capabilities.network.Linkable - relationship: tosca.relationships.network.LinksTo - - binding: - capability: tosca.capabilities.network.Bindable - relationship: tosca.relationships.network.BindsTo - tosca.nodes.WebApplication: - derived_from: tosca.nodes.Root - properties: - context_root: - type: string - capabilities: - app_endpoint: - type: tosca.capabilities.Endpoint - requirements: - - host: - capability: tosca.capabilities.Container - node: tosca.nodes.WebServer - relationship: tosca.relationships.HostedOn - tosca.nodes.WebServer: - derived_from: tosca.nodes.SoftwareComponent - capabilities: - data_endpoint: tosca.capabilities.Endpoint - admin_endpoint: tosca.capabilities.Endpoint.Admin - host: - type: tosca.capabilities.Container - valid_source_types: - - tosca.nodes.WebApplication - tosca.nodes.Root: - description: The TOSCA Node Type all other TOSCA base Node Types derive from - attributes: - tosca_id: - type: string - tosca_name: - type: string - state: - type: string - capabilities: - feature: - type: tosca.capabilities.Node - requirements: - - dependency: - capability: tosca.capabilities.Node - node: tosca.nodes.Root - relationship: tosca.relationships.DependsOn - occurrences: - - 0 - - UNBOUNDED - interfaces: - Standard: - type: tosca.interfaces.node.lifecycle.Standard - tosca.nodes.Database: - derived_from: tosca.nodes.Root - properties: - name: - type: string - description: the logical name of the database - port: - type: integer - description: the port the underlying database service will listen to for data - user: - type: string - description: the optional user account name for DB administration - required: false - password: - type: string - description: the optional password for the DB user account - required: false - requirements: - - host: - capability: tosca.capabilities.Container - node: tosca.nodes.DBMS - relationship: tosca.relationships.HostedOn - capabilities: - database_endpoint: - type: tosca.capabilities.Endpoint.Database - tosca.nodes.Compute: - derived_from: tosca.nodes.Root - attributes: - private_address: - type: string - public_address: - type: string - networks: - type: map - entry_schema: - type: tosca.datatypes.network.NetworkInfo - ports: - type: map - entry_schema: - type: tosca.datatypes.network.PortInfo - requirements: - - local_storage: - capability: tosca.capabilities.Attachment - node: tosca.nodes.BlockStorage - relationship: tosca.relationships.AttachesTo - occurrences: - - 0 - - UNBOUNDED - capabilities: - host: - type: tosca.capabilities.Container - valid_source_types: - - tosca.nodes.SoftwareComponent - endpoint: - type: tosca.capabilities.Endpoint.Admin - os: - type: tosca.capabilities.OperatingSystem - scalable: - type: tosca.capabilities.Scalable - binding: - type: tosca.capabilities.network.Bindable - tosca.nodes.Container.Runtime: - derived_from: tosca.nodes.SoftwareComponent - capabilities: - host: - type: tosca.capabilities.Container - scalable: - type: tosca.capabilities.Scalable - org.openecomp.resource.vfc.nodes.heat.contrail.Compute: - derived_from: org.openecomp.resource.vfc.nodes.Compute - properties: - flavor: - type: string - description: flavor - required: false - status: SUPPORTED - image_name: - type: string - description: Image name - required: true - status: SUPPORTED - availability_zone: - type: string - description: Availability zone to create servers in - required: false - status: SUPPORTED - service_type: - type: string - description: Service type - required: true - status: SUPPORTED - constraints: - - valid_values: - - firewall - - analyzer - - source-nat - - loadbalancer - availability_zone_enable: - type: boolean - description: Indicates availability zone is enabled - required: false - default: false - status: SUPPORTED - service_template_name: - type: string - description: Service template name - required: false - status: SUPPORTED - service_instance_name: - type: string - description: Service instance name - required: true - status: SUPPORTED - service_mode: - type: string - description: Service mode - required: true - status: SUPPORTED - constraints: - - valid_values: - - transparent - - in-network - - in-network-nat - attributes: - tenant_id: - type: string - description: Tenant id of the VM - status: SUPPORTED - fq_name: - type: string - description: fq_name - status: SUPPORTED - show: - type: string - description: All attributes - status: SUPPORTED - active_vms: - type: string - description: Number of active VMs - status: SUPPORTED - virtual_machines: - type: string - description: VMs of this compute - status: SUPPORTED - status: - type: string - description: status of the compute - status: SUPPORTED - org.openecomp.resource.vfc.nodes.heat.cinder.Volume: - derived_from: org.openecomp.resource.vfc.nodes.volume - properties: - availability_zone: - description: The availability zone in which the volume will be created - type: string - status: SUPPORTED - required: false - image: - description: If specified, the name or ID of the image to create the volume from - type: string - status: SUPPORTED - required: false - metadata: - description: Key/value pairs to associate with the volume - type: map - status: SUPPORTED - entry_schema: - type: string - required: false - volume_type: - description: If specified, the type of volume to use, mapping to a specific backend - type: string - status: SUPPORTED - required: false - description: - description: A description of the volume - type: string - status: SUPPORTED - required: false - device_type: - description: Device type - type: string - status: SUPPORTED - required: false - constraints: - - valid_values: - - cdrom - - disk - disk_bus: - description: 'Bus of the device: hypervisor driver chooses a suitable default - if omitted' - type: string - status: SUPPORTED - required: false - constraints: - - valid_values: - - ide - - lame_bus - - scsi - - usb - - virtio - backup_id: - description: If specified, the backup to create the volume from - type: string - status: SUPPORTED - required: false - source_volid: - description: If specified, the volume to use as source - type: string - status: SUPPORTED - required: false - boot_index: - description: Integer used for ordering the boot disks - type: integer - status: SUPPORTED - required: false - size: - description: The requested storage size (default unit is MB) - type: scalar-unit.size - status: SUPPORTED - required: false - constraints: - - greater_or_equal: 1 GB - read_only: - description: Enables or disables read-only access mode of volume - type: boolean - status: SUPPORTED - required: false - name: - description: A name used to distinguish the volume - type: string - status: SUPPORTED - required: false - scheduler_hints: - description: Arbitrary key-value pairs specified by the client to help the Cinder scheduler creating a volume - type: map - status: SUPPORTED - entry_schema: - type: string - required: false - swap_size: - description: The size of the swap, in MB - type: scalar-unit.size - status: SUPPORTED - required: false - delete_on_termination: - description: Indicate whether the volume should be deleted when the server is terminated - type: boolean - status: SUPPORTED - required: false - multiattach: - description: Whether allow the volume to be attached more than once - type: boolean - status: SUPPORTED - required: false - attributes: - display_description: - description: Description of the volume - type: string - status: SUPPORTED - attachments: - description: The list of attachments of the volume - type: string - status: SUPPORTED - entry_schema: - type: string - encrypted: - description: Boolean indicating if the volume is encrypted or not - type: boolean - status: SUPPORTED - show: - description: Detailed information about resource - type: string - status: SUPPORTED - created_at: - description: The timestamp indicating volume creation - type: timestamp - status: SUPPORTED - display_name: - description: Name of the volume - type: string - status: SUPPORTED - metadata_values: - description: Key/value pairs associated with the volume in raw dict form - type: map - status: SUPPORTED - entry_schema: - type: string - bootable: - description: Boolean indicating if the volume can be booted or not - type: boolean - status: SUPPORTED - status: - description: The current status of the volume - type: string - status: SUPPORTED - org.openecomp.nodes.PortMirroringConfiguration: - derived_from: tosca.nodes.Root - requirements: - - source: - capability: org.openecomp.capabilities.PortMirroring - occurrences: - - 1 - - UNBOUNDED - - collector: - capability: org.openecomp.capabilities.PortMirroring - occurrences: - - 1 - - 1 - org.openecomp.resource.vfc.rules.nodes.heat.network.contrail.NetworkRules: - derived_from: tosca.nodes.Root - properties: - entries: - type: org.openecomp.datatypes.heat.contrail.network.rule.RuleList - description: A symbolic name for this contrail network rule - required: false - status: SUPPORTED - name: - type: string - description: A symbolic name for this contrail network rule - required: false - status: SUPPORTED - attributes: - tenant_id: - type: string - description: tenant_id - status: SUPPORTED - fq_name: - type: string - description: fq_name - status: SUPPORTED - show: - type: string - description: All attributes. - status: SUPPORTED - rules: - type: list - description: List of rules - status: SUPPORTED - entry_schema: - type: string - requirements: - - network: - capability: tosca.capabilities.Attachment - node: tosca.nodes.network.Network - relationship: org.openecomp.relationships.AttachesTo - occurrences: - - 0 - - UNBOUNDED - org.openecomp.resource.vl.extVL: - derived_from: tosca.nodes.Root - description: VF Tenant oam protected network - properties: - network_type: - type: string - required: true - description: ECOMP supported network types. - network_role: - type: string - required: true - description: | - Unique label that defines the role that this network performs. example: vce oam network, vnat sr-iov1 network - network_scope: - type: string - constraints: - valid_values: - - VF - - SERVICE - - GLOBAL - description: | - Uniquely identifies the network scope. Valid values for the network scope includes: VF - VF-level network. Intra-VF network which connects the VFCs (VMs) inside the VF. SERVICE - Service-level network. Intra-Service network which connects the VFs within the service GLOBAL - Global network which can be shared by multiple services - network_technology: - type: string - required: true - description: ECOMP supported network technology - exVL_naming: - type: org.openecomp.datatypes.Naming - required: true - network_homing: - type: org.openecomp.datatypes.EcompHoming - required: true - network_assignments: - type: org.openecomp.datatypes.network.NetworkAssignments - required: true - provider_network: - type: org.openecomp.datatypes.network.ProviderNetwork - required: true - network_flows: - type: org.openecomp.datatypes.network.NetworkFlows - required: false - capabilities: - virtual_linkable: - type: tosca.capabilities.network.Linkable - org.openecomp.resource.cp.extCP: - derived_from: tosca.nodes.Root - description: The SDC Connection Point base type all other CP derive from - properties: - network_role: - type: string - required: true - description: identical to VL network_role - order: - type: integer - required: true - description: The order of the CP on the compute instance (e.g. eth2). - network_role_tag: - type: string - required: true - description: Must correlate to the set of defined network-role tag identifiers from the associated HEAT template - mac_requirements: - type: org.openecomp.datatypes.network.MacRequirements - required: false - description: identifies MAC address assignments to the CP - vlan_requirements: - type: list - entry_schema: - type: org.openecomp.datatypes.network.VlanRequirements - required: false - description: identifies vlan address assignments to the CP - ip_requirements: - type: list - entry_schema: - type: org.openecomp.datatypes.network.IpRequirements - required: true - description: identifies IP requirements to the CP - exCP_naming: - type: org.openecomp.datatypes.Naming - subnetpoolid: - type: string - requirements: - - virtualLink: - capability: tosca.capabilities.network.Linkable - relationship: tosca.relationships.network.LinksTo - - virtualBinding: - capability: tosca.capabilities.network.Bindable - relationship: tosca.relationships.network.BindsTo - - external_virtualLink: - capability: tosca.capabilities.network.Linkable - relationship: tosca.relationships.network.LinksTo - node: org.openecomp.resource.vl.VL - capabilities: - internal_connectionPoint: - type: tosca.capabilities.Node - valid_source_type: - - tosca.nodes.network.Port - org.openecomp.resource.cp.nodes.heat.network.contrail.Port: - derived_from: org.openecomp.resource.cp.nodes.network.Port - properties: - static_routes: - type: list - description: An ordered list of static routes to be added to this interface - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.network.contrail.port.StaticRoute - virtual_network: - type: string - description: Virtual Network for this interface - required: true - status: SUPPORTED - static_route: - type: boolean - description: Static route enabled - required: false - default: false - status: SUPPORTED - allowed_address_pairs: - type: list - description: List of allowed address pair for this interface - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.network.contrail.AddressPair - shared_ip: - type: boolean - description: Shared ip enabled - required: false - default: false - status: SUPPORTED - ip_address: - type: string - description: IP for this interface - required: false - status: SUPPORTED - interface_type: - type: string - description: Interface type - required: true - status: SUPPORTED - constraints: - - valid_values: - - management - - left - - right - - other - attributes: - fq_name: - type: string - description: fq_name - status: SUPPORTED - org.openecomp.nodes.Configuration: - derived_from: tosca.nodes.Root - properties: - type: - type: string - description: The type of the node, the configuration will be defined for it. Ex. SBC - required: false - role: - type: string - description: The role of the node, the configuration will be defined for it. Ex. Active, Standby - required: false - function: - type: string - description: The function of the node, the configuration will be defined for it. Ex. NAT Traversal - required: false - org.openecomp.resource.vl.nodes.network.Network: - derived_from: tosca.nodes.network.Network - properties: - vendor: - type: string - required: false - vl_name: - type: string - required: false - capabilities: - end_point: - type: tosca.capabilities.Endpoint - org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules: - derived_from: tosca.nodes.Root - properties: - description: - type: string - description: Description of the security group - required: false - status: SUPPORTED - name: - type: string - description: A symbolic name for this security group, which is not required to be unique. - required: false - status: SUPPORTED - rules: - type: list - description: List of security group rules - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.network.neutron.SecurityRules.Rule - attributes: - show: - type: string - description: Detailed information about resource - status: SUPPORTED - requirements: - - port: - capability: tosca.capabilities.Attachment - node: org.openecomp.resource.cp.nodes.heat.network.neutron.Port - relationship: org.openecomp.relationships.AttachesTo - occurrences: - - 0 - - UNBOUNDED - org.openecomp.resource.vfc.nodes.heat.nova.Server: - derived_from: org.openecomp.resource.vfc.nodes.Compute - properties: - admin_pass: - type: string - description: The administrator password for the server - required: false - status: SUPPORTED - availability_zone: - type: string - description: Availability zone to create servers in - required: false - status: SUPPORTED - image: - type: string - description: The ID or name of the image to boot with - required: false - status: SUPPORTED - image_update_policy: - type: string - description: Policy on how to apply an image-id update - required: false - default: REBUILD - status: SUPPORTED - constraints: - - valid_values: - - REBUILD_PRESERVE_EPHEMERAL - - REPLACE - - REBUILD - metadata: - type: json - description: Arbitrary JSON metadata to store for this server - required: false - status: SUPPORTED - contrail_service_instance_ind: - type: boolean - description: Nova server related to service instance indicator - required: false - default: false - status: SUPPORTED - user_data_update_policy: - type: string - description: Policy on how to apply a user_data update - required: false - default: REPLACE - status: SUPPORTED - constraints: - - valid_values: - - REPLACE - - IGNORE - flavor_update_policy: - type: string - description: Policy on how to apply a flavor update - required: false - default: RESIZE - status: SUPPORTED - constraints: - - valid_values: - - RESIZE - - REPLACE - user_data: - type: string - description: User data script to be executed by cloud-init - required: false - default: '' - status: SUPPORTED - flavor: - type: string - description: The ID or name of the flavor to boot onto - required: true - status: SUPPORTED - key_name: - type: string - description: Name of keypair to inject into the server - required: false - status: SUPPORTED - reservation_id: - type: string - description: A UUID for the set of servers being requested - required: false - status: SUPPORTED - security_groups: - type: list - description: List of security group names or IDs - required: false - default: [] - status: SUPPORTED - entry_schema: - type: string - config_drive: - type: boolean - description: enable config drive on the server - required: false - status: SUPPORTED - personality: - type: map - description: A map of files to create/overwrite on the server upon boot - required: false - default: {} - status: SUPPORTED - entry_schema: - type: string - software_config_transport: - type: string - description: How the server should receive the metadata required for software configuration - required: false - default: POLL_SERVER_CFN - status: SUPPORTED - constraints: - - valid_values: - - POLL_SERVER_CFN - - POLL_SERVER_HEAT - - POLL_TEMP_URL - - ZAQAR_MESSAGE - user_data_format: - type: string - description: How the user_data should be formatted for the server - required: false - default: HEAT_CFNTOOLS - status: SUPPORTED - constraints: - - valid_values: - - SOFTWARE_CONFIG - - RAW - - HEAT_CFNTOOLS - diskConfig: - type: string - description: Control how the disk is partitioned when the server is created - required: false - status: SUPPORTED - constraints: - - valid_values: - - AUTO - - MANUAL - name: - type: string - description: Server name - required: false - status: SUPPORTED - scheduler_hints: - type: map - description: Arbitrary key-value pairs specified by the client to help boot a server - required: false - status: SUPPORTED - entry_schema: - type: string - attributes: - accessIPv4: - type: string - description: The manually assigned alternative public IPv4 address of the server - status: SUPPORTED - addresses: - type: map - description: A dict of all network addresses with corresponding port_id - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.novaServer.network.AddressInfo - accessIPv6: - type: string - description: The manually assigned alternative public IPv6 address of the server - status: SUPPORTED - instance_name: - type: string - description: AWS compatible instance name - status: SUPPORTED - name: - type: string - description: Name of the server - status: SUPPORTED - show: - type: string - description: Detailed information about resource - status: SUPPORTED - console_urls: - type: string - description: URLs of servers consoles - status: SUPPORTED - org.openecomp.resource.cp.v2.extNeutronCP: - derived_from: org.openecomp.resource.cp.v2.extCP - properties: - port_security_enabled: - type: boolean - description: Flag to enable/disable port security on the network - required: false - status: SUPPORTED - device_id: - type: string - description: Device ID of this port - required: false - status: SUPPORTED - qos_policy: - type: string - description: The name or ID of QoS policy to attach to this network - required: false - status: SUPPORTED - allowed_address_pairs: - type: list - description: Additional MAC/IP address pairs allowed to pass through the port - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.network.AddressPair - binding:vnic_type: - type: string - description: The vnic type to be bound on the neutron port - required: false - status: SUPPORTED - constraints: - - valid_values: - - macvtap - - direct - - normal - value_specs: - type: map - description: Extra parameters to include in the request - required: false - default: {} - status: SUPPORTED - entry_schema: - type: string - device_owner: - type: string - description: Name of the network owning the port - required: false - status: SUPPORTED - network: - type: string - description: Network this port belongs to - required: false - status: SUPPORTED - replacement_policy: - type: string - description: Policy on how to respond to a stack-update for this resource - required: false - default: AUTO - status: SUPPORTED - constraints: - - valid_values: - - REPLACE_ALWAYS - - AUTO - security_groups: - type: list - description: List of security group names or IDs - required: false - status: SUPPORTED - entry_schema: - type: string - fixed_ips: - type: list - description: Desired IPs for this port - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.neutron.port.FixedIps - mac_address: - type: string - description: MAC address to give to this port - required: false - status: SUPPORTED - admin_state_up: - type: boolean - description: A boolean value specifying the administrative status of the network - required: false - default: true - status: SUPPORTED - name: - type: string - description: A symbolic name for this port - required: false - status: SUPPORTED - attributes: - tenant_id: - type: string - description: Tenant owning the port - status: SUPPORTED - network_id: - type: string - description: Unique identifier for the network owning the port - status: SUPPORTED - qos_policy_id: - type: string - description: The QoS policy ID attached to this network - status: SUPPORTED - show: - type: string - description: Detailed information about resource - status: SUPPORTED - subnets: - type: list - description: Subnets of this network - status: SUPPORTED - entry_schema: - type: string - status: - type: string - description: The status of the network - status: SUPPORTED - capabilities: - attachment: - type: tosca.capabilities.Attachment - occurrences: - - 1 - - UNBOUNDED - binding: - type: tosca.capabilities.network.Bindable - valid_source_types: - - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface - - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface - occurrences: - - 0 - - UNBOUNDED - org.openecomp.resource.vfc.nodes.Compute: - derived_from: tosca.nodes.Compute - capabilities: - disk.ephemeral.size: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: GB - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.ephemeral.size - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Size of ephemeral disk - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: compute - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - instance: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: instance - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: instance - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Existence of instance - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: compute - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - memory: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: MB - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: memory - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Volume of RAM allocated to the instance - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: compute - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.iops: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: count/s - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.iops - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Average disk iops - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: disk - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.device.read.requests: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: request - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.device.read.requests - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Number of read requests - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Cumulative - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: disk - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - cpu.delta: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: ns - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: cpu.delta - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: CPU time used since previous datapoint - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Delta - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: compute - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.capacity: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: B - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.capacity - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: The amount of disk that the instance can see - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: disk - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.device.read.bytes: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: B - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.device.read.bytes - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Volume of reads - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Cumulative - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: disk - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.write.bytes: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: B - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.write.bytes - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Volume of writes - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Cumulative - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: compute - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.latency: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: ms - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.latency - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Average disk latency - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: disk - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.device.read.bytes.rate: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: B/s - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.device.read.bytes.rate - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Average rate of reads - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: disk - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.usage: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: B - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.usage - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: The physical size in bytes of the image container on the host - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: disk - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - cpu_util: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: '%' - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: cpu_util - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Average CPU utilization - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: compute - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.device.allocation: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: B - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.device.allocation - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: The amount of disk per device occupied by the instance on the host machine - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: disk - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.write.requests.rate: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: request/s - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.write.requests.rate - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Average rate of write requests - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: compute - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.write.bytes.rate: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: B/s - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.write.bytes.rate - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Average rate of writes - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: compute - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.device.latency: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: ms - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.device.latency - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Average disk latency per device - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: disk - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - cpu: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: ns - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: cpu - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: CPU time used - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Cumulative - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: compute - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.device.write.requests: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: request - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.device.write.requests - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Number of write requests - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Cumulative - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: disk - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.device.write.bytes: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: B - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.device.write.bytes - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Volume of writes - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Cumulative - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: disk - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.read.requests: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: request - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.read.requests - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Number of read requests - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Cumulative - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: compute - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.root.size: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: GB - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.root.size - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Size of root disk - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: compute - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.device.write.bytes.rate: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: B/s - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.device.write.bytes.rate - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Average rate of writes - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: disk - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - vcpus: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: vcpu - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: vcpus - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Number of virtual CPUs allocated to the instance - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: compute - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.device.iops: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: count/s - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.device.iops - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Average disk iops per device - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: disk - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.device.usage: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: B - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.device.usage - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: The physical size in bytes of the image container on the host per device - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: disk - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.device.read.requests.rate: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: request/s - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.device.read.requests.rate - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Average rate of read requests - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: disk - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.device.write.requests.rate: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: request/s - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.device.write.requests.rate - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Average rate of write requests - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: disk - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.allocation: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: B - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.allocation - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: The amount of disk occupied by the instance on the host machine - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: disk - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.read.bytes.rate: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: B/s - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.read.bytes.rate - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Average rate of reads - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: compute - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.read.bytes: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: B - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.read.bytes - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Volume of reads - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Cumulative - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: compute - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - memory.usage: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: MB - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: memory.usage - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Volume of RAM used by the instance from the amount of its allocated memory - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: compute - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.device.capacity: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: B - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.device.capacity - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: The amount of disk per device that the instance can see - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: disk - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - memory.resident: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: MB - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: memory.resident - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Volume of RAM used by the instance on the physical machine - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: compute - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - disk.write.requests: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: request - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: disk.write.requests - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Number of write requests - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Cumulative - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: compute - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - org.openecomp.resource.cp.v2.extContrailCP: - derived_from: org.openecomp.resource.cp.v2.extCP - properties: - static_routes: - type: list - description: An ordered list of static routes to be added to this interface - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.network.contrail.port.StaticRoute - virtual_network: - type: string - description: Virtual Network for this interface - required: true - status: SUPPORTED - static_route: - type: boolean - description: Static route enabled - required: false - default: false - status: SUPPORTED - allowed_address_pairs: - type: list - description: List of allowed address pair for this interface - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.network.contrail.AddressPair - shared_ip: - type: boolean - description: Shared ip enabled - required: false - default: false - status: SUPPORTED - ip_address: - type: string - description: IP for this interface - required: false - status: SUPPORTED - interface_type: - type: string - description: Interface type - required: true - status: SUPPORTED - constraints: - - valid_values: - - management - - left - - right - - other - attributes: - fq_name: - type: string - description: fq_name - status: SUPPORTED - org.openecomp.resource.abstract.nodes.CR: - derived_from: tosca.nodes.Root - properties: - cr_function: - type: string - cr_role: - type: string - cr_type: - type: string - org.openecomp.resource.vfc.rules.nodes.heat.network.contrailV2.NetworkRules: - derived_from: tosca.nodes.Root - properties: - name: - type: string - description: A symbolic name for this contrail v2 network rule - required: false - status: SUPPORTED - network_policy_entries: - type: org.openecomp.datatypes.heat.contrailV2.network.rule.RuleList - description: A symbolic name for this contrail v2 network rule - required: false - status: SUPPORTED - attributes: - fq_name: - type: string - description: fq_name - status: SUPPORTED - requirements: - - network: - capability: tosca.capabilities.Attachment - node: tosca.nodes.network.Network - relationship: org.openecomp.relationships.AttachesTo - occurrences: - - 0 - - UNBOUNDED - org.openecomp.nodes.ForwardingPath: - derived_from: tosca.nodes.Root - properties: - target_range: - type: list - required: true - status: SUPPORTED - entry_schema: - description: Identifier of the reciever port of the VNF or the service - type: integer - protocol: - type: string - description: protocol type that runs on the link - required: true - status: SUPPORTED - requirements: - - forwarder: - capability: org.openecomp.capabilities.Forwarder - relationship: org.openecomp.relationships.ForwardsTo - occurrences: - - 0 - - UNBOUNDED - org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface: - derived_from: org.openecomp.resource.cp.nodes.network.Port - properties: - name: - description: Virtual Machine Interface name - type: string - status: SUPPORTED - required: false - security_group_refs: - description: List of security groups. - type: list - status: SUPPORTED - entry_schema: - type: string - required: false - virtual_network_refs: - description: List of virtual networks. - type: list - status: SUPPORTED - entry_schema: - type: string - required: false - virtual_machine_interface_properties: - description: virtual machine interface properties. - type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.interface.Properties - status: SUPPORTED - required: false - port_tuple_refs: - description: List of port tuples. - type: list - status: SUPPORTED - entry_schema: - type: string - required: false - virtual_machine_interface_mac_addresses: - description: List of mac addresses. - type: list - status: SUPPORTED - entry_schema: - type: string - required: false - virtual_machine_interface_allowed_address_pairs: - description: Virtual Machine Interface allowed address pairs. - type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs - status: SUPPORTED - required: false - attributes: - fq_name: - description: The FQ name of the Virtual Network. - type: string - status: SUPPORTED - show: - description: All attributes. - type: string - status: SUPPORTED - capabilities: - binding: - type: tosca.capabilities.network.Bindable - occurrences: - - 0 - - UNBOUNDED - valid_source_types: - - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface - - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface - org.openecomp.resource.cp.v2.extVirtualMachineInterfaceCP: - derived_from: org.openecomp.resource.cp.v2.extCP - properties: - name: - description: Virtual Machine Interface name - type: string - status: SUPPORTED - required: false - security_group_refs: - description: List of security groups. - type: list - status: SUPPORTED - entry_schema: - type: string - required: false - virtual_network_refs: - description: List of virtual networks. - type: list - status: SUPPORTED - entry_schema: - type: string - required: false - virtual_machine_interface_properties: - description: virtual machine interface properties. - type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.interface.Properties - status: SUPPORTED - required: false - port_tuple_refs: - description: List of port tuples. - type: list - status: SUPPORTED - entry_schema: - type: string - required: false - virtual_machine_interface_mac_addresses: - description: List of mac addresses. - type: list - status: SUPPORTED - entry_schema: - type: string - required: false - virtual_machine_interface_allowed_address_pairs: - description: Virtual Machine Interface allowed address pairs. - type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs - status: SUPPORTED - required: false - attributes: - fq_name: - description: The FQ name of the Virtual Network. - type: string - status: SUPPORTED - show: - description: All attributes. - type: string - status: SUPPORTED - capabilities: - binding: - type: tosca.capabilities.network.Bindable - occurrences: - - 0 - - UNBOUNDED - valid_source_types: - - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface - - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface - org.openecomp.nodes.VRFObject: - derived_from: tosca.nodes.Root - description: provides capability to connect WAN Transport Service Proxy to VRF Entry - capabilities: - routing_configuration_external: - type: org.openecomp.capabilities.RoutingConfiguration - org.openecomp.resource.abstract.nodes.AbstractSubstitute: - derived_from: tosca.nodes.Root - properties: - service_template_filter: - type: org.openecomp.datatypes.heat.substitution.SubstitutionFiltering - description: Substitution Filter - required: true - status: SUPPORTED - org.openecomp.nodes.PortMirroringConfigurationByPolicy: - derived_from: tosca.nodes.Root - properties: - collector_node: - type: string - description: The name of the Collector Proxy - required: true - policy_name: - type: string - description: The name of the policy for selection of the collector interfaces - required: true - equip_model: - type: string - description: The name of the equipment type of the collector, i.e. Cisco 4500x - required: true - equip_vendor: - type: string - description: The name of the equipment vendor of the collector, i.e. Cisco - required: true - requirements: - - source: - capability: org.openecomp.capabilities.PortMirroring - occurrences: - - 1 - - UNBOUNDED - org.openecomp.resource.cp.nodes.heat.network.neutron.Port: - derived_from: org.openecomp.resource.cp.nodes.network.Port - properties: - port_security_enabled: - type: boolean - description: Flag to enable/disable port security on the network - required: false - status: SUPPORTED - device_id: - type: string - description: Device ID of this port - required: false - status: SUPPORTED - qos_policy: - type: string - description: The name or ID of QoS policy to attach to this network - required: false - status: SUPPORTED - allowed_address_pairs: - type: list - description: Additional MAC/IP address pairs allowed to pass through the port - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.network.AddressPair - binding:vnic_type: - type: string - description: The vnic type to be bound on the neutron port - required: false - status: SUPPORTED - constraints: - - valid_values: - - macvtap - - direct - - normal - value_specs: - type: map - description: Extra parameters to include in the request - required: false - default: {} - status: SUPPORTED - entry_schema: - type: string - device_owner: - type: string - description: Name of the network owning the port - required: false - status: SUPPORTED - network: - type: string - description: Network this port belongs to - required: false - status: SUPPORTED - replacement_policy: - type: string - description: Policy on how to respond to a stack-update for this resource - required: false - default: AUTO - status: SUPPORTED - constraints: - - valid_values: - - REPLACE_ALWAYS - - AUTO - security_groups: - type: list - description: List of security group names or IDs - required: false - status: SUPPORTED - entry_schema: - type: string - fixed_ips: - type: list - description: Desired IPs for this port - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.neutron.port.FixedIps - mac_address: - type: string - description: MAC address to give to this port - required: false - status: SUPPORTED - admin_state_up: - type: boolean - description: A boolean value specifying the administrative status of the network - required: false - default: true - status: SUPPORTED - name: - type: string - description: A symbolic name for this port - required: false - status: SUPPORTED - attributes: - tenant_id: - type: string - description: Tenant owning the port - status: SUPPORTED - network_id: - type: string - description: Unique identifier for the network owning the port - status: SUPPORTED - qos_policy_id: - type: string - description: The QoS policy ID attached to this network - status: SUPPORTED - show: - type: string - description: Detailed information about resource - status: SUPPORTED - subnets: - type: list - description: Subnets of this network - status: SUPPORTED - entry_schema: - type: string - status: - type: string - description: The status of the network - status: SUPPORTED - capabilities: - attachment: - type: tosca.capabilities.Attachment - occurrences: - - 1 - - UNBOUNDED - binding: - type: tosca.capabilities.network.Bindable - valid_source_types: - - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface - - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface - occurrences: - - 0 - - UNBOUNDED - org.openecomp.resource.abstract.nodes.VF: - derived_from: tosca.nodes.Root - properties: - nf_function: - type: string - nf_role: - type: string - nf_naming_code: - type: string - nf_type: - type: string - nf_naming: - type: org.openecomp.datatypes.Naming - Default: true - availability_zone_max_count: - type: integer - default: 1 - constraints: - - valid_values: - - 0 - - 1 - - 2 - min_instances: - type: integer - max_instances: - type: integer - multi_stage_design: - type: string - default: false - sdnc_model_name: - type: string - sdnc_model_version: - type: string - sdnc_artifact_name: - type: string - skip_post_instantiation_configuration: - type: boolean - default: true - constraints: - - valid_values: - - true - - false - org.openecomp.resource.vfc.nodes.volume: - derived_from: tosca.nodes.BlockStorage - org.openecomp.nodes.ServiceProxy: - derived_from: tosca.nodes.Root - org.openecomp.resource.cp.v2.extCP: - derived_from: org.openecomp.resource.cp.nodes.network.Port - description: The SDC External Connection Point base type - capabilities: - port_mirroring: - type: org.openecomp.capabilities.PortMirroring - org.openecomp.resource.cp.nodes.network.SubInterface: - derived_from: tosca.nodes.network.Port - org.openecomp.resource.vl.nodes.heat.network.neutron.Net: - derived_from: org.openecomp.resource.vl.nodes.network.Network - properties: - dhcp_agent_ids: - type: list - description: The IDs of the DHCP agent to schedule the network - required: false - status: SUPPORTED - entry_schema: - type: string - tenant_id: - type: string - description: The ID of the tenant which will own the network - required: false - status: SUPPORTED - port_security_enabled: - type: boolean - description: Flag to enable/disable port security on the network - required: false - status: SUPPORTED - shared: - type: boolean - description: Whether this network should be shared across all tenants - required: false - default: false - status: SUPPORTED - admin_state_up: - type: boolean - description: A boolean value specifying the administrative status of the network - required: false - default: true - status: SUPPORTED - qos_policy: - type: string - description: The name or ID of QoS policy to attach to this network - required: false - status: SUPPORTED - subnets: - type: map - description: Network related subnets - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.network.neutron.Subnet - value_specs: - type: map - description: Extra parameters to include in the request - required: false - default: {} - status: SUPPORTED - entry_schema: - type: string - attributes: - qos_policy_id: - type: string - description: The QoS policy ID attached to this network - status: SUPPORTED - show: - type: string - description: Detailed information about resource - status: SUPPORTED - subnets_name: - type: list - description: Subnets name of this network - status: SUPPORTED - entry_schema: - type: string - subnets: - type: map - description: Network related subnets - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.network.neutron.Subnet - mtu: - type: scalar-unit.size - description: The maximum transmission unit size(in bytes) for the network - status: SUPPORTED - status: - type: string - description: The status of the network - status: SUPPORTED - capabilities: - attachment: - type: tosca.capabilities.Attachment - occurrences: - - 1 - - UNBOUNDED - org.openecomp.resource.abstract.nodes.contrail.AbstractSubstitute: - derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute - properties: - availability_zone: - type: string - description: Availability zone to create servers in - required: false - status: SUPPORTED - static_routes_list: - type: list - description: Static routes enabled - required: false - status: SUPPORTED - entry_schema: - type: boolean - availability_zone_enable: - type: boolean - description: Indicates availability zone is enabled - required: false - default: false - status: SUPPORTED - service_template_name: - type: string - description: Service template name - required: false - status: SUPPORTED - ordered_interfaces: - type: boolean - description: Indicates if service interface are ordered - required: false - default: false - status: SUPPORTED - flavor: - type: string - description: flavor - required: false - status: SUPPORTED - image_name: - type: string - description: Image name - required: true - status: SUPPORTED - service_type: - type: string - description: Service type - required: true - status: SUPPORTED - constraints: - - valid_values: - - firewall - - analyzer - - source-nat - - loadbalancer - service_interface_type_list: - type: list - description: List of interface types - required: true - status: SUPPORTED - entry_schema: - type: string - constraints: - - valid_values: - - management - - left - - right - - other - service_instance_name: - type: string - description: Service instance name - required: true - status: SUPPORTED - interface_list: - type: list - description: List of interfaces - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.network.contrail.InterfaceData - service_mode: - type: string - description: Service mode - required: true - status: SUPPORTED - constraints: - - valid_values: - - transparent - - in-network - - in-network-nat - shared_ip_list: - type: list - description: Shared ips enabled - required: false - status: SUPPORTED - entry_schema: - type: boolean - attributes: - tenant_id: - type: string - description: Tenant id of the Service Instance - status: SUPPORTED - fq_name: - type: string - description: The FQ name of the service instance - status: SUPPORTED - service_template_name: - type: string - description: Service Template of the Service Instance - status: SUPPORTED - show: - type: string - description: All attributes - status: SUPPORTED - active_vms: - type: string - description: Number of service VMs active for this Service Instance - status: SUPPORTED - service_instance_name: - type: string - description: The name of the service instance - status: SUPPORTED - virtual_machines: - type: string - description: Service VMs for the Service Instance - status: SUPPORTED - status: - type: string - description: Status of the service instance - status: SUPPORTED - org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork: - derived_from: org.openecomp.resource.vl.nodes.network.Network - properties: - network_ipam_refs_data: - type: list - description: IPAM references Data - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.IpamRefData - network_policy_refs_data: - type: list - description: Policy references data - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.RefData - network_ipam_refs: - type: list - description: IPAM references - required: false - status: SUPPORTED - entry_schema: - type: string - network_policy_refs: - type: list - description: Policy references - required: false - status: SUPPORTED - entry_schema: - type: string - subnets: - type: map - description: Network related subnets - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.network.neutron.Subnet - attributes: - fq_name: - type: string - description: fq_name - status: SUPPORTED - subnets_name: - type: list - description: Subnets name of this network - status: SUPPORTED - entry_schema: - type: string - subnets_show: - type: map - description: Detailed information about each subnet - status: SUPPORTED - entry_schema: - type: string - subnets: - type: map - description: Network related subnets - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.network.neutron.Subnet - capabilities: - attachment: - type: tosca.capabilities.Attachment - occurrences: - - 1 - - UNBOUNDED - org.openecomp.resource.abstract.nodes.PNF: - derived_from: tosca.nodes.Root - properties: - nf_function: - type: string - nf_role: - type: string - nf_type: - type: string - software_versions: - type: list - entry_schema: - type: string - sdnc_model_name: - type: string - sdnc_model_version: - type: string - sdnc_artifact_name: - type: string - skip_post_instantiation_configuration: - type: boolean - default: true - constraints: - - valid_values: - - true - - false - org.openecomp.resource.abstract.nodes.service: - derived_from: tosca.nodes.Root - org.openecomp.resource.cp.nodes.network.v2.SubInterface: - derived_from: tosca.nodes.Root - properties: - ip_address: - description: Allow the user to set a fixed IP address. Note that this address is a request to the provider which they will attempt to fulfill but may not be able to dependent on the network the port is associated with. - type: string - required: false - order: - description: 'The order of the NIC on the compute instance (e.g. eth2). Note: - when binding more than one port to a single compute (aka multi vNICs) and - ordering is desired, it is *mandatory* that all ports will be set with an - order value and. The order values must represent a positive, arithmetic - progression that starts with 0 (e.g. 0, 1, 2, ..., n).' - type: integer - default: 0 - required: false - constraints: - - greater_or_equal: 0 - is_default: - description: Set is_default=true to apply a default gateway route on the running compute instance to the associated network gateway. Only one port that is associated to single compute node can set as default=true. - type: boolean - default: false - required: false - ip_range_start: - description: Defines the starting IP of a range to be allocated for the compute instances that are associated by this Port. Without setting this property the IP allocation is done from the entire CIDR block of the network. - type: string - required: false - ip_range_end: - description: Defines the ending IP of a range to be allocated for the compute instances that are associated by this Port. Without setting this property the IP allocation is done from the entire CIDR block of the network. - type: string - required: false - attributes: - ip_address: - description: The IP address would be assigned to the associated compute instance. - type: string - requirements: - - subinterface_link: - capability: tosca.capabilities.network.Linkable - relationship: tosca.relationships.network.LinksTo - - binding: - capability: tosca.capabilities.network.Bindable - relationship: tosca.relationships.network.BindsTo - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface: - derived_from: org.openecomp.resource.cp.nodes.network.SubInterface - properties: - virtual_machine_interface_refs: - description: List of virtual machine interface. - type: list - status: SUPPORTED - entry_schema: - type: string - required: false - name: - description: Virtual Machine Sub Interface VLAN name - type: string - status: SUPPORTED - required: false - virtual_network_refs: - description: List of virtual networks. - type: list - status: SUPPORTED - entry_schema: - type: string - required: false - virtual_machine_interface_properties: - description: virtual machine interface properties. - type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.Properties - status: SUPPORTED - required: false - virtual_machine_interface_allowed_address_pairs: - description: Virtual Machine Sub Interface allowed address pairs. - type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs - status: SUPPORTED - required: false - virtual_machine_interface_mac_addresses: - description: List of mac addresses. - type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.MacAddress - status: SUPPORTED - required: false - security_group_refs: - description: List of security groups. - type: list - status: SUPPORTED - entry_schema: - type: string - required: false - port_tuple_refs: - description: List of port tuples. - type: list - status: SUPPORTED - entry_schema: - type: string - required: false - attributes: - fq_name: - description: The FQ name of the Virtual Network. - type: string - status: SUPPORTED - show: - description: All attributes. - type: string - status: SUPPORTED - requirements: - - binding: - capability: tosca.capabilities.network.Bindable - node: org.openecomp.resource.cp.nodes.network.Port - relationship: tosca.relationships.network.BindsTo - occurrences: - - 1 - - 1 - org.openecomp.nodes.FabricConfiguration: - derived_from: org.openecomp.nodes.Configuration - requirements: - - fabric_configuration_monitoring: - capability: org.openecomp.capabilities.FabricConfiguration - occurrences: - - 1 - - UNBOUNDED - org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork: - derived_from: org.openecomp.resource.vl.nodes.network.Network - properties: - shared: - type: string - description: Is virtual network shared - required: false - status: SUPPORTED - forwarding_mode: - type: string - description: forwarding mode of the virtual network - required: false - status: SUPPORTED - external: - type: string - description: Is virtual network external - required: false - status: SUPPORTED - allow_transit: - type: string - description: Whether this network should be transitive. - required: false - status: SUPPORTED - flood_unknown_unicast: - type: string - description: flood L2 packets on network - required: false - status: SUPPORTED - route_targets: - type: list - description: route targets associated with the virtual network - required: false - status: SUPPORTED - entry_schema: - type: string - subnets: - type: map - description: Network related subnets - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.network.neutron.Subnet - attributes: - fq_name: - type: string - description: fq_name - status: SUPPORTED - show: - type: string - description: All attributes. - status: SUPPORTED - subnets_name: - type: list - description: Subnets name of this network - status: SUPPORTED - entry_schema: - type: string - subnets_show: - type: map - description: Detailed information about each subnet - status: SUPPORTED - entry_schema: - type: string - subnets: - type: map - description: Network related subnets - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.network.neutron.Subnet - capabilities: - attachment: - type: tosca.capabilities.Attachment - occurrences: - - 1 - - UNBOUNDED - org.openecomp.nodes.VLANNetworkReceptor: - derived_from: tosca.nodes.Root - capabilities: - routing_configuration_internal: - type: org.openecomp.capabilities.RoutingConfiguration - requirements: - - vlan_assignment: - occurrences: - - 1 - - UNBOUNDED - capability: org.openecomp.capabilities.VLANAssignment - relationship: org.openecomp.relationships.AssignsTo - org.openecomp.resource.vl.ELine: - derived_from: org.openecomp.resource.vl.VL - capabilities: - virtual_linkable: - type: tosca.capabilities.network.Linkable - occurrences: - - 0 - - 2 - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface: - derived_from: org.openecomp.resource.cp.nodes.network.v2.SubInterface - properties: - virtual_machine_interface_refs: - description: List of virtual machine interface. - type: list - status: SUPPORTED - entry_schema: - type: string - required: false - name: - description: Virtual Machine Sub Interface VLAN name - type: string - status: SUPPORTED - required: false - virtual_network_refs: - description: List of virtual networks. - type: list - status: SUPPORTED - entry_schema: - type: string - required: false - virtual_machine_interface_properties: - description: virtual machine interface properties. - type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.Properties - status: SUPPORTED - required: false - virtual_machine_interface_allowed_address_pairs: - description: Virtual Machine Sub Interface allowed address pairs. - type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs - status: SUPPORTED - required: false - virtual_machine_interface_mac_addresses: - description: List of mac addresses. - type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.MacAddress - status: SUPPORTED - required: false - security_group_refs: - description: List of security groups. - type: list - status: SUPPORTED - entry_schema: - type: string - required: false - port_tuple_refs: - description: List of port tuples. - type: list - status: SUPPORTED - entry_schema: - type: string - required: false - attributes: - fq_name: - description: The FQ name of the Virtual Network. - type: string - status: SUPPORTED - show: - description: All attributes. - type: string - status: SUPPORTED - requirements: - - binding: - capability: tosca.capabilities.network.Bindable - node: org.openecomp.resource.cp.nodes.network.Port - relationship: tosca.relationships.network.BindsTo - occurrences: - - 1 - - 1 - org.openecomp.resource.vl.VL: - derived_from: tosca.nodes.network.Network - properties: - vendor: - type: string - required: false - vl_name: - type: string - required: false - capabilities: - virtual_linkable: - type: tosca.capabilities.network.Linkable - end_point: - type: tosca.capabilities.Endpoint - org.openecomp.resource.abstract.nodes.MultiFlavorVFC: - derived_from: org.openecomp.resource.abstract.nodes.VFC - properties: - images: - type: map - entry_schema: - type: org.openecomp.datatypes.ImageInfo - required: false - org.openecomp.resource.abstract.nodes.VnfConfiguration: - derived_from: tosca.nodes.Root - properties: - allowed_flavors: - description: a collection of all flavor valuesets available for a given VFC - type: map - entry_schema: - type: org.openecomp.datatypes.flavors.DeploymentFlavor - org.openecomp.nodes.VRFEntry: - derived_from: tosca.nodes.Root - requirements: - - routing_configuration_internal: - occurrences: - - 1 - - UNBOUNDED - capability: org.openecomp.capabilities.RoutingConfiguration - relationship: org.openecomp.relationships.RoutesTo - - routing_configuration_external: - occurrences: - - 1 - - UNBOUNDED - capability: org.openecomp.capabilities.RoutingConfiguration - relationship: org.openecomp.relationships.RoutesTo - org.openecomp.resource.abstract.nodes.VFC: - derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute - properties: - nfc_function: - type: string - high_availablity: - type: string - description: high_availablity - required: false - status: SUPPORTED - vm_image_name: - type: string - description: Master image_name volume id - required: true - status: SUPPORTED - vm_flavor_name: - type: string - description: Master image_name volume id - required: true - status: SUPPORTED - nfc_naming_code: - type: string - description: nfc code for instance naming - required: false - status: SUPPORTED - vm_type_tag: - type: string - description: vm type based on naming Convention - required: false - status: SUPPORTED - nfc_naming: - type: org.openecomp.datatypes.Naming - description: vfc naming - min_instances: - type: integer - description: Minimum number of VFC Instances - required: false - default: 0 - status: SUPPORTED - constraints: - - greater_or_equal: 0 - max_instances: - type: integer - description: Maximum number of VFC Instances - required: false - status: SUPPORTED - constraints: - - greater_or_equal: 1 - org.openecomp.resource.vl.internalVL: - derived_from: tosca.nodes.network.Network - description: The AT&T internal (VF-level) Virtual Link - org.openecomp.resource.cp.nodes.network.Port: - derived_from: tosca.nodes.network.Port - properties: - network_role: - type: string - required: true - description: identical to VL network_role - order: - type: integer - required: true - description: The order of the CP on the compute instance (e.g. eth2). - network_role_tag: - description: Must correlate to the set of defined network-role tag identifiers from the associated HEAT template - type: string - required: true - mac_requirements: - description: identifies MAC address assignments to the CP - type: org.openecomp.datatypes.network.MacRequirements - required: false - vlan_requirements: - description: identifies vlan address assignments to the CP - type: list - entry_schema: - type: org.openecomp.datatypes.network.VlanRequirements - required: false - ip_requirements: - description: identifies IP requirements to the CP - type: list - entry_schema: - type: org.openecomp.datatypes.network.IpRequirements - required: true - exCP_naming: - type: org.openecomp.datatypes.Naming - subnetpoolid: - type: string - subinterface_indicator: - description: identifies if Port is having Sub Interface - type: boolean - required: false - default: false - related_networks: - type: list - description: Related Networks List. - required: false - entry_schema: - type: org.openecomp.datatypes.network.RelatedNetworksAssignments - capabilities: - network.incoming.packets.rate: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: packet/s - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: network.incoming.packets.rate - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Average rate of incoming packets - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: network - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - forwarder: - type: org.openecomp.capabilities.Forwarder - network.outgoing.bytes: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: B - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: network.outgoing.bytes - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Number of outgoing bytes - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Cumulative - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: network - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - network.outgoing.packets.rate: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: packet/s - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: network.outgoing.packets.rate - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Average rate of outgoing packets - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: network - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - network.outpoing.packets: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: packet - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: network.outpoing.packets - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Number of outgoing packets - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Cumulative - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: network - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - network.incoming.bytes.rate: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: B/s - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: network.incoming.bytes.rate - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Average rate of incoming bytes - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: network - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - network.incoming.bytes: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: B - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: network.incoming.bytes - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Number of incoming bytes - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Cumulative - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: network - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - network.outgoing.bytes.rate: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: B/s - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: network.outgoing.bytes.rate - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Average rate of outgoing bytes - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Gauge - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: network - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - network.incoming.packets: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - unit: - type: string - description: Unit of the metric value - required: true - default: packet - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - default: network.incoming.packets - status: SUPPORTED - description: - type: string - description: Description of the metric - required: false - default: Number of incoming packets - status: SUPPORTED - type: - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - default: Cumulative - status: SUPPORTED - category: - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - default: network - status: SUPPORTED - occurrences: - - 1 - - UNBOUNDED - tosca.nodes.nfv.Vdu.VirtualBlockStorage: - derived_from: tosca.nodes.Root - description: This node type describes the specifications of requirements related to virtual block storage resources - properties: - virtual_block_storage_data: - type: tosca.datatypes.nfv.VirtualBlockStorageData - description: Describes the block storage characteristics. - required: true - sw_image_data: - type: tosca.datatypes.nfv.SwImageData - description: Defines information related to a SwImage artifact used by this Vdu.Compute node. - required: false - capabilities: - virtual_storage: - type: tosca.capabilities.nfv.VirtualStorage - description: Defines the capabilities of virtual_storage. - tosca.nodes.nfv.Vdu.Compute: - derived_from: tosca.nodes.Root - description: Describes the virtual compute part of a VDU which is a construct supporting the description of the deployment and operational behavior of a VNFC - properties: - name: - type: string - description: Human readable name of the VDU - required: true - description: - type: string - description: Human readable description of the VDU - required: true - boot_order: - type: list - description: References a node template name from which a valid boot device is created - required: false - entry_schema: - type: string - nfvi_constraints: - type: list - description: Describes constraints on the NFVI for the VNFC instance(s) created from this VDU - required: false - entry_schema: - type: string - monitoring_parameters: - type: list - description: Describes monitoring parameters applicable to a VNFC instantiated from this VDU - required: false - entry_schema: - type: tosca.datatypes.nfv.VnfcMonitoringParameter - vdu_profile: - type: tosca.datatypes.nfv.VduProfile - description: Defines additional instantiation data for the VDU.Compute node - required: true - sw_image_data: - type: tosca.datatypes.nfv.SwImageData - description: Defines information related to a SwImage artifact used by this Vdu.Compute node - required: false - boot_data: - type: string - description: Contains a string or a URL to a file contained in the VNF package used to customize a virtualised compute resource at boot time. The bootData may contain variable parts that are replaced by deployment specific values before being sent to the VIM. - required: false - inject_files: - type: tosca.datatypes.nfv.injectFile - required: false - meta_data: - type: map - entry_schema: - type: string - required: false - capabilities: - virtual_compute: - type: tosca.capabilities.nfv.VirtualCompute - occurrences: - - 1 - - 1 - virtual_binding: - type: tosca.capabilities.nfv.VirtualBindable - occurrences: - - 1 - - UNBOUNDED - requirements: - - virtual_storage: - capability: tosca.capabilities.nfv.VirtualStorage - relationship: tosca.relationships.nfv.AttachesTo - occurrences: - - 0 - - UNBOUNDED - tosca.nodes.nfv.VDU: - derived_from: tosca.nodes.SoftwareComponent - capabilities: - Virtualbinding: - type: tosca.capabilities.nfv.VirtualBindable - requirements: - - host: - capability: tosca.capabilities.Container - node: tosca.nodes.Compute - relationship: tosca.relationships.HostedOn - tosca.nodes.nfv.Vdu.VirtualFileStorage: - derived_from: tosca.nodes.Root - description: This node type describes the specifications of requirements related to virtual file storage resources - properties: - virtual_file_storage_data: - type: tosca.datatypes.nfv.VirtualFileStorageData - description: Describes the file storage characteristics. - required: true - capabilities: - virtual_storage: - type: tosca.capabilities.nfv.VirtualStorage - description: Defines the capabilities of virtual_storage. - requirements: - - virtual_link: - capability: tosca.capabilities.nfv.VirtualLinkable - relationship: tosca.relationships.nfv.VirtualLinksTo - tosca.nodes.nfv.VduCp: - derived_from: tosca.nodes.nfv.Cp - description: describes network connectivity between a VNFC instance based on this VDU and an internal VL - properties: - bitrate_requirement: - type: integer - description: Bitrate requirement in bit per second on this connection point - required: false - constraints: - - greater_or_equal: 0 - virtual_network_interface_requirements: - type: list - description: Specifies requirements on a virtual network interface realising the CPs instantiated from this CPD - required: false - entry_schema: - type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements - order: - type: integer - description: The order of the NIC on the compute instance (e.g.eth2) - required: false - constraints: - - greater_or_equal: 0 - vnic_type: - type: string - description: Describes the type of the virtual network interface realizing the CPs instantiated from this CPD - required: false - constraints: - - valid_values: - - direct - - normal - - virtio - - direct-physical - vnic_name: - type: string - required: false - requirements: - - virtual_link: - capability: tosca.capabilities.nfv.VirtualLinkable - relationship: tosca.relationships.nfv.VirtualLinksTo - - virtual_binding: - capability: tosca.capabilities.nfv.VirtualBindable - relationship: tosca.relationships.nfv.VirtualBindsTo - node: tosca.nodes.nfv.Vdu.Compute - tosca.nodes.nfv.ext.zte.VDU: - derived_from: tosca.nodes.Root - properties: - manual_scale_select_vim: - type: boolean - required: false - vdu_type: - type: string - required: false - watchdog: - type: tosca.datatypes.nfv.ext.zte.WatchDog - required: false - name: - type: string - required: false - local_affinity_antiaffinity_rule: - type: tosca.datatypes.nfv.ext.LocalAffinityOrAntiAffinityRule - required: false - support_scaling: - type: boolean - required: false - storage_policy: - type: string - required: false - key_vdu: - type: boolean - required: false - location_info: - type: tosca.datatypes.nfv.ext.LocationInfo - required: false - inject_data_list: - type: list - required: false - entry_schema: - type: tosca.datatypes.nfv.ext.InjectData - requirements: - - guest_os: - capability: tosca.capabilities.nfv.ext.GuestOs - occurrences: - - 0 - - UNBOUNDED - - local_storage: - capability: tosca.capabilities.nfv.ext.LocalAttachment - occurrences: - - 0 - - UNBOUNDED - - volume_storage: - capability: tosca.capabilities.Attachment - occurrences: - - 0 - - UNBOUNDED - - dependency: - capability: tosca.capabilities.Node - occurrences: - - 0 - - UNBOUNDED - capabilities: - scalable: - type: tosca.capabilities.Scalable - monitoring_parameter: - type: tosca.capabilities.nfv.Metric - nfv_compute: - type: tosca.capabilities.nfv.ext.Compute.Container.Architecture - virtualbinding: - type: tosca.capabilities.nfv.VirtualBindable - tosca.nodes.nfv.ext.zte.VL: - derived_from: tosca.nodes.Root - properties: - segmentation_id: - type: string - required: false - network_name: - type: string - required: false - is_predefined: - type: boolean - required: false - mtu: - type: integer - required: false - dns_nameservers: - type: list - required: false - entry_schema: - type: string - physical_network: - type: string - required: false - dhcp_enabled: - type: boolean - required: false - network_id: - type: string - required: false - host_routes: - type: list - required: false - entry_schema: - type: tosca.datatypes.nfv.ext.HostRouteInfo - ip_version: - type: integer - required: false - vendor: - type: string - required: false - name: - type: string - required: false - start_ip: - type: string - required: false - vlan_transparent: - type: boolean - required: false - cidr: - type: string - required: false - gateway_ip: - type: string - required: false - network_type: - type: string - required: false - end_ip: - type: string - required: false - location_info: - type: tosca.datatypes.nfv.ext.LocationInfo - required: false - capabilities: - virtual_linkable: - type: tosca.capabilities.nfv.VirtualLinkable - tosca.nodes.nfv.VnfExtCp: - derived_from: tosca.nodes.nfv.Cp - description: Describes a logical external connection point, exposed by the VNF enabling connection with an external Virtual Link - properties: - virtual_network_interface_requirements: - type: list - description: The actual virtual NIC requirements that is been assigned when instantiating the connection point - required: false - entry_schema: - type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements - requirements: - - external_virtual_link: - capability: tosca.capabilities.nfv.VirtualLinkable - relationship: tosca.relationships.nfv.VirtualLinksTo - - internal_virtual_link: - capability: tosca.capabilities.nfv.VirtualLinkable - relationship: tosca.relationships.nfv.VirtualLinksTo - tosca.nodes.nfv.Vdu.VirtualStorage: - derived_from: tosca.nodes.Root - properties: - type_of_storage: - type: string - constraints: - - valid_values: - - volume - - object - - root - - block - required: true - size_of_storage: - type: scalar-unit.size - required: true - vdu_storage_requirements: - type: map - entry_schema: - type: string - required: false - rdma_enabled: - type: boolean - required: false - capabilities: - virtual_storage: - type: tosca.capabilities.nfv.VirtualStorage - tosca.nodes.nfv.ext.LocalStorage: - derived_from: tosca.nodes.Root - properties: - size: - type: string - required: false - disk_type: - type: string - required: false - capabilities: - local_attachment: - type: tosca.capabilities.nfv.ext.LocalAttachment - org.openecomp.resource.cp.PonUni: - derived_from: tosca.nodes.nfv.VduCp - properties: - expected_ont_id: - type: string - required: true - cvlan_id: - type: string - required: true - olt_name: - type: string - required: true - olt_pon_port: - type: string - required: true - olt_pon_slot: - type: string - required: true - requirements: - - virtual_link: - capability: tosca.capabilities.nfv.VirtualLinkable - relationship: tosca.relationships.nfv.VirtualLinksTo - node: tosca.nodes.nfv.VnfVirtualLink - - virtual_binding: - capability: tosca.capabilities.nfv.VirtualBindable - relationship: tosca.relationships.nfv.VirtualBindsTo - node: org.openecomp.resource.vfc.accessConnectivity - tosca.nodes.nfv.Vdu.VirtualObjectStorage: - derived_from: tosca.nodes.Root - description: This node type describes the specifications of requirements related to virtual object storage resources - properties: - virtual_object_storage_data: - type: tosca.datatypes.nfv.VirtualObjectStorageData - description: Describes the object storage characteristics. - required: true - capabilities: - virtual_storage: - type: tosca.capabilities.nfv.VirtualStorage - description: Defines the capabilities of virtual_storage. - tosca.nodes.nfv.ext.ImageFile: - derived_from: tosca.nodes.Root - properties: - file_url: - type: string - required: false - container_type: - type: string - required: false - name: - type: string - required: false - disk_format: - type: string - required: false - version: - type: string - required: false - capabilities: - guest_os: - type: tosca.capabilities.nfv.ext.GuestOs - image_fle: - type: tosca.capabilities.nfv.ext.ImageFile - tosca.nodes.nfv.VnfVirtualLinkDesc: - derived_from: tosca.nodes.Root - properties: - connectivity_type: - type: tosca.datatypes.nfv.ConnectivityType - required: true - description: - type: string - required: false - test_access: - type: list - entry_schema: - type: string - required: false - vl_flavours: - type: map - entry_schema: - type: tosca.datatypes.nfv.VlFlavour - required: true - capabilities: - virtual_linkable: - type: tosca.capabilities.nfv.VirtualLinkable - org.openecomp.resource.vl.overlaytunnel: - derived_from: tosca.nodes.Root - description: This entity represents abstract overlay tunnel end point. - properties: - id: - type: string - description: Identifier of the Tunnel Endpoint node. - required: false - template_name: - type: string - required: false - version: - type: string - required: false - name: - type: string - description: Overlay tunnel name used by for reference by the administrator. - required: false - description: - type: string - description: Additional comments/information about overlay tunnel. - required: false - tunnelType: - type: string - constraints: - - valid_values: - - L3-DCI - - L2-DCI - description: type defines if the overlay tunnel is L3-DCI tunnel or L2-DCI tunnel. - required: true - site1_id: - type: string - description: Identifier of first DCI overlay tunnel endpoint. This could be IP address of domain controller. - required: true - site1_description: - type: string - description: Additional comments/information about overlay tunnel. Description can also be used to identify domain controller. - required: false - site1_networkName: - type: string - description: Name of the network that is being associated with overlay tunnel. - required: true - site1_routerId: - type: string - description: Identifier of router connected to L3 tunnel end point, while configuring L3-DCI tunnel. - required: false - site1_importRT1: - type: string - description: List of Route targets imported by the local router. - required: false - site1_exportRT1: - type: string - description: List of Route targets exported by the local router. - required: false - site1_vni: - type: integer - description: VXLAN ID - required: false - site1_fireWallEnable: - type: boolean - required: false - description: Identifies if a firewall exists in the path of overlay tunnel. - default: false - site1_fireWallId: - type: string - description: Identifier of Firewall that is in overlay tunnel path - required: false - site1_localNetworkAll: - type: boolean - description: Identifies whether all the local networks associate with the tunnel or not. - required: false - default: 'false' - site2_id: - type: string - description: Identifier of second DCI overlay tunnel endpoint. This could be IP address of domain controller. - required: true - site2_description: - type: string - description: Additional comments/information about overlay tunnel. Description can also be used to identify domain controller. - required: false - site2_networkName: - type: string - description: Name of the network that is being associated with overlay tunnel. - required: true - site2_routerId: - type: string - description: Identifier of router connected to L3 tunnel end point, while configuring L3-DCI tunnel. - required: false - site2_importRT1: - type: string - description: List of Route targets imported by the local router. - required: false - site2_exportRT1: - type: string - description: List of Route targets exported by the local router. - required: false - site2_vni: - type: integer - description: VXLAN ID - required: false - site2_fireWallEnable: - type: boolean - required: false - description: Identifies if a firewall exists in the path of overlay tunnel. - default: false - site2_fireWallId: - type: string - description: Identifier of Firewall that is in overlay tunnel path - required: false - site2_localNetworkAll: - type: boolean - description: Identifies whether all the local networks associate with the tunnel or not. - required: false - default: 'false' - requirements: - - virtualLink: - capability: tosca.capabilities.network.Linkable - relationship: tosca.relationships.network.LinksTo - capabilities: - virtual_linkable: - type: tosca.capabilities.network.Linkable - tosca.nodes.nfv.VnfVirtualLink: - derived_from: tosca.nodes.Root - description: Describes the information about an internal VNF VL - properties: - connectivity_type: - type: tosca.datatypes.nfv.ConnectivityType - description: Specifies the protocol exposed by the VL and the flow pattern supported by the VL - required: true - description: - type: string - description: Provides human-readable information on the purpose of the VL - required: false - test_access: - type: list - description: Test access facilities available on the VL - required: false - entry_schema: - type: string - constraints: - - valid_values: - - passive_monitoring - - active_loopback - vl_profile: - type: tosca.datatypes.nfv.VlProfile - description: Defines additional data for the VL - required: true - monitoring_parameters: - type: list - description: Describes monitoring parameters applicable to the VL - required: false - entry_schema: - type: tosca.datatypes.nfv.VirtualLinkMonitoringParameter - capabilities: - virtual_linkable: - type: tosca.capabilities.nfv.VirtualLinkable - org.openecomp.resource.cp.OltNni: - derived_from: tosca.nodes.nfv.VduCp - properties: - olt_name: - type: string - required: true - olt_nni_port: - type: string - required: true - olt_nni_slot: - type: string - required: true - svlan: - type: string - required: true - requirements: - - virtual_link: - capability: tosca.capabilities.nfv.VirtualLinkable - relationship: tosca.relationships.nfv.VirtualLinksTo - node: tosca.nodes.nfv.VnfVirtualLink - - virtual_binding: - capability: tosca.capabilities.nfv.VirtualBindable - relationship: tosca.relationships.nfv.VirtualBindsTo - node: org.openecomp.resource.vfc.accessConnectivity - org.openecomp.resource.vfc.AllottedResource: - derived_from: tosca.nodes.Root - description: ECOMP Allotted Resource base type all other allotted resources node types derive from - properties: - providing_service_uuid: - type: string - required: true - description: The depending service uuid in order to map the allotted resource to the specific service version - providing_service_invariant_uuid: - type: string - required: true - description: The depending service invariant uuid in order to map the allotted resource to the specific service version - providing_service_name: - type: string - required: true - description: The depending service name in order to map the allotted resource to the specific service version - role: - type: string - required: true - description: Unique label that defines the role that this allotted resource performs - min_instances: - type: integer - default: 1 - max_instances: - type: integer - default: 1 - target_network_role: - type: string - required: true - description: Target network role - requirements: - - service_dependency: - capability: org.openecomp.capabilities.AllottedResource - relationship: tosca.relationships.DependsOn - org.openecomp.resource.vl.GenericNeutronNet: - derived_from: org.openecomp.resource.vl.extVL - description: Generic Neutron Network - properties: - network_role: - type: string - description: | - Unique label that defines the role that this network performs. example: vce oam network, vnat sr-iov1 network - network_assignments: - type: org.openecomp.datatypes.network.NetworkAssignments - network_flows: - type: org.openecomp.datatypes.network.NetworkFlows - network_scope: - type: string - network_ecomp_naming: - type: org.openecomp.datatypes.EcompNaming - network_type: - type: string - description: ECOMP supported network types. - default: NEUTRON - provider_network: - type: org.openecomp.datatypes.network.ProviderNetwork - network_technology: - type: string - description: ECOMP supported network technology - default: NEUTRON - network_homing: - type: org.openecomp.datatypes.EcompHoming - capabilities: - virtual_linkable: - type: tosca.capabilities.network.Linkable - occurrences: - - 1 - - UNBOUNDED - org.openecomp.resource.cp.OntNni: - derived_from: tosca.nodes.nfv.VduCp - properties: - ont_port: - type: string - required: true - requirements: - - virtual_link: - capability: tosca.capabilities.nfv.VirtualLinkable - relationship: tosca.relationships.nfv.VirtualLinksTo - node: tosca.nodes.nfv.VnfVirtualLink - - virtual_binding: - capability: tosca.capabilities.nfv.VirtualBindable - relationship: tosca.relationships.nfv.VirtualBindsTo - node: org.openecomp.resource.vfc.OntPnf - tosca.nodes.nfv.Cp: - derived_from: tosca.nodes.Root - description: Provides information regarding the purpose of the connection point - properties: - layer_protocols: - type: list - description: Identifies which protocol the connection point uses for connectivity purposes - required: true - entry_schema: - type: string - constraints: - - valid_values: - - ethernet - - mpls - - odu2 - - ipv4 - - ipv6 - - pseudo-wire - role: - type: string - description: Identifies the role of the port in the context of the traffic flow patterns in the VNF or parent NS - required: false - constraints: - - valid_values: - - root - - leaf - description: - type: string - description: Provides human-readable information on the purpose of the connection point - required: false - protocol: - type: list - description: Provides information on the addresses to be assigned to the connection point(s) instantiated from this Connection Point Descriptor - required: false - entry_schema: - type: tosca.datatypes.nfv.CpProtocolData - trunk_mode: - type: boolean - description: Provides information about whether the CP instantiated from this Cp is in Trunk mode (802.1Q or other), When operating in "trunk mode", the Cp is capable of carrying traffic for several VLANs. Absence of this property implies that trunkMode is not configured for the Cp i.e. It is equivalent to boolean value "false". - required: false - allowed_address_data: - type: tosca.datatypes.nfv.AddressData - required: false - tosca.nodes.nfv.VNF: - derived_from: tosca.nodes.Root - description: The generic abstract type from which all VNF specific abstract node types shall be derived to form, together with other node types, the TOSCA service template(s) representing the VNFD - properties: - descriptor_id: - type: string - description: Globally unique identifier of the VNFD - required: true - descriptor_version: - type: string - description: Identifies the version of the VNFD - required: true - provider: - type: string - description: Provider of the VNF and of the VNFD - required: true - product_name: - type: string - description: Human readable name for the VNF Product - required: true - software_version: - type: string - description: Software version of the VNF - required: true - product_info_name: - type: string - description: Human readable name for the VNF Product - required: false - product_info_description: - type: string - description: Human readable description of the VNF Product - required: false - vnfm_info: - type: list - required: true - description: Identifies VNFM(s) compatible with the VNF - entry_schema: - type: string - localization_languages: - type: list - description: Information about localization languages of the VNF - required: false - entry_schema: - type: string - default_localization_language: - type: string - description: Default localization language that is instantiated if no information about selected localization language is available - required: false - lcm_operations_configuration: - type: tosca.datatypes.nfv.VnfLcmOperationsConfiguration - description: Describes the configuration parameters for the VNF LCM operations - required: false - monitoring_parameters: - type: list - entry_schema: - type: tosca.datatypes.nfv.VnfMonitoringParameter - description: Describes monitoring parameters applicable to the VNF. - required: false - flavour_id: - type: string - description: Identifier of the Deployment Flavour within the VNFD - required: true - flavour_description: - type: string - description: Human readable description of the DF - required: true - requirements: - - virtual_link: - capability: tosca.capabilities.nfv.VirtualLinkable - relationship: tosca.relationships.nfv.VirtualLinksTo - occurrences: - - 0 - - 1 - interfaces: - Vnflcm: - type: tosca.interfaces.nfv.Vnflcm - org.openecomp.resource.vl.underlayvpn: - derived_from: tosca.nodes.Root - description: undelay vpn type definitions - properties: - id: - type: string - required: false - template_name: - type: string - required: false - version: - type: string - required: false - vendor: - type: string - required: false - template_author: - type: string - required: false - name: - type: string - required: false - description: - type: string - required: false - serviceType: - type: string - description: type of VPN service - required: false - default: l3vpn_sptn - topology: - type: string - description: type of VPN topology - constraints: - - valid_values: - - full-mesh - - point_to_multipoint - - point_to_point - - singlePoint - - hubspoke - - hubspoke_via_hubce - - hubspoke_disjoint - - ADD_DROP_Z - required: false - default: full-mesh - technology: - type: string - description: type of VPN technology - constraints: - - valid_values: - - mpls - - rosen multivpn - - vxlan overlay l3vpn - - eth over sdh - - vlan - required: false - default: mpls - site1_name: - type: string - description: name of first site - required: false - site2_name: - type: string - description: name of second site - required: false - sna1_name: - type: string - description: name of site network accesses associated with the site1 - required: false - sna2_name: - type: string - description: name of site network accesses associated with the site2 - required: false - pe1_id: - type: string - description: id of provider edge1, it can be name or ip or uuid - required: false - pe2_id: - type: string - description: id of provider edge2, it can be name or ip or uuid - required: false - ac1_id: - type: string - description: id of attachment circuit1, it can be port name or uuid - required: false - ac1_svlan: - type: integer - description: ac1 svlan - required: false - ac1_ip: - type: string - description: ip of ac1, only for layer3 vpn, it should contain mask - required: false - ac1_peer_ip: - type: string - description: ip of ac1 peer CE tp, only for layer3 vpn, it should contain mask - required: false - ac1_route: - type: string - description: route configure of ac1, only for layer3 vpn - required: false - ac1_protocol: - type: string - description: routing protocol type of ac1, only for layer3 vpn - constraints: - - valid_values: - - STATIC - - OSPF - - ISIS - - BGP - - other - required: false - ac1_protocol_bgp_as: - type: string - description: autonomous-system number of ac1, , only required for ebgp protocol - required: false - ac2_id: - type: string - description: id of attachment circuit2, it can be port name or uuid - required: false - ac2_svlan: - type: integer - description: ac2 svlan - required: false - ac2_ip: - type: string - description: ip of ac2, only for layer3 vpn, it should contain mask - required: false - ac2_peer_ip: - type: string - description: ip of ac2 peer CE tp, only for layer3 vpn, it should contain mask - required: false - ac2_route: - type: string - description: route configure of ac2, only for layer3 vpn - required: false - ac2_protocol: - type: string - description: routing protocol type of ac2, only for layer3 vpn - constraints: - - valid_values: - - STATIC - - OSPF - - ISIS - - BGP - - other - default: STATIC - required: false - ac2_protocol_bgp_as: - type: string - description: autonomous-system number of ac2, , only required for ebgp protocol - required: false - af_type: - type: string - description: address family type - default: ipv4 - required: false - requirements: - - virtualLink: - capability: tosca.capabilities.network.Linkable - relationship: tosca.relationships.network.LinksTo - capabilities: - virtual_linkable: - type: tosca.capabilities.network.Linkable - tosca.nodes.nfv.ext.zte.CP: - derived_from: tosca.nodes.Root - properties: - guest_os_mtu: - type: integer - required: false - bandwidth: - type: integer - required: false - interface_name: - type: string - required: false - allowed_address_pairs: - type: list - required: false - entry_schema: - type: tosca.datatypes.nfv.ext.AddressPairs - ip_address: - type: string - required: false - bond: - type: string - required: false - proxiedVNFs: - type: list - required: false - entry_schema: - type: string - sfc_encapsulation: - type: string - required: false - floating_ip_address: - type: tosca.datatypes.nfv.ext.FloatingIP - required: false - service_ip_address: - required: false - type: string - mac_address: - type: string - required: false - proxiedVNFtype: - type: string - required: false - macbond: - type: string - required: false - vnic_type: - type: string - required: false - direction: - type: string - required: false - order: - type: integer - required: false - requirements: - - forwarder: - capability: tosca.capabilities.nfv.Forwarder - occurrences: - - 0 - - UNBOUNDED - - virtualbinding: - capability: tosca.capabilities.nfv.VirtualBindable - occurrences: - - 0 - - UNBOUNDED - - virtualLink: - capability: tosca.capabilities.nfv.VirtualLinkable - occurrences: - - 0 - - UNBOUNDED - capabilities: - forwarder: - type: tosca.capabilities.nfv.Forwarder - org.openecomp.resource.vfc.NSD: - derived_from: tosca.nodes.Root - description: ECOMP Allotted Resource base type all other allotted resources node types derive from - properties: - nsd_id: - type: string - required: true - description: ID of the NSD - nsd_designer: - type: string - required: true - description: Designer of the NSD - nsd_version: - type: string - required: true - description: Version of the NSD - nsd_name: - type: string - required: true - description: Name of the NSD - providing_service_uuid: - type: string - required: true - description: The depending service uuid in order to map the allotted resource to the specific service version - providing_service_invariant_uuid: - type: string - required: true - description: The depending service invariant uuid in order to map the allotted resource to the specific service version - providing_service_name: - type: string - required: true - description: The depending service name in order to map the allotted resource to the specific service version - requirements: - - virtualLink: - capability: tosca.capabilities.network.Linkable - relationship: tosca.relationships.network.LinksTo - capabilities: - virtual_linkable: - type: tosca.capabilities.network.Linkable diff --git a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/policies.yml b/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/policies.yml deleted file mode 100644 index 4bef4e92..00000000 --- a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/policies.yml +++ /dev/null @@ -1,492 +0,0 @@ -# -# 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. -# -tosca_definitions_version: tosca_simple_yaml_1_1 -imports: -- data.yml -policy_types: - tosca.policies.Root: - description: The TOSCA Policy Type all other TOSCA Policy Types derive from - tosca.policies.Placement: - derived_from: tosca.policies.Root - description: The TOSCA Policy Type definition that is used to govern placement of TOSCA nodes or groups of nodes. - tosca.policies.Scaling: - derived_from: tosca.policies.Root - description: The TOSCA Policy Type definition that is used to govern scaling of TOSCA nodes or groups of nodes. - tosca.policies.Update: - derived_from: tosca.policies.Root - description: The TOSCA Policy Type definition that is used to govern update of TOSCA nodes or groups of nodes. - tosca.policies.Performance: - derived_from: tosca.policies.Root - description: The TOSCA Policy Type definition that is used to declare performance requirements for TOSCA nodes or groups of nodes. - org.openecomp.policies.placement.Antilocate: - derived_from: tosca.policies.Placement - description: My placement policy for separation based upon container type value - properties: - name: - type: string - description: The name of the policy - required: false - status: SUPPORTED - container_type: - type: string - description: container type - required: false - status: SUPPORTED - constraints: - - valid_values: - - host - - region - - compute - org.openecomp.policies.placement.Colocate: - derived_from: tosca.policies.Placement - description: Keep associated nodes (groups of nodes) based upon affinity value - properties: - name: - type: string - description: The name of the policy - required: false - status: SUPPORTED - affinity: - type: string - description: affinity - required: true - status: SUPPORTED - constraints: - - valid_values: - - host - - region - - compute - org.openecomp.policies.placement.valet.Diversity: - derived_from: tosca.policies.Placement - description: Valet Diversity - properties: - level: - type: string - description: diversity - required: false - default: host - status: SUPPORTED - constraints: - - valid_values: - - host - - rack - org.openecomp.policies.placement.valet.Exclusivity: - derived_from: tosca.policies.Placement - description: Valet Exclusivity - properties: - level: - type: string - description: exclusivity - required: false - default: host - status: SUPPORTED - constraints: - - valid_values: - - host - - rack - org.openecomp.policies.placement.valet.Affinity: - derived_from: tosca.policies.Placement - description: Valet Affinity - properties: - level: - type: string - description: affinity - required: false - default: host - status: SUPPORTED - constraints: - - valid_values: - - host - - rack - org.openecomp.policies.scaling.Fixed: - derived_from: tosca.policies.Scaling - properties: - quantity: - description: the exact number of instances to keep up - type: integer - required: true - org.openecomp.policies.External: - derived_from: tosca.policies.Root - description: externally managed policy (for example, type="network assignment", source="Policy Manager", name="route target") - properties: - source: - type: string - description: The name of the server that exposes the policy with predefined type and name. - required: false - type: - type: string - description: The type (category) of the policy same as it is defined in the source. - required: false - name: - type: string - description: The name of the policy, that related to specific type, same as it is defined in the source. - required: false - onap.policies.Monitoring: - derived_from: tosca.policies.Root - description: A base policy type for all policies that governs monitoring provisioning - onap.policies.monitoring.cdap.tca.hi.lo.app: - derived_from: onap.policies.Monitoring - version: 1.0.0 - properties: - tca_policy: - type: map - description: TCA Policy JSON - entry_schema: - type: onap.datatypes.monitoring.tca_policy - tosca.policies.nfv.InstantiationLevels: - derived_from: tosca.policies.Root - description: The InstantiationLevels type is a policy type representing all the instantiation levels of resources to be instantiated within a deployment flavour and including default instantiation level in term of the number of VNFC instances to be created as defined in ETSI GS NFV-IFA 011 [1]. - properties: - levels: - type: map - description: Describes the various levels of resources that can be used to instantiate the VNF using this flavour. - required: true - entry_schema: - type: tosca.datatypes.nfv.InstantiationLevel - default_level: - type: string - description: The default instantiation level for this flavour. - required: false - tosca.policies.nfv.VduInstantiationLevels: - derived_from: tosca.policies.Root - description: The VduInstantiationLevels type is a policy type representing all the instantiation levels of resources to be instantiated within a deployment flavour in term of the number of VNFC instances to be created from each vdu.Compute. as defined in ETSI GS NFV-IFA 011 [1] - properties: - levels: - type: map - description: Describes the Vdu.Compute levels of resources that can be used to instantiate the VNF using this flavour - required: true - entry_schema: - type: tosca.datatypes.nfv.VduLevel - targets: - - tosca.nodes.nfv.Vdu.Compute - tosca.policies.nfv.VirtualLinkInstantiationLevels: - derived_from: tosca.policies.Root - description: The VirtualLinkInstantiationLevels type is a policy type representing all the instantiation levels of virtual link resources to be instantiated within a deployment flavour as defined in ETSI GS NFV-IFA 011 [1]. - properties: - levels: - type: map - description: Describes the virtual link levels of resources that can be used to instantiate the VNF using this flavour. - required: true - entry_schema: - type: tosca.datatypes.nfv.VirtualLinkBitrateLevel - targets: - - tosca.nodes.nfv.VnfVirtualLink - tosca.policies.nfv.ScalingAspects: - derived_from: tosca.policies.Root - description: The ScalingAspects type is a policy type representing the scaling aspects used for horizontal scaling as defined in ETSI GS NFV-IFA 011 [1]. - properties: - aspects: - type: map - description: Describe maximum scale level for total number of scaling steps that can be applied to a particular aspect - required: true - entry_schema: - type: tosca.datatypes.nfv.ScalingAspect - tosca.policies.nfv.VduScalingAspectDeltas: - derived_from: tosca.policies.Root - description: The VduScalingAspectDeltas type is a policy type representing the Vdu.Compute detail of an aspect deltas used for horizontal scaling, as defined in ETSI GS NFV-IFA 011 [1]. - properties: - aspect: - type: string - description: Represents the scaling aspect to which this policy applies - required: true - deltas: - type: map - description: Describes the Vdu.Compute scaling deltas to be applied for every scaling steps of a particular aspect. - required: true - entry_schema: - type: tosca.datatypes.nfv.VduLevel - targets: - - tosca.nodes.nfv.Vdu.Compute - tosca.policies.nfv.VirtualLinkBitrateScalingAspectDeltas: - derived_from: tosca.policies.Root - description: The VirtualLinkBitrateScalingAspectDeltas type is a policy type representing the VnfVirtualLink detail of an aspect deltas used for horizontal scaling, as defined in ETSI GS NFV-IFA 011 [1]. - properties: - aspect: - type: string - description: Represents the scaling aspect to which this policy applies. - required: true - deltas: - type: map - description: Describes the VnfVirtualLink scaling deltas to be applied for every scaling steps of a particular aspect. - required: true - entry_schema: - type: tosca.datatypes.nfv.VirtualLinkBitrateLevel - targets: - - tosca.nodes.nfv.VnfVirtualLink - tosca.policies.nfv.VduInitialDelta: - derived_from: tosca.policies.Root - description: The VduInitialDelta type is a policy type representing the Vdu.Compute detail of an initial delta used for horizontal scaling, as defined in ETSI GS NFV-IFA 011 [1]. - properties: - initial_delta: - type: tosca.datatypes.nfv.VduLevel - description: Represents the initial minimum size of the VNF. - required: true - targets: - - tosca.nodes.nfv.Vdu.Compute - tosca.policies.nfv.VirtualLinkBitrateInitialDelta: - derived_from: tosca.policies.Root - description: The VirtualLinkBitrateInitialDelta type is a policy type representing the VnfVirtualLink detail of an initial deltas used for horizontal scaling, as defined in ETSI GS NFV-IFA 011 [1]. - properties: - initial_delta: - type: tosca.datatypes.nfv.VirtualLinkBitrateLevel - description: Represents the initial minimum size of the VNF. - required: true - targets: - - tosca.nodes.nfv.VnfVirtualLink - tosca.policies.nfv.SecurityGroupRule: - derived_from: tosca.policies.Root - description: The SecurityGroupRule type is a policy type specified the matching criteria for the ingress and/or egress traffic to/from visited connection points as defined in ETSI GS NFV-IFA 011 [1]. - properties: - description: - type: string - description: Human readable description of the security group rule. - required: false - direction: - type: string - description: The direction in which the security group rule is applied. The direction of 'ingress' or 'egress' is specified against the associated CP. I.e., 'ingress' means the packets entering a CP, while 'egress' means the packets sent out of a CP. - required: false - constraints: - - valid_values: - - ingress - - egress - default: ingress - ether_type: - type: string - description: Indicates the protocol carried over the Ethernet layer. - required: false - constraints: - - valid_values: - - ipv4 - - ipv6 - default: ipv4 - protocol: - type: string - description: Indicates the protocol carried over the IP layer. Permitted values include any protocol defined in the IANA protocol registry, e.g. TCP, UDP, ICMP, etc. - required: false - constraints: - - valid_values: - - hopopt - - icmp - - igmp - - ggp - - ipv4 - - st - - tcp - - cbt - - egp - - igp - - bbn_rcc_mon - - nvp_ii - - pup - - argus - - emcon - - xnet - - chaos - - udp - - mux - - dcn_meas - - hmp - - prm - - xns_idp - - trunk_1 - - trunk_2 - - leaf_1 - - leaf_2 - - rdp - - irtp - - iso_tp4 - - netblt - - mfe_nsp - - merit_inp - - dccp - - 3pc - - idpr - - xtp - - ddp - - idpr_cmtp - - tp++ - - il - - ipv6 - - sdrp - - ipv6_route - - ipv6_frag - - idrp - - rsvp - - gre - - dsr - - bna - - esp - - ah - - i_nlsp - - swipe - - narp - - mobile - - tlsp - - skip - - ipv6_icmp - - ipv6_no_nxt - - ipv6_opts - - cftp - - sat_expak - - kryptolan - - rvd - - ippc - - sat_mon - - visa - - ipcv - - cpnx - - cphb - - wsn - - pvp - - br_sat_mon - - sun_nd - - wb_mon - - wb_expak - - iso_ip - - vmtp - - secure_vmtp - - vines - - ttp - - iptm - - nsfnet_igp - - dgp - - tcf - - eigrp - - ospfigp - - sprite_rpc - - larp - - mtp - - ax.25 - - ipip - - micp - - scc_sp - - etherip - - encap - - gmtp - - ifmp - - pnni - - pim - - aris - - scps - - qnx - - a/n - - ip_comp - - snp - - compaq_peer - - ipx_in_ip - - vrrp - - pgm - - l2tp - - ddx - - iatp - - stp - - srp - - uti - - smp - - sm - - ptp - - isis - - fire - - crtp - - crudp - - sscopmce - - iplt - - sps - - pipe - - sctp - - fc - - rsvp_e2e_ignore - - mobility - - udp_lite - - mpls_in_ip - - manet - - hip - - shim6 - - wesp - - rohc - default: tcp - port_range_min: - type: integer - description: Indicates minimum port number in the range that is matched by the security group rule. If a value is provided at design-time, this value may be overridden at run-time based on other deployment requirements or constraints. - required: false - constraints: - - greater_or_equal: 0 - - less_or_equal: 65535 - default: 0 - port_range_max: - type: integer - description: Indicates maximum port number in the range that is matched by the security group rule. If a value is provided at design-time, this value may be overridden at run-time based on other deployment requirements or constraints. - required: false - constraints: - - greater_or_equal: 0 - - less_or_equal: 65535 - default: 65535 - targets: - - tosca.nodes.nfv.VduCp - - tosca.nodes.nfv.VnfExtCp - tosca.policies.nfv.SupportedVnfInterface: - derived_from: tosca.policies.Root - description: this policy type represents interfaces produced by a VNF, the details to access them and the applicable connection points to use to access these interfaces - properties: - interface_name: - type: string - description: Identifies an interface produced by the VNF. - required: true - constraints: - - valid_values: - - vnf_indicator - - vnf_configuration - details: - type: tosca.datatypes.nfv.InterfaceDetails - description: Provide additional data to access the interface endpoint - required: false - targets: - - tosca.nodes.nfv.VnfExtCp - - tosca.nodes.nfv.VduCp - tosca.policies.nfv.AffinityRule: - derived_from: tosca.policies.Placement - description: The AffinityRule describes the affinity rules applicable for the defined targets - properties: - scope: - type: string - description: scope of the rule is an NFVI_node, an NFVI_PoP, etc. - required: true - constraints: - - valid_values: - - nfvi_node - - zone - - zone_group - - nfvi_pop - targets: - - tosca.nodes.nfv.Vdu.Compute - - tosca.nodes.nfv.VnfVirtualLink - - tosca.groups.nfv.PlacementGroup - tosca.policies.nfv.AntiAffinityRule: - derived_from: tosca.policies.Placement - description: The AntiAffinityRule describes the anti-affinity rules applicable for the defined targets - properties: - scope: - type: string - description: scope of the rule is an NFVI_node, an NFVI_PoP, etc. - required: true - constraints: - - valid_values: - - nfvi_node - - zone - - zone_group - - nfvi_pop - targets: - - tosca.nodes.nfv.Vdu.Compute - - tosca.nodes.nfv.VnfVirtualLink - - tosca.groups.nfv.PlacementGroup diff --git a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/relationships.yml b/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/relationships.yml deleted file mode 100644 index fe4b9880..00000000 --- a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/relationships.yml +++ /dev/null @@ -1,149 +0,0 @@ -# -# 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. -# -tosca_definitions_version: tosca_simple_yaml_1_1 -imports: -- capabilities.yml -- data.yml -- interfaces.yml -relationship_types: - tosca.relationships.Root: - description: This is the default (root) TOSCA Relationship Type definition that all other TOSCA Relationship Types derive from. - attributes: - tosca_id: - description: A unique identifier of the realized instance of a Relationship Template that derives from any TOSCA normative type. - type: string - tosca_name: - description: This attribute reflects the name of the Relationship Template as defined in the TOSCA service template. This name is not unique to the realized instance model of corresponding deployed application as each template in the model can result in one or more instances (e.g., scaled) when orchestrated to a provider environment. - type: string - state: - description: The state of the relationship instance. - type: string - default: initial - interfaces: - Configure: - type: tosca.interfaces.relationship.Configure - tosca.relationships.ConnectsTo: - derived_from: tosca.relationships.Root - description: This type represents a network connection relationship between two nodes. - valid_target_types: - - tosca.capabilities.Endpoint - properties: - credential: - type: tosca.datatypes.Credential - required: false - tosca.relationships.RoutesTo: - derived_from: tosca.relationships.ConnectsTo - description: This type represents an intentional network routing between two Endpoints in different networks. - valid_target_types: - - tosca.capabilities.Endpoint - tosca.relationships.AttachesTo: - derived_from: tosca.relationships.Root - description: This type represents an attachment relationship between two nodes. For example, an AttachesTo relationship type would be used for attaching a storage node to a Compute node. - valid_target_types: - - tosca.capabilities.Attachment - properties: - location: - description: 'The relative location (e.g., path on the file system), which - provides the root location to address an attached node. e.g., a mount point - / path such as ''/usr/data''. Note: The user must provide it and it cannot - be "root".' - type: string - constraints: - - min_length: 1 - device: - description: The logical device name which for the attached device (which is represented by the target node in the model). e.g., '/dev/hda1'. - type: string - required: false - attributes: - device: - description: 'The logical name of the device as exposed to the instance. Note: - A runtime property that gets set when the model gets instantiated by the - orchestrator.' - type: string - tosca.relationships.HostedOn: - derived_from: tosca.relationships.Root - description: This type represents a hosting relationship between two nodes. - valid_target_types: - - tosca.capabilities.Container - tosca.relationships.DependsOn: - derived_from: tosca.relationships.Root - description: This type represents a general dependency relationship between two nodes. - valid_target_types: - - tosca.capabilities.Node - tosca.relationships.network.LinksTo: - derived_from: tosca.relationships.DependsOn - description: This relationship type represents an association relationship between Port and Network node types. - valid_target_types: - - tosca.capabilities.network.Linkable - tosca.relationships.network.BindsTo: - derived_from: tosca.relationships.DependsOn - description: This type represents a network association relationship between Port and Compute node types. - valid_target_types: - - tosca.capabilities.network.Bindable - org.openecomp.relationships.AttachesTo: - derived_from: tosca.relationships.AttachesTo - description: This type represents an attachment relationship - properties: - location: - description: The relative location (e.g., path on the file system), which provides the root location to address an attached node. - type: string - status: SUPPORTED - required: false - org.openecomp.relationships.VolumeAttachesTo: - derived_from: org.openecomp.relationships.AttachesTo - description: This type represents an attachment relationship for associating volume - properties: - volume_id: - description: The ID of the volume to be attached - type: string - status: SUPPORTED - required: true - instance_uuid: - description: The ID of the server to which the volume attaches - type: string - status: SUPPORTED - required: true - attributes: - show: - description: Detailed information about resource - type: string - status: SUPPORTED - org.openecomp.relationships.ForwardsTo: - derived_from: tosca.relationships.Root - valid_target_types: - - org.openecomp.capabilities.Forwarder - org.openecomp.relationships.AssignsTo: - derived_from: tosca.relationships.Root - org.openecomp.relationships.RoutesTo: - derived_from: tosca.relationships.RoutesTo - description: This type represents an intentional network routing between internal and external network - tosca.relationships.nfv.VirtualBindsTo: - derived_from: tosca.relationships.DependsOn - description: Represents an association relationship between Vdu.Compute and VduCp node types - valid_target_types: - - tosca.capabilities.nfv.VirtualBindable - tosca.relationships.nfv.VirtualLinksTo: - derived_from: tosca.relationships.DependsOn - description: Represents an association relationship between the VduCp and VnfVirtualLink node types - valid_target_types: - - tosca.capabilities.nfv.VirtualLinkable - tosca.relationships.nfv.AttachesTo: - derived_from: tosca.relationships.Root - description: Represents an association relationship between the Vdu.Compute and one of the node types, Vdu.VirtualBlockStorage, Vdu.VirtualObjectStorage or Vdu.VirtualFileStorage - valid_target_types: - - tosca.capabilities.nfv.VirtualStorage - tosca.relationships.nfv.Vdu.AttachedTo: - derived_from: tosca.relationships.DependsOn - valid_target_types: - - tosca.capabilities.nfv.VirtualStorage diff --git a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/resource-Extneutroncp-template.yml b/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/resource-Extneutroncp-template.yml deleted file mode 100644 index b51a72f9..00000000 --- a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/resource-Extneutroncp-template.yml +++ /dev/null @@ -1,182 +0,0 @@ -tosca_definitions_version: tosca_simple_yaml_1_1 -metadata: - invariantUUID: 3fed24ab-7a60-40cd-a52b-520df0d743e8 - UUID: e3334a40-6ede-4d38-975b-705e9cb99d2f - name: extNeutronCP - description: The AT&T Connection Point base type all other CP derive from - type: CP - category: Generic - subcategory: Network Elements - resourceVendor: ONAP (Tosca) - resourceVendorRelease: 1.0.0.wd03 - resourceVendorModelNumber: '' -imports: -- nodes: - file: nodes.yml -- datatypes: - file: data.yml -- capabilities: - file: capabilities.yml -- relationships: - file: relationships.yml -- groups: - file: groups.yml -- policies: - file: policies.yml -- annotations: - file: annotations.yml -node_types: - org.openecomp.resource.cp.v2.extNeutronCP: - derived_from: org.openecomp.resource.cp.v2.extCP - description: The AT&T Connection Point base type all other CP derive from - properties: - port_security_enabled: - type: boolean - description: Flag to enable/disable port security on the network - required: false - qos_policy: - type: string - description: The name or ID of QoS policy to attach to this network - required: false - allowed_address_pairs: - type: list - description: Additional MAC/IP address pairs allowed to pass through the port - required: false - entry_schema: - type: org.openecomp.datatypes.heat.network.AddressPair - binding:vnic_type: - type: string - description: The vnic type to be bound on the neutron port - required: false - value_specs: - default: { - } - type: map - description: Extra parameters to include in the request - required: false - entry_schema: - type: string - related_networks: - type: list - description: Related Networks List. - required: false - entry_schema: - type: org.openecomp.datatypes.network.RelatedNetworksAssignments - network: - type: string - description: Network this port belongs to - required: false - mac_requirements: - default: - mac_count_required: - is_required: false - type: org.openecomp.datatypes.network.MacRequirements - description: identifies MAC address assignments to the CP - required: false - mac_address: - type: string - description: MAC address to give to this port - required: false - ip_range_start: - type: string - required: false - admin_state_up: - default: true - type: boolean - description: A boolean value specifying the administrative status of the network - required: false - exCP_naming: - default: - ecomp_generated_naming: true - type: org.openecomp.datatypes.Naming - required: false - order: - type: integer - description: The order of the CP on the compute instance (e.g. eth2). - required: true - subnetpoolid: - type: string - required: false - device_id: - type: string - description: Device ID of this port - required: false - ip_range_end: - type: string - required: false - ip_address: - type: string - required: false - is_default: - default: false - type: boolean - required: false - device_owner: - type: string - description: Name of the network owning the port - required: false - ip_requirements: - type: list - description: identifies IP requirements to the CP - required: true - entry_schema: - type: org.openecomp.datatypes.network.IpRequirements - replacement_policy: - default: AUTO - type: string - description: Policy on how to respond to a stack-update for this resource - required: false - network_role: - type: string - description: identical to VL network_role - required: true - security_groups: - type: list - description: List of security group names or IDs - required: false - entry_schema: - type: string - fixed_ips: - type: list - description: Desired IPs for this port - required: false - entry_schema: - type: org.openecomp.datatypes.heat.neutron.port.FixedIps - subinterface_indicator: - default: false - type: boolean - description: identifies if Port is having Sub Interface - required: false - name: - type: string - description: A symbolic name for this port - required: false - vlan_requirements: - type: list - description: identifies vlan address assignments to the CP - required: false - entry_schema: - type: org.openecomp.datatypes.network.VlanRequirements - network_role_tag: - type: string - description: Must correlate to the set of defined network-role tag identifiers from the associated HEAT template - required: true - interfaces: - Standard: - type: tosca.interfaces.node.lifecycle.Standard - capabilities: - attachment: - type: tosca.capabilities.Attachment - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - binding: - type: tosca.capabilities.network.Bindable - occurrences: - - 0 - - UNBOUNDED - valid_source_types: - - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface - - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface diff --git a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/resource-Manualdistributiontestvsp-template-interface.yml b/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/resource-Manualdistributiontestvsp-template-interface.yml deleted file mode 100644 index 6d4cd7b3..00000000 --- a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/resource-Manualdistributiontestvsp-template-interface.yml +++ /dev/null @@ -1,1863 +0,0 @@ -tosca_definitions_version: tosca_simple_yaml_1_1 -imports: -- nodes: - file: nodes.yml -- datatypes: - file: data.yml -- capabilities: - file: capabilities.yml -- relationships: - file: relationships.yml -- groups: - file: groups.yml -- policies: - file: policies.yml -- annotations: - file: annotations.yml -node_types: - org.openecomp.resource.vf.Manualdistributiontestvnf: - derived_from: org.openecomp.resource.abstract.nodes.VF - properties: - vf_module_id: - default: AFRMODULEID - type: string - description: The vFirewall Module ID is provided by ONAP - required: false - nf_naming: - default: - ecomp_generated_naming: true - type: org.openecomp.datatypes.Naming - required: false - skip_post_instantiation_configuration: - default: true - type: boolean - required: false - multi_stage_design: - default: 'false' - type: string - required: false - simple_key: - default: afr-key - type: string - description: Name of key-pair to be used for compute instance - required: false - ves_ip: - default: 172.26.10.19 - type: string - description: public ves_ip - required: false - nf_function: - type: string - required: false - nf_naming_code: - type: string - required: false - node_ip: - default: 172.26.10.27 - type: string - description: public ves_ip - required: false - simple_flavor_name: - default: m1.small - type: string - description: Type of instance (flavor) to be used - required: false - availability_zone_max_count: - default: 1 - type: integer - required: false - sdnc_artifact_name: - type: string - required: false - public_net_id: - default: nova_floating - type: string - description: public NetId - required: false - max_instances: - type: integer - required: false - nf_type: - type: string - required: false - simple_image_name: - default: UBUNTU16 - type: string - description: Image to be used for compute instance - required: false - sdnc_model_version: - type: string - required: false - vnf_id: - default: VESMED - type: string - description: The VNF ID is provided by ONAP - required: false - simple_netid: - default: onap_vip - type: string - description: netid - required: false - nf_role: - type: string - required: false - simple_name_0: - default: SIMPLEUBU - type: string - description: Name of key-pair to be used for compute instance - required: false - min_instances: - type: integer - required: false - sdnc_model_name: - type: string - required: false - capabilities: - abstract_simple.disk.write.requests_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: request - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of write requests - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.network.incoming.packets.rate_simple_simple_private_port: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: packet/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of incoming packets - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: network - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.memory_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: MB - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Volume of RAM allocated to the instance - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.disk.root.size_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: GB - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Size of root disk - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.network.outpoing.packets_simple_simple_private_port: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: packet - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of outgoing packets - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: network - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.disk.capacity_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: The amount of disk that the instance can see - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.disk.device.allocation_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: The amount of disk per device occupied by the instance on the host machine - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.disk.device.write.requests.rate_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: request/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of write requests - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.binding_simple: - type: tosca.capabilities.network.Bindable - occurrences: - - 0 - - UNBOUNDED - valid_source_types: [ - ] - abstract_simple.network.incoming.bytes.rate_simple_simple_private_port: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of incoming bytes - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: network - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.cpu_util_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: '%' - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average CPU utilization - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.disk.read.bytes_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Volume of reads - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.disk.write.bytes_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Volume of writes - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.disk.write.requests.rate_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: request/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of write requests - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.network.incoming.bytes_simple_simple_private_port: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of incoming bytes - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: network - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.disk.latency_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: ms - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average disk latency - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.disk.device.write.requests_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: request - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of write requests - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.disk.device.iops_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: count/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average disk iops per device - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.disk.device.latency_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: ms - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average disk latency per device - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.disk.device.write.bytes.rate_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of writes - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.port_mirroring_simple_simple_private_port: - type: org.openecomp.capabilities.PortMirroring - occurrences: - - 0 - - UNBOUNDED - valid_source_types: [ - ] - properties: - connection_point: - default: - network_role: - get_input: port_simple_private_port_network_role - nfc_naming_code: simple - type: org.openecomp.datatypes.PortMirroringConnectionPointDescription - required: false - abstract_simple.memory.resident_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: MB - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Volume of RAM used by the instance on the physical machine - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.disk.read.bytes.rate_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of reads - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.disk.device.read.bytes_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Volume of reads - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.network.outgoing.bytes.rate_simple_simple_private_port: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of outgoing bytes - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: network - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.disk.device.read.requests_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: request - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of read requests - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.disk.write.bytes.rate_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of writes - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.binding_simple_simple_private_port: - type: tosca.capabilities.network.Bindable - occurrences: - - 0 - - UNBOUNDED - valid_source_types: - - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface - - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface - abstract_simple.feature_simple_simple_private_port: - type: tosca.capabilities.Node - occurrences: - - 0 - - UNBOUNDED - valid_source_types: [ - ] - abstract_simple.disk.read.requests_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: request - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of read requests - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.disk.device.read.bytes.rate_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of reads - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.network.outgoing.bytes_simple_simple_private_port: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of outgoing bytes - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: network - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.network.incoming.packets_simple_simple_private_port: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: packet - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of incoming packets - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: network - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.disk.allocation_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: The amount of disk occupied by the instance on the host machine - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.endpoint_simple: - type: tosca.capabilities.Endpoint.Admin - occurrences: - - 0 - - UNBOUNDED - valid_source_types: [ - ] - properties: - secure: - default: true - type: boolean - required: false - abstract_simple.forwarder_simple_simple_private_port: - type: org.openecomp.capabilities.Forwarder - occurrences: - - 0 - - UNBOUNDED - valid_source_types: [ - ] - abstract_simple.disk.device.write.bytes_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Volume of writes - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.memory.usage_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: MB - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Volume of RAM used by the instance from the amount of its allocated memory - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.cpu.delta_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: ns - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: CPU time used since previous datapoint - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Delta - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.host_simple: - type: tosca.capabilities.Container - occurrences: - - 0 - - UNBOUNDED - valid_source_types: - - tosca.nodes.SoftwareComponent - properties: - num_cpus: - type: integer - required: false - disk_size: - type: scalar-unit.size - required: false - cpu_frequency: - type: scalar-unit.frequency - required: false - mem_size: - type: scalar-unit.size - required: false - abstract_simple.scalable_simple: - type: tosca.capabilities.Scalable - occurrences: - - 0 - - UNBOUNDED - valid_source_types: [ - ] - properties: - max_instances: - default: 1 - type: integer - required: false - min_instances: - default: 1 - type: integer - required: false - default_instances: - type: integer - required: false - abstract_simple.instance_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: instance - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Existence of instance - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.attachment_simple_simple_private_port: - type: tosca.capabilities.Attachment - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - abstract_simple.cpu_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: ns - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: CPU time used - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.os_simple: - type: tosca.capabilities.OperatingSystem - occurrences: - - 0 - - UNBOUNDED - valid_source_types: [ - ] - properties: - distribution: - type: string - required: false - type: - type: string - required: false - version: - type: version - required: false - architecture: - type: string - required: false - abstract_simple.disk.device.usage_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: The physical size in bytes of the image container on the host per device - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.disk.usage_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: The physical size in bytes of the image container on the host - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.vcpus_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: vcpu - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of virtual CPUs allocated to the instance - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.disk.device.read.requests.rate_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: request/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of read requests - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.disk.ephemeral.size_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: GB - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Size of ephemeral disk - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.feature_simple: - type: tosca.capabilities.Node - occurrences: - - 0 - - UNBOUNDED - valid_source_types: [ - ] - abstract_simple.disk.iops_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: count/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average disk iops - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.disk.device.capacity_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: The amount of disk per device that the instance can see - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - abstract_simple.network.outgoing.packets.rate_simple_simple_private_port: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: packet/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of outgoing packets - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: network - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - requirements: - - abstract_simple.dependency_simple: - occurrences: - - 0 - - UNBOUNDED - capability: tosca.capabilities.Node - node: tosca.nodes.Root - relationship: tosca.relationships.DependsOn - - abstract_simple.dependency_simple_simple_private_port: - occurrences: - - 0 - - UNBOUNDED - capability: tosca.capabilities.Node - node: tosca.nodes.Root - relationship: tosca.relationships.DependsOn - - abstract_simple.link_simple_simple_private_port: - occurrences: - - 0 - - UNBOUNDED - capability: tosca.capabilities.network.Linkable - relationship: tosca.relationships.network.LinksTo - - abstract_simple.local_storage_simple: - occurrences: - - 0 - - UNBOUNDED - capability: tosca.capabilities.Attachment - node: tosca.nodes.BlockStorage - relationship: tosca.relationships.AttachesTo diff --git a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/resource-Manualdistributiontestvsp-template.yml b/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/resource-Manualdistributiontestvsp-template.yml deleted file mode 100644 index 9d5bc204..00000000 --- a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/resource-Manualdistributiontestvsp-template.yml +++ /dev/null @@ -1,673 +0,0 @@ -tosca_definitions_version: tosca_simple_yaml_1_1 -metadata: - invariantUUID: 0a0b9979-863d-4b7e-b7f4-d27725a182b3 - UUID: 8f43a8c9-c677-462a-ae36-8ddb5990a60d - name: manualDistributionTestVNF - description: Test - type: VF - category: Application L4+ - subcategory: Media Servers - resourceVendor: Test - resourceVendorRelease: '1.0' - resourceVendorModelNumber: '' -imports: -- nodes: - file: nodes.yml -- datatypes: - file: data.yml -- capabilities: - file: capabilities.yml -- relationships: - file: relationships.yml -- groups: - file: groups.yml -- policies: - file: policies.yml -- annotations: - file: annotations.yml -- resource-manualDistributionTestVNF-interface: - file: resource-Manualdistributiontestvsp-template-interface.yml -- resource-manualDistributionTestVSP-nodes.simpleCvfc: - file: resource-ManualdistributiontestvspNodesSimplecvfc-template.yml -- resource-manualDistributionTestVSP-nodes.simpleCvfc-interface: - file: resource-ManualdistributiontestvspNodesSimplecvfc-template-interface.yml -topology_template: - inputs: - vf_module_id: - default: AFRMODULEID - type: string - description: The vFirewall Module ID is provided by ONAP - required: false - nf_naming: - default: - ecomp_generated_naming: true - type: org.openecomp.datatypes.Naming - required: false - skip_post_instantiation_configuration: - default: true - type: boolean - required: false - multi_stage_design: - default: 'false' - type: string - required: false - simple_key: - default: afr-key - type: string - description: Name of key-pair to be used for compute instance - required: false - ves_ip: - default: 172.26.10.19 - type: string - description: public ves_ip - required: false - nf_function: - type: string - required: false - nf_naming_code: - type: string - required: false - node_ip: - default: 172.26.10.27 - type: string - description: public ves_ip - required: false - simple_flavor_name: - default: m1.small - type: string - description: Type of instance (flavor) to be used - required: false - availability_zone_max_count: - default: 1 - type: integer - required: false - sdnc_artifact_name: - type: string - required: false - public_net_id: - default: nova_floating - type: string - description: public NetId - required: false - max_instances: - type: integer - required: false - nf_type: - type: string - required: false - simple_image_name: - default: UBUNTU16 - type: string - description: Image to be used for compute instance - required: false - sdnc_model_version: - type: string - required: false - vnf_id: - default: VESMED - type: string - description: The VNF ID is provided by ONAP - required: false - simple_netid: - default: onap_vip - type: string - description: netid - required: false - nf_role: - type: string - required: false - simple_name_0: - default: SIMPLEUBU - type: string - description: Name of key-pair to be used for compute instance - required: false - min_instances: - type: integer - required: false - sdnc_model_name: - type: string - required: false - node_templates: - abstract_simple: - type: org.openecomp.resource.vfc.Manualdistributiontestvspcvfc.abstract.nodes.simple - directives: - - substitutable - metadata: - invariantUUID: 224c558c-56ab-40f8-9018-40846d8735a5 - UUID: 7fa6cae7-4a51-4f8b-b0ef-bbac305412ed - customizationUUID: 711886a7-8dc1-428b-955c-6e482fffe479 - version: '1.0' - name: manualDistributionTestVSP-nodes.simpleCvfc - description: Complex node type that is used as nested type in VF - type: CVFC - category: Generic - subcategory: Abstract - resourceVendor: Test - resourceVendorRelease: '1.0' - resourceVendorModelNumber: '' - properties: - port_simple_private_port_network: - - get_input: simple_netid - compute_simple_user_data_format: - - RAW - index_value: 0 - compute_simple_key_name: - - get_input: simple_key - compute_simple_name: - - get_input: simple_name_0 - nfc_naming: - ecomp_generated_naming: true - vm_flavor_name: - get_input: simple_flavor_name - port_simple_private_port_fixed_ips: - - ip_address: - get_input: node_ip - service_template_filter: - substitute_service_template: Nested_simpleServiceTemplate.yaml - index_value: 0 - count: '1' - scaling_enabled: true - mandatory: true - port_simple_private_port_ip_requirements: - - ip_version: 4 - ip_count_required: - is_required: true - floating_ip_count_required: - is_required: false - compute_simple_availability_zone: - - nova - vm_image_name: - get_input: simple_image_name - port_simple_private_port_mac_requirements: - mac_count_required: - is_required: false - vm_type_tag: simple - min_instances: 0 - compute_simple_metadata: - - vf_module_id: - get_input: vf_module_id - vnf_id: - get_input: vnf_id - port_simple_private_port_exCP_naming: - ecomp_generated_naming: true - nfc_naming_code: simple - capabilities: - disk.read.bytes_simple: - properties: - unit: B - description: Volume of reads - type: Cumulative - category: compute - cpu_simple: - properties: - unit: ns - description: CPU time used - type: Cumulative - category: compute - disk.device.read.bytes.rate_simple: - properties: - unit: B/s - description: Average rate of reads - type: Gauge - category: disk - disk.device.read.requests_simple: - properties: - unit: request - description: Number of read requests - type: Cumulative - category: disk - network.incoming.packets.rate_simple_simple_private_port: - properties: - unit: packet/s - description: Average rate of incoming packets - type: Gauge - category: network - disk.capacity_simple: - properties: - unit: B - description: The amount of disk that the instance can see - type: Gauge - category: disk - disk.device.latency_simple: - properties: - unit: ms - description: Average disk latency per device - type: Gauge - category: disk - network.incoming.bytes.rate_simple_simple_private_port: - properties: - unit: B/s - description: Average rate of incoming bytes - type: Gauge - category: network - disk.write.bytes_simple: - properties: - unit: B - description: Volume of writes - type: Cumulative - category: compute - disk.device.capacity_simple: - properties: - unit: B - description: The amount of disk per device that the instance can see - type: Gauge - category: disk - disk.usage_simple: - properties: - unit: B - description: The physical size in bytes of the image container on the host - type: Gauge - category: disk - memory.resident_simple: - properties: - unit: MB - description: Volume of RAM used by the instance on the physical machine - type: Gauge - category: compute - disk.device.write.requests.rate_simple: - properties: - unit: request/s - description: Average rate of write requests - type: Gauge - category: disk - cpu_util_simple: - properties: - unit: '%' - description: Average CPU utilization - type: Gauge - category: compute - instance_simple: - properties: - unit: instance - description: Existence of instance - type: Gauge - category: compute - disk.ephemeral.size_simple: - properties: - unit: GB - description: Size of ephemeral disk - type: Gauge - category: compute - disk.device.read.bytes_simple: - properties: - unit: B - description: Volume of reads - type: Cumulative - category: disk - scalable_simple: - properties: - max_instances: 1 - min_instances: 1 - memory.usage_simple: - properties: - unit: MB - description: Volume of RAM used by the instance from the amount of its allocated memory - type: Gauge - category: compute - disk.device.iops_simple: - properties: - unit: count/s - description: Average disk iops per device - type: Gauge - category: disk - network.outpoing.packets_simple_simple_private_port: - properties: - unit: packet - description: Number of outgoing packets - type: Cumulative - category: network - memory_simple: - properties: - unit: MB - description: Volume of RAM allocated to the instance - type: Gauge - category: compute - network.outgoing.bytes_simple_simple_private_port: - properties: - unit: B - description: Number of outgoing bytes - type: Cumulative - category: network - disk.iops_simple: - properties: - unit: count/s - description: Average disk iops - type: Gauge - category: disk - disk.read.bytes.rate_simple: - properties: - unit: B/s - description: Average rate of reads - type: Gauge - category: compute - disk.device.usage_simple: - properties: - unit: B - description: The physical size in bytes of the image container on the host per device - type: Gauge - category: disk - disk.latency_simple: - properties: - unit: ms - description: Average disk latency - type: Gauge - category: disk - network.outgoing.bytes.rate_simple_simple_private_port: - properties: - unit: B/s - description: Average rate of outgoing bytes - type: Gauge - category: network - disk.allocation_simple: - properties: - unit: B - description: The amount of disk occupied by the instance on the host machine - type: Gauge - category: disk - disk.device.read.requests.rate_simple: - properties: - unit: request/s - description: Average rate of read requests - type: Gauge - category: disk - disk.device.allocation_simple: - properties: - unit: B - description: The amount of disk per device occupied by the instance on the host machine - type: Gauge - category: disk - disk.device.write.bytes_simple: - properties: - unit: B - description: Volume of writes - type: Cumulative - category: disk - network.incoming.packets_simple_simple_private_port: - properties: - unit: packet - description: Number of incoming packets - type: Cumulative - category: network - network.incoming.bytes_simple_simple_private_port: - properties: - unit: B - description: Number of incoming bytes - type: Cumulative - category: network - disk.read.requests_simple: - properties: - unit: request - description: Number of read requests - type: Cumulative - category: compute - disk.device.write.requests_simple: - properties: - unit: request - description: Number of write requests - type: Cumulative - category: disk - port_mirroring_simple_simple_private_port: - properties: - connection_point: - network_role: - get_input: port_simple_private_port_network_role - nfc_naming_code: simple - endpoint_simple: - properties: - secure: true - cpu.delta_simple: - properties: - unit: ns - description: CPU time used since previous datapoint - type: Delta - category: compute - vcpus_simple: - properties: - unit: vcpu - description: Number of virtual CPUs allocated to the instance - type: Gauge - category: compute - disk.device.write.bytes.rate_simple: - properties: - unit: B/s - description: Average rate of writes - type: Gauge - category: disk - disk.root.size_simple: - properties: - unit: GB - description: Size of root disk - type: Gauge - category: compute - disk.write.bytes.rate_simple: - properties: - unit: B/s - description: Average rate of writes - type: Gauge - category: compute - network.outgoing.packets.rate_simple_simple_private_port: - properties: - unit: packet/s - description: Average rate of outgoing packets - type: Gauge - category: network - disk.write.requests.rate_simple: - properties: - unit: request/s - description: Average rate of write requests - type: Gauge - category: compute - disk.write.requests_simple: - properties: - unit: request - description: Number of write requests - type: Cumulative - category: compute - groups: - manualDistributionTestVNF..base_ves_med1..module-0: - type: org.openecomp.groups.VfModule - members: - - abstract_simple - metadata: - vfModuleModelName: manualDistributionTestVNF..base_ves_med1..module-0 - vfModuleModelInvariantUUID: dafd0c51-d03c-4849-a777-756e608ad6a5 - vfModuleModelUUID: b31a30a8-a4e4-4a5e-8f2d-ce7662ea4872 - vfModuleModelVersion: '1' - properties: - min_vf_module_instances: 1 - vf_module_label: base_ves_med1 - max_vf_module_instances: 1 - vf_module_type: Base - isBase: true - initial_count: 1 - volume_group: false - base_ves_med1_group: - type: org.openecomp.groups.heat.HeatStack - members: - - abstract_simple - metadata: - invariantUUID: 1ac6411a-1934-4b6a-b6d3-1d5b56b318cc - UUID: 83f33b1c-5f74-4302-92fe-1ebc9396894b - version: '1' - name: base_ves_med1_group - properties: - heat_file: ../Artifacts/base_ves_med1.yaml - description: Simple template to deploy a single compute instance - substitution_mappings: - node_type: org.openecomp.resource.vf.Manualdistributiontestvnf - capabilities: - abstract_simple.disk.write.requests_simple: - - abstract_simple - - disk.write.requests_simple - abstract_simple.network.incoming.packets.rate_simple_simple_private_port: - - abstract_simple - - network.incoming.packets.rate_simple_simple_private_port - abstract_simple.memory_simple: - - abstract_simple - - memory_simple - abstract_simple.disk.root.size_simple: - - abstract_simple - - disk.root.size_simple - abstract_simple.network.outpoing.packets_simple_simple_private_port: - - abstract_simple - - network.outpoing.packets_simple_simple_private_port - abstract_simple.disk.capacity_simple: - - abstract_simple - - disk.capacity_simple - abstract_simple.disk.device.allocation_simple: - - abstract_simple - - disk.device.allocation_simple - abstract_simple.disk.device.write.requests.rate_simple: - - abstract_simple - - disk.device.write.requests.rate_simple - abstract_simple.binding_simple: - - abstract_simple - - binding_simple - abstract_simple.network.incoming.bytes.rate_simple_simple_private_port: - - abstract_simple - - network.incoming.bytes.rate_simple_simple_private_port - abstract_simple.cpu_util_simple: - - abstract_simple - - cpu_util_simple - abstract_simple.disk.read.bytes_simple: - - abstract_simple - - disk.read.bytes_simple - abstract_simple.disk.write.bytes_simple: - - abstract_simple - - disk.write.bytes_simple - abstract_simple.disk.write.requests.rate_simple: - - abstract_simple - - disk.write.requests.rate_simple - abstract_simple.network.incoming.bytes_simple_simple_private_port: - - abstract_simple - - network.incoming.bytes_simple_simple_private_port - abstract_simple.disk.latency_simple: - - abstract_simple - - disk.latency_simple - abstract_simple.disk.device.write.requests_simple: - - abstract_simple - - disk.device.write.requests_simple - abstract_simple.disk.device.iops_simple: - - abstract_simple - - disk.device.iops_simple - abstract_simple.disk.device.latency_simple: - - abstract_simple - - disk.device.latency_simple - abstract_simple.disk.device.write.bytes.rate_simple: - - abstract_simple - - disk.device.write.bytes.rate_simple - abstract_simple.port_mirroring_simple_simple_private_port: - - abstract_simple - - port_mirroring_simple_simple_private_port - abstract_simple.memory.resident_simple: - - abstract_simple - - memory.resident_simple - abstract_simple.disk.read.bytes.rate_simple: - - abstract_simple - - disk.read.bytes.rate_simple - abstract_simple.disk.device.read.bytes_simple: - - abstract_simple - - disk.device.read.bytes_simple - abstract_simple.network.outgoing.bytes.rate_simple_simple_private_port: - - abstract_simple - - network.outgoing.bytes.rate_simple_simple_private_port - abstract_simple.disk.device.read.requests_simple: - - abstract_simple - - disk.device.read.requests_simple - abstract_simple.disk.write.bytes.rate_simple: - - abstract_simple - - disk.write.bytes.rate_simple - abstract_simple.binding_simple_simple_private_port: - - abstract_simple - - binding_simple_simple_private_port - abstract_simple.feature_simple_simple_private_port: - - abstract_simple - - feature_simple_simple_private_port - abstract_simple.disk.read.requests_simple: - - abstract_simple - - disk.read.requests_simple - abstract_simple.disk.device.read.bytes.rate_simple: - - abstract_simple - - disk.device.read.bytes.rate_simple - abstract_simple.network.outgoing.bytes_simple_simple_private_port: - - abstract_simple - - network.outgoing.bytes_simple_simple_private_port - abstract_simple.network.incoming.packets_simple_simple_private_port: - - abstract_simple - - network.incoming.packets_simple_simple_private_port - abstract_simple.disk.allocation_simple: - - abstract_simple - - disk.allocation_simple - abstract_simple.endpoint_simple: - - abstract_simple - - endpoint_simple - abstract_simple.forwarder_simple_simple_private_port: - - abstract_simple - - forwarder_simple_simple_private_port - abstract_simple.disk.device.write.bytes_simple: - - abstract_simple - - disk.device.write.bytes_simple - abstract_simple.memory.usage_simple: - - abstract_simple - - memory.usage_simple - abstract_simple.cpu.delta_simple: - - abstract_simple - - cpu.delta_simple - abstract_simple.host_simple: - - abstract_simple - - host_simple - abstract_simple.scalable_simple: - - abstract_simple - - scalable_simple - abstract_simple.instance_simple: - - abstract_simple - - instance_simple - abstract_simple.attachment_simple_simple_private_port: - - abstract_simple - - attachment_simple_simple_private_port - abstract_simple.cpu_simple: - - abstract_simple - - cpu_simple - abstract_simple.os_simple: - - abstract_simple - - os_simple - abstract_simple.disk.device.usage_simple: - - abstract_simple - - disk.device.usage_simple - abstract_simple.disk.usage_simple: - - abstract_simple - - disk.usage_simple - abstract_simple.vcpus_simple: - - abstract_simple - - vcpus_simple - abstract_simple.disk.device.read.requests.rate_simple: - - abstract_simple - - disk.device.read.requests.rate_simple - abstract_simple.disk.ephemeral.size_simple: - - abstract_simple - - disk.ephemeral.size_simple - abstract_simple.feature_simple: - - abstract_simple - - feature_simple - abstract_simple.disk.iops_simple: - - abstract_simple - - disk.iops_simple - abstract_simple.disk.device.capacity_simple: - - abstract_simple - - disk.device.capacity_simple - abstract_simple.network.outgoing.packets.rate_simple_simple_private_port: - - abstract_simple - - network.outgoing.packets.rate_simple_simple_private_port - requirements: - abstract_simple.dependency_simple_simple_private_port: - - abstract_simple - - dependency_simple_simple_private_port - abstract_simple.link_simple_simple_private_port: - - abstract_simple - - link_simple_simple_private_port - abstract_simple.dependency_simple: - - abstract_simple - - dependency_simple - abstract_simple.local_storage_simple: - - abstract_simple - - local_storage_simple diff --git a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/resource-ManualdistributiontestvspComputeNodesHeatSimple-template.yml b/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/resource-ManualdistributiontestvspComputeNodesHeatSimple-template.yml deleted file mode 100644 index 5c7c990a..00000000 --- a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/resource-ManualdistributiontestvspComputeNodesHeatSimple-template.yml +++ /dev/null @@ -1,131 +0,0 @@ -tosca_definitions_version: tosca_simple_yaml_1_1 -metadata: - invariantUUID: 67a4bb59-d438-4c83-9c94-ed99b30a9b66 - UUID: 0c13eeca-9d3b-456a-9d78-73ffd155d940 - name: Manualdistributiontestvsp.compute.nodes.heat.simple - description: Not reusable inner VFC - type: VFC - category: Generic - subcategory: Abstract - resourceVendor: Test - resourceVendorRelease: '1.0' - resourceVendorModelNumber: '' -imports: -- nodes: - file: nodes.yml -- datatypes: - file: data.yml -- capabilities: - file: capabilities.yml -- relationships: - file: relationships.yml -- groups: - file: groups.yml -- policies: - file: policies.yml -- annotations: - file: annotations.yml -node_types: - org.openecomp.resource.vfc.Manualdistributiontestvsp.abstract.compute.nodes.heat.simple: - derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server - description: Not reusable inner VFC - properties: - admin_pass: - type: string - description: The administrator password for the server - required: false - image: - type: string - description: The ID or name of the image to boot with - required: false - availability_zone: - type: string - description: Availability zone to create servers in - required: false - metadata: - type: json - description: Arbitrary JSON metadata to store for this server - required: false - image_update_policy: - default: REBUILD - type: string - description: Policy on how to apply an image-id update - required: false - contrail_service_instance_ind: - default: false - type: boolean - description: Nova server related to service instance indicator - required: false - user_data_update_policy: - default: REPLACE - type: string - description: Policy on how to apply a user_data update - required: false - user_data: - type: string - description: User data script to be executed by cloud-init - required: false - flavor_update_policy: - default: RESIZE - type: string - description: Policy on how to apply a flavor update - required: false - reservation_id: - type: string - description: A UUID for the set of servers being requested - required: false - key_name: - type: string - description: Name of keypair to inject into the server - required: false - flavor: - type: string - description: The ID or name of the flavor to boot onto - required: true - security_groups: - default: [ - ] - type: list - description: List of security group names or IDs - required: false - entry_schema: - type: string - config_drive: - type: boolean - description: enable config drive on the server - required: false - software_config_transport: - default: POLL_SERVER_CFN - type: string - description: How the server should receive the metadata required for software configuration - required: false - personality: - default: { - } - type: map - description: A map of files to create/overwrite on the server upon boot - required: false - entry_schema: - type: string - user_data_format: - default: HEAT_CFNTOOLS - type: string - description: How the user_data should be formatted for the server - required: false - diskConfig: - type: string - description: Control how the disk is partitioned when the server is created - required: false - scheduler_hints: - type: map - description: Arbitrary key-value pairs specified by the client to help boot a server - required: false - entry_schema: - type: string - name: - type: string - description: Server name - required: false - interfaces: - Standard: - type: tosca.interfaces.node.lifecycle.Standard diff --git a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/resource-ManualdistributiontestvspNodesSimplecvfc-template-interface.yml b/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/resource-ManualdistributiontestvspNodesSimplecvfc-template-interface.yml deleted file mode 100644 index a5ce7c7f..00000000 --- a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/resource-ManualdistributiontestvspNodesSimplecvfc-template-interface.yml +++ /dev/null @@ -1,1892 +0,0 @@ -tosca_definitions_version: tosca_simple_yaml_1_1 -imports: -- nodes: - file: nodes.yml -- datatypes: - file: data.yml -- capabilities: - file: capabilities.yml -- relationships: - file: relationships.yml -- groups: - file: groups.yml -- policies: - file: policies.yml -- annotations: - file: annotations.yml -node_types: - org.openecomp.resource.vfc.Manualdistributiontestvspcvfc.abstract.nodes.simple: - derived_from: org.openecomp.resource.abstract.nodes.VFC - properties: - compute_simple_user_data_format: - type: list - required: true - entry_schema: - type: string - port_simple_private_port_network: - type: list - required: true - entry_schema: - type: string - nfc_naming: - default: - ecomp_generated_naming: true - type: org.openecomp.datatypes.Naming - description: vfc naming - required: false - port_simple_private_port_related_networks: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.RelatedNetworksAssignments - vm_flavor_name: - type: string - required: true - port_simple_private_port_fixed_ips: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.heat.neutron.port.FixedIps - port_simple_private_port_subnetpoolid: - type: string - required: true - service_template_filter: - default: - index_value: 0 - count: '1' - scaling_enabled: true - mandatory: true - type: org.openecomp.datatypes.heat.substitution.SubstitutionFiltering - description: Substitution Filter - required: true - port_simple_private_port_ip_requirements: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.IpRequirements - vm_image_name: - type: string - required: true - vm_type_tag: - type: string - description: vm type based on naming Convention - required: false - high_availablity: - type: string - description: high_availablity - required: false - port_simple_private_port_network_role_tag: - type: string - required: true - compute_simple_metadata: - type: list - required: true - entry_schema: - type: json - nfc_naming_code: - type: string - description: nfc code for instance naming - required: false - nfc_function: - type: string - required: false - index_value: - default: 0 - type: integer - description: Index value of this substitution service template runtime instance - required: false - compute_simple_key_name: - type: list - required: true - entry_schema: - type: string - max_instances: - type: integer - description: Maximum number of VFC Instances - required: false - compute_simple_name: - type: list - required: true - entry_schema: - type: string - port_simple_private_port_order: - type: integer - required: true - compute_simple_availability_zone: - type: list - required: true - entry_schema: - type: string - port_simple_private_port_mac_requirements: - default: - mac_count_required: - is_required: false - type: org.openecomp.datatypes.network.MacRequirements - required: true - port_simple_private_port_network_role: - type: string - required: true - min_instances: - default: 0 - type: integer - description: Minimum number of VFC Instances - required: false - port_simple_private_port_vlan_requirements: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.VlanRequirements - port_simple_private_port_exCP_naming: - default: - ecomp_generated_naming: true - type: org.openecomp.datatypes.Naming - required: true - capabilities: - disk.device.read.requests_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: request - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of read requests - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - disk.device.read.bytes.rate_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of reads - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - disk.read.bytes_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Volume of reads - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - disk.capacity_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: The amount of disk that the instance can see - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - disk.write.bytes_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Volume of writes - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - network.incoming.bytes.rate_simple_simple_private_port: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of incoming bytes - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: network - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - host_simple: - type: tosca.capabilities.Container - occurrences: - - 0 - - UNBOUNDED - valid_source_types: - - tosca.nodes.SoftwareComponent - properties: - num_cpus: - type: integer - required: false - disk_size: - type: scalar-unit.size - required: false - cpu_frequency: - type: scalar-unit.frequency - required: false - mem_size: - type: scalar-unit.size - required: false - disk.usage_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: The physical size in bytes of the image container on the host - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - feature_simple_simple_private_port: - type: tosca.capabilities.Node - occurrences: - - 0 - - UNBOUNDED - valid_source_types: [ - ] - disk.device.write.requests.rate_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: request/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of write requests - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - disk.ephemeral.size_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: GB - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Size of ephemeral disk - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - feature_simple: - type: tosca.capabilities.Node - occurrences: - - 0 - - UNBOUNDED - valid_source_types: [ - ] - os_simple: - type: tosca.capabilities.OperatingSystem - occurrences: - - 0 - - UNBOUNDED - valid_source_types: [ - ] - properties: - distribution: - type: string - required: false - type: - type: string - required: false - version: - type: version - required: false - architecture: - type: string - required: false - memory_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: MB - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Volume of RAM allocated to the instance - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - disk.iops_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: count/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average disk iops - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - network.outgoing.bytes_simple_simple_private_port: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of outgoing bytes - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: network - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - disk.device.usage_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: The physical size in bytes of the image container on the host per device - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - disk.latency_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: ms - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average disk latency - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - binding_simple: - type: tosca.capabilities.network.Bindable - occurrences: - - 0 - - UNBOUNDED - valid_source_types: [ - ] - port_mirroring_simple_simple_private_port: - type: org.openecomp.capabilities.PortMirroring - occurrences: - - 0 - - UNBOUNDED - valid_source_types: [ - ] - properties: - connection_point: - default: - network_role: - get_input: port_simple_private_port_network_role - nfc_naming_code: simple - type: org.openecomp.datatypes.PortMirroringConnectionPointDescription - required: false - disk.device.write.requests_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: request - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of write requests - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - binding_simple_simple_private_port: - type: tosca.capabilities.network.Bindable - occurrences: - - 0 - - UNBOUNDED - valid_source_types: - - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface - - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface - endpoint_simple: - type: tosca.capabilities.Endpoint.Admin - occurrences: - - 0 - - UNBOUNDED - valid_source_types: [ - ] - properties: - secure: - default: true - type: boolean - required: false - disk.write.bytes.rate_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of writes - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - disk.write.requests.rate_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: request/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of write requests - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - disk.write.requests_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: request - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of write requests - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - cpu_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: ns - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: CPU time used - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - network.incoming.packets.rate_simple_simple_private_port: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: packet/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of incoming packets - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: network - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - disk.device.latency_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: ms - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average disk latency per device - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - disk.device.capacity_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: The amount of disk per device that the instance can see - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - memory.resident_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: MB - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Volume of RAM used by the instance on the physical machine - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - instance_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: instance - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Existence of instance - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - cpu_util_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: '%' - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average CPU utilization - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - disk.device.read.bytes_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Volume of reads - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - scalable_simple: - type: tosca.capabilities.Scalable - occurrences: - - 0 - - UNBOUNDED - valid_source_types: [ - ] - properties: - max_instances: - default: 1 - type: integer - required: false - min_instances: - default: 1 - type: integer - required: false - default_instances: - type: integer - required: false - disk.device.iops_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: count/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average disk iops per device - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - memory.usage_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: MB - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Volume of RAM used by the instance from the amount of its allocated memory - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - network.outpoing.packets_simple_simple_private_port: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: packet - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of outgoing packets - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: network - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - disk.read.bytes.rate_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of reads - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - forwarder_simple_simple_private_port: - type: org.openecomp.capabilities.Forwarder - occurrences: - - 0 - - UNBOUNDED - valid_source_types: [ - ] - attachment_simple_simple_private_port: - type: tosca.capabilities.Attachment - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - disk.device.read.requests.rate_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: request/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of read requests - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - disk.allocation_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: The amount of disk occupied by the instance on the host machine - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - network.outgoing.bytes.rate_simple_simple_private_port: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of outgoing bytes - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: network - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - disk.device.allocation_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: The amount of disk per device occupied by the instance on the host machine - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - disk.device.write.bytes_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Volume of writes - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - disk.read.requests_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: request - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of read requests - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - network.incoming.bytes_simple_simple_private_port: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of incoming bytes - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: network - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - network.incoming.packets_simple_simple_private_port: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: packet - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of incoming packets - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: network - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - cpu.delta_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: ns - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: CPU time used since previous datapoint - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Delta - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - vcpus_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: vcpu - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of virtual CPUs allocated to the instance - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - disk.root.size_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: GB - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Size of root disk - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - disk.device.write.bytes.rate_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of writes - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - network.outgoing.packets.rate_simple_simple_private_port: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: packet/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of outgoing packets - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: network - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - requirements: - - dependency_simple: - occurrences: - - 0 - - UNBOUNDED - capability: tosca.capabilities.Node - node: tosca.nodes.Root - relationship: tosca.relationships.DependsOn - - dependency_simple_simple_private_port: - occurrences: - - 0 - - UNBOUNDED - capability: tosca.capabilities.Node - node: tosca.nodes.Root - relationship: tosca.relationships.DependsOn - - link_simple_simple_private_port: - occurrences: - - 0 - - UNBOUNDED - capability: tosca.capabilities.network.Linkable - relationship: tosca.relationships.network.LinksTo - - local_storage_simple: - occurrences: - - 0 - - UNBOUNDED - capability: tosca.capabilities.Attachment - node: tosca.nodes.BlockStorage - relationship: tosca.relationships.AttachesTo diff --git a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/resource-ManualdistributiontestvspNodesSimplecvfc-template.yml b/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/resource-ManualdistributiontestvspNodesSimplecvfc-template.yml deleted file mode 100644 index 21093271..00000000 --- a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/resource-ManualdistributiontestvspNodesSimplecvfc-template.yml +++ /dev/null @@ -1,705 +0,0 @@ -tosca_definitions_version: tosca_simple_yaml_1_1 -metadata: - invariantUUID: 224c558c-56ab-40f8-9018-40846d8735a5 - UUID: 7fa6cae7-4a51-4f8b-b0ef-bbac305412ed - name: manualDistributionTestVSP-nodes.simpleCvfc - description: Complex node type that is used as nested type in VF - type: CVFC - category: Generic - subcategory: Abstract - resourceVendor: Test - resourceVendorRelease: '1.0' - resourceVendorModelNumber: '' -imports: -- nodes: - file: nodes.yml -- datatypes: - file: data.yml -- capabilities: - file: capabilities.yml -- relationships: - file: relationships.yml -- groups: - file: groups.yml -- policies: - file: policies.yml -- annotations: - file: annotations.yml -- resource-manualDistributionTestVSP-nodes.simpleCvfc-interface: - file: resource-ManualdistributiontestvspNodesSimplecvfc-template-interface.yml -- resource-Manualdistributiontestvsp.compute.nodes.heat.simple: - file: resource-ManualdistributiontestvspComputeNodesHeatSimple-template.yml -- resource-extNeutronCP: - file: resource-Extneutroncp-template.yml -topology_template: - inputs: - compute_simple_user_data_format: - type: list - required: true - entry_schema: - type: string - port_simple_private_port_network: - type: list - required: true - entry_schema: - type: string - nfc_naming: - default: - ecomp_generated_naming: true - type: org.openecomp.datatypes.Naming - description: vfc naming - required: false - port_simple_private_port_related_networks: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.RelatedNetworksAssignments - vm_flavor_name: - type: string - required: true - port_simple_private_port_fixed_ips: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.heat.neutron.port.FixedIps - port_simple_private_port_subnetpoolid: - type: string - required: true - service_template_filter: - default: - index_value: 0 - count: '1' - scaling_enabled: true - mandatory: true - type: org.openecomp.datatypes.heat.substitution.SubstitutionFiltering - description: Substitution Filter - required: true - port_simple_private_port_ip_requirements: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.IpRequirements - vm_image_name: - type: string - required: true - vm_type_tag: - type: string - description: vm type based on naming Convention - required: false - high_availablity: - type: string - description: high_availablity - required: false - port_simple_private_port_network_role_tag: - type: string - required: true - compute_simple_metadata: - type: list - required: true - entry_schema: - type: json - nfc_naming_code: - type: string - description: nfc code for instance naming - required: false - nfc_function: - type: string - required: false - index_value: - default: 0 - type: integer - description: Index value of this substitution service template runtime instance - required: false - compute_simple_key_name: - type: list - required: true - entry_schema: - type: string - max_instances: - type: integer - description: Maximum number of VFC Instances - required: false - compute_simple_name: - type: list - required: true - entry_schema: - type: string - port_simple_private_port_order: - type: integer - required: true - compute_simple_availability_zone: - type: list - required: true - entry_schema: - type: string - port_simple_private_port_mac_requirements: - default: - mac_count_required: - is_required: false - type: org.openecomp.datatypes.network.MacRequirements - required: true - port_simple_private_port_network_role: - type: string - required: true - min_instances: - default: 0 - type: integer - description: Minimum number of VFC Instances - required: false - port_simple_private_port_vlan_requirements: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.VlanRequirements - port_simple_private_port_exCP_naming: - default: - ecomp_generated_naming: true - type: org.openecomp.datatypes.Naming - required: true - node_templates: - simple_simple_private_port: - type: org.openecomp.resource.cp.v2.extNeutronCP - metadata: - invariantUUID: 3fed24ab-7a60-40cd-a52b-520df0d743e8 - UUID: e3334a40-6ede-4d38-975b-705e9cb99d2f - customizationUUID: cabd6198-f37f-4868-8a95-120296945db0 - version: '1.0' - name: extNeutronCP - description: The AT&T Connection Point base type all other CP derive from - type: CP - category: Generic - subcategory: Network Elements - resourceVendor: ONAP (Tosca) - resourceVendorRelease: 1.0.0.wd03 - resourceVendorModelNumber: '' - properties: - subnetpoolid: - get_input: port_simple_private_port_subnetpoolid - is_default: false - related_networks: - get_input: port_simple_private_port_related_networks - network: - get_input: - - port_simple_private_port_network - - index_value - replacement_policy: AUTO - ip_requirements: - get_input: port_simple_private_port_ip_requirements - network_role: - get_input: port_simple_private_port_network_role - fixed_ips: - get_input: - - port_simple_private_port_fixed_ips - - index_value - subinterface_indicator: false - mac_requirements: - get_input: port_simple_private_port_mac_requirements - admin_state_up: true - exCP_naming: - get_input: port_simple_private_port_exCP_naming - vlan_requirements: - get_input: port_simple_private_port_vlan_requirements - network_role_tag: - get_input: port_simple_private_port_network_role_tag - order: - get_input: port_simple_private_port_order - requirements: - - binding: - capability: binding - node: simple - capabilities: - network.incoming.packets.rate_simple_simple_private_port: - properties: - unit: packet/s - description: Average rate of incoming packets - type: Gauge - category: network - network.incoming.packets_simple_simple_private_port: - properties: - unit: packet - description: Number of incoming packets - type: Cumulative - category: network - network.incoming.bytes_simple_simple_private_port: - properties: - unit: B - description: Number of incoming bytes - type: Cumulative - category: network - network.incoming.bytes.rate_simple_simple_private_port: - properties: - unit: B/s - description: Average rate of incoming bytes - type: Gauge - category: network - port_mirroring_simple_simple_private_port: - properties: - connection_point: - network_role: - get_input: port_simple_private_port_network_role - nfc_naming_code: simple - network.outpoing.packets_simple_simple_private_port: - properties: - unit: packet - description: Number of outgoing packets - type: Cumulative - category: network - network.outgoing.bytes_simple_simple_private_port: - properties: - unit: B - description: Number of outgoing bytes - type: Cumulative - category: network - network.outgoing.bytes.rate_simple_simple_private_port: - properties: - unit: B/s - description: Average rate of outgoing bytes - type: Gauge - category: network - network.outgoing.packets.rate_simple_simple_private_port: - properties: - unit: packet/s - description: Average rate of outgoing packets - type: Gauge - category: network - simple: - type: org.openecomp.resource.vfc.Manualdistributiontestvsp.abstract.compute.nodes.heat.simple - metadata: - invariantUUID: 67a4bb59-d438-4c83-9c94-ed99b30a9b66 - UUID: 0c13eeca-9d3b-456a-9d78-73ffd155d940 - customizationUUID: d9fc7afd-3596-4296-8c78-d9befe8a9fae - version: '1.0' - name: Manualdistributiontestvsp.compute.nodes.heat.simple - description: Not reusable inner VFC - type: VFC - category: Generic - subcategory: Abstract - resourceVendor: Test - resourceVendorRelease: '1.0' - resourceVendorModelNumber: '' - properties: - flavor: - get_input: vm_flavor_name - key_name: - get_input: - - compute_simple_key_name - - index_value - image: - get_input: vm_image_name - availability_zone: - get_input: - - compute_simple_availability_zone - - index_value - image_update_policy: REBUILD - metadata: - get_input: - - compute_simple_metadata - - index_value - software_config_transport: POLL_SERVER_CFN - contrail_service_instance_ind: false - user_data_format: - get_input: - - compute_simple_user_data_format - - index_value - user_data_update_policy: REPLACE - name: - get_input: - - compute_simple_name - - index_value - flavor_update_policy: RESIZE - capabilities: - disk.read.bytes_simple: - properties: - unit: B - description: Volume of reads - type: Cumulative - category: compute - cpu_simple: - properties: - unit: ns - description: CPU time used - type: Cumulative - category: compute - disk.device.read.bytes.rate_simple: - properties: - unit: B/s - description: Average rate of reads - type: Gauge - category: disk - disk.device.read.requests_simple: - properties: - unit: request - description: Number of read requests - type: Cumulative - category: disk - disk.capacity_simple: - properties: - unit: B - description: The amount of disk that the instance can see - type: Gauge - category: disk - disk.device.latency_simple: - properties: - unit: ms - description: Average disk latency per device - type: Gauge - category: disk - disk.write.bytes_simple: - properties: - unit: B - description: Volume of writes - type: Cumulative - category: compute - disk.device.capacity_simple: - properties: - unit: B - description: The amount of disk per device that the instance can see - type: Gauge - category: disk - disk.usage_simple: - properties: - unit: B - description: The physical size in bytes of the image container on the host - type: Gauge - category: disk - memory.resident_simple: - properties: - unit: MB - description: Volume of RAM used by the instance on the physical machine - type: Gauge - category: compute - disk.device.write.requests.rate_simple: - properties: - unit: request/s - description: Average rate of write requests - type: Gauge - category: disk - cpu_util_simple: - properties: - unit: '%' - description: Average CPU utilization - type: Gauge - category: compute - instance_simple: - properties: - unit: instance - description: Existence of instance - type: Gauge - category: compute - disk.ephemeral.size_simple: - properties: - unit: GB - description: Size of ephemeral disk - type: Gauge - category: compute - disk.device.read.bytes_simple: - properties: - unit: B - description: Volume of reads - type: Cumulative - category: disk - scalable_simple: - properties: - max_instances: 1 - min_instances: 1 - memory.usage_simple: - properties: - unit: MB - description: Volume of RAM used by the instance from the amount of its allocated memory - type: Gauge - category: compute - disk.device.iops_simple: - properties: - unit: count/s - description: Average disk iops per device - type: Gauge - category: disk - memory_simple: - properties: - unit: MB - description: Volume of RAM allocated to the instance - type: Gauge - category: compute - disk.iops_simple: - properties: - unit: count/s - description: Average disk iops - type: Gauge - category: disk - disk.read.bytes.rate_simple: - properties: - unit: B/s - description: Average rate of reads - type: Gauge - category: compute - disk.device.usage_simple: - properties: - unit: B - description: The physical size in bytes of the image container on the host per device - type: Gauge - category: disk - disk.latency_simple: - properties: - unit: ms - description: Average disk latency - type: Gauge - category: disk - disk.allocation_simple: - properties: - unit: B - description: The amount of disk occupied by the instance on the host machine - type: Gauge - category: disk - disk.device.read.requests.rate_simple: - properties: - unit: request/s - description: Average rate of read requests - type: Gauge - category: disk - disk.device.allocation_simple: - properties: - unit: B - description: The amount of disk per device occupied by the instance on the host machine - type: Gauge - category: disk - disk.device.write.bytes_simple: - properties: - unit: B - description: Volume of writes - type: Cumulative - category: disk - disk.read.requests_simple: - properties: - unit: request - description: Number of read requests - type: Cumulative - category: compute - disk.device.write.requests_simple: - properties: - unit: request - description: Number of write requests - type: Cumulative - category: disk - endpoint_simple: - properties: - secure: true - cpu.delta_simple: - properties: - unit: ns - description: CPU time used since previous datapoint - type: Delta - category: compute - vcpus_simple: - properties: - unit: vcpu - description: Number of virtual CPUs allocated to the instance - type: Gauge - category: compute - disk.device.write.bytes.rate_simple: - properties: - unit: B/s - description: Average rate of writes - type: Gauge - category: disk - disk.root.size_simple: - properties: - unit: GB - description: Size of root disk - type: Gauge - category: compute - disk.write.bytes.rate_simple: - properties: - unit: B/s - description: Average rate of writes - type: Gauge - category: compute - disk.write.requests.rate_simple: - properties: - unit: request/s - description: Average rate of write requests - type: Gauge - category: compute - disk.write.requests_simple: - properties: - unit: request - description: Number of write requests - type: Cumulative - category: compute - substitution_mappings: - node_type: org.openecomp.resource.vfc.Manualdistributiontestvspcvfc.abstract.nodes.simple - capabilities: - disk.device.read.requests_simple: - - simple - - disk.device.read.requests - disk.device.read.bytes.rate_simple: - - simple - - disk.device.read.bytes.rate - disk.read.bytes_simple: - - simple - - disk.read.bytes - disk.capacity_simple: - - simple - - disk.capacity - disk.write.bytes_simple: - - simple - - disk.write.bytes - network.incoming.bytes.rate_simple_simple_private_port: - - simple_simple_private_port - - network.incoming.bytes.rate - host_simple: - - simple - - host - disk.usage_simple: - - simple - - disk.usage - feature_simple_simple_private_port: - - simple_simple_private_port - - feature - disk.device.write.requests.rate_simple: - - simple - - disk.device.write.requests.rate - disk.ephemeral.size_simple: - - simple - - disk.ephemeral.size - feature_simple: - - simple - - feature - os_simple: - - simple - - os - memory_simple: - - simple - - memory - disk.iops_simple: - - simple - - disk.iops - network.outgoing.bytes_simple_simple_private_port: - - simple_simple_private_port - - network.outgoing.bytes - disk.device.usage_simple: - - simple - - disk.device.usage - disk.latency_simple: - - simple - - disk.latency - binding_simple: - - simple - - binding - port_mirroring_simple_simple_private_port: - - simple_simple_private_port - - port_mirroring - disk.device.write.requests_simple: - - simple - - disk.device.write.requests - binding_simple_simple_private_port: - - simple_simple_private_port - - binding - endpoint_simple: - - simple - - endpoint - disk.write.bytes.rate_simple: - - simple - - disk.write.bytes.rate - disk.write.requests.rate_simple: - - simple - - disk.write.requests.rate - disk.write.requests_simple: - - simple - - disk.write.requests - cpu_simple: - - simple - - cpu - network.incoming.packets.rate_simple_simple_private_port: - - simple_simple_private_port - - network.incoming.packets.rate - disk.device.latency_simple: - - simple - - disk.device.latency - disk.device.capacity_simple: - - simple - - disk.device.capacity - memory.resident_simple: - - simple - - memory.resident - instance_simple: - - simple - - instance - cpu_util_simple: - - simple - - cpu_util - disk.device.read.bytes_simple: - - simple - - disk.device.read.bytes - scalable_simple: - - simple - - scalable - disk.device.iops_simple: - - simple - - disk.device.iops - memory.usage_simple: - - simple - - memory.usage - network.outpoing.packets_simple_simple_private_port: - - simple_simple_private_port - - network.outpoing.packets - disk.read.bytes.rate_simple: - - simple - - disk.read.bytes.rate - forwarder_simple_simple_private_port: - - simple_simple_private_port - - forwarder - attachment_simple_simple_private_port: - - simple_simple_private_port - - attachment - disk.device.read.requests.rate_simple: - - simple - - disk.device.read.requests.rate - disk.allocation_simple: - - simple - - disk.allocation - network.outgoing.bytes.rate_simple_simple_private_port: - - simple_simple_private_port - - network.outgoing.bytes.rate - disk.device.allocation_simple: - - simple - - disk.device.allocation - disk.device.write.bytes_simple: - - simple - - disk.device.write.bytes - disk.read.requests_simple: - - simple - - disk.read.requests - network.incoming.bytes_simple_simple_private_port: - - simple_simple_private_port - - network.incoming.bytes - network.incoming.packets_simple_simple_private_port: - - simple_simple_private_port - - network.incoming.packets - cpu.delta_simple: - - simple - - cpu.delta - vcpus_simple: - - simple - - vcpus - disk.root.size_simple: - - simple - - disk.root.size - disk.device.write.bytes.rate_simple: - - simple - - disk.device.write.bytes.rate - network.outgoing.packets.rate_simple_simple_private_port: - - simple_simple_private_port - - network.outgoing.packets.rate - requirements: - dependency_simple_simple_private_port: - - simple_simple_private_port - - dependency - local_storage_simple: - - simple - - local_storage - dependency_simple: - - simple - - dependency - link_simple_simple_private_port: - - simple_simple_private_port - - link diff --git a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/service-Manualdistributiontestservice-template-interface.yml b/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/service-Manualdistributiontestservice-template-interface.yml deleted file mode 100644 index aa3f5456..00000000 --- a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/service-Manualdistributiontestservice-template-interface.yml +++ /dev/null @@ -1,1768 +0,0 @@ -tosca_definitions_version: tosca_simple_yaml_1_1 -imports: -- nodes: - file: nodes.yml -- datatypes: - file: data.yml -- capabilities: - file: capabilities.yml -- relationships: - file: relationships.yml -- groups: - file: groups.yml -- policies: - file: policies.yml -- annotations: - file: annotations.yml -node_types: - org.openecomp.service.Manualdistributiontestservice: - derived_from: org.openecomp.resource.abstract.nodes.service - capabilities: - manualdistributiontestvnf0.abstract_simple.feature_simple_simple_private_port: - type: tosca.capabilities.Node - occurrences: - - 0 - - UNBOUNDED - valid_source_types: [ - ] - manualdistributiontestvnf0.abstract_simple.binding_simple_simple_private_port: - type: tosca.capabilities.network.Bindable - occurrences: - - 0 - - UNBOUNDED - valid_source_types: - - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface - - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface - manualdistributiontestvnf0.abstract_simple.memory.usage_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: MB - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Volume of RAM used by the instance from the amount of its allocated memory - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.disk.root.size_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: GB - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Size of root disk - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.disk.read.bytes_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Volume of reads - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.disk.ephemeral.size_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: GB - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Size of ephemeral disk - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.disk.device.read.bytes.rate_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of reads - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.network.incoming.bytes.rate_simple_simple_private_port: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of incoming bytes - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: network - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.disk.device.read.bytes_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Volume of reads - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.cpu.delta_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: ns - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: CPU time used since previous datapoint - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Delta - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.disk.latency_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: ms - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average disk latency - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.network.outpoing.packets_simple_simple_private_port: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: packet - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of outgoing packets - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: network - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.network.outgoing.packets.rate_simple_simple_private_port: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: packet/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of outgoing packets - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: network - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.disk.device.latency_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: ms - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average disk latency per device - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.disk.device.write.bytes.rate_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of writes - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.disk.usage_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: The physical size in bytes of the image container on the host - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.os_simple: - type: tosca.capabilities.OperatingSystem - occurrences: - - 0 - - UNBOUNDED - valid_source_types: [ - ] - properties: - distribution: - type: string - required: false - type: - type: string - required: false - version: - type: version - required: false - architecture: - type: string - required: false - manualdistributiontestvnf0.abstract_simple.attachment_simple_simple_private_port: - type: tosca.capabilities.Attachment - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - manualdistributiontestvnf0.abstract_simple.cpu_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: ns - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: CPU time used - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.disk.write.requests.rate_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: request/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of write requests - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.disk.device.write.requests.rate_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: request/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of write requests - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.memory_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: MB - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Volume of RAM allocated to the instance - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.disk.device.read.requests.rate_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: request/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of read requests - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.disk.device.usage_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: The physical size in bytes of the image container on the host per device - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.host_simple: - type: tosca.capabilities.Container - occurrences: - - 0 - - UNBOUNDED - valid_source_types: - - tosca.nodes.SoftwareComponent - properties: - num_cpus: - type: integer - required: false - disk_size: - type: scalar-unit.size - required: false - cpu_frequency: - type: scalar-unit.frequency - required: false - mem_size: - type: scalar-unit.size - required: false - manualdistributiontestvnf0.abstract_simple.disk.allocation_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: The amount of disk occupied by the instance on the host machine - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.cpu_util_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: '%' - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average CPU utilization - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.port_mirroring_simple_simple_private_port: - type: org.openecomp.capabilities.PortMirroring - occurrences: - - 0 - - UNBOUNDED - valid_source_types: [ - ] - properties: - connection_point: - default: - network_role: - get_input: port_simple_private_port_network_role - nfc_naming_code: simple - type: org.openecomp.datatypes.PortMirroringConnectionPointDescription - required: false - manualdistributiontestvnf0.abstract_simple.disk.device.write.requests_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: request - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of write requests - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.disk.read.bytes.rate_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of reads - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.disk.device.iops_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: count/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average disk iops per device - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.network.incoming.bytes_simple_simple_private_port: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of incoming bytes - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: network - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.disk.write.bytes.rate_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of writes - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.endpoint_simple: - type: tosca.capabilities.Endpoint.Admin - occurrences: - - 0 - - UNBOUNDED - valid_source_types: [ - ] - properties: - secure: - default: true - type: boolean - required: false - manualdistributiontestvnf0.abstract_simple.disk.device.allocation_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: The amount of disk per device occupied by the instance on the host machine - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.disk.capacity_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: The amount of disk that the instance can see - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.memory.resident_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: MB - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Volume of RAM used by the instance on the physical machine - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.disk.device.write.bytes_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Volume of writes - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.disk.write.bytes_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Volume of writes - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.feature_simple: - type: tosca.capabilities.Node - occurrences: - - 0 - - UNBOUNDED - valid_source_types: [ - ] - manualdistributiontestvnf0.abstract_simple.disk.read.requests_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: request - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of read requests - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.vcpus_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: vcpu - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of virtual CPUs allocated to the instance - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.disk.device.read.requests_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: request - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of read requests - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.forwarder_simple_simple_private_port: - type: org.openecomp.capabilities.Forwarder - occurrences: - - 0 - - UNBOUNDED - valid_source_types: [ - ] - manualdistributiontestvnf0.abstract_simple.network.outgoing.bytes_simple_simple_private_port: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of outgoing bytes - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: network - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.disk.device.capacity_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: The amount of disk per device that the instance can see - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.scalable_simple: - type: tosca.capabilities.Scalable - occurrences: - - 0 - - UNBOUNDED - valid_source_types: [ - ] - properties: - max_instances: - default: 1 - type: integer - required: false - min_instances: - default: 1 - type: integer - required: false - default_instances: - type: integer - required: false - manualdistributiontestvnf0.abstract_simple.network.outgoing.bytes.rate_simple_simple_private_port: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: B/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of outgoing bytes - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: network - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.instance_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: instance - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Existence of instance - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.disk.write.requests_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: request - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of write requests - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: compute - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.binding_simple: - type: tosca.capabilities.network.Bindable - occurrences: - - 0 - - UNBOUNDED - valid_source_types: [ - ] - manualdistributiontestvnf0.abstract_simple.network.incoming.packets_simple_simple_private_port: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: packet - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Number of incoming packets - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Cumulative - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: network - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.disk.iops_simple: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: count/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average disk iops - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: disk - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - manualdistributiontestvnf0.abstract_simple.network.incoming.packets.rate_simple_simple_private_port: - type: org.openecomp.capabilities.metric.Ceilometer - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - occurrences: - - 1 - - UNBOUNDED - valid_source_types: [ - ] - properties: - unit: - default: packet/s - type: string - description: Unit of the metric value - required: true - status: SUPPORTED - name: - type: string - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - required: true - description: - default: Average rate of incoming packets - type: string - description: Description of the metric - required: false - status: SUPPORTED - type: - default: Gauge - type: string - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - required: true - status: SUPPORTED - category: - default: network - type: string - description: Category of the metric, for an example, compute, disk, network, storage and etc. - required: false - status: SUPPORTED - requirements: - - manualdistributiontestvnf0.abstract_simple.dependency_simple: - occurrences: - - 0 - - UNBOUNDED - capability: tosca.capabilities.Node - node: tosca.nodes.Root - relationship: tosca.relationships.DependsOn - - manualdistributiontestvnf0.abstract_simple.dependency_simple_simple_private_port: - occurrences: - - 0 - - UNBOUNDED - capability: tosca.capabilities.Node - node: tosca.nodes.Root - relationship: tosca.relationships.DependsOn - - manualdistributiontestvnf0.abstract_simple.link_simple_simple_private_port: - occurrences: - - 0 - - UNBOUNDED - capability: tosca.capabilities.network.Linkable - relationship: tosca.relationships.network.LinksTo - - manualdistributiontestvnf0.abstract_simple.local_storage_simple: - occurrences: - - 0 - - UNBOUNDED - capability: tosca.capabilities.Attachment - node: tosca.nodes.BlockStorage - relationship: tosca.relationships.AttachesTo diff --git a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/service-Manualdistributiontestservice-template.yml b/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/service-Manualdistributiontestservice-template.yml deleted file mode 100644 index defdf0a8..00000000 --- a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/service-Manualdistributiontestservice-template.yml +++ /dev/null @@ -1,537 +0,0 @@ -tosca_definitions_version: tosca_simple_yaml_1_1 -metadata: - invariantUUID: 0ddc448d-5513-44bc-8b02-5759d84600d5 - UUID: 28d4acf3-4791-4998-8d06-1cdf6d1767a9 - name: manualDistributionTestService - description: Test - type: Service - category: Network L4+ - serviceType: '' - serviceRole: '' - instantiationType: A-la-carte - serviceEcompNaming: true - ecompGeneratedNaming: true - namingPolicy: '' - environmentContext: General_Revenue-Bearing -imports: -- nodes: - file: nodes.yml -- datatypes: - file: data.yml -- capabilities: - file: capabilities.yml -- relationships: - file: relationships.yml -- groups: - file: groups.yml -- policies: - file: policies.yml -- annotations: - file: annotations.yml -- service-manualDistributionTestService-interface: - file: service-Manualdistributiontestservice-template-interface.yml -- resource-manualDistributionTestVNF: - file: resource-Manualdistributiontestvsp-template.yml -- resource-manualDistributionTestVNF-interface: - file: resource-Manualdistributiontestvsp-template-interface.yml -topology_template: - node_templates: - manualDistributionTestVNF 0: - type: org.openecomp.resource.vf.Manualdistributiontestvnf - metadata: - invariantUUID: 0a0b9979-863d-4b7e-b7f4-d27725a182b3 - UUID: 8f43a8c9-c677-462a-ae36-8ddb5990a60d - customizationUUID: 82ad3aa0-edc6-410c-a217-655fb064323f - version: '1.0' - name: manualDistributionTestVNF - description: Test - type: VF - category: Application L4+ - subcategory: Media Servers - resourceVendor: Test - resourceVendorRelease: '1.0' - resourceVendorModelNumber: '' - properties: - vf_module_id: AFRMODULEID - skip_post_instantiation_configuration: true - nf_naming: - ecomp_generated_naming: true - ves_ip: 172.26.10.19 - simple_key: afr-key - multi_stage_design: 'false' - node_ip: 172.26.10.27 - simple_flavor_name: m1.small - availability_zone_max_count: 1 - public_net_id: nova_floating - simple_image_name: UBUNTU16 - nf_type: simulator - simple_netid: onap_vip - vnf_id: VESMED - simple_name_0: SIMPLEUBU - capabilities: - abstract_simple.network.incoming.packets.rate_simple_simple_private_port: - properties: - unit: packet/s - description: Average rate of incoming packets - type: Gauge - category: network - abstract_simple.disk.write.requests_simple: - properties: - unit: request - description: Number of write requests - type: Cumulative - category: compute - abstract_simple.disk.read.requests_simple: - properties: - unit: request - description: Number of read requests - type: Cumulative - category: compute - abstract_simple.memory_simple: - properties: - unit: MB - description: Volume of RAM allocated to the instance - type: Gauge - category: compute - abstract_simple.disk.root.size_simple: - properties: - unit: GB - description: Size of root disk - type: Gauge - category: compute - abstract_simple.network.incoming.packets_simple_simple_private_port: - properties: - unit: packet - description: Number of incoming packets - type: Cumulative - category: network - abstract_simple.network.outgoing.bytes_simple_simple_private_port: - properties: - unit: B - description: Number of outgoing bytes - type: Cumulative - category: network - abstract_simple.disk.device.read.bytes.rate_simple: - properties: - unit: B/s - description: Average rate of reads - type: Gauge - category: disk - abstract_simple.network.outpoing.packets_simple_simple_private_port: - properties: - unit: packet - description: Number of outgoing packets - type: Cumulative - category: network - abstract_simple.disk.capacity_simple: - properties: - unit: B - description: The amount of disk that the instance can see - type: Gauge - category: disk - abstract_simple.disk.device.allocation_simple: - properties: - unit: B - description: The amount of disk per device occupied by the instance on the host machine - type: Gauge - category: disk - abstract_simple.disk.allocation_simple: - properties: - unit: B - description: The amount of disk occupied by the instance on the host machine - type: Gauge - category: disk - abstract_simple.endpoint_simple: - properties: - secure: true - abstract_simple.disk.device.write.requests.rate_simple: - properties: - unit: request/s - description: Average rate of write requests - type: Gauge - category: disk - abstract_simple.disk.device.write.bytes_simple: - properties: - unit: B - description: Volume of writes - type: Cumulative - category: disk - abstract_simple.network.incoming.bytes.rate_simple_simple_private_port: - properties: - unit: B/s - description: Average rate of incoming bytes - type: Gauge - category: network - abstract_simple.memory.usage_simple: - properties: - unit: MB - description: Volume of RAM used by the instance from the amount of its allocated memory - type: Gauge - category: compute - abstract_simple.cpu_util_simple: - properties: - unit: '%' - description: Average CPU utilization - type: Gauge - category: compute - abstract_simple.cpu.delta_simple: - properties: - unit: ns - description: CPU time used since previous datapoint - type: Delta - category: compute - abstract_simple.disk.read.bytes_simple: - properties: - unit: B - description: Volume of reads - type: Cumulative - category: compute - abstract_simple.disk.write.requests.rate_simple: - properties: - unit: request/s - description: Average rate of write requests - type: Gauge - category: compute - abstract_simple.disk.write.bytes_simple: - properties: - unit: B - description: Volume of writes - type: Cumulative - category: compute - abstract_simple.scalable_simple: - properties: - max_instances: 1 - min_instances: 1 - abstract_simple.instance_simple: - properties: - unit: instance - description: Existence of instance - type: Gauge - category: compute - abstract_simple.network.incoming.bytes_simple_simple_private_port: - properties: - unit: B - description: Number of incoming bytes - type: Cumulative - category: network - abstract_simple.disk.latency_simple: - properties: - unit: ms - description: Average disk latency - type: Gauge - category: disk - abstract_simple.disk.device.write.requests_simple: - properties: - unit: request - description: Number of write requests - type: Cumulative - category: disk - abstract_simple.disk.device.iops_simple: - properties: - unit: count/s - description: Average disk iops per device - type: Gauge - category: disk - abstract_simple.disk.device.write.bytes.rate_simple: - properties: - unit: B/s - description: Average rate of writes - type: Gauge - category: disk - abstract_simple.disk.device.latency_simple: - properties: - unit: ms - description: Average disk latency per device - type: Gauge - category: disk - abstract_simple.cpu_simple: - properties: - unit: ns - description: CPU time used - type: Cumulative - category: compute - abstract_simple.port_mirroring_simple_simple_private_port: - properties: - connection_point: - network_role: - get_input: port_simple_private_port_network_role - nfc_naming_code: simple - abstract_simple.memory.resident_simple: - properties: - unit: MB - description: Volume of RAM used by the instance on the physical machine - type: Gauge - category: compute - abstract_simple.disk.device.usage_simple: - properties: - unit: B - description: The physical size in bytes of the image container on the host per device - type: Gauge - category: disk - abstract_simple.disk.usage_simple: - properties: - unit: B - description: The physical size in bytes of the image container on the host - type: Gauge - category: disk - abstract_simple.disk.device.read.requests.rate_simple: - properties: - unit: request/s - description: Average rate of read requests - type: Gauge - category: disk - abstract_simple.vcpus_simple: - properties: - unit: vcpu - description: Number of virtual CPUs allocated to the instance - type: Gauge - category: compute - abstract_simple.disk.read.bytes.rate_simple: - properties: - unit: B/s - description: Average rate of reads - type: Gauge - category: compute - abstract_simple.disk.ephemeral.size_simple: - properties: - unit: GB - description: Size of ephemeral disk - type: Gauge - category: compute - abstract_simple.disk.device.read.bytes_simple: - properties: - unit: B - description: Volume of reads - type: Cumulative - category: disk - abstract_simple.disk.iops_simple: - properties: - unit: count/s - description: Average disk iops - type: Gauge - category: disk - abstract_simple.network.outgoing.bytes.rate_simple_simple_private_port: - properties: - unit: B/s - description: Average rate of outgoing bytes - type: Gauge - category: network - abstract_simple.disk.device.capacity_simple: - properties: - unit: B - description: The amount of disk per device that the instance can see - type: Gauge - category: disk - abstract_simple.network.outgoing.packets.rate_simple_simple_private_port: - properties: - unit: packet/s - description: Average rate of outgoing packets - type: Gauge - category: network - abstract_simple.disk.write.bytes.rate_simple: - properties: - unit: B/s - description: Average rate of writes - type: Gauge - category: compute - abstract_simple.disk.device.read.requests_simple: - properties: - unit: request - description: Number of read requests - type: Cumulative - category: disk - groups: - manualdistributiontestvnf0..manualDistributionTestVNF..base_ves_med1..module-0: - type: org.openecomp.groups.VfModule - metadata: - vfModuleModelName: manualDistributionTestVNF..base_ves_med1..module-0 - vfModuleModelInvariantUUID: dafd0c51-d03c-4849-a777-756e608ad6a5 - vfModuleModelUUID: b31a30a8-a4e4-4a5e-8f2d-ce7662ea4872 - vfModuleModelVersion: '1' - vfModuleModelCustomizationUUID: 6c3eafaf-dd98-4b35-8414-86e2beaed279 - properties: - min_vf_module_instances: 1 - vf_module_label: base_ves_med1 - max_vf_module_instances: 1 - vf_module_type: Base - isBase: true - initial_count: 1 - volume_group: false - substitution_mappings: - node_type: org.openecomp.service.Manualdistributiontestservice - capabilities: - manualdistributiontestvnf0.abstract_simple.feature_simple_simple_private_port: - - manualDistributionTestVNF 0 - - abstract_simple.feature_simple_simple_private_port - manualdistributiontestvnf0.abstract_simple.binding_simple_simple_private_port: - - manualDistributionTestVNF 0 - - abstract_simple.binding_simple_simple_private_port - manualdistributiontestvnf0.abstract_simple.memory.usage_simple: - - manualDistributionTestVNF 0 - - abstract_simple.memory.usage_simple - manualdistributiontestvnf0.abstract_simple.disk.root.size_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.root.size_simple - manualdistributiontestvnf0.abstract_simple.disk.read.bytes_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.read.bytes_simple - manualdistributiontestvnf0.abstract_simple.disk.ephemeral.size_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.ephemeral.size_simple - manualdistributiontestvnf0.abstract_simple.disk.device.read.bytes.rate_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.device.read.bytes.rate_simple - manualdistributiontestvnf0.abstract_simple.network.incoming.bytes.rate_simple_simple_private_port: - - manualDistributionTestVNF 0 - - abstract_simple.network.incoming.bytes.rate_simple_simple_private_port - manualdistributiontestvnf0.abstract_simple.disk.device.read.bytes_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.device.read.bytes_simple - manualdistributiontestvnf0.abstract_simple.cpu.delta_simple: - - manualDistributionTestVNF 0 - - abstract_simple.cpu.delta_simple - manualdistributiontestvnf0.abstract_simple.disk.latency_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.latency_simple - manualdistributiontestvnf0.abstract_simple.network.outpoing.packets_simple_simple_private_port: - - manualDistributionTestVNF 0 - - abstract_simple.network.outpoing.packets_simple_simple_private_port - manualdistributiontestvnf0.abstract_simple.network.outgoing.packets.rate_simple_simple_private_port: - - manualDistributionTestVNF 0 - - abstract_simple.network.outgoing.packets.rate_simple_simple_private_port - manualdistributiontestvnf0.abstract_simple.disk.device.latency_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.device.latency_simple - manualdistributiontestvnf0.abstract_simple.disk.device.write.bytes.rate_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.device.write.bytes.rate_simple - manualdistributiontestvnf0.abstract_simple.disk.usage_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.usage_simple - manualdistributiontestvnf0.abstract_simple.os_simple: - - manualDistributionTestVNF 0 - - abstract_simple.os_simple - manualdistributiontestvnf0.abstract_simple.attachment_simple_simple_private_port: - - manualDistributionTestVNF 0 - - abstract_simple.attachment_simple_simple_private_port - manualdistributiontestvnf0.abstract_simple.cpu_simple: - - manualDistributionTestVNF 0 - - abstract_simple.cpu_simple - manualdistributiontestvnf0.abstract_simple.disk.write.requests.rate_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.write.requests.rate_simple - manualdistributiontestvnf0.abstract_simple.disk.device.write.requests.rate_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.device.write.requests.rate_simple - manualdistributiontestvnf0.abstract_simple.memory_simple: - - manualDistributionTestVNF 0 - - abstract_simple.memory_simple - manualdistributiontestvnf0.abstract_simple.disk.device.read.requests.rate_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.device.read.requests.rate_simple - manualdistributiontestvnf0.abstract_simple.disk.device.usage_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.device.usage_simple - manualdistributiontestvnf0.abstract_simple.host_simple: - - manualDistributionTestVNF 0 - - abstract_simple.host_simple - manualdistributiontestvnf0.abstract_simple.disk.allocation_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.allocation_simple - manualdistributiontestvnf0.abstract_simple.cpu_util_simple: - - manualDistributionTestVNF 0 - - abstract_simple.cpu_util_simple - manualdistributiontestvnf0.abstract_simple.port_mirroring_simple_simple_private_port: - - manualDistributionTestVNF 0 - - abstract_simple.port_mirroring_simple_simple_private_port - manualdistributiontestvnf0.abstract_simple.disk.device.write.requests_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.device.write.requests_simple - manualdistributiontestvnf0.abstract_simple.disk.read.bytes.rate_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.read.bytes.rate_simple - manualdistributiontestvnf0.abstract_simple.disk.device.iops_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.device.iops_simple - manualdistributiontestvnf0.abstract_simple.network.incoming.bytes_simple_simple_private_port: - - manualDistributionTestVNF 0 - - abstract_simple.network.incoming.bytes_simple_simple_private_port - manualdistributiontestvnf0.abstract_simple.disk.write.bytes.rate_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.write.bytes.rate_simple - manualdistributiontestvnf0.abstract_simple.endpoint_simple: - - manualDistributionTestVNF 0 - - abstract_simple.endpoint_simple - manualdistributiontestvnf0.abstract_simple.disk.device.allocation_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.device.allocation_simple - manualdistributiontestvnf0.abstract_simple.disk.capacity_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.capacity_simple - manualdistributiontestvnf0.abstract_simple.memory.resident_simple: - - manualDistributionTestVNF 0 - - abstract_simple.memory.resident_simple - manualdistributiontestvnf0.abstract_simple.disk.device.write.bytes_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.device.write.bytes_simple - manualdistributiontestvnf0.abstract_simple.disk.write.bytes_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.write.bytes_simple - manualdistributiontestvnf0.abstract_simple.feature_simple: - - manualDistributionTestVNF 0 - - abstract_simple.feature_simple - manualdistributiontestvnf0.abstract_simple.disk.read.requests_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.read.requests_simple - manualdistributiontestvnf0.abstract_simple.vcpus_simple: - - manualDistributionTestVNF 0 - - abstract_simple.vcpus_simple - manualdistributiontestvnf0.abstract_simple.disk.device.read.requests_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.device.read.requests_simple - manualdistributiontestvnf0.abstract_simple.forwarder_simple_simple_private_port: - - manualDistributionTestVNF 0 - - abstract_simple.forwarder_simple_simple_private_port - manualdistributiontestvnf0.abstract_simple.network.outgoing.bytes_simple_simple_private_port: - - manualDistributionTestVNF 0 - - abstract_simple.network.outgoing.bytes_simple_simple_private_port - manualdistributiontestvnf0.abstract_simple.disk.device.capacity_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.device.capacity_simple - manualdistributiontestvnf0.abstract_simple.scalable_simple: - - manualDistributionTestVNF 0 - - abstract_simple.scalable_simple - manualdistributiontestvnf0.abstract_simple.network.outgoing.bytes.rate_simple_simple_private_port: - - manualDistributionTestVNF 0 - - abstract_simple.network.outgoing.bytes.rate_simple_simple_private_port - manualdistributiontestvnf0.abstract_simple.instance_simple: - - manualDistributionTestVNF 0 - - abstract_simple.instance_simple - manualdistributiontestvnf0.abstract_simple.disk.write.requests_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.write.requests_simple - manualdistributiontestvnf0.abstract_simple.binding_simple: - - manualDistributionTestVNF 0 - - abstract_simple.binding_simple - manualdistributiontestvnf0.abstract_simple.network.incoming.packets_simple_simple_private_port: - - manualDistributionTestVNF 0 - - abstract_simple.network.incoming.packets_simple_simple_private_port - manualdistributiontestvnf0.abstract_simple.disk.iops_simple: - - manualDistributionTestVNF 0 - - abstract_simple.disk.iops_simple - manualdistributiontestvnf0.abstract_simple.network.incoming.packets.rate_simple_simple_private_port: - - manualDistributionTestVNF 0 - - abstract_simple.network.incoming.packets.rate_simple_simple_private_port - requirements: - manualdistributiontestvnf0.abstract_simple.link_simple_simple_private_port: - - manualDistributionTestVNF 0 - - abstract_simple.link_simple_simple_private_port - manualdistributiontestvnf0.abstract_simple.dependency_simple_simple_private_port: - - manualDistributionTestVNF 0 - - abstract_simple.dependency_simple_simple_private_port - manualdistributiontestvnf0.abstract_simple.local_storage_simple: - - manualDistributionTestVNF 0 - - abstract_simple.local_storage_simple - manualdistributiontestvnf0.abstract_simple.dependency_simple: - - manualDistributionTestVNF 0 - - abstract_simple.dependency_simple diff --git a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/vendor-license-model.xml b/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/vendor-license-model.xml deleted file mode 100644 index f25ff824..00000000 --- a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/vendor-license-model.xml +++ /dev/null @@ -1 +0,0 @@ -Test9c7b6505ea31411e8dd9421d9aac9b54FDE8E9CFC07B42AAB12987440BFBF8661.0TestEntitlementPoolTEP11.0TestLicenseKeyGroupUniversalf109b410a44f4b8698c9afcecde66194F4B453CBA577433589F81CB7E6556A89 \ No newline at end of file diff --git a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/vf-license-model.xml b/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/vf-license-model.xml deleted file mode 100644 index f4369f1f..00000000 --- a/plans/so/integration-etsi-testing/config/distribution-test-unzipped/unzipped_sdc_csar/v1/catalog/services/Manualdistributiontestservice/1.0/resourceInstances/manualdistributiontestvnf0/artifacts/vf-license-model.xml +++ /dev/null @@ -1 +0,0 @@ -Test024abe1eef244a22b91958f507d5d325TestEntitlementPool9c7b6505ea31411e8dd9421d9aac9b54FDE8E9CFC07B42AAB12987440BFBF866TEP11.0TestLicenseKeyGroupUniversalf109b410a44f4b8698c9afcecde66194F4B453CBA577433589F81CB7E6556A891.0TestFeatureGroupc9890306e372438fa1eaac1c9bf5db92Test Feature GroupTFG1 \ No newline at end of file diff --git a/plans/so/integration-etsi-testing/config/distribution-test-zip/zipped_sdc_csar.tar.gz b/plans/so/integration-etsi-testing/config/distribution-test-zip/zipped_sdc_csar.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..fcf828c8625970593b3080f035c80f4aa1aa2b47 GIT binary patch literal 129539 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%0D_;_x?n4*OD8uiVWoR+wz;9ry- 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 literal 0 HcmV?d00001 diff --git a/plans/so/integration-etsi-testing/docker-compose.yml b/plans/so/integration-etsi-testing/docker-compose.yml index b356b7da..ae20b0df 100644 --- a/plans/so/integration-etsi-testing/docker-compose.yml +++ b/plans/so/integration-etsi-testing/docker-compose.yml @@ -130,7 +130,7 @@ services: volumes: - ${TEST_LAB_DIR}/volumes/so/ca-certificates/onapheat:/app/ca-certificates - ${TEST_LAB_DIR}/volumes/so/config/sdc-controller/onapheat:/app/config - - ${CONFIG_DIR_PATH}/distribution-test-unzipped:/distribution-test/unzipped + - ${CONFIG_DIR_PATH}/distribution-test-zip/zipped_sdc_csar.tar.gz:/distribution-test-zip/zipped_sdc_csar.tar.gz environment: - APP=sdc-controller - JVM_ARGS=-Xms64m -Xmx512m @@ -152,13 +152,9 @@ services: max-size: "30m" max-file: "5" command: - - /app/wait-for.sh - - -q - - -t - - "300" - - request-db-adapter:8083 - - -- - - "/app/start-app.sh" + - /bin/sh + - -c + - 'mkdir -p /distribution-test-zip/unzipped && tar -xvzf /distribution-test-zip/zipped_sdc_csar.tar.gz -C /distribution-test-zip/unzipped && /app/wait-for.sh -q -t "300" request-db-adapter:8083 -- "/app/start-app.sh"' ################################################################################ bpmn-infra: image: ${NEXUS_DOCKER_REPO_MSO}/onap/so/bpmn-infra:${TAG} diff --git a/tests/so/etsi/etsi_tests.robot b/tests/so/etsi/etsi_tests.robot index e35b5364..bfa23317 100644 --- a/tests/so/etsi/etsi_tests.robot +++ b/tests/so/etsi/etsi_tests.robot @@ -12,7 +12,7 @@ ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}= 48 # Represents the maximum number o Distribute Service Template Create Session sdc_controller_session http://${REPO_IP}:8085 ${data}= Get Binary File ${CURDIR}${/}data${/}distributeServiceTemplate.json - &{headers}= Create Dictionary Authorization=Basic bXNvX2FkbWluOnBhc3N3b3JkMSQ= resource-location=/distribution-test/unzipped Content-Type=application/json Accept=application/json + &{headers}= Create Dictionary Authorization=Basic bXNvX2FkbWluOnBhc3N3b3JkMSQ= resource-location=/distribution-test-zip/unzipped/ Content-Type=application/json Accept=application/json ${resp}= Post Request sdc_controller_session /test/treatNotification/v1 data=${data} headers=${headers} Run Keyword If '${resp.status_code}' == '200' log to console \nexecuted with expected result Should Be Equal As Strings '${resp.status_code}' '200' -- 2.16.6