--- 1/draft-ietf-cdni-control-triggers-00.txt 2013-10-21 02:14:26.646488351 -0700 +++ 2/draft-ietf-cdni-control-triggers-01.txt 2013-10-21 02:14:26.706489881 -0700 @@ -1,18 +1,18 @@ Network Working Group R. Murray Internet-Draft B. Niven-Jenkins Intended status: Standards Track Velocix (Alcatel-Lucent) -Expires: October 10, 2013 April 8, 2013 +Expires: April 24, 2014 October 21, 2013 CDNI Control Interface / Triggers - draft-ietf-cdni-control-triggers-00 + draft-ietf-cdni-control-triggers-01 Abstract This document describes the part of the CDN Interconnect Control Interface that allows a CDN to trigger activity in an interconnected CDN that is configured to deliver content on its behalf. The upstream CDN can use this mechanism to request that the downstream CDN pre-positions metadata or content, or that it re-validate or purge metadata or content. The upstream CDN can monitor the status of activity that it has triggered in the downstream CDN. @@ -31,21 +31,21 @@ Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." - This Internet-Draft will expire on October 10, 2013. + This Internet-Draft will expire on April 24, 2014. Copyright Notice Copyright (c) 2013 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents @@ -80,94 +80,92 @@ 5.5. Trigger Resource Simple Data Type Descriptions . . . . . . 16 5.5.1. TriggerType . . . . . . . . . . . . . . . . . . . . . 16 5.5.2. TriggerStatus . . . . . . . . . . . . . . . . . . . . 16 5.5.3. URLs . . . . . . . . . . . . . . . . . . . . . . . . . 17 5.5.4. AbsoluteTime . . . . . . . . . . . . . . . . . . . . . 17 5.5.5. ErrorCode . . . . . . . . . . . . . . . . . . . . . . 17 6. JSON Encoding of Objects . . . . . . . . . . . . . . . . . . . 17 6.1. JSON Encoding of Embedded Types . . . . . . . . . . . . . 18 6.1.1. TriggerType . . . . . . . . . . . . . . . . . . . . . 18 6.1.2. TriggerStatus . . . . . . . . . . . . . . . . . . . . 18 - 6.1.3. PatternMatch . . . . . . . . . . . . . . . . . . . . . 19 + 6.1.3. PatternMatch . . . . . . . . . . . . . . . . . . . . . 18 6.1.4. ErrorDesc . . . . . . . . . . . . . . . . . . . . . . 19 - 6.1.5. ErrorCode . . . . . . . . . . . . . . . . . . . . . . 20 + 6.1.5. ErrorCode . . . . . . . . . . . . . . . . . . . . . . 19 6.1.6. Relationship . . . . . . . . . . . . . . . . . . . . . 20 6.2. MIME Media Types . . . . . . . . . . . . . . . . . . . . . 20 - 7. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 + 7. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 7.1. Creating Triggers . . . . . . . . . . . . . . . . . . . . 21 7.1.1. Preposition . . . . . . . . . . . . . . . . . . . . . 21 - 7.1.2. Invalidate . . . . . . . . . . . . . . . . . . . . . . 23 + 7.1.2. Invalidate . . . . . . . . . . . . . . . . . . . . . . 22 7.2. Examining Trigger Status . . . . . . . . . . . . . . . . . 24 7.2.1. Collection of All Triggers . . . . . . . . . . . . . . 24 7.2.2. Filtered Collections of Triggers . . . . . . . . . . . 25 - 7.2.3. Trigger Status Resources . . . . . . . . . . . . . . . 27 - 7.2.4. Polling for Change . . . . . . . . . . . . . . . . . . 29 - 7.2.5. Cancelling or Removing a Trigger . . . . . . . . . . . 32 - 7.2.6. Error Reporting . . . . . . . . . . . . . . . . . . . 34 - 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35 - 9. Security Considerations . . . . . . . . . . . . . . . . . . . 35 - 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 35 - 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 35 - 11.1. Normative References . . . . . . . . . . . . . . . . . . . 35 - 11.2. Informative References . . . . . . . . . . . . . . . . . . 35 - Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 36 + 7.2.3. Trigger Status Resources . . . . . . . . . . . . . . . 26 + 7.2.4. Polling for Change . . . . . . . . . . . . . . . . . . 28 + 7.2.5. Cancelling or Removing a Trigger . . . . . . . . . . . 31 + 7.2.6. Error Reporting . . . . . . . . . . . . . . . . . . . 33 + 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 34 + 9. Security Considerations . . . . . . . . . . . . . . . . . . . 34 + 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 34 + 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 34 + 11.1. Normative References . . . . . . . . . . . . . . . . . . . 34 + 11.2. Informative References . . . . . . . . . . . . . . . . . . 34 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 35 1. Introduction [RFC6707] introduces the Problem scope for CDN Interconnection (CDNI) and lists the four categories of interfaces that may be used to compose a CDNI solution (Control, Metadata, Request Routing, Logging). [I-D.ietf-cdni-framework] expands on the information provided in [RFC6707] and describes each of the interfaces and the relationships between them in more detail. - This draft concentrates on the "High" and "Medium" priority - requirements for the CDNI Control Interface identified in section 4 - of [I-D.ietf-cdni-requirements], reproduced here for convenience: - - CNTL-1 [HIGH] The CDNI Control interface shall allow the Upstream - CDN to request that the Downstream CDN (and, if cascaded CDNs are - supported by the solution, that the potential cascaded Downstream - CDNs) perform the following actions on an object or object set: + This document describes the "CI/T" interface, "CDNI Control interface + / Triggers". It does not consider those parts of the control + interface that relate to configuration, bootstrapping or + authentication of CDN Interconnect interfaces. Requirements for CI/T + are the "High" and "Medium" priority requirements for the CI + identified in section 4 of [I-D.ietf-cdni-requirements], reproduced + here for convenience: - * Mark an object or set of objects and/or its CDNI metadata as - "stale" and revalidate them before they are delivered again - * Delete an object or set of objects and/or its CDNI metadata - from the CDN surrogates and any storage. Only the object(s) - and CDNI metadata that pertain to the requesting Upstream CDN - are allowed to be purged. - CNTL-2 [HIGH] The CDNI Control interface shall allow the - Downstream CDN to report on the completion of these actions (by - itself, and if cascaded CDNs are supported by the solution, by - potential cascaded Downstream CDNs), in a manner appropriate for + CI-1 [HIGH] The CDNI Control interface shall allow the Upstream + CDN to request that the Downstream CDN, including downstream + cascaded CDNs, delete an object or set of objects and/or its CDNI + metadata from the CDN surrogates and any storage. Only the + object(s) and CDNI metadata that pertain to the requesting + Upstream CDN are allowed to be purged. + CI-2 [MED] The CDNI Control interface should allow for multiple + content items identified by a Content Collection ID to be purged + using a single Content Purge action. + CI-3 [MED] The CDNI Control interface should allow the Upstream + CDN to request that the Downstream CDN, including downstream + cascaded CDNs, mark an object or set of objects and/or its CDNI + metadata as "stale" and revalidate them before they are delivered + again. + CI-4 [HIGH] The CDNI Control interface shall allow the Downstream + CDN to report on the completion of these actions (by itself, and + including downstream cascaded CDNs, in a manner appropriate for the action (e.g. synchronously or asynchronously). The confirmation receipt should include a success or failure - indication. The failure indication is used if the Downstream CDN - cannot delete the content in its storage. - CNTL-3 [HIGH] The CDNI Control interface shall support initiation + indication. The failure indication along with the reason are used + if the Downstream CDN cannot delete the content in its storage. + CI-5 [MED] The CDNI Control interface should support initiation and control by the Upstream CDN of pre-positioned CDNI metadata acquisition by the Downstream CDN. - CNTL-4 [MED] The CDNI Control interface should support initiation + CI-6 [MED] The CDNI Control interface should support initiation and control by the Upstream CDN of pre-positioned content acquisition by the Downstream CDN. - CNTL-12 [MED] The CDNI Control interface should allow for multiple - content items identified by a Content Collection ID to be purged - using a single Content Purge action. - - This document describes the CI/T interface, Control Interface / - Triggers. It does not consider those parts of the control interface - that relate to configuration, bootstrapping or authentication of CDN - Interconnect interfaces. - o Section 2 outlines the model for the Trigger Interface at a high + o Section 2 outlines the model for the CI/T Interface at a high level. o Section 3 describes collections of Trigger Resources. o Section 4 defines the RESTful web service provided by dCDN. o Section 5 lists properties of Trigger Requests and Status Resources. o Section 6 defines a JSON encoding for Trigger Requests and Status Resources. o Section 7 contains example messages. 1.1. Terminology @@ -334,33 +332,32 @@ o Failed - Trigger Status Resources representing activity that failed. 4. CDNI Trigger interface This section describes an interface to enable an upstream CDN to trigger defined activities in a downstream CDN. The interface is intended to be independent of the set of activities defined now, or that may be defined in future. - The CI/T interface is built on the principles of RESTful web - services. Requests are made over HTTP, and the HTTP Method defines - the operation the request would like to perform. The corresponding - HTTP Response returns the status of the operation in the HTTP Status - Code and returns the current representation of the resource (if - appropriate) in the Response Body. HTTP Responses from servers - implementing the CI/T interface that contain a response body SHOULD - include an ETag to enable validation of cached versions of returned - resources. + CI/T is built on the principles of RESTful web services. Requests + are made over HTTP, and the HTTP Method defines the operation the + request would like to perform. The corresponding HTTP Response + returns the status of the operation in the HTTP Status Code and + returns the current representation of the resource (if appropriate) + in the Response Body. HTTP Responses from servers implementing CI/T + that contain a response body SHOULD include an ETag to enable + validation of cached versions of returned resources. - Servers implementing the CI/T interface MUST support the HTTP GET, - HEAD, POST and DELETE methods. The only representation specified in - this document is JSON. + Servers implementing CI/T MUST support the HTTP GET, HEAD, POST and + DELETE methods. The only representation specified in this document + is JSON. Trigger Requests are POSTed to a URI in dCDN. If the trigger is accepted by dCDN, it creates a Trigger Status Resource and returns its URI to dCDN in an HTTP 201 response. The triggered activity can then be monitored by uCDN using that resource and the collections described in Section 3. The URI that Trigger Requests should be POSTed to needs to be either discovered by or configured in the upstream CDN. Performing a GET on that URI retrieves a collection of the URIs of all Trigger Status @@ -606,26 +603,21 @@ To refer to content in dCDN, uCDN must present URLs in the same form clients will use to access content in that dCDN, after transformation to remove any surrogate-specific parts of a 302-redirect URL form. By definition, it is always possible to locate content based on URLs in this form. If content URLs are transformed by an intermediate CDN in a cascade, that intermediate CDN must transform URLs in trigger requests it passes to its dCDN. - [Editor's note: Design for CDNI Metadata transformation, including - discussion of URL transformation, is being undertaken as part of the - work on the metadata interface. The intention is to align with that - document or make reference to it when it's complete.] - - When processing trigger requests, CDNs may ignore the URL scheme + When processing trigger requests, CDNs SHOULD ignore the URL scheme (http or https) in comparing URLs. For example, for an invalidate or purge trigger, content may invalidated or purged regardless of the protocol clients use to request it. 5.2. Properties of Trigger Status Resources Property: trigger Description: The properties of trigger request that created this record. Type: TriggerRequest @@ -888,45 +881,41 @@ document. o title - An optional title for the Relationship/link. Note: The above structure follows the pattern of atom:link in [RFC4287]. Example Relationship to a CI/T Resource within a CI/T Collection: { "href": "http://triggers.cdni.example.com/trigger/12345", "rel": "Trigger", - "type": "application/vnd.cdni.control.trigger.status+json" + "type": "application/cdni.ci.TriggerStatus+json" } The format of relationship values is expected to align with other CDNI interfaces. For example, rather than use simple names (like "Trigger" in this case), there may be a namespace that allows well- known and proprietary values to co-exist. 6.2. MIME Media Types - Table 1 lists the MIME Media Type for each trigger object (resource) - that is retrievable through the CI/T interface. - - Note: A prefix of "vnd.cdni" is used, however it is expected that a - more appropriate prefix will be used if the CDNI WG accepts this - document. + Table 1 lists the MIME Media Type for the trigger request, and each + trigger object (resource) that is retrievable through the CI/T + interface. - +-------------------+-----------------------------------------------+ + +-------------------+--------------------------------------------+ | Data Object | MIME Media Type | - +-------------------+-----------------------------------------------+ - | TriggerStatus | application/ | - | | vnd.cdni.control.trigger.status+json | - | TriggerCollection | application/ | - | | vnd.cdni.control.trigger.collection+json | - +-------------------+-----------------------------------------------+ + +-------------------+--------------------------------------------+ + | TriggerRequest | application/cdni.ci.TriggerRequest+json | + | TriggerStatus | application/cdni.ci.TriggerStatus+json | + | TriggerCollection | application/cdni.ci.TriggerCollection+json | + +-------------------+--------------------------------------------+ Table 1: MIME Media Types for CDNI Trigger resources 7. Examples The following sections provide examples of different CI/T objects encoded as JSON. No authentication is shown in the following illustrative examples, it is anticipated that authentication mechanisms will be aligned with @@ -956,21 +945,21 @@ collection. Note that "metadata.patterns" and "content.patterns" are not allowed in a preposition trigger request. REQUEST: POST /triggers HTTP/1.1 User-Agent: example-user-agent/0.1 Host: dcdn.example.com Accept: */* - Content-Type: application/vnd.cdni.control.trigger.request+json + Content-Type: application/cdni.ci.TriggerRequest+json Content-Length: 315 { "trigger" : { "type": "preposition", "metadata.urls" : [ "http://metadata.example.com/a/b/c" ], "content.urls" : [ "http://www.example.com/a/b/c/1", "http://www.example.com/a/b/c/2", @@ -969,30 +958,31 @@ { "trigger" : { "type": "preposition", "metadata.urls" : [ "http://metadata.example.com/a/b/c" ], "content.urls" : [ "http://www.example.com/a/b/c/1", "http://www.example.com/a/b/c/2", "http://www.example.com/a/b/c/3", "http://www.example.com/a/b/c/4" + ] } } RESPONSE: HTTP/1.1 201 Created Date: Sat, 23 Feb 2013 14:20:06 GMT Content-Length: 472 - Content-Type: application/vnd.cdni.control.trigger.status+json + Content-Type: application/cdni.ci.TriggerStatus+json Location: http://dcdn.example.com/triggers/0 Server: example-server/0.1 { "ctime": 1361629206, "etime": 1361629214, "mtime": 1361629206, "status": "pending", "trigger": { "content.urls": [ @@ -1015,23 +1005,22 @@ content at "http://www.example.com/a/index.html", as well as any metadata and content whose URLs are prefixed by "http://metadata.example.com/a/b/" and "http://www.example.com/a/b/" respectively, using case-insensitive matching. REQUEST: POST /triggers HTTP/1.1 User-Agent: example-user-agent/0.1 Host: dcdn.example.com Accept: */* - Content-Type: application/vnd.cdni.control.trigger.request+json + Content-Type: application/cdni.ci.TriggerRequest+json Content-Length: 352 - { "trigger" : { "type": "invalidate", "metadata.patterns" : [ { "pattern" : "http://metadata.example.com/a/b/*" } ], "content.urls" : [ "http://www.example.com/a/index.html" ], "content.patterns" : [ @@ -1040,21 +1029,21 @@ } ] } } RESPONSE: HTTP/1.1 201 Created Date: Sat, 23 Feb 2013 14:20:08 GMT Content-Length: 551 - Content-Type: application/vnd.cdni.control.trigger.status+json + Content-Type: application/cdni.ci.TriggerStatus+json Location: http://dcdn.example.com/triggers/1 Server: example-server/0.1 { "ctime": 1361629208, "etime": 1361629216, "mtime": 1361629208, "status": "pending", "trigger": { "content.patterns": [ @@ -1096,33 +1085,33 @@ RESPONSE: HTTP/1.1 200 OK Content-Length: 422 Expires: Sat, 23 Feb 2013 14:21:08 GMT Server: example-server/0.1 ETag: "1484827667515030767" Cache-Control: max-age=60 Date: Sat, 23 Feb 2013 14:20:08 GMT - Content-Type: application/vnd.cdni.control.trigger.collection+json + Content-Type: application/cdni.ci.TriggerCollection+json { "links": [ { "href": "http://dcdn.example.com/triggers/0", "rel": "Trigger", - "type": "application/vnd.cdni.control.trigger.status+json" + "type": "application/cdni.ci.TriggerStatus+json" }, { "href": "http://dcdn.example.com/triggers/1", "rel": "Trigger", - "type": "application/vnd.cdni.control.trigger.status+json" + "type": "application/cdni.ci.TriggerStatus+json" } ], "staleresourcetime": 86400 } 7.2.2. Filtered Collections of Triggers The filtered collections are also available to uCDN. Before dCDN starts processing the two triggers shown above, both will appear in the collection of Pending Triggers, for example: @@ -1136,33 +1124,33 @@ RESPONSE: HTTP/1.1 200 OK Content-Length: 422 Expires: Sat, 23 Feb 2013 14:21:09 GMT Server: example-server/0.1 ETag: "-970375801048973013" Cache-Control: max-age=60 Date: Sat, 23 Feb 2013 14:20:09 GMT - Content-Type: application/vnd.cdni.control.trigger.collection+json + Content-Type: application/cdni.ci.TriggerCollection+json { "links": [ { "href": "http://dcdn.example.com/triggers/0", "rel": "Trigger", - "type": "application/vnd.cdni.control.trigger.status+json" + "type": "application/cdni.ci.TriggerStatus+json" }, { "href": "http://dcdn.example.com/triggers/1", "rel": "Trigger", - "type": "application/vnd.cdni.control.trigger.status+json" + "type": "application/cdni.ci.TriggerStatus+json" } ], "staleresourcetime": 86400 } At this point, if no other triggers had been created, the other filtered views of the triggers would be empty. For example: REQUEST: @@ -1173,21 +1161,21 @@ RESPONSE: HTTP/1.1 200 OK Content-Length: 53 Expires: Sat, 23 Feb 2013 14:21:09 GMT Server: example-server/0.1 ETag: "-654105208640281650" Cache-Control: max-age=60 Date: Sat, 23 Feb 2013 14:20:09 GMT - Content-Type: application/vnd.cdni.control.trigger.collection+json + Content-Type: application/cdni.ci.TriggerCollection+json { "links": [], "staleresourcetime": 86400 } 7.2.3. Trigger Status Resources The Trigger Status Resources can also be examined for detail about individual triggers. For example, for the "preposition" and @@ -1202,21 +1190,21 @@ RESPONSE: HTTP/1.1 200 OK Content-Length: 472 Expires: Sat, 23 Feb 2013 14:21:08 GMT Server: example-server/0.1 ETag: "-7651038857765989381" Cache-Control: max-age=60 Date: Sat, 23 Feb 2013 14:20:08 GMT - Content-Type: application/vnd.cdni.control.trigger.status+json + Content-Type: application/cdni.ci.TriggerStatus+json { "ctime": 1361629206, "etime": 1361629214, "mtime": 1361629206, "status": "pending", "trigger": { "content.urls": [ "http://www.example.com/a/b/c/1", "http://www.example.com/a/b/c/2", @@ -1239,21 +1227,21 @@ RESPONSE: HTTP/1.1 200 OK Content-Length: 551 Expires: Sat, 23 Feb 2013 14:21:09 GMT Server: example-server/0.1 ETag: "-1103964172288811711" Cache-Control: max-age=60 Date: Sat, 23 Feb 2013 14:20:09 GMT - Content-Type: application/vnd.cdni.control.trigger.status+json + Content-Type: application/cdni.ci.TriggerStatus+json { "ctime": 1361629208, "etime": 1361629216, "mtime": 1361629208, "status": "pending", "trigger": { "content.patterns": [ { "case-sensitive": true, @@ -1287,39 +1275,39 @@ RESPONSE: HTTP/1.1 304 Not Modified Content-Length: 0 Expires: Sat, 23 Feb 2013 14:21:09 GMT Server: example-server/0.1 ETag: "-970375801048973013" Cache-Control: max-age=60 Date: Sat, 23 Feb 2013 14:20:09 GMT - Content-Type: application/vnd.cdni.control.trigger.collection+json + Content-Type: application/cdni.ci.TriggerCollection+json REQUEST: GET /triggers/0 HTTP/1.1 User-Agent: example-user-agent/0.1 Host: dcdn.example.com Accept: */* If-None-Match: "-7651038857765989381" RESPONSE: HTTP/1.1 304 Not Modified Content-Length: 0 Expires: Sat, 23 Feb 2013 14:21:08 GMT Server: example-server/0.1 ETag: "-7651038857765989381" Cache-Control: max-age=60 Date: Sat, 23 Feb 2013 14:20:08 GMT - Content-Type: application/vnd.cdni.control.trigger.status+json + Content-Type: application/cdni.ci.TriggerStatus+json When the triggered activity is complete, the contents of the filtered collections will be updated, along with their Entity Tags. For example, when the two example triggers are complete, the collections of pending and complete triggers may look like: REQUEST: GET /triggers/pending HTTP/1.1 User-Agent: example-user-agent/0.1 @@ -1329,21 +1317,21 @@ RESPONSE: HTTP/1.1 200 OK Content-Length: 53 Expires: Sat, 23 Feb 2013 14:21:13 GMT Server: example-server/0.1 ETag: "-7056231826368088123" Cache-Control: max-age=60 Date: Sat, 23 Feb 2013 14:20:13 GMT - Content-Type: application/vnd.cdni.control.trigger.collection+json + Content-Type: application/cdni.ci.TriggerCollection+json { "links": [], "staleresourcetime": 86400 } REQUEST: GET /triggers/complete HTTP/1.1 User-Agent: example-user-agent/0.1 @@ -1352,33 +1340,33 @@ RESPONSE: HTTP/1.1 200 OK Content-Length: 422 Expires: Sat, 23 Feb 2013 14:21:20 GMT Server: example-server/0.1 ETag: "2013095476705515794" Cache-Control: max-age=60 Date: Sat, 23 Feb 2013 14:20:20 GMT - Content-Type: application/vnd.cdni.control.trigger.collection+json + Content-Type: application/cdni.ci.TriggerCollection+json { "links": [ { "href": "http://dcdn.example.com/triggers/0", "rel": "Trigger", - "type": "application/vnd.cdni.control.trigger.status+json" + "type": "application/cdni.ci.TriggerStatus+json" }, { "href": "http://dcdn.example.com/triggers/1", "rel": "Trigger", - "type": "application/vnd.cdni.control.trigger.status+json" + "type": "application/cdni.ci.TriggerStatus+json" } ], "staleresourcetime": 86400 } 7.2.5. Cancelling or Removing a Trigger To request dCDN to cancel a Trigger, uCDN may delete the Trigger Resource. It may also delete completed and failed triggers to reduce the size of the collections. For example, to remove the @@ -1410,28 +1398,28 @@ RESPONSE: HTTP/1.1 200 OK Content-Length: 239 Expires: Sat, 23 Feb 2013 14:21:20 GMT Server: example-server/0.1 ETag: "4257416552489354137" Cache-Control: max-age=60 Date: Sat, 23 Feb 2013 14:20:20 GMT - Content-Type: application/vnd.cdni.control.trigger.collection+json + Content-Type: application/cdni.ci.TriggerCollection+json { "links": [ { "href": "http://dcdn.example.com/triggers/1", "rel": "Trigger", - "type": "application/vnd.cdni.control.trigger.status+json" + "type": "application/cdni.ci.TriggerStatus+json" } ], "staleresourcetime": 86400 } 7.2.6. Error Reporting In this example uCDN has requested prepositioning of "http://newsite.example.com/index.html", but dCDN was unable to locate metadata for that site: @@ -1444,21 +1432,21 @@ RESPONSE: HTTP/1.1 200 OK Content-Length: 505 Expires: Sat, 23 Feb 2013 14:21:28 GMT Server: example-server/0.1 ETag: "2621489144226897896" Cache-Control: max-age=60 Date: Sat, 23 Feb 2013 14:20:28 GMT - Content-Type: application/vnd.cdni.control.trigger.status+json + Content-Type: application/cdni.ci.TriggerStatus+json { "ctime": 1361629220, "errors": [ { "content.urls": [ "http://newsite.example.com/index.html" ], "description": "No HostIndex entry found for newsite.example.com", @@ -1508,34 +1496,33 @@ Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, January 2005. 11.2. Informative References [I-D.ietf-cdni-framework] Peterson, L. and B. Davie, "Framework for CDN - Interconnection", draft-ietf-cdni-framework-03 (work in - progress), February 2013. + Interconnection", draft-ietf-cdni-framework-05 (work in + progress), September 2013. [I-D.ietf-cdni-metadata] Niven-Jenkins, B., Murray, R., Watson, G., Caulfield, M., Leung, K., and K. Ma, "CDN Interconnect Metadata", - draft-ietf-cdni-metadata-01 (work in progress), - February 2013. + draft-ietf-cdni-metadata-02 (work in progress), July 2013. [I-D.ietf-cdni-requirements] Leung, K. and Y. Lee, "Content Distribution Network Interconnection (CDNI) Requirements", - draft-ietf-cdni-requirements-05 (work in progress), - February 2013. + draft-ietf-cdni-requirements-10 (work in progress), + September 2013. [RFC4287] Nottingham, M., Ed. and R. Sayre, Ed., "The Atom Syndication Format", RFC 4287, December 2005. [RFC6707] Niven-Jenkins, B., Le Faucheur, F., and N. Bitar, "Content Distribution Network Interconnection (CDNI) Problem Statement", RFC 6707, September 2012. [XML-BASE] Marsh, J., Ed. and R. Tobin, Ed., "XML Base (Second