diff --git a/GS_NFV-SOL_026.md b/GS_NFV-SOL_026.md index 7872aec230b6aff3d476b622d6c20d91aad8d6c1..2653ac5837382e4b37f7515c68f9f955875ddef8 100644 --- a/GS_NFV-SOL_026.md +++ b/GS_NFV-SOL_026.md @@ -758,7 +758,76 @@ The request and response data structures of the physical resource provisioning a ## 7.4 Sequence diagrams (informative) -Editor's Note: This sub-clause will add sequence diagrams of operations supported over this service interface. +### 7.4.1 Introduction + +The following clauses describe the sequences for querying, replacing and modifying an inventory object. + +The diagrams and their description contain placeholders indicated as <inventory object collection URI> and <inventory object URI> which refer to the URIs of the corresponding API resources specified in clause 7.3. + +Flows related to task monitoring, subscription management and notifications are described in Annex A of the present document. + +### 7.4.2 Querying information about inventory objects + +This clause describes the sequences for querying information about both multiple and individual inventory objects. + +![Figure 7.4.2-1: Flow of querying information about inventory objects](media/image43.png) + +**Figure 7.4.2-1: Flow of querying information about inventory objects** + +The querying of information about one or more inventory objects, as illustrated in Figure 7.4.2-1, consists of the following steps. + +**Precondition:** One or more individual inventory objects have previously been created. + +1. If the API consumer intends to get information about multiple inventory objects, it sends a GET request to the appropriate <inventory object collection URI>. +1. The PIM returns a \"200 OK\" response to the API consumer and includes in the message content body a representation of an <inventory object collection>, containing information about all the individual inventory objects that have been created. +1. If the API consumer intends to get information about an individual inventory object, it sends a GET request to the appropriate <inventory object URI>. +1. The PIM returns a \"200 OK\" response to the API consumer and includes in the message content body a representation of the individual inventory object. + +**Postcondition:** None. + +**Error handling:** In case of failure, appropriate error information is provided in the response. + +### 7.4.3 Modifying an inventory object + +This clause describes a sequence for modifying an individual inventory object. + +![Figure 7.4.3-1: Flow of inventory object modification](media/image44.png) + +**Figure 7.4.3-1: Flow of inventory object modification** + +The modification of an inventory object, as illustrated in Figure 7.4.3-1, consists of the following steps. + +**Precondition:** The individual inventory object has been previously created. + +1. The API consumer sends a PATCH request to the <inventory object URI>, including data structure in the message content body representing the modifiable properties to be modified in the individual inventory object. +1. If the PIM supports asynchronous operations and modification of the inventory object requires some time to process, the PIM returns a \"202 Accepted\" response. The response also contains the URI of the associated Task Monitor in the Location header. The response body can optionally contain representation of the corresponding Task resource created by the PIM for this asynchronous operation. +1. The PIM modifies the individual inventory object. +1. The PIM returns a \"200 OK\" response to the API consumer and includes in the message content body a representation of the modified inventory object. Alternatively, the PIM can also return a \"204 No Content\" response to the API consumer indicating successful operation. + +**Postcondition:** Upon successful completion of the synchronous operation or of the corresponding task in case of asynchronous operation, the individual inventory object has been modified. + +**Error handling:** In case of failure, appropriate error information is provided in the response. + +### 7.4.4 Replacing an inventory object + +This clause describes a sequence for replacing an individual inventory object. + +![Figure 7.4.4-1: Flow of inventory object replacement](media/image45.png) + +**Figure 7.4.4-1: Flow of inventory object replacement** + +The replacement of an individual inventory object, as illustrated in Figure 7.4.4-1, consists of the following steps. + +**Precondition:** The individual inventory object has been previously created. + +1. The API consumer sends a PUT request to the <inventory object URI> including a valid representation of the individual inventory object to be replaced in the message content body. +1. If the PIM supports asynchronous operations and replacement of the inventory object requires some time to process, the PIM returns a \"202 Accepted\" response. The response also contains the URI of the associated Task Monitor in the Location header. The response body can optionally contain representation of the corresponding Task resource created by the PIM for this asynchronous operation. +1. The PIM replaces the individual inventory object. +1. The PIM returns a \"200 OK\" response to the API consumer and includes in the message content body a representation of the replaced inventory object. Alternatively, the PIM can also return a \"204 No Content\" response to the API consumer indicating successful operation. + +**Postcondition:** Upon successful completion of the synchronous operation or of the corresponding task in case of asynchronous operation, the individual inventory object has been replaced. + +**Error handling:** In case of failure, appropriate error information is provided in the response. ## 7.5 Resources Editor's Note: This sub-clause will add API resources of the service interface. diff --git a/media/image43.png b/media/image43.png new file mode 100644 index 0000000000000000000000000000000000000000..bafeb9d46b6068ddac722fd5beeff2f7324919bf Binary files /dev/null and b/media/image43.png differ diff --git a/media/image44.png b/media/image44.png new file mode 100644 index 0000000000000000000000000000000000000000..b33c5836a8250a289aa41b1ad50ebd481a3885d8 Binary files /dev/null and b/media/image44.png differ diff --git a/media/image45.png b/media/image45.png new file mode 100644 index 0000000000000000000000000000000000000000..27463939bd5bc6ba3a1aaf06ff475674065cd3ac Binary files /dev/null and b/media/image45.png differ diff --git a/uml/Clause7/modify-inventory-object.txt b/uml/Clause7/modify-inventory-object.txt new file mode 100644 index 0000000000000000000000000000000000000000..650ba6f74dd12585b7898c70a608c3fca686ebfd --- /dev/null +++ b/uml/Clause7/modify-inventory-object.txt @@ -0,0 +1,22 @@ +@startuml +skinparam defaultFontName "Arial" +skinparam defaultFontSize 11 + participant "API consumer" as cli + participant "PIM" as srv + note over cli, srv + Precondition: The individual inventory object has been previously created. + end note + autonumber + cli -> srv: PATCH (PatchSet) +alt Asynchronous Operation + cli <- srv: 202 Accepted +else Synchronous Operation + srv -> srv: Modifies individual\ninventory object + cli <- srv: 200 OK () / 204 No Content + autonumber stop +end + note over cli, srv + Postcondition: Upon successful completion of the synchronous operation or of the corresponding task + in case of asynchronous operation, the individual inventory object has been modified. + end note +@enduml \ No newline at end of file diff --git a/uml/Clause7/query-inventory-objects.txt b/uml/Clause7/query-inventory-objects.txt new file mode 100644 index 0000000000000000000000000000000000000000..532ab909518afd9e3bcaed5f722557a512483bd7 --- /dev/null +++ b/uml/Clause7/query-inventory-objects.txt @@ -0,0 +1,21 @@ +@startuml +skinparam defaultFontName "Arial" +skinparam defaultFontSize 11 + participant "API consumer" as cli + participant "PIM" as srv + + note over cli, srv + Precondition: One or more individual inventory objects have been created. + end note + + alt Query information about multiple inventory objects + autonumber + cli -> srv: GET + srv -> cli: 200 OK () + else Query information about individual inventory object + cli -> srv: GET + srv -> cli: 200 OK () + autonumber stop + +end +@enduml \ No newline at end of file diff --git a/uml/Clause7/replace-inventory-object.txt b/uml/Clause7/replace-inventory-object.txt new file mode 100644 index 0000000000000000000000000000000000000000..6e7ef56daba237625feb7285b1a6f782865e9104 --- /dev/null +++ b/uml/Clause7/replace-inventory-object.txt @@ -0,0 +1,22 @@ +@startuml +skinparam defaultFontName "Arial" +skinparam defaultFontSize 11 + participant "API consumer" as cli + participant "PIM" as srv + note over cli, srv + Precondition: The individual inventory object has been previously created. + end note + autonumber + cli -> srv: PUT () +alt Asynchronous Operation + cli <- srv: 202 Accepted +else Synchronous Operation + srv -> srv: Replaces individual\ninventory object + cli <- srv: 200 OK () / 204 No Content + autonumber stop +end + note over cli, srv + Postcondition: Upon successful completion of the synchronous operation or of the corresponding + task in case of asynchronous operation, the individual inventory object has been replaced. + end note +@enduml \ No newline at end of file