SOL003 VNF Indicator - Implementation of deltas between v4.3.1 and v3.6.1

This merge request refers to the implementation of deltas between v4.3.1 and v3.6.1 of SOL003 VNF Indicator Interface.

@lynchpi @matsuurat @sayama @hamza @ayuba @ishaqm @reinaortega

Deadline for review: Friday 13th January 2023 @6pm CET

Merge request reports

Loading
+7 −17
Changes for SOL003/VNFIndicator-API/schemas/SupportedIndicatorsChangeNotification.schema.json: 7 added lines, 17 removed lines.
Original line number Diff line number Diff line
{
	"description": "This type represents a notification to inform the receiver that the set of indicators supported  by a VNF instance has changed. It shall comply with the provisions defined in table 8.5.2.6-1. The notification shall be triggered by the VNFM when the set of supported VNF indicators has changed  as a side effect of the \"Change current VNF package\" operation. It may be triggered by the VNFM when  a VNF has been instantiated.\n",
  "description": "This type represents a notification to inform the receiver that the set of indicators supported  by a VNF instance has changed.\nThe notification shall be triggered by the VNFM when the set of supported VNF indicators has changed  as a side effect of the \"Change current VNF package\" operation. It may be triggered by the VNFM when  a VNF has been instantiated.\nNOTE:\tETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications.\n",
  "type": "object",
  "required": [
    "id",
@@ -17,9 +17,7 @@
    "notificationType": {
      "description": "Discriminator for the different notification types. Shall be set to  \"SupportedIndicatorsChangeNotification\" for this notification type.\n",
      "type": "string",
			"enum": [
				"VnfIndicatorValueChangeNotification"
			]
      "enum": ["VnfIndicatorValueChangeNotification"]
    },
    "subscriptionId": {
      "description": "An identifier with the intention of being globally unique.\n",
@@ -39,16 +37,14 @@
      "type": "array",
      "items": {
        "type": "object",
				"required": [
					"vnfIndicatorId"
				],
        "required": ["vnfIndicatorId"],
        "properties": {
          "vnfIndicatorId": {
            "description": "An identifier that is unique within a VNF descriptor.\n",
            "type": "string"
          },
          "name": {
						"description": "Human readable name of the VNF indicator.  Shall be  present if defined in the VNFD.  ETSI GS NFV-SOL 001 specifies the structure and format of  the VNFD based on TOSCA specifications.\n",
            "description": "Human readable name of the VNF indicator. Shall be present if defined in the VNFD. See note.\n",
            "type": "string"
          }
        }
@@ -57,16 +53,12 @@
    "_links": {
      "description": "Links for this resource.\n",
      "type": "object",
			"required": [
				"subscription"
			],
      "required": ["subscription"],
      "properties": {
        "vnfInstance": {
          "description": "This type represents a link to a resource in a notification, using an absolute or relative URI.\n",
          "type": "object",
					"required": [
						"href"
					],
          "required": ["href"],
          "properties": {
            "href": {
              "description": "String formatted according to IETF RFC 3986.\n",
@@ -77,9 +69,7 @@
        "subscription": {
          "description": "This type represents a link to a resource in a notification, using an absolute or relative URI.\n",
          "type": "object",
					"required": [
						"href"
					],
          "required": ["href"],
          "properties": {
            "href": {
              "description": "String formatted according to IETF RFC 3986.\n",
+45 −30
Changes for SOL003/VNFIndicator-API/schemas/VnfIndicatorSubscription.schema.json: 45 added lines, 30 removed lines.
Original line number Diff line number Diff line
{
  "description": "This type represents a subscription related to notifications about VNF indicator value changes.\n",
  "type": "object",
  "required": [
    "id",
    "callbackUri",
    "_links"
  ],
  "required": ["id", "callbackUri", "_links"],
  "properties": {
    "id": {
      "description": "An identifier with the intention of being globally unique.\n",
      "type": "string"
    },
    "filter": {
      "description": "This type represents a subscription filter related to notifications about VNF indicator value changes. At a particular nesting level in the filter structure, the following applies: All attributes shall match in order for the filter to match (logical \"and\" between different filter attributes). If an attribute is an array, the attribute shall match if at least one of the values in the array matches (logical \"or\" between the values of one filter attribute).\n",
      "description": "This type represents a subscription filter for notifications related to VNF indicators.\nAt a particular nesting level in the filter structure, the following applies:  All attributes shall match in order for the filter to match (logical \"and\" between different  filter attributes). If an attribute is an array, the attribute shall match if at least one of  the values in the array matches (logical \"or\" between the values of one filter attribute).\nNOTE:\tThe permitted values of the \"notificationTypes\" attribute are spelled exactly as the names \n      of the notification types to facilitate automated code generation systems.\n",
      "type": "object",
      "properties": {
        "vnfInstanceSubscriptionFilter": {
          "description": "This type represents subscription filter criteria to match VNF instances.\n",
          "description": "This type represents subscription filter criteria to match VNF instances. * NOTE 1:\tThe attributes \"vnfdIds\" and \"vnfProductsFromProviders\" are alternatives to reference to VNF instances\n          that are based on certain VNFDs in a filter. They should not be used both in the same filter instance,\n          but one alternative should be chosen.\n  NOTE 2:\tThe attributes \"vnfInstanceIds\" and \"vnfInstanceNames\" are alternatives to reference to particular VNF\n          instances in a filter. They should not be used both in the same filter instance, but one alternative\n          should be chosen.\n",
          "type": "object",
          "anyOf": [
            {
              "oneOf": [
                {
                  "required": ["vnfdId"]
                },
                {
                  "required": ["vnfProductsFromProviders"]
                }
              ]
            },
            {
              "oneOf": [
                {
                  "required": ["vnfInstanceIds"]
                },
                {
                  "required": ["vnfInstanceNames"]
                }
              ]
            }
          ],
          "properties": {
            "vnfdIds": {
              "description": "If present, match VNF instances that were created based on a VNFD identified by one of the vnfdId values listed in this attribute. The attributes \"vnfdIds\" and \"vnfProductsFromProviders\" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",
              "description": "If present, match VNF instances that were created based on a VNFD identified by one of the vnfdId values listed in this attribute. See note 1.\n",
              "type": "array",
              "items": {
                "description": "An identifier with the intention of being globally unique.\n",
@@ -28,13 +46,11 @@
              }
            },
            "vnfProductsFromProviders": {
              "description": "If present, match VNF instances that belong to VNF products from certain providers. The attributes \"vnfdIds\" and \"vnfProductsFromProviders\" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",
              "description": "If present, match VNF instances that belong to VNF products from certain providers. See note 1.\n",
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "vnfProvider"
                ],
                "required": ["vnfProvider"],
                "properties": {
                  "vnfProvider": {
                    "description": "Name of the VNF provider to match.\n",
@@ -45,9 +61,7 @@
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "vnfProductName"
                      ],
                      "required": ["vnfProductName"],
                      "properties": {
                        "vnfProductName": {
                          "description": "Name of the VNF product to match.\n",
@@ -58,9 +72,7 @@
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "vnfSoftwareVersion"
                            ],
                            "required": ["vnfSoftwareVersion"],
                            "properties": {
                              "vnfSoftwareVersion": {
                                "description": "A version.\n",
@@ -84,7 +96,7 @@
              }
            },
            "vnfInstanceIds": {
              "description": "If present, match VNF instances with an instance identifier listed in this attribute. The attributes \"vnfInstanceIds\" and \"vnfInstanceNames\" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",
              "description": "If present, match VNF instances with an instance identifier listed in this attribute. See note 2.\n",
              "type": "array",
              "items": {
                "description": "An identifier with the intention of being globally unique.\n",
@@ -92,7 +104,7 @@
              }
            },
            "vnfInstanceNames": {
              "description": "If present, match VNF instances with a VNF Instance Name listed in this attribute. The attributes \"vnfInstanceIds\" and \"vnfInstanceNames\" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",
              "description": "If present, match VNF instances with a VNF Instance Name listed in this attribute. See note 2.\n",
              "type": "array",
              "items": {
                "type": "string"
@@ -100,6 +112,14 @@
            }
          }
        },
        "notificationTypes": {
          "description": "Match particular notification types. \nPermitted values: -\tVnfIndicatorValueChangeNotification -\tSupportedIndicatorsChangeNotification See note.\n",
          "type": "string",
          "enum": [
            "VnfIndicatorValueChangeNotification",
            "SupportedIndicatorsChangeNotification"
          ]
        },
        "indicatorIds": {
          "description": "Match particular VNF indicator identifiers.\n",
          "type": "array",
@@ -118,21 +138,16 @@
    "_links": {
      "description": "Links for this resource.\n",
      "type": "object",
      "required": [
        "self"
      ],
      "required": ["self"],
      "properties": {
        "self": {
          "description": "This type represents a link to a resource.\n",
          "description": "This type represents a link to a resource using an absolute URI.\n",
          "type": "object",
          "required": [
            "href"
          ],
          "required": ["href"],
          "properties": {
            "href": {
              "description": "URI of the referenced resource.\n",
              "type": "string",
              "format": "url"
              "description": "String formatted according to IETF RFC 3986.\n",
              "type": "string"
            }
          }
        }
+160 −1
Changes for SOL003/VNFIndicator-API/schemas/VnfIndicatorSubscriptions.schema.json: 160 added lines, 1 removed line.
Original line number Diff line number Diff line
{  "type": "array",  "items": {    "description": "This type represents a subscription related to notifications about VNF indicator value changes.\n",    "type": "object",    "required": [      "id",      "callbackUri",      "_links"    ],    "properties": {      "id": {        "description": "An identifier with the intention of being globally unique.\n",        "type": "string"      },      "filter": {        "description": "This type represents a subscription filter related to notifications about VNF indicator value changes. At a particular nesting level in the filter structure, the following applies: All attributes shall match in order for the filter to match (logical \"and\" between different filter attributes). If an attribute is an array, the attribute shall match if at least one of the values in the array matches (logical \"or\" between the values of one filter attribute).\n",        "type": "object",        "properties": {          "vnfInstanceSubscriptionFilter": {            "description": "This type represents subscription filter criteria to match VNF instances.\n",            "type": "object",            "properties": {              "vnfdIds": {                "description": "If present, match VNF instances that were created based on a VNFD identified by one of the vnfdId values listed in this attribute. The attributes \"vnfdIds\" and \"vnfProductsFromProviders\" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",                "type": "array",                "items": {                  "description": "An identifier with the intention of being globally unique.\n",                  "type": "string"                }              },              "vnfProductsFromProviders": {                "description": "If present, match VNF instances that belong to VNF products from certain providers. The attributes \"vnfdIds\" and \"vnfProductsFromProviders\" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",                "type": "array",                "items": {                  "type": "object",                  "required": [                    "vnfProvider"                  ],                  "properties": {                    "vnfProvider": {                      "description": "Name of the VNF provider to match.\n",                      "type": "string"                    },                    "vnfProducts": {                      "description": "If present, match VNF instances that belong to VNF products with certain product names, from one particular provider.\n",                      "type": "array",                      "items": {                        "type": "object",                        "required": [                          "vnfProductName"                        ],                        "properties": {                          "vnfProductName": {                            "description": "Name of the VNF product to match.\n",                            "type": "string"                          },                          "versions": {                            "description": "If present, match VNF instances that belong to VNF products with certain versions and a certain product name, from one particular provider.\n",                            "type": "array",                            "items": {                              "type": "object",                              "required": [                                "vnfSoftwareVersion"                              ],                              "properties": {                                "vnfSoftwareVersion": {                                  "description": "A version.\n",                                  "type": "string"                                },                                "vnfdVersions": {                                  "description": "If present, match VNF instances that belong to VNF products with certain VNFD versions, a certain software version and a certain product name, from one particular provider.\n",                                  "type": "array",                                  "items": {                                    "description": "A version.\n",                                    "type": "string"                                  }                                }                              }                            }                          }                        }                      }                    }                  }                }              },              "vnfInstanceIds": {                "description": "If present, match VNF instances with an instance identifier listed in this attribute. The attributes \"vnfInstanceIds\" and \"vnfInstanceNames\" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",                "type": "array",                "items": {                  "description": "An identifier with the intention of being globally unique.\n",                  "type": "string"                }              },              "vnfInstanceNames": {                "description": "If present, match VNF instances with a VNF Instance Name listed in this attribute. The attributes \"vnfInstanceIds\" and \"vnfInstanceNames\" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",                "type": "array",                "items": {                  "type": "string"                }              }            }          },          "indicatorIds": {            "description": "Match particular VNF indicator identifiers.\n",            "type": "array",            "items": {              "description": "An identifier that is unique within a VNF descriptor.\n",              "type": "string"            }          }        }      },      "callbackUri": {        "description": "The URI of the endpoint to send the notification to.\n",        "type": "string",        "format": "url"      },      "_links": {        "description": "Links for this resource.\n",        "type": "object",        "required": [          "self"        ],        "properties": {          "self": {            "description": "This type represents a link to a resource.\n",            "type": "object",            "required": [              "href"            ],            "properties": {              "href": {                "description": "URI of the referenced resource.\n",                "type": "string",                "format": "url"              }            }          }        }      }    }  }}
 No newline at end of file
{
  "type": "array",
  "items": {
    "description": "This type represents a subscription related to notifications about VNF indicator value changes.\n",
    "type": "object",
    "required": ["id", "callbackUri", "_links"],
    "properties": {
      "id": {
        "description": "An identifier with the intention of being globally unique.\n",
        "type": "string"
      },
      "filter": {
        "description": "This type represents a subscription filter for notifications related to VNF indicators.\nAt a particular nesting level in the filter structure, the following applies:  All attributes shall match in order for the filter to match (logical \"and\" between different  filter attributes). If an attribute is an array, the attribute shall match if at least one of  the values in the array matches (logical \"or\" between the values of one filter attribute).\nNOTE:\tThe permitted values of the \"notificationTypes\" attribute are spelled exactly as the names \n      of the notification types to facilitate automated code generation systems.\n",
        "type": "object",
        "properties": {
          "vnfInstanceSubscriptionFilter": {
            "description": "This type represents subscription filter criteria to match VNF instances. * NOTE 1:\tThe attributes \"vnfdIds\" and \"vnfProductsFromProviders\" are alternatives to reference to VNF instances\n          that are based on certain VNFDs in a filter. They should not be used both in the same filter instance,\n          but one alternative should be chosen.\n  NOTE 2:\tThe attributes \"vnfInstanceIds\" and \"vnfInstanceNames\" are alternatives to reference to particular VNF\n          instances in a filter. They should not be used both in the same filter instance, but one alternative\n          should be chosen.\n",
            "type": "object",
            "anyOf": [
              {
                "oneOf": [
                  {
                    "required": ["vnfdId"]
                  },
                  {
                    "required": ["vnfProductsFromProviders"]
                  }
                ]
              },
              {
                "oneOf": [
                  {
                    "required": ["vnfInstanceIds"]
                  },
                  {
                    "required": ["vnfInstanceNames"]
                  }
                ]
              }
            ],
            "properties": {
              "vnfdIds": {
                "description": "If present, match VNF instances that were created based on a VNFD identified by one of the vnfdId values listed in this attribute. See note 1.\n",
                "type": "array",
                "items": {
                  "description": "An identifier with the intention of being globally unique.\n",
                  "type": "string"
                }
              },
              "vnfProductsFromProviders": {
                "description": "If present, match VNF instances that belong to VNF products from certain providers. See note 1.\n",
                "type": "array",
                "items": {
                  "type": "object",
                  "required": ["vnfProvider"],
                  "properties": {
                    "vnfProvider": {
                      "description": "Name of the VNF provider to match.\n",
                      "type": "string"
                    },
                    "vnfProducts": {
                      "description": "If present, match VNF instances that belong to VNF products with certain product names, from one particular provider.\n",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": ["vnfProductName"],
                        "properties": {
                          "vnfProductName": {
                            "description": "Name of the VNF product to match.\n",
                            "type": "string"
                          },
                          "versions": {
                            "description": "If present, match VNF instances that belong to VNF products with certain versions and a certain product name, from one particular provider.\n",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "required": ["vnfSoftwareVersion"],
                              "properties": {
                                "vnfSoftwareVersion": {
                                  "description": "A version.\n",
                                  "type": "string"
                                },
                                "vnfdVersions": {
                                  "description": "If present, match VNF instances that belong to VNF products with certain VNFD versions, a certain software version and a certain product name, from one particular provider.\n",
                                  "type": "array",
                                  "items": {
                                    "description": "A version.\n",
                                    "type": "string"
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              },
              "vnfInstanceIds": {
                "description": "If present, match VNF instances with an instance identifier listed in this attribute. See note 2.\n",
                "type": "array",
                "items": {
                  "description": "An identifier with the intention of being globally unique.\n",
                  "type": "string"
                }
              },
              "vnfInstanceNames": {
                "description": "If present, match VNF instances with a VNF Instance Name listed in this attribute. See note 2.\n",
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "notificationTypes": {
            "description": "Match particular notification types. \nPermitted values: -\tVnfIndicatorValueChangeNotification -\tSupportedIndicatorsChangeNotification See note.\n",
            "type": "string",
            "enum": [
              "VnfIndicatorValueChangeNotification",
              "SupportedIndicatorsChangeNotification"
            ]
          },
          "indicatorIds": {
            "description": "Match particular VNF indicator identifiers.\n",
            "type": "array",
            "items": {
              "description": "An identifier that is unique within a VNF descriptor.\n",
              "type": "string"
            }
          }
        }
      },
      "callbackUri": {
        "description": "The URI of the endpoint to send the notification to.\n",
        "type": "string",
        "format": "url"
      },
      "_links": {
        "description": "Links for this resource.\n",
        "type": "object",
        "required": ["self"],
        "properties": {
          "self": {
            "description": "This type represents a link to a resource using an absolute URI.\n",
            "type": "object",
            "required": ["href"],
            "properties": {
              "href": {
                "description": "String formatted according to IETF RFC 3986.\n",
                "type": "string"
              }
            }
          }
        }
      }
    }
  }
}
+12 −23
Changes for SOL003/VNFIndicator-API/schemas/VnfIndicatorValueChangeNotification.schema.json: 12 added lines, 23 removed lines.
Original line number Diff line number Diff line
{
    "description": "This type represents a VNF indicator value change notification. The notification shall be triggered by the VNFM when the value of an indicator has changed.\n",
  "description": "This type represents a VNF indicator value change notification.\nThe notification shall be triggered by the VNFM when the value of an indicator has changed.\nNOTE:\tETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications.\n",
  "type": "object",
  "required": [
    "id",
@@ -19,9 +19,7 @@
    "notificationType": {
      "description": "Discriminator for the different notification types. Shall be set to \"VnfIndicatorValueChangeNotification\" for this notification type.\n",
      "type": "string",
        "enum": [
          "VnfIndicatorValueChangeNotification"
        ]
      "enum": ["VnfIndicatorValueChangeNotification"]
    },
    "subscriptionId": {
      "description": "An identifier with the intention of being globally unique.\n",
@@ -41,7 +39,7 @@
      "type": "string"
    },
    "value": {
        "description": "Provides the value of the VNF indicator. The value format is defined in the VNFD. ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications.\n",
      "description": "Provides the value of the VNF indicator. The value format is defined in the VNFD. See note.\n",
      "type": "object"
    },
    "vnfInstanceId": {
@@ -51,36 +49,27 @@
    "_links": {
      "description": "Links for this resource.\n",
      "type": "object",
        "required": [
          "vnfInstance",
          "subscription"
        ],
      "required": ["vnfInstance", "subscription"],
      "properties": {
        "vnfInstance": {
            "description": "This type represents a link to a resource.\n",
          "description": "This type represents a link to a resource in a notification, using an absolute or relative URI.\n",
          "type": "object",
            "required": [
              "href"
            ],
          "required": ["href"],
          "properties": {
            "href": {
                "description": "URI of the referenced resource.\n",
                "type": "string",
                "format": "url"
              "description": "String formatted according to IETF RFC 3986.\n",
              "type": "string"
            }
          }
        },
        "subscription": {
            "description": "This type represents a link to a resource.\n",
          "description": "This type represents a link to a resource in a notification, using an absolute or relative URI.\n",
          "type": "object",
            "required": [
              "href"
            ],
          "required": ["href"],
          "properties": {
            "href": {
                "description": "URI of the referenced resource.\n",
                "type": "string",
                "format": "url"
              "description": "String formatted according to IETF RFC 3986.\n",
              "type": "string"
            }
          }
        }
+52 −1
Changes for SOL003/VNFIndicator-API/schemas/vnfIndicator.schema.json: 52 added lines, 1 removed line.
Original line number Diff line number Diff line
{  "description": "This type represents a VNF indicator value.\n",  "type": "object",  "required": [    "id",    "value",    "vnfInstanceId",    "_links"  ],  "properties": {    "id": {      "description": "An identifier that is unique within a VNF descriptor.\n",      "type": "string"    },    "name": {      "description": "Human readable name of the indicator. Shall be present if defined in the VNFD.\n",      "type": "string"    },    "value": {      "description": "Provides the value of the indicator. The value format is defined in the VNFD. ETSI GS NFV-SOL 001 specifies the structure and format of the  VNFD based on TOSCA specifications.\n",      "type": "object"    },    "vnfInstanceId": {      "description": "An identifier with the intention of being globally unique.\n",      "type": "string"    },    "_links": {      "description": "Links for this resource.\n",      "type": "object",      "required": [        "self",        "vnfInstance"      ],      "properties": {        "self": {          "description": "This type represents a link to a resource.\n",          "type": "object",          "required": [            "href"          ],          "properties": {            "href": {              "description": "URI of the referenced resource.\n",              "type": "string",              "format": "url"            }          }        },        "vnfInstance": {          "description": "This type represents a link to a resource.\n",          "type": "object",          "required": [            "href"          ],          "properties": {            "href": {              "description": "URI of the referenced resource.\n",              "type": "string",              "format": "url"            }          }        }      }    }  }}
 No newline at end of file
{
  "description": "This type represents a VNF indicator value.\nNOTE:\tETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications.\n",
  "type": "object",
  "required": ["id", "value", "vnfInstanceId", "_links"],
  "properties": {
    "id": {
      "description": "An identifier that is unique within a VNF descriptor.\n",
      "type": "string"
    },
    "name": {
      "description": "Human readable name of the indicator. Shall be present if defined in the VNFD.\n",
      "type": "string"
    },
    "value": {
      "description": "Provides the value of the indicator. The value format is defined in the VNFD. See note.\n",
      "type": "object"
    },
    "vnfInstanceId": {
      "description": "An identifier with the intention of being globally unique.\n",
      "type": "string"
    },
    "_links": {
      "description": "Links for this resource.\n",
      "type": "object",
      "required": ["self", "vnfInstance"],
      "properties": {
        "self": {
          "description": "This type represents a link to a resource using an absolute URI.\n",
          "type": "object",
          "required": ["href"],
          "properties": {
            "href": {
              "description": "String formatted according to IETF RFC 3986.\n",
              "type": "string"
            }
          }
        },
        "vnfInstance": {
          "description": "This type represents a link to a resource using an absolute URI.\n",
          "type": "object",
          "required": ["href"],
          "properties": {
            "href": {
              "description": "String formatted according to IETF RFC 3986.\n",
              "type": "string"
            }
          }
        }
      }
    }
  }
}
 No newline at end of file
Loading
Loading