| .. |
| .. |
| .. Licensed under the Apache License, Version 2.0 (the "License"); |
| .. you may not use this file except in compliance with the License. |
| .. You may obtain a copy of the License at |
| .. |
| .. http://www.apache.org/licenses/LICENSE-2.0 |
| .. |
| .. Unless required by applicable law or agreed to in writing, software |
| .. distributed under the License is distributed on an "AS IS" BASIS, |
| .. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| .. See the License for the specific language governing permissions and |
| .. limitations under the License. |
| .. |
| |
| .. _to-api-v3-deliveryservices-request: |
| |
| **************************** |
| ``deliveryservices/request`` |
| **************************** |
| |
| .. note:: This route does NOT do the same thing as :ref:`POST deliveryservice_requests<to-api-v3-deliveryservice-requests-post>`. |
| |
| .. deprecated:: ATCv6 |
| This endpoint does not appear in Traffic Ops API version 4.0 - released with Apache Traffic Control version 6.0 - or later. |
| |
| ``POST`` |
| ======== |
| Submits an emailed requesting that a :term:`Delivery Service` be created. |
| |
| :Auth. Required: Yes |
| :Roles Required: "admin", "Federation", "operations", "Portal", or "Steering" |
| :Response Type: ``undefined`` |
| |
| Request Structure |
| ----------------- |
| :details: An object describing the actual parameters for the Delivery Service request |
| |
| :customer: Name of the customer associated with the :term:`Delivery Service` - must only contain alphanumeric characters and the characters :kbd:`@`, :kbd:`!`, :kbd:`#`, :kbd:`$`, :kbd:`%`, :kbd:`^`, :kbd:`&`, :kbd:`*`, :kbd:`(`, :kbd:`)`, :kbd:`[`, :kbd:`]`, :kbd:`.`, :kbd:`\ `, and :kbd:`-` |
| |
| .. versionchanged:: ATCv6 |
| Prior to ATC version 6, this field had no restrictions. |
| |
| :deepCachingType: An optional string describing when to do Deep Caching for this :term:`Delivery Service` - one of: |
| |
| NEVER |
| Never use deep caching (default) |
| ALWAYS |
| Always use deep caching |
| |
| :deliveryProtocol: The protocol used to retrieve content from the CDN - one of: |
| |
| * http |
| * https |
| * http/https |
| |
| :hasNegativeCachingCustomization: ``true`` if any customization is required for negative caching, ``false`` otherwise |
| :hasOriginACLWhitelist: ``true`` if access to the origin is restricted using an Access Control List (ACL or "whitelist") of IP addresses |
| :hasOriginDynamicRemap: If ``true``, this :term:`Delivery Service` can dynamically map to multiple origin URLs |
| :hasSignedURLs: If ``true``, this :term:`Delivery Service`'s URLs are signed |
| :headerRewriteEdge: An optional string containing a header re-write rule to be used at the Edge tier |
| :headerRewriteMid: An optional string containing a header re-write rule to be used at the Mid tier |
| :headerRewriteRedirectRouter: An optional string containing a header re-write rule to be used by the Traffic Router |
| :maxLibrarySizeEstimate: A special string that describes the estimated size of the sum total of content available through this :term:`Delivery Service` |
| :negativeCachingCustomizationNote: A note remarking on the use, customization, or complications associated with negative caching for this :term:`Delivery Service` |
| :notes: An optional string containing additional instructions or notes regarding the Request |
| :originHeaders: An optional, comma-separated string of header values that must be passed to requests to the :term:`Delivery Service`'s origin |
| :originTestFile: A URL path to a test file available on the :term:`Delivery Service`'s origin server |
| :originURL: The URL of the :term:`Delivery Service`'s origin server |
| :otherOriginSecurity: An optional string describing any and all other origin security measures that need to be considered for access to the :term:`Delivery Service`'s origin |
| :overflowService: An optional string containing the IP address or URL of an overflow point (used if rate limits are met or exceeded |
| :peakBPSEstimate: A special string describing the estimated peak data transfer rate of the :term:`Delivery Service` in Bytes Per Second (BPS) |
| :peakTPSEstimate: A special string describing the estimated peak transaction rate of the :term:`Delivery Service` in Transactions Per Second (TPS) |
| :queryStringHandling: A special string describing how the :term:`Delivery Service` should treat URLs containing query parameters |
| :rangeRequestHandling: A special string describing how the :term:`Delivery Service` should handle range requests |
| :rateLimitingGBPS: An optional field which, if defined, should contain the maximum allowed data transfer rate for the :term:`Delivery Service` in GigaBytes Per Second (GBPS) |
| :rateLimitingTPS: An optional field which, if defined, should contain the maximum allowed transaction rate for the :term:`Delivery Service` in Transactions Per Second (TPS) |
| :routingName: An optional field which, if defined, should contain the routing name for the :term:`Delivery Service`, e.g. ``SomeRoutingName.DeliveryService_xml_id.CDNName.com`` |
| :routingType: The :term:`Delivery Service`'s routing type, should be one of: |
| |
| HTTP |
| The Traffic Router re-directs clients to :term:`cache servers` using the HTTP ``302 REDIRECT`` response code |
| DNS |
| The Traffic Router responds to requests for name resolution of the :term:`Delivery Service`'s routing name with IP addresses of :term:`cache servers` |
| STEERING |
| This :term:`Delivery Service` routes clients to other :term:`Delivery Services` - which will in turn (generally) route them to clients |
| ANY_MAP |
| Some kind of undocumented black magic is used to get clients to... content, probably? |
| |
| :serviceAliases: An optional array of aliases for this :term:`Delivery Service` |
| :serviceDesc: A description of the :term:`Delivery Service` |
| |
| :emailTo: The email to which the Delivery Service request will be sent |
| |
| .. code-block:: json |
| :caption: Request Example |
| |
| { "emailTo": "foo@bar.com", |
| "details": { |
| "customer": "XYZ Corporation", |
| "contentType": "static", |
| "deepCachingType": "NEVER", |
| "deliveryProtocol": "http", |
| "routingType": "http", |
| "routingName": "demo1", |
| "serviceDesc": "service description goes here", |
| "peakBPSEstimate": "less-than-5-Gbps", |
| "peakTPSEstimate": "less-than-1000-TPS", |
| "maxLibrarySizeEstimate": "less-than-200-GB", |
| "originURL": "http://myorigin.com", |
| "hasOriginDynamicRemap": false, |
| "originTestFile": "http://origin.infra.ciab.test", |
| "hasOriginACLWhitelist": false, |
| "originHeaders": "", |
| "otherOriginSecurity": "", |
| "queryStringHandling": "ignore-in-cache-key-and-pass-up", |
| "rangeRequestHandling": "range-requests-not-used", |
| "hasSignedURLs": false, |
| "hasNegativeCachingCustomization": false, |
| "negativeCachingCustomizationNote": "", |
| "serviceAliases": [], |
| "rateLimitingGBPS": 50, |
| "rateLimitingTPS": 5000, |
| "overflowService": null, |
| "headerRewriteEdge": "", |
| "headerRewriteMid": "", |
| "headerRewriteRedirectRouter": "", |
| "notes": "" |
| }} |
| |
| Response Structure |
| ------------------ |
| .. code-block:: json |
| :caption: Response Example |
| |
| { "alerts": [{ |
| "level": "success", |
| "text": "Delivery Service request sent to foo@bar.com." |
| }]} |