| .. | 
 | .. | 
 | .. 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-deliveryservices-request: | 
 |  | 
 | **************************** | 
 | ``deliveryservices/request`` | 
 | **************************** | 
 |  | 
 | .. seealso:: :ref:`ds_requests` | 
 |  | 
 | ``POST`` | 
 | ======== | 
 | Allows a user to submit Delivery Service Requests. | 
 |  | 
 | :Auth. Required: Yes | 
 | :Roles Required: None | 
 | :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` | 
 | 	: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:                      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": "less than 50", | 
 | 		"rateLimitingTPS": "no more than 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." | 
 | 	}]} |