SOL003 VNF Package Management - 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 Package Management Interface.

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

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

Merge request reports

Loading
+1 −0
Changes for SOL003/VNFPackageManagement-API/jsons/VnfPackageOnboardingNotification.json: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -5,5 +5,6 @@
	"timeStamp":"",
	"vnfPkgId":"{indicatorId} ",
	"vnfdId":"{vndId}",
	"vnfmInfo": [],
	"_links":""
}}
+46 −39
Changes for SOL003/VNFPackageManagement-API/schemas/PkgmSubscription.schema.json: 46 added lines, 39 removed lines.
Original line number Diff line number Diff line
{
  "description": "This type represents a subscription related to notifications about VNF package management.\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 related to VNF package management. 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 related to notifications related to VNF package management.\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 1:\tThe permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the \n        notification types to facilitate automated code generation systems.\nNOTE 2:\tThe attributes \"vnfProductsFromProviders\", \"vnfdId\" and \"vnfPkgId\" are alternatives to reference to \n        particular VNF packages in a filter. They should not be used both in the same filter instance, but \n        one alternative should be chosen.\n",
      "type": "object",
      "anyOf": [
        {
          "oneOf": [
            {
              "required": ["vnfProductsFromProviders"]
            },
            {
              "required": ["vnfdId"]
            },
            {
              "required": ["vnfPkgId"]
            }
          ]
        }
      ],
      "properties": {
        "notificationTypes": {
          "description": "Match particular notification types. Permitted values: - VnfPackageOnboardingNotification - VnfPackageChangeNotification The permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n",
          "description": "Match particular notification types. Permitted values: - VnfPackageOnboardingNotification - VnfPackageChangeNotification See note 1.\n",
          "type": "array",
          "items": {
            "type": "string",
@@ -27,16 +38,14 @@
          }
        },
        "vnfProductsFromProviders": {
          "description": "If present, match VNF packages that contain VNF products from certain providers. The attributes \"vnfProductsFromProviders\", \"vnfdId\" and \"vnfPkgId\" are alternatives to reference to particular VNF packages 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 packages that contain VNF products from certain providers. See note 2.\n",
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "vnfProvider"
            ],
            "required": ["vnfProvider"],
            "properties": {
              "vnfProvider": {
                "description": "Name of the VNF provider to match.\n",
                "description": "A string defined in IETF RFC 8259.\n",
                "type": "string"
              },
              "vnfProducts": {
@@ -44,12 +53,10 @@
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "vnfProductName"
                  ],
                  "required": ["vnfProductName"],
                  "properties": {
                    "vnfProductName": {
                      "description": "Name of the VNF product to match.\n",
                      "description": "A string defined in IETF RFC 8259.\n",
                      "type": "string"
                    },
                    "versions": {
@@ -57,19 +64,17 @@
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "vnfSoftwareVersion"
                        ],
                        "required": ["vnfSoftwareVersion"],
                        "properties": {
                          "vnfSoftwareVersion": {
                            "description": "A Version.\n",
                            "description": "A version.\n",
                            "type": "string"
                          },
                          "vnfdVersions": {
                            "description": "If present, match VNF packages that contain 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",
                              "description": "A version.\n",
                              "type": "string"
                            }
                          }
@@ -83,7 +88,7 @@
          }
        },
        "vnfdId": {
          "description": "Match VNF packages with a VNFD identifier listed in the attribute. The attributes \"vnfProductsFromProviders\", \"vnfdId\" and \"vnfPkgId\" are alternatives to reference to particular VNF packages in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",
          "description": "Match VNF packages with a VNFD identifier listed in the attribute. See note 2.\n",
          "type": "array",
          "items": {
            "description": "An identifier with the intention of being globally unique.\n",
@@ -91,7 +96,7 @@
          }
        },
        "vnfPkgId": {
          "description": "Match VNF packages with a package identifier listed in the attribute. May be present if the \"notificationTypes\" attribute contains the value \"VnfPackageChangeNotification\", and shall be absent otherwise. The attributes \"vnfProductsFromProviders\", \"vnfdId\" and \"vnfPkgId\" are alternatives to reference to particular VNF packages in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",
          "description": "Match VNF packages with a package identifier listed in the attribute. May be present if the \"notificationTypes\" attribute contains the value \"VnfPackageChangeNotification\" and shall be absent otherwise. See note 2.\n",
          "type": "array",
          "items": {
            "description": "An identifier with the intention of being globally unique.\n",
@@ -99,15 +104,22 @@
          }
        },
        "operationalState": {
          "description": "- ENABLED: The VNF package is enabled, i.e. it can be used for  instantiation of new VNF instances.\n- DISABLED: The VNF package is disabled, i.e. it cannot be used for  further VNF instantiation requests (unless and until the VNF package\n  is re-enabled).\n",
          "description": "- ENABLED: The VNF package is enabled, i.e. it can be used for\n  the creation of new \"Individual VNF instance\" resources.\n- DISABLED: The VNF package is disabled, i.e. it shall not be used for\n  the creation of further \"Individual VNF instance\" resources\n  (unless and until the VNF package is re-enabled).\n",
          "type": "string",
          "enum": [
            "ENABLED",
            "DISABLED"
          ]
          "enum": ["ENABLED", "DISABLED"]
        },
        "usageState": {
          "description": "- IN_USE: VNF instances instantiated from this VNF package exist. - NOT_IN_USE: No existing VNF instance is instantiated from this VNF  package.\n"
          "description": "- IN_USE: \"Individual VNF instance\" resources created from this VNF package exist. - NOT_IN_USE: No \"Individual VNF instance\" resource created from this VNF package exists.\n",
          "type": "string",
          "enum": ["IN_USE", "NOT_IN_USE"]
        },
        "vnfmInfo": {
          "description": "Match strings that specify VNFMs compatible with the VNF. See table 10.5.2.2-1.\n",
          "type": "array",
          "items": {
            "description": "A string defined in IETF RFC 8259.\n",
            "type": "string"
          }
        }
      }
    },
