@@ -2339,33 +2339,68 @@ <h4 id="name-stream-configuration">
23392339< p id ="section-7.1.1-14 "> delivery< a href ="#section-7.1.1-14 " class ="pilcrow "> ¶</ a > </ p >
23402340< ul class ="normal ulEmpty ">
23412341< li class ="normal ulEmpty " id ="section-7.1.1-15.1 ">
2342- < p id ="section-7.1.1-15.1.1 "> < strong > Receiver-Supplied</ strong > , A JSON object containing a set of name/value pairs
2343- specifying configuration parameters for the SET delivery method. The actual
2344- delivery method is identified by the special key "method" with the value being
2345- a URI as defined in < a href ="#delivery-meta " class ="auto internal xref "> Section 11.2.1</ a > .< a href ="#section-7.1.1-15.1.1 " class ="pilcrow "> ¶</ a > </ p >
2342+ < p id ="section-7.1.1-15.1.1 "> A JSON object containing a set of name/value pairs specifying configuration
2343+ parameters for the SET delivery method. The actual delivery method is
2344+ identified by the special key "method" with the value being a URI as defined
2345+ in < a href ="#delivery-meta " class ="auto internal xref "> Section 11.2.1</ a > . The value of the "delivery" field contains two
2346+ sub-fields:< a href ="#section-7.1.1-15.1.1 " class ="pilcrow "> ¶</ a > </ p >
2347+ </ li >
2348+ </ ul >
2349+ < ul class ="normal ulEmpty ">
2350+ < li class ="normal ulEmpty " id ="section-7.1.1-16.1 ">
2351+ < p id ="section-7.1.1-16.1.1 "> method< a href ="#section-7.1.1-16.1.1 " class ="pilcrow "> ¶</ a > </ p >
23462352</ li >
23472353 </ ul >
2348- < p id ="section-7.1.1-16 "> min_verification_interval< a href ="#section-7.1.1-16 " class ="pilcrow "> ¶</ a > </ p >
23492354< ul class ="normal ulEmpty ">
23502355< li class ="normal ulEmpty " id ="section-7.1.1-17.1 ">
2351- < p id ="section-7.1.1-17.1.1 "> < strong > Transmitter-Supplied</ strong > , An integer indicating the minimum amount of time in
2356+ < ul class ="normal ulEmpty ">
2357+ < li class ="normal ulEmpty " id ="section-7.1.1-17.1.1.1 ">
2358+ < p id ="section-7.1.1-17.1.1.1.1 "> < strong > Receiver-Supplied</ strong > , the specific delivery method to be used. This can be
2359+ any one of "urn:ietf:rfc:8935" (push) or "urn:ietf:rfc:8936" (poll), but
2360+ not both.< a href ="#section-7.1.1-17.1.1.1.1 " class ="pilcrow "> ¶</ a > </ p >
2361+ </ li >
2362+ </ ul >
2363+ </ li >
2364+ </ ul >
2365+ < ul class ="normal ulEmpty ">
2366+ < li class ="normal ulEmpty " id ="section-7.1.1-18.1 ">
2367+ < p id ="section-7.1.1-18.1.1 "> url< a href ="#section-7.1.1-18.1.1 " class ="pilcrow "> ¶</ a > </ p >
2368+ </ li >
2369+ </ ul >
2370+ < ul class ="normal ulEmpty ">
2371+ < li class ="normal ulEmpty " id ="section-7.1.1-19.1 ">
2372+ < ul class ="normal ulEmpty ">
2373+ < li class ="normal ulEmpty " id ="section-7.1.1-19.1.1.1 ">
2374+ < p id ="section-7.1.1-19.1.1.1.1 "> The location at which the push or poll delivery will take place. If the
2375+ < code > method</ code > value is "urn:ietf:rfc:8935" (push), then this value MUST
2376+ be supplied by the Receiver. If the < code > method</ code > value is
2377+ "urn:ietf:rfc:8936" (poll), then this value MUST be supplied by the
2378+ Transmitter.< a href ="#section-7.1.1-19.1.1.1.1 " class ="pilcrow "> ¶</ a > </ p >
2379+ </ li >
2380+ </ ul >
2381+ </ li >
2382+ </ ul >
2383+ < p id ="section-7.1.1-20 "> min_verification_interval< a href ="#section-7.1.1-20 " class ="pilcrow "> ¶</ a > </ p >
2384+ < ul class ="normal ulEmpty ">
2385+ < li class ="normal ulEmpty " id ="section-7.1.1-21.1 ">
2386+ < p id ="section-7.1.1-21.1.1 "> < strong > Transmitter-Supplied</ strong > , An integer indicating the minimum amount of time in
23522387 seconds that must pass in between verification requests. If an Event Receiver
23532388 submits verification requests more frequently than this, the Event Transmitter
23542389 MAY respond with a 429 status code. An Event Transmitter SHOULD NOT respond
2355- with a 429 status code if an Event Receiver is not exceeding this frequency.< a href ="#section-7.1.1-17 .1.1 " class ="pilcrow "> ¶</ a > </ p >
2390+ with a 429 status code if an Event Receiver is not exceeding this frequency.< a href ="#section-7.1.1-21 .1.1 " class ="pilcrow "> ¶</ a > </ p >
23562391</ li >
23572392 </ ul >
2358- < p id ="section-7.1.1-18 "> format< a href ="#section-7.1.1-18 " class ="pilcrow "> ¶</ a > </ p >
2393+ < p id ="section-7.1.1-22 "> format< a href ="#section-7.1.1-22 " class ="pilcrow "> ¶</ a > </ p >
23592394< ul class ="normal ulEmpty ">
2360- < li class ="normal ulEmpty " id ="section-7.1.1-19 .1 ">
2361- < p id ="section-7.1.1-19 .1.1 "> < strong > Receiver-Supplied</ strong > , The Subject Identifier Format that the Receiver wants
2395+ < li class ="normal ulEmpty " id ="section-7.1.1-23 .1 ">
2396+ < p id ="section-7.1.1-23 .1.1 "> < strong > Receiver-Supplied</ strong > , The Subject Identifier Format that the Receiver wants
23622397 for the events. If not set then the Transmitter might decide to use a type
2363- that discloses more information than necessary.< a href ="#section-7.1.1-19 .1.1 " class ="pilcrow "> ¶</ a > </ p >
2398+ that discloses more information than necessary.< a href ="#section-7.1.1-23 .1.1 " class ="pilcrow "> ¶</ a > </ p >
23642399</ li >
23652400 </ ul >
2366- < p id ="section-7.1.1-20 "> TODO: consider adding a IANA Registry for stream configuration metadata, similar
2401+ < p id ="section-7.1.1-24 "> TODO: consider adding a IANA Registry for stream configuration metadata, similar
23672402to Section 7.1.1 of < span > [< a href ="#OAUTH-DISCOVERY " class ="cite xref "> OAUTH-DISCOVERY</ a > ]</ span > . This would allow other specs to add to
2368- the stream configuration.< a href ="#section-7.1.1-20 " class ="pilcrow "> ¶</ a > </ p >
2403+ the stream configuration.< a href ="#section-7.1.1-24 " class ="pilcrow "> ¶</ a > </ p >
23692404< div id ="creating-a-stream ">
23702405< section id ="section-7.1.1.1 ">
23712406 < h5 id ="name-creating-a-stream ">
@@ -2378,43 +2413,34 @@ <h5 id="name-creating-a-stream">
23782413< span > < a href ="#RFC7159 " class ="internal xref "> JSON</ a > [< a href ="#RFC7159 " class ="cite xref "> RFC7159</ a > ]</ span > representation of the stream's configuration in the body.< a href ="#section-7.1.1.1-1 " class ="pilcrow "> ¶</ a > </ p >
23792414< p id ="section-7.1.1.1-2 "> The HTTP POST request MAY contain the Receiver-Supplied values of the Stream
23802415Configuration (< a href ="#stream-config " class ="auto internal xref "> Section 7.1.1</ a > ) object:< a href ="#section-7.1.1.1-2 " class ="pilcrow "> ¶</ a > </ p >
2381- < p id ="section-7.1.1.1-3 "> events_requested< a href ="#section-7.1.1.1-3 " class ="pilcrow "> ¶</ a > </ p >
2382- < ul class ="normal ulEmpty ">
2383- < li class ="normal ulEmpty " id ="section-7.1.1.1-4.1 ">
2384- < p id ="section-7.1.1.1-4.1.1 "> < strong > Receiver-Supplied</ strong > , An array of URIs identifying the set of events that
2385- the Receiver requested. A Receiver SHOULD request only the events that it
2386- understands and it can act on. This is configurable by the Receiver.< a href ="#section-7.1.1.1-4.1.1 " class ="pilcrow "> ¶</ a > </ p >
2416+ < ul class ="normal ">
2417+ < li class ="normal " id ="section-7.1.1.1-3.1 ">
2418+ < code > events_requested</ code > < a href ="#section-7.1.1.1-3.1 " class ="pilcrow "> ¶</ a >
23872419</ li >
2388- </ ul >
2389- < p id ="section-7.1.1.1-5 "> delivery< a href ="#section-7.1.1.1-5 " class ="pilcrow "> ¶</ a > </ p >
2390- < ul class ="normal ulEmpty ">
2391- < li class ="normal ulEmpty " id ="section-7.1.1.1-6.1 ">
2392- < p id ="section-7.1.1.1-6.1.1 "> < strong > Receiver-Supplied</ strong > , A JSON object containing a set of name/value pairs
2393- specifying configuration parameters for the SET delivery method. The actual
2394- delivery method is identified by the special key "method" with the value
2395- being a URI as defined in < a href ="#delivery-meta " class ="auto internal xref "> Section 11.2.1</ a > .< a href ="#section-7.1.1.1-6.1.1 " class ="pilcrow "> ¶</ a > </ p >
2420+ < li class ="normal " id ="section-7.1.1.1-3.2 ">
2421+ < code > delivery</ code > : Note that in the case of the POLL method, the < code > url</ code > value is
2422+ supplied by the Transmitter.< a href ="#section-7.1.1.1-3.2 " class ="pilcrow "> ¶</ a >
23962423</ li >
2397- </ ul >
2398- < p id ="section-7.1.1.1-7 "> format< a href ="#section-7.1.1.1-7 " class ="pilcrow "> ¶</ a > </ p >
2399- < ul class ="normal ulEmpty ">
2400- < li class ="normal ulEmpty " id ="section-7.1.1.1-8.1 ">
2401- < p id ="section-7.1.1.1-8.1.1 "> < strong > Receiver-Supplied</ strong > , The Subject Identifier Format that the Receiver wants
2402- for the events. If not set then the Transmitter might decide to use a type
2403- that discloses more information than necessary.< a href ="#section-7.1.1.1-8.1.1 " class ="pilcrow "> ¶</ a > </ p >
2424+ < li class ="normal " id ="section-7.1.1.1-3.3 ">
2425+ < code > format</ code > < a href ="#section-7.1.1.1-3.3 " class ="pilcrow "> ¶</ a >
24042426</ li >
24052427 </ ul >
2406- < p id ="section-7.1.1.1-9 "> The following is a non-normative example request to create an Event Stream:< a href ="#section-7.1.1.1-9 " class ="pilcrow "> ¶</ a > </ p >
2428+ < p id ="section-7.1.1.1-4 "> If the request does not contain the < code > delivery</ code > property, then the Transmitter
2429+ MUST assume that the < code > method</ code > is "urn:ietf:rfc:8936" (poll). The
2430+ Transmitter MUST include a < code > delivery</ code > property in the response with this
2431+ < code > method</ code > property and a < code > url</ code > property.< a href ="#section-7.1.1.1-4 " class ="pilcrow "> ¶</ a > </ p >
2432+ < p id ="section-7.1.1.1-5 "> The following is a non-normative example request to create an Event Stream:< a href ="#section-7.1.1.1-5 " class ="pilcrow "> ¶</ a > </ p >
24072433< span id ="name-example-create-event-stream "> </ span > < div id ="figcreatestreamreq ">
24082434< figure id ="figure-14 ">
2409- < div class ="lang-http sourcecode " id ="section-7.1.1.1-10 .1 ">
2435+ < div class ="lang-http sourcecode " id ="section-7.1.1.1-6 .1 ">
24102436< pre >
24112437POST /ssf/stream HTTP/1.1
24122438Host: transmitter.example.com
24132439Authorization: Bearer eyJ0b2tlbiI6ImV4YW1wbGUifQo=
24142440
24152441{
24162442 "delivery": {
2417- "delivery_method ": "urn:ietf:rfc:8935",
2443+ "method ": "urn:ietf:rfc:8935",
24182444 "url": "https://receiver.example.com/events"
24192445 },
24202446 "events_requested": [
@@ -2429,10 +2455,10 @@ <h5 id="name-creating-a-stream">
24292455< a href ="#name-example-create-event-stream " class ="selfRef "> Example: Create Event Stream Request</ a >
24302456 </ figcaption > </ figure >
24312457</ div >
2432- < p id ="section-7.1.1.1-11 "> The following is a non-normative example response:< a href ="#section-7.1.1.1-11 " class ="pilcrow "> ¶</ a > </ p >
2458+ < p id ="section-7.1.1.1-7 "> The following is a non-normative example response:< a href ="#section-7.1.1.1-7 " class ="pilcrow "> ¶</ a > </ p >
24332459< span id ="name-example-create-stream-respo "> </ span > < div id ="figcreatestreamresp ">
24342460< figure id ="figure-15 ">
2435- < div class ="lang-http sourcecode " id ="section-7.1.1.1-12 .1 ">
2461+ < div class ="lang-http sourcecode " id ="section-7.1.1.1-8 .1 ">
24362462< pre >
24372463HTTP/1.1 200 OK
24382464Content-Type: application/json
@@ -2445,7 +2471,7 @@ <h5 id="name-creating-a-stream">
24452471 "http://receiver.example.com/mobile"
24462472 ],
24472473 "delivery": {
2448- "delivery_method ": "urn:ietf:rfc:8935",
2474+ "method ": "urn:ietf:rfc:8935",
24492475 "url": "https://receiver.example.com/events"
24502476 },
24512477 "events_supported": [
@@ -2469,7 +2495,7 @@ <h5 id="name-creating-a-stream">
24692495< a href ="#name-example-create-stream-respo " class ="selfRef "> Example: Create Stream Response</ a >
24702496 </ figcaption > </ figure >
24712497</ div >
2472- < p id ="section-7.1.1.1-13 "> Errors are signaled with HTTP status codes as follows:< a href ="#section-7.1.1.1-13 " class ="pilcrow "> ¶</ a > </ p >
2498+ < p id ="section-7.1.1.1-9 "> Errors are signaled with HTTP status codes as follows:< a href ="#section-7.1.1.1-9 " class ="pilcrow "> ¶</ a > </ p >
24732499< span id ="name-create-stream-errors "> </ span > < div id ="tablecreatestream ">
24742500< table class ="center " id ="table-1 ">
24752501 < caption >
@@ -2546,7 +2572,7 @@ <h5 id="name-reading-a-streams-configura">
25462572 "http://receiver.example.com/mobile"
25472573 ],
25482574 "delivery": {
2549- "delivery_method ": "urn:ietf:rfc:8935",
2575+ "method ": "urn:ietf:rfc:8935",
25502576 "url": "https://receiver.example.com/events"
25512577 },
25522578 "events_supported": [
@@ -2603,7 +2629,7 @@ <h5 id="name-reading-a-streams-configura">
26032629 "http://receiver.example.com/mobile"
26042630 ],
26052631 "delivery": {
2606- "delivery_method ": "urn:ietf:rfc:8935",
2632+ "method ": "urn:ietf:rfc:8935",
26072633 "url": "https://receiver.example.com/events"
26082634 },
26092635 "events_supported": [
@@ -2629,7 +2655,7 @@ <h5 id="name-reading-a-streams-configura">
26292655 "http://receiver.example.com/mobile"
26302656 ],
26312657 "delivery": {
2632- "delivery_method ": "urn:ietf:rfc:8935",
2658+ "method ": "urn:ietf:rfc:8935",
26332659 "url": "https://receiver.example.com/events"
26342660 },
26352661 "events_supported": [
@@ -2673,7 +2699,7 @@ <h5 id="name-reading-a-streams-configura">
26732699 "http://receiver.example.com/mobile"
26742700 ],
26752701 "delivery": {
2676- "delivery_method ": "urn:ietf:rfc:8935",
2702+ "method ": "urn:ietf:rfc:8935",
26772703 "url": "https://receiver.example.com/events"
26782704 },
26792705 "events_supported": [
@@ -2806,7 +2832,7 @@ <h5 id="name-updating-a-streams-configur">
28062832 "http://receiver.example.com/mobile"
28072833 ],
28082834 "delivery": {
2809- "delivery_method ": "urn:ietf:rfc:8935",
2835+ "method ": "urn:ietf:rfc:8935",
28102836 "url": "https://receiver.example.com/events"
28112837 },
28122838 "events_supported": [
@@ -2905,7 +2931,7 @@ <h5 id="name-replacing-a-streams-configu">
29052931 "http://receiver.example.com/mobile"
29062932 ],
29072933 "delivery": {
2908- "delivery_method ": "urn:ietf:rfc:8935",
2934+ "method ": "urn:ietf:rfc:8935",
29092935 "url": "https://receiver.example.com/events"
29102936 },
29112937 "events_requested": [
@@ -2937,7 +2963,7 @@ <h5 id="name-replacing-a-streams-configu">
29372963 "http://receiver.example.com/mobile"
29382964 ],
29392965 "delivery": {
2940- "delivery_method ": "urn:ietf:rfc:8935",
2966+ "method ": "urn:ietf:rfc:8935",
29412967 "url": "https://receiver.example.com/events"
29422968 },
29432969 "events_supported": [
@@ -4272,7 +4298,7 @@ <h5 id="name-push-delivery-using-http">
42724298 < p id ="section-11.2.1.1-3.1.1 "> "urn:ietf:rfc:8935"< a href ="#section-11.2.1.1-3.1.1 " class ="pilcrow "> ¶</ a > </ p >
42734299</ li >
42744300 </ ul >
4275- < p id ="section-11.2.1.1-4 "> endpoint_url < a href ="#section-11.2.1.1-4 " class ="pilcrow "> ¶</ a > </ p >
4301+ < p id ="section-11.2.1.1-4 "> url < a href ="#section-11.2.1.1-4 " class ="pilcrow "> ¶</ a > </ p >
42764302< ul class ="normal ulEmpty ">
42774303< li class ="normal ulEmpty " id ="section-11.2.1.1-5.1 ">
42784304 < p id ="section-11.2.1.1-5.1.1 "> The URL where events are pushed through HTTP POST. This is set by the
@@ -4303,7 +4329,7 @@ <h5 id="name-polling-delivery-using-http">
43034329 < p id ="section-11.2.1.2-3.1.1 "> "urn:ietf:rfc:8936"< a href ="#section-11.2.1.2-3.1.1 " class ="pilcrow "> ¶</ a > </ p >
43044330</ li >
43054331 </ ul >
4306- < p id ="section-11.2.1.2-4 "> endpoint_url < a href ="#section-11.2.1.2-4 " class ="pilcrow "> ¶</ a > </ p >
4332+ < p id ="section-11.2.1.2-4 "> url < a href ="#section-11.2.1.2-4 " class ="pilcrow "> ¶</ a > </ p >
43074333< ul class ="normal ulEmpty ">
43084334< li class ="normal ulEmpty " id ="section-11.2.1.2-5.1 ">
43094335 < p id ="section-11.2.1.2-5.1.1 "> The URL where events can be retrieved from. This is specified by the
0 commit comments