Skip to content
SOL003-VNFLifecycleManagement-API.json 1.6 MiB
Newer Older
20001 20002 20003 20004 20005 20006 20007 20008 20009 20010 20011 20012 20013 20014 20015 20016 20017 20018 20019 20020 20021 20022 20023 20024 20025 20026 20027 20028 20029 20030 20031 20032 20033 20034 20035 20036 20037 20038 20039 20040 20041 20042 20043 20044 20045 20046 20047 20048 20049 20050 20051 20052 20053 20054 20055 20056 20057 20058 20059 20060 20061 20062 20063 20064 20065 20066 20067 20068 20069 20070 20071 20072 20073 20074 20075 20076 20077 20078 20079 20080 20081 20082 20083 20084 20085 20086 20087 20088 20089 20090 20091 20092 20093 20094 20095 20096 20097 20098 20099 20100 20101 20102 20103 20104 20105 20106 20107 20108 20109 20110 20111 20112 20113 20114 20115 20116 20117 20118 20119 20120 20121 20122 20123 20124 20125 20126 20127 20128 20129 20130 20131 20132 20133 20134 20135 20136 20137 20138 20139 20140 20141 20142 20143 20144 20145 20146 20147 20148 20149 20150 20151 20152 20153 20154 20155 20156 20157 20158 20159 20160 20161 20162 20163 20164 20165 20166 20167 20168 20169 20170 20171 20172 20173 20174 20175 20176 20177 20178 20179 20180 20181 20182 20183 20184 20185 20186 20187 20188 20189 20190 20191 20192 20193 20194 20195 20196 20197 20198 20199 20200 20201 20202 20203 20204 20205 20206 20207 20208 20209 20210 20211 20212 20213 20214 20215 20216 20217 20218 20219 20220 20221 20222 20223 20224 20225 20226 20227 20228 20229 20230 20231 20232 20233 20234 20235 20236 20237 20238 20239 20240 20241 20242 20243 20244 20245 20246 20247 20248 20249 20250 20251 20252 20253 20254 20255 20256 20257 20258 20259 20260 20261 20262 20263 20264 20265 20266 20267 20268 20269 20270 20271 20272 20273 20274 20275 20276 20277 20278 20279 20280 20281 20282 20283 20284 20285 20286 20287 20288 20289 20290 20291 20292 20293 20294 20295 20296 20297 20298 20299 20300 20301 20302 20303 20304 20305 20306 20307 20308 20309 20310 20311 20312 20313 20314 20315 20316 20317 20318 20319 20320 20321 20322 20323 20324 20325 20326 20327 20328 20329 20330 20331 20332 20333 20334 20335 20336 20337 20338 20339 20340 20341 20342 20343 20344 20345 20346 20347 20348 20349 20350 20351 20352 20353 20354 20355 20356 20357 20358 20359 20360 20361 20362 20363 20364 20365 20366 20367 20368 20369 20370 20371 20372 20373 20374 20375 20376 20377 20378 20379 20380 20381 20382 20383 20384 20385 20386 20387 20388 20389 20390 20391 20392 20393 20394 20395 20396 20397 20398 20399 20400 20401 20402 20403 20404 20405 20406 20407 20408 20409 20410 20411 20412 20413 20414 20415 20416 20417 20418 20419 20420 20421 20422 20423 20424 20425 20426 20427 20428 20429 20430 20431 20432 20433 20434 20435 20436 20437 20438 20439 20440 20441 20442 20443 20444 20445 20446 20447 20448 20449 20450 20451 20452 20453 20454 20455 20456 20457 20458 20459 20460 20461 20462 20463 20464 20465 20466 20467 20468 20469 20470 20471 20472 20473 20474 20475 20476 20477 20478 20479 20480 20481 20482 20483 20484 20485 20486 20487 20488 20489 20490 20491 20492 20493 20494 20495 20496 20497 20498 20499 20500 20501 20502 20503 20504 20505 20506 20507 20508 20509 20510 20511 20512 20513 20514 20515 20516 20517 20518 20519 20520 20521 20522 20523 20524 20525 20526 20527 20528 20529 20530 20531 20532 20533 20534 20535 20536 20537 20538 20539 20540 20541 20542 20543 20544 20545 20546 20547 20548 20549 20550 20551 20552 20553 20554 20555 20556 20557 20558 20559 20560 20561 20562 20563 20564 20565 20566 20567 20568 20569 20570 20571 20572 20573 20574 20575 20576 20577 20578 20579 20580 20581 20582 20583 20584 20585 20586 20587 20588 20589 20590 20591 20592 20593 20594 20595 20596 20597 20598 20599 20600 20601 20602 20603 20604 20605 20606 20607 20608 20609 20610 20611 20612 20613 20614 20615 20616 20617 20618 20619 20620 20621 20622 20623 20624 20625 20626 20627 20628 20629 20630 20631 20632 20633 20634 20635 20636 20637 20638 20639 20640 20641 20642 20643 20644 20645 20646 20647 20648 20649 20650 20651 20652 20653 20654 20655 20656 20657 20658 20659 20660 20661 20662 20663 20664 20665 20666 20667 20668 20669 20670 20671 20672 20673 20674 20675 20676 20677 20678 20679 20680 20681 20682 20683 20684 20685 20686 20687 20688 20689 20690 20691 20692 20693 20694 20695 20696 20697 20698 20699 20700 20701 20702 20703 20704 20705 20706 20707 20708 20709 20710 20711 20712 20713 20714 20715 20716 20717 20718 20719 20720 20721 20722 20723 20724 20725 20726 20727 20728 20729 20730 20731 20732 20733 20734 20735 20736 20737 20738 20739 20740 20741 20742 20743 20744 20745 20746 20747 20748 20749 20750 20751 20752 20753 20754 20755 20756 20757 20758 20759 20760 20761 20762 20763 20764 20765 20766 20767 20768 20769 20770 20771 20772 20773 20774 20775 20776 20777 20778 20779 20780 20781 20782 20783 20784 20785 20786 20787 20788 20789 20790 20791 20792 20793 20794 20795 20796 20797 20798 20799 20800 20801 20802 20803 20804 20805 20806 20807 20808 20809 20810 20811 20812 20813 20814 20815 20816 20817 20818 20819 20820 20821 20822 20823 20824 20825 20826 20827 20828 20829 20830 20831 20832 20833 20834 20835 20836 20837 20838 20839 20840 20841 20842 20843 20844 20845 20846 20847 20848 20849 20850 20851 20852 20853 20854 20855 20856 20857 20858 20859 20860 20861 20862 20863 20864 20865 20866 20867 20868 20869 20870 20871 20872 20873 20874 20875 20876 20877 20878 20879 20880 20881 20882 20883 20884 20885 20886 20887 20888 20889 20890 20891 20892 20893 20894 20895 20896 20897 20898 20899 20900 20901 20902 20903 20904 20905 20906 20907 20908 20909 20910 20911 20912 20913 20914 20915 20916 20917 20918 20919 20920 20921 20922 20923 20924 20925 20926 20927 20928 20929 20930 20931 20932 20933 20934 20935 20936 20937 20938 20939 20940 20941 20942 20943 20944 20945 20946 20947 20948 20949 20950 20951 20952 20953 20954 20955 20956 20957 20958 20959 20960 20961 20962 20963 20964 20965 20966 20967 20968 20969 20970 20971 20972 20973 20974 20975 20976 20977 20978 20979 20980 20981 20982 20983 20984 20985 20986 20987 20988 20989 20990 20991 20992 20993 20994 20995 20996 20997 20998 20999 21000
                  "type": "string"
                },
                "status": {
                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
                  "type": "integer"
                },
                "detail": {
                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
                  "type": "string"
                },
                "instance": {
                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
                  "type": "string",
                  "format": "URI"
                }
              }
            }
          },
          "404": {
            "description": "Not Found\nError: The API producer did not find a current representation for the target resource or is not willing to disclose that one exists. Specifically in case of this task resource, the  response code 404 shall also be returned if the task is not supported for the VNF LCM operation occurrence represented by the parent resource, which means that the task resource consequently does not exist.  In this case, the response body shall be present, and shall contain a ProblemDetails structure, in which the \"detail\" attribute shall convey more information about the error.\n",
            "headers": {
              "Content-Type": {
                "description": "The MIME type of the body of the response.",
                "type": "string",
                "maximum": 1,
                "minimum": 1
              }
            },
            "schema": {
              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
              "type": "object",
              "required": [
                "status",
                "detail"
              ],
              "properties": {
                "type": {
                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
                  "type": "string",
                  "format": "URI"
                },
                "title": {
                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
                  "type": "string"
                },
                "status": {
                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
                  "type": "integer"
                },
                "detail": {
                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
                  "type": "string"
                },
                "instance": {
                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
                  "type": "string",
                  "format": "URI"
                }
              }
            }
          },
          "405": {
            "description": "Not Found\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the source of the problem, e.g. a wrong resource URI variable.\n",
            "headers": {
              "Content-Type": {
                "description": "The MIME type of the body of the response.",
                "type": "string",
                "maximum": 1,
                "minimum": 1
              }
            },
            "schema": {
              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
              "type": "object",
              "required": [
                "status",
                "detail"
              ],
              "properties": {
                "type": {
                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
                  "type": "string",
                  "format": "URI"
                },
                "title": {
                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
                  "type": "string"
                },
                "status": {
                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
                  "type": "integer"
                },
                "detail": {
                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
                  "type": "string"
                },
                "instance": {
                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
                  "type": "string",
                  "format": "URI"
                }
              }
            }
          },
          "406": {
            "description": "Not Acceptable\nIf the \"Accept\" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted in that case.        \n",
            "headers": {
              "Content-Type": {
                "description": "The MIME type of the body of the response.",
                "type": "string",
                "maximum": 1,
                "minimum": 1
              }
            },
            "schema": {
              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
              "type": "object",
              "required": [
                "status",
                "detail"
              ],
              "properties": {
                "type": {
                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
                  "type": "string",
                  "format": "URI"
                },
                "title": {
                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
                  "type": "string"
                },
                "status": {
                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
                  "type": "integer"
                },
                "detail": {
                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
                  "type": "string"
                },
                "instance": {
                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
                  "type": "string",
                  "format": "URI"
                }
              }
            }
          },
          "409": {
            "description": "The operation cannot be executed currently, due to a conflict with the state of the VNF instance resource. Typically, this is due to the fact that the VNF instance resource is not in FAILED_TEMP state, or another error handling action is starting, such as rollback or fail. The response body shall contain a ProblemDetails structure, in which the \"detail\" attribute should convey more information about the error.\n",
            "headers": {
              "Content-Type": {
                "description": "The MIME type of the body of the response.",
                "type": "string",
                "maximum": 1,
                "minimum": 1
              },
              "WWW-Authenticate": {
                "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
                "type": "string",
                "maximum": 1,
                "minimum": 0
              }
            },
            "schema": {
              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
              "type": "object",
              "required": [
                "status",
                "detail"
              ],
              "properties": {
                "type": {
                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
                  "type": "string",
                  "format": "URI"
                },
                "title": {
                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
                  "type": "string"
                },
                "status": {
                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
                  "type": "integer"
                },
                "detail": {
                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
                  "type": "string"
                },
                "instance": {
                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
                  "type": "string",
                  "format": "URI"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error\nIf there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond withthis response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n",
            "headers": {
              "Content-Type": {
                "description": "The MIME type of the body of the response.",
                "type": "string",
                "maximum": 1,
                "minimum": 1
              }
            },
            "schema": {
              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
              "type": "object",
              "required": [
                "status",
                "detail"
              ],
              "properties": {
                "type": {
                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
                  "type": "string",
                  "format": "URI"
                },
                "title": {
                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
                  "type": "string"
                },
                "status": {
                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
                  "type": "integer"
                },
                "detail": {
                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
                  "type": "string"
                },
                "instance": {
                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
                  "type": "string",
                  "format": "URI"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable\nIf the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 [13] for the use of the \"Retry-After\" HTTP header and for the alternative to refuse the connection. The \"ProblemDetails\" structure may be omitted.\n",
            "headers": {
              "Content-Type": {
                "description": "The MIME type of the body of the response.",
                "type": "string",
                "maximum": 1,
                "minimum": 1
              }
            },
            "schema": {
              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
              "type": "object",
              "required": [
                "status",
                "detail"
              ],
              "properties": {
                "type": {
                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
                  "type": "string",
                  "format": "URI"
                },
                "title": {
                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
                  "type": "string"
                },
                "status": {
                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
                  "type": "integer"
                },
                "detail": {
                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
                  "type": "string"
                },
                "instance": {
                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
                  "type": "string",
                  "format": "URI"
                }
              }
            }
          }
        }
      }
    },
    "/vnf_lcm_op_occs/{vnfLcmOpOccId}/fail": {
      "parameters": [
        {
          "name": "vnfLcmOpOccId",
          "description": "Identifier of a VNF lifecycle management operation occurrence to be be marked as \"failed\". This identifier can be retrieved from the resource referenced by the \"Location\" HTTP header in the response to a PATCH or POST request triggering a VNF LCM operation. It can also be retrieved from the \"vnfLcmOpOccId\" attribute in the VnfLcmOperationOccurrenceNotification.\n",
          "in": "path",
          "required": true,
          "type": "string"
        }
      ],
      "post": {
        "description": "The POST method marks a VNF lifecycle management operation occurrence as \"finally failed\" if that operation occurrence is in \"FAILED_TEMP\" state.\n",
        "parameters": [
          {
            "name": "Accept",
            "description": "Content-Types that are acceptable for the response. Reference: IETF RFC 7231\n",
            "in": "header",
            "required": true,
            "type": "string"
          },
          {
            "name": "Authorization",
            "description": "The authorization token for the request. Reference: IETF RFC 7235\n",
            "in": "header",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK\nThe state of the VNF lifecycle management operation occurrence was changed successfully. The response shall include a representation of the VNF lifecycle operation occurrence resource.\n",
            "headers": {
              "Content-Type": {
                "description": "The MIME type of the body of the response.",
                "type": "string",
                "maximum": 1,
                "minimum": 1
              },
              "WWW-Authenticate": {
                "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
                "type": "string",
                "maximum": 1,
                "minimum": 0
              }
            },
            "schema": {
              "description": "This type represents a VNF lifecycle management operation occurrence.\n",
              "type": "object",
              "required": [
                "id",
                "operationState",
                "stateEnteredTime",
                "startTime",
                "vnfInstanceId",
                "operation",
                "isAutomaticInvocation",
                "operationParams",
                "isCancelPending"
              ],
              "properties": {
                "id": {
                  "description": "An identifier with the intention of being globally unique.\n",
                  "type": "string"
                },
                "operationState": {
                  "description": "Value | Description ------|------------ STARTING | The LCM operation is starting. PROCESSING | The LCM operation is currently in execution. COMPLETED | he LCM operation has been completed successfully. FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed. FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action won't succeed. ROLLING_BACK | The LCM operation is currently being rolled back. ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible.\n",
                  "type": "string",
                  "enum": [
                    "STARTING",
                    "PROCESSING",
                    "COMPLETED",
                    "FAILED_TEMP",
                    "FAILED",
                    "ROLLING_BACK",
                    "ROLLED_BACK"
                  ]
                },
                "stateEnteredTime": {
                  "description": "Date-time when the current state was entered.\n",
                  "type": "string",
                  "format": "date-time"
                },
                "startTime": {
                  "description": "Date-time of the start of the operation.\n",
                  "type": "string",
                  "format": "date-time"
                },
                "vnfInstanceId": {
                  "description": "An identifier with the intention of being globally unique.\n",
                  "type": "string"
                },
                "grantId": {
                  "description": "An identifier with the intention of being globally unique.\n",
                  "type": "string"
                },
                "operation": {
                  "description": "Value | Description ------|------------ INSTANTIATE | Represents the \"Instantiate VNF\" LCM operation.    SCALE | Represents the \"Scale VNF\" LCM operation. SCALE_TO_LEVEL | Represents the \"Scale VNF to Level\" LCM operation. CHANGE_FLAVOUR | Represents the \"Change VNF Flavour\" LCM operation. TERMINATE | Represents the \"Terminate VNF\" LCM operation. HEAL | Represents the \"Heal VNF\" LCM operation. OPERATE | Represents the \"Operate VNF\" LCM operation. CHANGE_EXT_CONN | Represents the \"Change external VNF connectivity\" LCM operation. MODIFY_INFO | Represents the \"Modify VNF Information\" LCM operation.     \n",
                  "type": "string",
                  "enum": [
                    "INSTANTIATE",
                    "SCALE",
                    "SCALE_TO_LEVEL",
                    "CHANGE_FLAVOUR",
                    "TERMINATE",
                    "HEAL",
                    "OPERATE",
                    "CHANGE_EXT_CONN",
                    "MODIFY_INFO"
                  ]
                },
                "isAutomaticInvocation": {
                  "description": "Set to true if this VNF LCM operation occurrence has been triggered by an automated procedure inside the VNFM (i.e. ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf triggered by auto-heal). Set to false otherwise.\n",
                  "type": "boolean"
                },
                "operationParams": {
                  "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 key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159. \n",
                  "type": "object"
                },
                "isCancelPending": {
                  "description": "If the VNF LCM operation occurrence is in \"STARTING\", \"PROCESSING\" or \"ROLLING_BACK\" state and the operation is being cancelled, this attribute shall be set to true. Otherwise, it shall be set to false.\n",
                  "type": "boolean"
                },
                "cancelMode": {
                  "description": "Cancellation mode. GRACEFUL: If the VNF LCM operation occurrence is in \"PROCESSING\" or \"ROLLING_BACK\" state, the VNFM shall not start any new resource management operation and shall wait for the ongoing resource management operations in the underlying system, typically the VIM, to finish execution or to time out. After that, the VNFM shall put the operation occurrence into the FAILED_TEMP state. If the VNF LCM operation occurrence is in \"STARTING\" state, the VNFM shall not start any resource management operation and shall wait for the granting request to finish execution or time out. After that, the VNFM shall put the operation occurrence into the ROLLED_BACK state.  FORCEFUL: If the VNF LCM operation occurrence is in \"PROCESSING\" or \"ROLLING_BACK\" state, the VNFM shall not start any new resource management operation, shall cancel the ongoing resource management operations in the underlying system, typically the VIM, and shall wait for the cancellation to finish or to time out. After that, the VNFM shall put the operation occurrence into the FAILED_TEMP state.  If the VNF LCM operation occurrence is in \"STARTING\" state, the VNFM shall not start any resource management operation and put the operation occurrence into the ROLLED_BACK state.\n",
                  "type": "string",
                  "enum": [
                    "GRACEFUL",
                    "FORCEFUL"
                  ]
                },
                "error": {
                  "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
                  "type": "object",
                  "required": [
                    "status",
                    "detail"
                  ],
                  "properties": {
                    "type": {
                      "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
                      "type": "string",
                      "format": "URI"
                    },
                    "title": {
                      "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
                      "type": "string"
                    },
                    "status": {
                      "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
                      "type": "integer"
                    },
                    "detail": {
                      "description": "A human-readable explanation specific to this occurrence of the problem.\n",
                      "type": "string"
                    },
                    "instance": {
                      "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
                      "type": "string",
                      "format": "URI"
                    }
                  }
                },
                "resourceChanges": {
                  "description": "This attribute contains information about the cumulative changes to virtualised resources that were performed so far by the LCM operation since its start, if applicable.\n",
                  "type": "object",
                  "properties": {
                    "affectedVnfcs": {
                      "description": "Information about VNFC instances that were affected during the lifecycle operation. This allows the NFVO to obtain the information contained in the latest \"result\" notification if it has not received it due to an error or a wrongly configured subscription filter.\n",
                      "type": "array",
                      "items": {
                        "description": "This type provides information about added, deleted, modified and temporary VNFCs.  \n",
                        "type": "object",
                        "required": [
                          "id",
                          "vduId",
                          "changeType",
                          "computeResource"
                        ],
                        "properties": {
                          "id": {
                            "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
                            "type": "string"
                          },
                          "vduId": {
                            "description": "An identifier that is unique within a VNF descriptor.\n",
                            "type": "string"
                          },
                          "changeType": {
                            "description": "Signals the type of change. Permitted values: * ADDED * REMOVED * MODIFIED * TEMPORARY For a temporary resource, an AffectedVnfc structure exists as long as the temporary resource exists.\n",
                            "type": "string",
                            "enum": [
                              "ADDED",
                              "REMOVED",
                              "MODIFIED",
                              "TEMPORARY"
                            ]
                          },
                          "computeResource": {
                            "required": [
                              "vimConnectionId",
                              "resourceId"
                            ],
                            "type": "object",
                            "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
                            "properties": {
                              "vimConnectionId": {
                                "description": "An identifier with the intention of being globally unique.\n",
                                "type": "string"
                              },
                              "resourceProviderId": {
                                "description": "An identifier with the intention of being globally unique.\n",
                                "type": "string"
                              },
                              "resourceId": {
                                "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
                                "type": "string"
                              },
                              "vimLevelResourceType": {
                                "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
                                "type": "string"
                              }
                            }
                          },
                          "metadata": {
                            "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 key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159. \n",
                            "type": "object"
                          },
                          "affectedVnfcCpIds": {
                            "description": "Identifiers of CP(s) of the VNFC instance that were affected by the change.  Shall be present for those affected CPs of the VNFC instance that are associated to an external CP of the VNF instance. May be present for further affected CPs of the VNFC instance.\n",
                            "type": "array",
                            "items": {
                              "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
                              "type": "string"
                            }
                          },
                          "addedStorageResourceIds": {
                            "description": "References to VirtualStorage resources that have been added. Each value refers to a VirtualStorageResourceInfo item in the VnfInstance that was added to the VNFC. It shall be provided if at least one storage resource was added to the VNFC.\n",
                            "type": "array",
                            "items": {
                              "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
                              "type": "string"
                            }
                          },
                          "removedStorageResourceIds": {
                            "description": "References to VirtualStorage resources that have been removed. The value contains the identifier of a VirtualStorageResourceInfo item that has been removed from the VNFC, and might no longer exist in the VnfInstance. It shall be provided if at least one storage resource was removed from the VNFC.\n",
                            "type": "array",
                            "items": {
                              "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
                              "type": "string"
                            }
                          }
                        }
                      }
                    },
                    "affectedVirtualLinks": {
                      "description": "Information about VL instances that were affected during the lifecycle operation. This allows the NFVO to obtain the information contained in the latest \"result\" notification if it has not received it due to an error or a wrongly configured subscription filter.\n",
                      "type": "array",
                      "items": {
                        "description": "This type provides information about added, deleted, modified and temporary VLs.\n",
                        "type": "object",
                        "required": [
                          "id",
                          "virtualLinkDescId",
                          "changeType",
                          "networkResource"
                        ],
                        "properties": {
                          "id": {
                            "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
                            "type": "string"
                          },
                          "virtualLinkDescId": {
                            "description": "An identifier that is unique within a VNF descriptor.\n",
                            "type": "string"
                          },
                          "changeType": {
                            "description": "Signals the type of change. Permitted values: * ADDED * REMOVED * MODIFIED * TEMPORARY * LINK_PORT_ADDED * LINK_PORT_REMOVED For a temporary resource, an AffectedVirtualLink structure exists as long as the temporary resource exists.\n",
                            "type": "string",
                            "enum": [
                              "ADDED",
                              "REMOVED",
                              "MODIFIED",
                              "TEMPORARY",
                              "LINK_PORT_ADDED",
                              "LINK_PORT_REMOVED"
                            ]
                          },
                          "networkResource": {
                            "required": [
                              "vimConnectionId",
                              "resourceId"
                            ],
                            "type": "object",
                            "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
                            "properties": {
                              "vimConnectionId": {
                                "description": "An identifier with the intention of being globally unique.\n",
                                "type": "string"
                              },
                              "resourceProviderId": {
                                "description": "An identifier with the intention of being globally unique.\n",
                                "type": "string"
                              },
                              "resourceId": {
                                "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
                                "type": "string"
                              },
                              "vimLevelResourceType": {
                                "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
                                "type": "string"
                              }
                            }
                          },
                          "metadata": {
                            "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 key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159. \n",
                            "type": "object"
                          }
                        }
                      }
                    },
                    "affectedVirtualStorages": {
                      "description": "Information about virtualised storage instances that were affected during the lifecycle operation. This allows the NFVO to obtain the information contained in the latest \"result\" notification if it has not received it due to an error or a wrongly configured subscription filter.\n",
                      "type": "array",
                      "items": {
                        "description": "This type provides information about added, deleted, modified and temporary virtual storage resources.\n",
                        "type": "object",
                        "required": [
                          "id",
                          "virtualStorageDescId",
                          "changeType",
                          "storageResource"
                        ],
                        "properties": {
                          "id": {
                            "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
                            "type": "string"
                          },
                          "virtualStorageDescId": {
                            "description": "An identifier that is unique within a VNF descriptor.\n",
                            "type": "string"
                          },
                          "changeType": {
                            "description": "Signals the type of change. Permitted values: * ADDED * REMOVED * MODIFIED * TEMPORARY For a temporary resource, an AffectedVirtualStorage structure exists as long as the temporary resource exists.\n",
                            "type": "string",
                            "enum": [
                              "ADDED",
                              "REMOVED",
                              "MODIFIED",
                              "TEMPORARY"
                            ]
                          },
                          "storageResource": {
                            "required": [
                              "vimConnectionId",
                              "resourceId"
                            ],
                            "type": "object",
                            "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
                            "properties": {
                              "vimConnectionId": {
                                "description": "An identifier with the intention of being globally unique.\n",
                                "type": "string"
                              },
                              "resourceProviderId": {
                                "description": "An identifier with the intention of being globally unique.\n",
                                "type": "string"
                              },
                              "resourceId": {
                                "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
                                "type": "string"
                              },
                              "vimLevelResourceType": {
                                "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
                                "type": "string"
                              }
                            }
                          },
                          "metadata": {
                            "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 key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159. \n",
                            "type": "object"
                          }
                        }
                      }
                    }
                  }
                },
                "changedInfo": {
                  "description": "This type represents attribute modifications that were performed on an \"Individual VNF instance\" resource. The attributes that can be included consist of those requested to be modified explicitly in the \"VnfInfoModificationRequest\" data structure, and additional attributes of the \"VnfInstance\" data structure that were modified implicitly e.g. when modifying the referenced VNF package.\n",
                  "type": "object",
                  "properties": {
                    "vnfInstanceName": {
                      "description": "If present, this attribute signals modifications of the \"vnfInstanceName\" attribute in \"VnfInstance\".\n",
                      "type": "string"
                    },
                    "vnfInstanceDescription": {
                      "description": "If present, this attribute signals modifications of the \"vnfInstanceDescription\" attribute in \"VnfInstance\".\n",
                      "type": "string"
                    },
                    "vnfConfigurableProperties": {
                      "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 key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159. \n",
                      "type": "object"
                    },
                    "metadata": {
                      "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 key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159. \n",
                      "type": "object"
                    },
                    "extensions": {
                      "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 key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159. \n",
                      "type": "object"
                    },
                    "vimConnectionInfo": {
                      "description": "If present, this attribute signals modifications of certain entries in the \"vimConnectionInfo\" attribute array in \"VnfInstance\".\n",
                      "type": "array",
                      "items": {
                        "description": "This type represents parameters to connect to a VIM for managing the resources of a VNF instance. This structure is used to convey VIM-related parameters over the Or-Vnfm interface. Additional parameters for a VIM may be configured into the VNFM by means outside the scope of the present document, and bound to the identifier of that VIM.\n",
                        "type": "object",
                        "required": [
                          "id",
                          "vimType"
                        ],
                        "properties": {
                          "id": {
                            "description": "An identifier with the intention of being globally unique.\n",
                            "type": "string"
                          },
                          "vimId": {
                            "description": "An identifier with the intention of being globally unique.\n",
                            "type": "string"
                          },
                          "vimType": {
                            "description": "Discriminator for the different types of the VIM information. The value of this attribute determines the structure of the \"interfaceInfo\" and \"accessInfo\" attributes, based on the type of the VIM. The set of permitted values is expected to change over time as new types or versions of VIMs become available. The ETSI NFV registry of VIM-related information provides access to information about VimConnectionInfo definitions for various VIM types. The structure of the registry is defined in Annex C of SOL003.\n",
                            "type": "string"
                          },
                          "interfaceInfo": {
                            "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 key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159. \n",
                            "type": "object"
                          },
                          "accessInfo": {
                            "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 key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159. \n",
                            "type": "object"
                          },
                          "extra": {
                            "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 key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159. \n",
                            "type": "object"
                          }
                        }
                      }
                    },
                    "vnfPkgId": {
                      "description": "An identifier with the intention of being globally unique.\n",
                      "type": "string"
                    },
                    "vnfdId": {
                      "description": "An identifier with the intention of being globally unique.\n",
                      "type": "string"
                    },
                    "vnfProvider": {
                      "description": "If present, this attribute signals modifications of the \"vnfProvider\" attribute in \"VnfInstance\". If present, this attribute (which depends on the value of the \"vnfPkgId\" attribute) was modified implicitly following a request to modify the \"vnfPkgId\" attribute, by copying the value of this attribute from the VNFD in the VNF Package identified by the \"vnfPkgId” attribute.\n",
                      "type": "string"
                    },
                    "vnfProductName": {
                      "description": "If present, this attribute signals modifications of the \"vnfProductName\" attribute in \"VnfInstance\". If present, this attribute (which depends on the value of the \"vnfPkgId\" attribute) was modified implicitly following a request to modify the \"vnfPkgId\" attribute, by copying the value of this attribute from the VNFD in the VNF Package identified by the \"vnfPkgId” attribute.\n",
                      "type": "string"
                    },
                    "vnfSoftwareVersion": {
                      "description": "A Version.\n",
                      "type": "string"
                    },
                    "vnfdVersion": {
                      "description": "A Version.\n",
                      "type": "string"
                    }
                  }
                },
                "changedExtConnectivity": {
                  "description": "Information about changed external connectivity, if applicable. This allows the NFVO to obtain the information contained in the latest \"result\" notification if it has not received it due to an error or a wrongly configured subscription filter.\n",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "id",
                      "resourceHandle"
                    ],
                    "properties": {
                      "id": {
                        "description": "An identifier with the intention of being globally unique.\n",
                        "type": "string"
                      },
                      "resourceHandle": {
                        "required": [
                          "vimConnectionId",
                          "resourceId"
                        ],
                        "type": "object",
                        "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
                        "properties": {
                          "vimConnectionId": {
                            "description": "An identifier with the intention of being globally unique.\n",
                            "type": "string"
                          },
                          "resourceProviderId": {
                            "description": "An identifier with the intention of being globally unique.\n",
                            "type": "string"
                          },
                          "resourceId": {
                            "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
                            "type": "string"
                          },
                          "vimLevelResourceType": {
                            "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
                            "type": "string"
                          }
                        }
                      },
                      "extLinkPorts": {
                        "description": "Link ports of this VL.\n",
                        "type": "array",
                        "items": {
                          "description": "This type represents information about a link port of an external VL, i.e. a port providing connectivity for the VNF to an NS VL. \n",
                          "type": "object",
                          "required": [
                            "id",
                            "resourceHandle"
                          ],
                          "properties": {
                            "id": {
                              "description": "An identifier with the intention of being globally unique.\n",
                              "type": "string"
                            },
                            "resourceHandle": {
                              "required": [
                                "vimConnectionId",
                                "resourceId"
                              ],
                              "type": "object",
                              "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
                              "properties": {
                                "vimConnectionId": {
                                  "description": "An identifier with the intention of being globally unique.\n",
                                  "type": "string"
                                },
                                "resourceProviderId": {
                                  "description": "An identifier with the intention of being globally unique.\n",
                                  "type": "string"
                                },
                                "resourceId": {
                                  "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
                                  "type": "string"
                                },
                                "vimLevelResourceType": {
                                  "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
                                  "type": "string"
                                }
                              }
                            },
                            "cpInstanceId": {
                              "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
                              "type": "string"
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "_links": {
                  "description": "Links to resources related to 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"
                        }
                      }
                    },
                    "grant": {
                      "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"
                        }
                      }
                    },
                    "cancel": {
                      "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"
                        }
                      }
                    },
                    "retry": {
                      "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"
                        }
                      }
                    },
                    "rollback": {
                      "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"
                        }
                      }
                    },
                    "fail": {
                      "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"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request\nIf the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or a syntactically incorrect payload body), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem. If the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided. If there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code.The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n",
            "headers": {
              "Content-Type": {
                "description": "The MIME type of the body of the response.",
                "type": "string",
                "maximum": 1,
                "minimum": 1
              },
              "WWW-Authenticate": {
                "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
                "type": "string",
                "maximum": 1,
                "minimum": 0
              }
            },
            "schema": {
              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
              "type": "object",
              "required": [
                "status",
                "detail"
              ],
              "properties": {
                "type": {
                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
                  "type": "string",
                  "format": "URI"
                },
                "title": {
                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
                  "type": "string"
                },
                "status": {
                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
                  "type": "integer"
                },
                "detail": {
                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",