Commit 66c10401 authored by Giacomo Bernini's avatar Giacomo Bernini
Browse files

updated schema of ManoEntity (VimSpecificInfo)

parent f35caec0
Loading
Loading
Loading
Loading
+402 −432
Original line number Diff line number Diff line
{
	"description": "This type represents an NFV-MANO functional entity. *  NOTE 1:\tIt shall be present when \"type\" attribute is \"NFVO\", and it shall be absent in any other case. *  NOTE 2:\tIt shall be present when \"type\" attribute is \"VNFM\", and it shall be absent in any other case. *  NOTE 3:\tIt shall be present when \"type\" attribute is \"VIM\", and it shall be absent in any other case. *  NOTE 4:\tThe information about the NFV-MANO services offered by a specific type of NFV-MANO functional\n            entity is specified by the manoServices attribute.\n*  NOTE 5:\tIt is optional for the API producer to support the \"manoEntityComponents\" attribute. *  NOTE 6:\tIt shall be present when \"type\" attribute is \"WIM\", and it shall be absent in any other case.\n",
	"type": "object",
  "required": [
    "id",
    "type",
    "name",
    "description",
    "provider",
    "softwareVersion",
    "manoConfigurableParams",
    "manoApplicationState",
    "_links"
  ],
	"required": ["id", "type", "name", "description", "provider", "softwareVersion", "manoConfigurableParams", "manoApplicationState", "_links"],
	"properties": {
		"id": {
			"description": "An identifier with the intention of being globally unique.\n",
@@ -20,12 +10,7 @@
		"type": {
			"description": "The enumeration ManoEntityEnumType defines the permitted values to represent NFV-MANO functional entities. It shall comply with the provisions :\n  - NFVO\tThe NFV-MANO functional entity is an NFVO.\n  - VNFM\tThe NFV-MANO functional entity is a VNFM.\n  - VIM\t    The NFV-MANO functional entity is a VIM.\n  - WIM     The NFV-MANO functional entity is a WIM.\n",
			"type": "string",
      "enum": [
        "NFVO",
        "VNFM",
        "VIM",
        "WIM"
      ]
			"enum": ["NFVO", "VNFM", "VIM", "WIM"]
		},
		"name": {
			"description": "Human-readable name of the NFV-MANO functional entity.\nThis attribute can be modified with the PATCH method.\n",
@@ -49,9 +34,7 @@
			"items": {
				"description": "This type represents information of a deployed component realizing part of an NFV-MANO functional entity. It is optional for the API producer to support this type.\n",
				"type": "object",
        "required": [
          "id"
        ],
				"required": ["id"],
				"properties": {
					"id": {
						"description": "An identifier that is unique for the respective type within a NFV-MANO functional entity, but that need not be globally unique. Representation: string of variable length..\n",
@@ -74,13 +57,7 @@
			"items": {
				"description": "This type represents information about an NFV-MANO service provided by the NFV-MANO functional entity. * NOTE:\tA cardinality greater than one supports having different interface versions or api Endpoints\n        to be used for accessing the same instance of an NFV-MANO service.\n",
				"type": "object",
        "required": [
          "id",
          "name",
          "description",
          "manoServiceInterfaceIds",
          "_links"
        ],
				"required": ["id", "name", "description", "manoServiceInterfaceIds", "_links"],
				"properties": {
					"id": {
						"description": "An identifier that is unique for the respective type within a NFV-MANO functional entity, but that need not be globally unique. Representation: string of variable length..\n",
@@ -113,9 +90,7 @@
								"items": {
									"description": "This type represents a link to a resource using an absolute URI.\n",
									"type": "object",
                  "required": [
                    "href"
                  ],
									"required": ["href"],
									"properties": {
										"href": {
											"description": "String formatted according to IETF RFC 3986.\n",
@@ -126,62 +101,40 @@
								"minItems": 1
							}
						},
            "required": [
              "manoServiceInterfaces"
            ]
						"required": ["manoServiceInterfaces"]
					}
				}
			}
		},
		"manoConfigurableParams": {
      "description": "# Warning: No definition found in the document ManoConfigurableParams\n"
			"description": "ManoConfigurableParams\n"
		},
		"manoApplicationState": {
      "description": "Information and current values of the NFV-MANO functional entityΓÇÖs application state. \n",
			"description": "Information and current values of the NFV-MANO functional entitys application state.\n",
			"type": "object",
      "required": [
        "operationalState",
        "administrativeState",
        "usageState"
      ],
			"required": ["operationalState", "administrativeState", "usageState"],
			"properties": {
				"operationalState": {
					"description": "The enumeration OperationalStateEnumType defines values representing the operational state of an NFV-MANO functional application type of managed entity. The OperationalStateEnumType shall comply with the provisions:\n  - STARTED\tThe managed entity is operational.\n  - STOPPED\tThe managed entity is not operational.\n  - STOPPING\tThe managed entity is in the transition to stop.\n  - STARTING\tThe managed entity is in the transition to start and become operational.\n  - RESTARTING\tThe managed entity is in the transition to stop and start again.\n",
					"type": "string",
          "enum": [
            "STARTED",
            "STOPPED",
            "STOPPING",
            "STARTING",
            "RESTARTING"
          ]
					"enum": ["STARTED", "STOPPED", "STOPPING", "STARTING", "RESTARTING"]
				},
				"administrativeState": {
					"description": "The enumeration AdministrativeStateEnumType defines values representing the administrative state of a managed entity. The AdministrativeStateEnumType shall comply with the provisions:\n  - LOCKED\tThe managed entity is administratively prohibited to be used.\n  - UNLOCKED\tThe managed entity is administratively allowed to be used.\n  - LOCKING\tThe managed entity is in the transition to be locked.\n",
					"type": "string",
          "enum": [
            "LOCKED",
            "UNLOCKED",
            "LOCKING"
          ]
					"enum": ["LOCKED", "UNLOCKED", "LOCKING"]
				},
				"usageState": {
					"description": "The enumeration UsageStateEnumType defines values representing the usage state of a managed entity. The UsageStateEnumType shall comply with the provisions:\n  - IN_USE\tThe managed entity is currently being used.\n  - NOT_IN_USE\tThe managed entity is currently not being used.\n",
					"type": "string",
          "enum": [
            "IN_USE",
            "NOT_IN_USE"
          ]
					"enum": ["IN_USE", "NOT_IN_USE"]
				}
			}
		},
		"nfvoSpecificInfo": {
			"description": "This type represents information attributes specific to an NFVO entity, and that can be relevant to more than one NFV-MANO service offered by an NFVO entity. * NOTE 1:\tThe information to be provided in this attribute shall relate to the specification and version\n            of the specification. For instance, \"ETSI GS NFV-SOL 001 (V2.5.1)\".\n  NOTE 2:\tIf this attribute is not present, the value of this parameter is undefined.\n",
			"type": "object",
      "required": [
        "supportedVnfdFormats",
        "supportedNsdFormats"
      ],
			"required": ["supportedVnfdFormats", "supportedNsdFormats"],
			"properties": {
				"maxOnboardedNsdNum": {
					"description": "Maximum number of NSDs that can be on-boarded on the NFVO. See note 2.\n",
@@ -198,20 +151,14 @@
						"vnfdFormat": {
							"description": "Name of the VNFD format.\nPermitted values:\n  - TOSCA: The VNFD follows TOSCA definition, according to ETSI\n  GS NFV-SOL 001 standard.\n  - YANG: The VNFD follows YANG definition according to ETSI\n  GS NFV-SOL 006 standard.\n",
							"type": "string",
              "enum": [
                "TOSCA",
                "YANG"
              ]
							"enum": ["TOSCA", "YANG"]
						},
						"standardVersion": {
							"description": "A version.\n",
							"type": "string"
						}
					},
          "required": [
            "vnfdFormat",
            "standardVersion"
          ]
					"required": ["vnfdFormat", "standardVersion"]
				},
				"supportedNsdFormats": {
					"description": "Supported NSD data formats.\n",
@@ -220,40 +167,26 @@
						"nsdFormat": {
							"description": "Name of the NSD format.\nPermitted values:\n  - TOSCA: The VNFD follows TOSCA definition, according to ETSI\n  GS NFV-SOL 001 standard.\n  - YANG: The VNFD follows YANG definition according to ETSI\n  GS NFV-SOL 006 standard.\n",
							"type": "string",
              "enum": [
                "TOSCA",
                "YANG"
              ]
							"enum": ["TOSCA", "YANG"]
						},
						"standardVersion": {
							"description": "A version.\n",
							"type": "string"
						}
					},
          "required": [
            "nsdFormat",
            "standardVersion"
          ]
					"required": ["nsdFormat", "standardVersion"]
				}
			}
		},
		"vnfmSpecificInfo": {
			"description": "This type represents information attributes specific to a VNFM entity, and that can be relevant to more than one NFV-MANO service offered by a VNFM entity. * NOTE:\tThe information to be provided in this attribute shall relate to the specification and version\n        of the specification. For instance, \"ETSI GS NFV-SOL 001 (V2.5.1)\".\n",
			"type": "object",
      "required": [
        "resoruceMgmtModeSupport",
        "managedVnfInstanceInfos",
        "supportedVnfdFormats"
      ],
			"required": ["resoruceMgmtModeSupport", "managedVnfInstanceInfos", "supportedVnfdFormats"],
			"properties": {
				"resoruceMgmtModeSupport": {
					"description": "The supported resource management modes of the VNFM.\nPermitted values:\n  - DIRECT: The VNFM supports direct mode only.\n  - INDIRECT: The VNFM supports indirect mode only.\n  - BOTH: The VNFM supports both direct and indirect mode.\n",
					"type": "string",
          "enum": [
            "DIRECT",
            "INDIRECT",
            "BOTH"
          ]
					"enum": ["DIRECT", "INDIRECT", "BOTH"]
				},
				"managedVnfInstanceInfos": {
					"description": "The kinds of VNF instances that can be managed, e.g. to determine the compatibility of a VNF with certain VNFM according to the vnfmInfo attribute in the VNFD (see table 7.1.2.2-1 in ETSI GS NFV-IFA 011).\n",
@@ -272,44 +205,106 @@
							"vnfdFormat": {
								"description": "Name of the VNFD format.\nPermitted values:\n  - TOSCA: The VNFD follows TOSCA definition, according to ETSI\n  GS NFV-SOL 001 standard.\n  - YANG: The VNFD follows YANG definition according to ETSI\n  GS NFV-SOL 006 standard.\n",
								"type": "string",
                "enum": [
                  "TOSCA",
                  "YANG"
                ]
								"enum": ["TOSCA", "YANG"]
							},
							"standardVersion": {
								"description": "A version.\n",
								"type": "string"
							}
						},
            "required": [
              "vnfdFormat",
              "standardVersion"
            ]
						"required": ["vnfdFormat", "standardVersion"]
					},
					"minItems": 1
				}
			}
		},
		"vimSpecificInfo": {
      "description": "This type represents information attributes specific to a VIM entity,  and that can be relevant to more than one NFV-MANO service offered by  a VIM entity.\n",
			"description": "This type represents information attributes specific to a VIM entity, and that can be relevant to more than one NFV MANO service offered by a VIM entity. It shall comply with the provisions defined in table 5.6.3.6-1. The present document version does not specify the support for \"maximum number of virtualised resources (attribute \"maxVirtualResourceNum\")\" as specified in clause 7.2.9.2 of ETSI GS NFV IFA 031 [1].\nNOTE:\tRecommendations on appropriate algorithms and key lengths are given e.g., in NIST Special Publication 800-57 Part 3 Revision 1 [i.26] or in documents related to local legislation.\n",
			"type": "object",
			"required": ["imageContainerFormats", "imageDiskFormats", "imageSignatureVerification", "imageDigestAlgorithms"],
			"properties": {
				"imageContainerFormats": {
					"description": "List of supported image container formats. Container format indicates whether a software image is in a file that also contains metadata about the actual software. Valid values are all values for \"container_format\" as defined in ETSI GS NFV-SOL 001 [i.16] and all values for \"container-format\" as defined in ETSI GS NFV-SOL 006 [i.17].\n",
					"type": "array",
					"items": {
						"type": "string"
					}
				},
				"imageDiskFormats": {
					"description": "List of supported image disk formats. The Disk format of a software image is the format of the underlying disk image. Valid values are all values for \"disk_format\" as defined in ETSI GS NFV-SOL 001 [16] and all values of \"disk-format\" as defined in ETSI GS NFV-SOL 006 [i.17].\n",
					"type": "array",
					"items": {
						"type": "string"
					}
				},
				"imageSignatureVerification": {
					"description": "Information about the supported mechanisms, algorithms, and protocols for verifying the signature of software images.\n",
					"type": "object",
					"required": ["signatureVerificationAlgorithms"],
					"properties": {
						"additionalVerificationCapabilities": {
							"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n",
							"type": "object"
						},
						"signatureVerificationAlgorithms": {
							"description": "List of algorithms for verifying the signature of software images that are supported by the VIM.\n",
							"type": "array",
							"items": {
								"type": "object",
								"required": ["algorithm", "keyLengths"],
								"properties": {
									"algorithm": {
										"description": "The name of the algorithm. Permitted values are: \"RSA\", \"DSA\", \"ECDSA\".\n",
										"type": "string"
									},
									"keyLengths": {
										"description": "List of supported key lengths of the algorithm. The key length indicates the number of bits, such as “256”, “512”, etc. See note.\n",
										"type": "array",
										"items": {
											"type": "string"
										}
									},
									"additionalAlgParams": {
										"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n",
										"type": "object"
									}
								}
							}
						}
					}
				},
				"imageDigestAlgorithms": {
					"description": "List of supported digest algorithms that can be used for digital signatures.\n",
					"type": "array",
					"items": {
						"type": "object",
						"required": ["algorithm", "keyLengths"],
						"properties": {
							"algorithm": {
								"description": "The name of the algorithm. Permitted values are: “SHA2“,“SHA3“.\n",
								"type": "string"
							},
							"keyLengths": {
								"description": "List of supported key lengths of the algorithm. The key length indicates the number of bits, such as “256”, “512”, etc. See note.\n",
								"type": "array",
								"items": {
									"type": "string"
								}
							}
						}
					}
				}
			}
		},
		"wimSpecificInfo": {
			"description": "This type represents information attributes specific to a WIM entity, and that can be relevant to more than one NFV MANO service offered by a WIM entity.\n",
			"type": "object",
      "required": [
        "maxMscsNums",
        "maxMsncNum",
        "mscsLayerProtocolSupport"
      ],
			"required": ["maxMscsNums", "maxMsncNum", "mscsLayerProtocolSupport"],
			"properties": {
				"maxMscsNums": {
					"description": "Maximum number of MSCS that the WIM can manage.\n",
					"type": "object",
          "required": [
            "numMscs"
          ],
					"required": ["numMscs"],
					"properties": {
						"numMscs": {
							"description": "Maximum number of MSCS.\n",
@@ -324,9 +319,7 @@
				"maxMsncNum": {
					"description": "Maximum number of MSNC that the WIM can manage\n",
					"type": "object",
          "required": [
            "numMsnc"
          ],
					"required": ["numMsnc"],
					"properties": {
						"numMsnc": {
							"description": "Maximum number of MSNC..\n",
@@ -339,36 +332,21 @@
					}
				},
				"mscsLayerProtocolSupport": {
          "description": "List of protocols of particular layers used to realize an MSCS that are supported by the WIM.\nPermitted values:\n  - EVPN_BGP_MPLS: L2 MSCS realized by BGP MPLS-based Ethernet VPN (EVPN) as specified in IETF RFC 7432.\n  - EVPN_VPWS: L2 MSCS realized by EVPN Virtual Private Wire Service (VPWS) as specified in IETF RFC 8214.\n  - VPLS_BGP: L2 MSCS realized by Virtual Private LAN Service (VPLS) using BGP as specified\n    in IETF RFC 4761 and IETF RFC.\n  - VPLS_LDP_L2TP: L2 MSCS realized by VPLS using Label Distribution Protocol (LDP) Layer 2\n    Tunnelling Protocol (L2TP) as specified in IETF RFC 4762 and IETF RFC 6074.\n  - VPWS_LDP_L2TP: L2 MSCS realized by VPWS using LDP L2TP as specified in IETF RFC 6074.\n  - BGP_IP_VPN: L3 MSCS realized by BGP/MPLS based IP VPN as specified in IETF RFC 4364.\n",
					"description": "List of protocols of particular layers used to realize an MSCS that are supported by the WIM.\nPermitted values:  - EVPN_BGP_MPLS: L2 MSCS realized by BGP MPLS-based Ethernet VPN (EVPN) as specified in IETF RFC 7432.\n  - EVPN_VPWS: L2 MSCS realized by EVPN Virtual Private Wire Service (VPWS) as specified in IETF RFC 8214.\n  - VPLS_BGP: L2 MSCS realized by Virtual Private LAN Service (VPLS) using BGP as specified\n    in IETF RFC 4761 and IETF RFC.\n  - VPLS_LDP_L2TP: L2 MSCS realized by VPLS using Label Distribution Protocol (LDP) Layer 2\n    Tunnelling Protocol (L2TP) as specified in IETF RFC 4762 and IETF RFC 6074.\n  - VPWS_LDP_L2TP: L2 MSCS realized by VPWS using LDP L2TP as specified in IETF RFC 6074.\n  - BGP_IP_VPN: L3 MSCS realized by BGP/MPLS based IP VPN as specified in IETF RFC 4364.\n",
					"type": "string",
          "enum": [
            "EVPN_BGP_MPLS",
            "EVPN_VPWS",
            "VPLS_BGP",
            "VPLS_LDP_L2TP",
            "VPWS_LDP_L2TP",
            "BGP_IP_VPN"
          ]
					"enum": ["EVPN_BGP_MPLS", "EVPN_VPWS", "VPLS_BGP", "VPLS_LDP_L2TP", "VPWS_LDP_L2TP", "BGP_IP_VPN"]
				}
			}
		},
		"_links": {
			"description": "Links to resources related to this resource.\n",
			"type": "object",
      "required": [
        "self",
        "manoServiceInterfaces",
        "peerEntities",
        "changeState",
        "changeStateOpOccs"
      ],
			"required": ["self", "manoServiceInterfaces", "peerEntities", "changeState", "changeStateOpOccs"],
			"properties": {
				"self": {
					"description": "This type represents a link to a resource using an absolute URI.\n",
					"type": "object",
          "required": [
            "href"
          ],
					"required": ["href"],
					"properties": {
						"href": {
							"description": "String formatted according to IETF RFC 3986.\n",
@@ -379,9 +357,7 @@
				"manoServiceInterfaces": {
					"description": "This type represents a link to a resource using an absolute URI.\n",
					"type": "object",
          "required": [
            "href"
          ],
					"required": ["href"],
					"properties": {
						"href": {
							"description": "String formatted according to IETF RFC 3986.\n",
@@ -392,9 +368,7 @@
				"peerEntities": {
					"description": "This type represents a link to a resource using an absolute URI.\n",
					"type": "object",
          "required": [
            "href"
          ],
					"required": ["href"],
					"properties": {
						"href": {
							"description": "String formatted according to IETF RFC 3986.\n",
@@ -405,9 +379,7 @@
				"changeState": {
					"description": "This type represents a link to a resource using an absolute URI.\n",
					"type": "object",
          "required": [
            "href"
          ],
					"required": ["href"],
					"properties": {
						"href": {
							"description": "String formatted according to IETF RFC 3986.\n",
@@ -418,9 +390,7 @@
				"changeStateOpOccs": {
					"description": "This type represents a link to a resource using an absolute URI.\n",
					"type": "object",
          "required": [
            "href"
          ],
					"required": ["href"],
					"properties": {
						"href": {
							"description": "String formatted according to IETF RFC 3986.\n",