@@ -680,12 +680,24 @@ <h3>Endpoints</h3>
680
680
< td > < a > New Session</ a > </ td >
681
681
</ tr >
682
682
683
+ < tr >
684
+ < td > GET</ td >
685
+ < td > /session/{session id}</ td >
686
+ < td > < a > Get Session</ a > </ td >
687
+ </ tr >
688
+
683
689
< tr >
684
690
< td > DELETE</ td >
685
691
< td > /session/{< var > session id</ var > }</ td >
686
692
< td > < a > Delete Session</ a > </ td >
687
693
</ tr >
688
694
695
+ < tr >
696
+ < td > POST</ td >
697
+ < td > /session/async</ td >
698
+ < td > < a > Async New Session</ a > </ td >
699
+ </ tr >
700
+
689
701
< tr >
690
702
< td > GET</ td >
691
703
< td > /status</ td >
@@ -2172,8 +2184,15 @@ <h2>Sessions</h2>
2172
2184
an < a > intermediary node</ a > will also < a > close the session</ a > of
2173
2185
the < a > associated session</ a > .
2174
2186
2175
- < p > All < a > commands</ a > , except < a > New Session</ a > and < a > Status</ a > ,
2176
- have an associated < dfn > current session</ dfn > ,
2187
+ < p > An < a > intermediary node</ a > will also maintain a list of
2188
+ < dfn > session creation jobs</ dfn > . These include a mapping from
2189
+ a < dfn > session creation id</ dfn > to a < a > session id</ a > of
2190
+ an < a > associated session</ a > .
2191
+
2192
+ < a > New Session</ a > , < a > Async New Session</ a > , and < a > Status</ a > < a > commands</ a >
2193
+ have no associated < a > session</ a > or < a > session creation job</ a > .
2194
+
2195
+ < p > All other < a > commands</ a > have an associated < dfn > current session</ dfn > ,
2177
2196
which is the < a > session</ a > in which that < a > command</ a > will run.
2178
2197
2179
2198
< p > A < a > remote end</ a > has an associated list of
@@ -2482,6 +2501,55 @@ <h3 id=new-session><dfn data-lt="new sessions|creating a new session">New Sessio
2482
2501
</ ol >
2483
2502
</ section > <!-- /New Session -->
2484
2503
2504
+ < section >
2505
+ < h3 > < dfn > Get Session</ dfn > </ h3 >
2506
+
2507
+ < table class ="simple jsoncommand ">
2508
+ < tr >
2509
+ < th > HTTP Method</ th >
2510
+ < th > URI Template</ th >
2511
+ </ tr >
2512
+ < tr >
2513
+ < td > GET</ td >
2514
+ < td > /session/{session id}</ td >
2515
+ </ tr >
2516
+ </ table >
2517
+
2518
+ < p > The < a > remote end steps</ a > are:
2519
+
2520
+ < ol >
2521
+ < li > < p > Let < var > session</ var > be a job in < a > active sessions</ a >
2522
+ with a < a > session id</ a > matching < var > session id</ var >
2523
+
2524
+ < li > < p > If < a > Remote end</ a > is an < a > endpoint node</ a > and
2525
+ < var > session</ var > is < code > null</ code > , return < a > error</ a >
2526
+ with < a > error code</ a > < a > unknown session</ a > .
2527
+
2528
+ < li > < p > If < a > Remote end</ a > is an < a > intermediary node</ a > and
2529
+ < var > session</ var > is < code > null</ code > , let < var > session</ var >
2530
+ be a job in < a > session creation job</ a > with a < a > session id</ a >
2531
+ matching < var > session creation id</ var >
2532
+
2533
+ < li > < p > If < a > Remote end</ a > is an < a > intermediary node</ a > and
2534
+ < var > session</ var > is < code > null</ code > , return < a > error</ a >
2535
+ with < a > error code</ a > < a > unknown session</ a > .
2536
+
2537
+ < li > < p > Let < var > body</ var > be a JSON < a > Object</ a > initialised with:
2538
+ < dl >
2539
+ < dl >
2540
+ < dt > "< code > sessionId</ code > "
2541
+ < dd > The < a > session id</ a > of the < a > current session</ a > .
2542
+
2543
+ < dt > "< code > capabilities</ code > "
2544
+ < dd > The capabilities of the < a > current session</ a > .
2545
+ </ dl >
2546
+ </ dl >
2547
+
2548
+ < li > < p > Return success with data < var > body</ var > .
2549
+ This conversation was marked as resolved by christian-bromann
2550
+ </ ol >
2551
+ </ section > <!-- /Get Session -->
2552
+
2485
2553
< section >
2486
2554
< h3 > < dfn > Delete Session</ dfn > </ h3 >
2487
2555
@@ -2506,6 +2574,58 @@ <h3><dfn>Delete Session</dfn></h3>
2506
2574
</ ol >
2507
2575
</ section > <!-- /Delete Session -->
2508
2576
2577
+ < section >
2578
+ < h3 > < dfn > Async New Session</ dfn > </ h3 >
2579
+
2580
+ < table class ="simple jsoncommand ">
2581
+ < tr >
2582
+ < th > HTTP Method</ th >
2583
+ < th > URI Template</ th >
2584
+ </ tr >
2585
+ < tr >
2586
+ < td > POST</ td >
2587
+ < td > /session/async</ td >
2588
+ </ tr >
2589
+ </ table >
2590
+
2591
+ < p > The < a > remote end</ a > steps are:
2592
+
2593
+ < ol >
2594
+ < li > < p > Perform the following substeps based on the < a > remote end</ a > ’s type:
2595
+ < dl class =switch >
2596
+ < dt > < a > Remote end</ a > is an < a > endpoint node</ a >
2597
+ < dd >
2598
+ < ol >
2599
+ < li > < p > Execute steps defined in < a > New Session</ a >
2600
+ </ ol >
2601
+
2602
+ < dt > < a > Remote end</ a > is an < a > intermediary node</ a >
2603
+ < dd >
2604
+ < ol >
2605
+ < li > < p > Use the result of the < a > capabilities processing</ a > algorithm
2606
+ to route the < a > new session</ a > request to the appropriate < a > endpoint node</ a > .
2607
+ An < a > intermediary node</ a > is free to define < a > extension capabilities</ a >
2608
+ to assist in this process, however, these specific capabilities
2609
+ must not be forwarded to the < a > endpoint node</ a > .
2610
+
2611
+ < li > < p > Let < var > session creation job</ var > be a new JSON < a > Object</ a >
2612
+ with the following properties:
2613
+
2614
+ < dl >
2615
+ < dt > "< code > sessionCreationId</ code > "
2616
+ < dd > The result of < a > generating a UUID</ a > .
2617
+ </ dl >
2618
+
2619
+ < li > Add the < var > session creation job</ var > to the list of
2620
+ < a > session creation jobs</ a > .
2621
+
2622
+ < li > < p > Return < a > success</ a > with data < var > session creation job</ var > .
2623
+ </ ol >
2624
+ </ dl >
2625
+ </ ol >
2626
+
2627
+ </ section > <!-- /Async New Session -->
2628
+
2509
2629
< section >
2510
2630
< h3 > < dfn > Status</ dfn > </ h3 >
2511
2631
0 commit comments