@@ -118,21 +130,16 @@
    "_links": {
      "description": "Links to resources related to 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"
            }
          }
        }
+152 −1
Changes for SOL003/VNFPackageManagement-API/schemas/PkgmSubscriptions.schema.json: 152 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 package management.\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 related to VNF package management. 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": {          "notificationTypes": {            "description": "Match particular notification types. Permitted values: - VnfPackageOnboardingNotification - VnfPackageChangeNotification The permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n",            "type": "array",            "items": {              "type": "string",              "enum": [                "VnfPackageOnboardingNotification",                "VnfPackageChangeNotification"              ]            }          },          "vnfProductsFromProviders": {            "description": "If present, match VNF packages that contain VNF products from certain providers. The attributes \"vnfProductsFromProviders\", \"vnfdId\" and \"vnfPkgId\" are alternatives to reference to particular VNF packages 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 packages that contain 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 packages that contain 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 packages that contain 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"                              }                            }                          }                        }                      }                    }                  }                }              }            }          },          "vnfdId": {            "description": "Match VNF packages with a VNFD identifier listed in the attribute. The attributes \"vnfProductsFromProviders\", \"vnfdId\" and \"vnfPkgId\" are alternatives to reference to particular VNF packages 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"            }          },          "vnfPkgId": {            "description": "Match VNF packages with a package identifier listed in the attribute. May be present if the \"notificationTypes\" attribute contains the value \"VnfPackageChangeNotification\", and shall be absent otherwise. The attributes \"vnfProductsFromProviders\", \"vnfdId\" and \"vnfPkgId\" are alternatives to reference to particular VNF packages 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"            }          },          "operationalState": {            "description": "- ENABLED: The VNF package is enabled, i.e. it can be used for  instantiation of new VNF instances.\n- DISABLED: The VNF package is disabled, i.e. it cannot be used for  further VNF instantiation requests (unless and until the VNF package\n  is re-enabled).\n",            "type": "string",            "enum": [              "ENABLED",              "DISABLED"            ]          },          "usageState": {            "description": "- IN_USE: VNF instances instantiated from this VNF package exist. - NOT_IN_USE: No existing VNF instance is instantiated from this VNF  package.\n"          }        }      },      "callbackUri": {        "description": "String formatted according to IETF RFC 3986.\n",        "type": "string"      },      "_links": {        "description": "Links to resources related to 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 package management.\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 related to VNF package management.\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 1:\tThe permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the \n        notification types to facilitate automated code generation systems.\nNOTE 2:\tThe attributes \"vnfProductsFromProviders\", \"vnfdId\" and \"vnfPkgId\" are alternatives to reference to \n        particular VNF packages in a filter. They should not be used both in the same filter instance, but \n        one alternative should be chosen.\n",
        "type": "object",
        "anyOf": [
          {
            "oneOf": [
              {
                "required": ["vnfProductsFromProviders"]
              },
              {
                "required": ["vnfdId"]
              },
              {
                "required": ["vnfPkgId"]
              }
            ]
          }
        ],
        "properties": {
          "notificationTypes": {
            "description": "Match particular notification types. Permitted values: - VnfPackageOnboardingNotification - VnfPackageChangeNotification See note 1.\n",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "VnfPackageOnboardingNotification",
                "VnfPackageChangeNotification"
              ]
            }
          },
          "vnfProductsFromProviders": {
            "description": "If present, match VNF packages that contain VNF products from certain providers. See note 2.\n",
            "type": "array",
            "items": {
              "type": "object",
              "required": ["vnfProvider"],
              "properties": {
                "vnfProvider": {
                  "description": "A string defined in IETF RFC 8259.\n",
                  "type": "string"
                },
                "vnfProducts": {
                  "description": "If present, match VNF packages that contain VNF products with certain product names, from one particular provider.\n",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": ["vnfProductName"],
                    "properties": {
                      "vnfProductName": {
                        "description": "A string defined in IETF RFC 8259.\n",
                        "type": "string"
                      },
                      "versions": {
                        "description": "If present, match VNF packages that contain 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 packages that contain 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"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "vnfdId": {
            "description": "Match VNF packages with a VNFD identifier listed in the attribute. See note 2.\n",
            "type": "array",
            "items": {
              "description": "An identifier with the intention of being globally unique.\n",
              "type": "string"
            }
          },
          "vnfPkgId": {
            "description": "Match VNF packages with a package identifier listed in the attribute. May be present if the \"notificationTypes\" attribute contains the value \"VnfPackageChangeNotification\" and shall be absent otherwise. See note 2.\n",
            "type": "array",
            "items": {
              "description": "An identifier with the intention of being globally unique.\n",
              "type": "string"
            }
          },
          "operationalState": {
            "description": "- ENABLED: The VNF package is enabled, i.e. it can be used for\n  the creation of new \"Individual VNF instance\" resources.\n- DISABLED: The VNF package is disabled, i.e. it shall not be used for\n  the creation of further \"Individual VNF instance\" resources\n  (unless and until the VNF package is re-enabled).\n",
            "type": "string",
            "enum": ["ENABLED", "DISABLED"]
          },
          "usageState": {
            "description": "- IN_USE: \"Individual VNF instance\" resources created from this VNF package exist. - NOT_IN_USE: No \"Individual VNF instance\" resource created from this VNF package exists.\n",
            "type": "string",
            "enum": ["IN_USE", "NOT_IN_USE"]
          },
          "vnfmInfo": {
            "description": "Match strings that specify VNFMs compatible with the VNF. See table 10.5.2.2-1.\n",
            "type": "array",
            "items": {
              "description": "A string defined in IETF RFC 8259.\n",
              "type": "string"
            }
          }
        }
      },
      "callbackUri": {
        "description": "String formatted according to IETF RFC 3986.\n",
        "type": "string"
      },
      "_links": {
        "description": "Links to resources related to 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"
              }
            }
          }
        }
      }
    }
  }
}
+26 −31
Changes for SOL003/VNFPackageManagement-API/schemas/VnfPackageChangeNotification.schema.json: 26 added lines, 31 removed lines.
Original line number Diff line number Diff line
{
	"description": "This type represents a VNF package management notification, which informs the receiver of a change of the status in an on-boarded VNF package. Only changes in the \"operationalState\" attribute of an on-boarded VNF package and the deletion NF package will be reported. Changes in the \"usageState\" and \"onboardingState\" attributes are not reported. The notification shall be triggered by the NFVO when there is a change in the status of an onboarded VNF package, as follows: * The \"operationalState\" attribute of a VNF package has changed, and the\n  \"onboardingState\" attribute of the package has the value \"ONBOARDED\"\n  (i.e. the package has been onboarded previously).\n* The on-boarded VNF package has been deleted.\n",
  "description": "This type represents a VNF package management notification, which informs the receiver of a change of the status in an on-boarded VNF package. Only changes in the \"operationalState\" attribute of an on-boarded VNF package and the deletion NF package will be reported. Changes in the \"usageState\" and \"onboardingState\" attributes are not reported. The notification shall be triggered by the NFVO when there is a change in the status of an onboarded VNF package, as follows: * The \"operationalState\" attribute of a VNF package has changed, and the\n  \"onboardingState\" attribute of the package has the value \"ONBOARDED\"\n  (i.e. the package has been onboarded previously).\n* The on-boarded VNF package has been deleted, and the \"onboardingState\"\n  attribute of the deleted package had the value \"ONBOARDED\".\n",
  "type": "object",
  "required": [
    "id",
    "notificationType",
    "subscriptionId",
    "timeStamp",
    "vnfPkgId",
    "vnfdId",
@@ -18,9 +19,7 @@
    "notificationType": {
      "description": "Discriminator for the different notification types. Shall be set to \"VnfPackageChangeNotification\" for this notification type.\n",
      "type": "string",
			"enum": [
				"VnfPackageChangeNotification"
			]
      "enum": ["VnfPackageChangeNotification"]
    },
    "subscriptionId": {
      "description": "An identifier with the intention of being globally unique.\n",
@@ -42,52 +41,48 @@
    "changeType": {
      "description": "- OP_STATE_CHANGE: The \"operationalState\" attribute has been changed. - PKG_DELETE: The VNF package has been deleted.\n",
      "type": "string",
			"enum": [
				"OP_STATE_CHANGE",
				"PKG_DELETE"
			]
      "enum": ["OP_STATE_CHANGE", "PKG_DELETE"]
    },
    "operationalState": {
			"description": "- ENABLED: The VNF package is enabled, i.e. it can be used for\n  instantiation of new VNF instances.\n- DISABLED: The VNF package is disabled, i.e. it cannot be used for\n  further VNF instantiation requests (unless and until the VNF package\n  is re-enabled).\n",
      "description": "- ENABLED: The VNF package is enabled, i.e. it can be used for\n  the creation of new \"Individual VNF instance\" resources.\n- DISABLED: The VNF package is disabled, i.e. it shall not be used for\n  the creation of further \"Individual VNF instance\" resources\n  (unless and until the VNF package is re-enabled).\n",
      "type": "string",
			"enum": [
				"ENABLED",
				"DISABLED"
			]
      "enum": ["ENABLED", "DISABLED"]
    },
    "_links": {
      "description": "This type represents the links to resources that a VNF package management notification can contain.\n",
      "type": "object",
			"required": [
				"vnfPackage",
				"subscription"
			],
      "required": ["vnfPackage", "subscription"],
      "properties": {
        "vnfPackage": {
					"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"
            }
          }
        },
        "vnfPackageByVnfdId": {
          "description": "This type represents a link to a resource in a notification, using an absolute or relative URI.\n",
          "type": "object",
          "required": ["href"],
          "properties": {
            "href": {
              "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"
            }
          }
        }
+32 −22
Changes for SOL003/VNFPackageManagement-API/schemas/VnfPackageOnboardingNotification.schema.json: 32 added lines, 22 removed lines.
Original line number Diff line number Diff line
{
  "description": "This type represents a VNF package management notification, which informs the receiver that the onboarding process of a VNF package is complete and the package is ready for use. The notification shall be triggered by the NFVO when the \"onboardingState\" attribute of a new VNF package has changed to \"ONBOARDED\".",
  "description": "This type represents a VNF package management notification, which informs the receiver that the onboarding process of a VNF package is complete and the package is ready for use. The notification shall be triggered by the NFVO when the \"onboardingState\" attribute of a new VNF package has changed to \"ONBOARDED\".\n",
  "type": "object",
  "required": [
    "id",
    "notificationType",
    "subscriptionId",
    "timeStamp",
    "vnfPkgId",
    "vnfdId",
    "vnfmInfo",
    "_links"
  ],
  "properties": {
@@ -17,9 +19,7 @@
    "notificationType": {
      "description": "Discriminator for the different notification types. Shall be set to \"VnfPackageOnboardingNotification\" for this notification type.\n",
      "type": "string",
      "enum": [
        "VnfPackageOnboardingNotification"
      ]
      "enum": ["VnfPackageOnboardingNotification"]
    },
    "subscriptionId": {
      "description": "An identifier with the intention of being globally unique.\n",
@@ -38,39 +38,49 @@
      "description": "An identifier with the intention of being globally unique.\n",
      "type": "string"
    },
    "vnfmInfo": {
      "description": "Specifies VNFMs compatible with the VNF. This information is copied from the VNFD. See table 10.5.2.2-1.\n",
      "type": "array",
      "items": {
        "description": "A string defined in IETF RFC 8259.\n",
        "type": "string"
      }
    },
    "_links": {
      "description": "This type represents the links to resources that a VNF package management notification can contain.\n",
      "type": "object",
      "required": [
        "vnfPackage",
        "subscription"
      ],
      "required": ["vnfPackage", "subscription"],
      "properties": {
        "vnfPackage": {
          "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"
            }
          }
        },
        "vnfPackageByVnfdId": {
          "description": "This type represents a link to a resource in a notification, using an absolute or relative URI.\n",
          "type": "object",
          "required": ["href"],
          "properties": {
            "href": {
              "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"
            }
          }
        }
Loading
Loading