| .. |
| .. |
| .. 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-v2-deliveryservices-id: |
| |
| *************************** |
| ``deliveryservices/{{ID}}`` |
| *************************** |
| |
| ``PUT`` |
| ======= |
| Allows users to edit an existing :term:`Delivery Service`. |
| |
| :Auth. Required: Yes |
| :Roles Required: "admin" or "operations"\ [#tenancy]_ |
| :Response Type: **NOT PRESENT** - Despite returning a ``200 OK`` response (rather than e.g. a ``204 NO CONTENT`` response), this endpoint does **not** return a representation of the modified resource in its payload, and instead returns nothing - not even a success message. |
| |
| Request Structure |
| ----------------- |
| :active: A boolean that defines :ref:`ds-active`. |
| :anonymousBlockingEnabled: A boolean that defines :ref:`ds-anonymous-blocking` |
| :cacheurl: A :ref:`ds-cacheurl` |
| |
| .. deprecated:: ATCv3.0 |
| This field has been deprecated in Traffic Control 3.x and is subject to removal in Traffic Control 4.x or later |
| |
| :ccrDnsTtl: The :ref:`ds-dns-ttl` - named "ccrDnsTtl" for legacy reasons |
| :cdnId: The integral, unique identifier of the :ref:`ds-cdn` to which the :term:`Delivery Service` belongs |
| :checkPath: A :ref:`ds-check-path` |
| :consistentHashRegex: A :ref:`ds-consistent-hashing-regex` |
| :consistentHashQueryParams: An array of :ref:`ds-consistent-hashing-qparams` |
| :deepCachingType: The :ref:`ds-deep-caching` setting for this :term:`Delivery Service` |
| :displayName: The :ref:`ds-display-name` |
| :dnsBypassCname: A :ref:`ds-dns-bypass-cname` |
| :dnsBypassIp: A :ref:`ds-dns-bypass-ip` |
| :dnsBypassIp6: A :ref:`ds-dns-bypass-ipv6` |
| :dnsBypassTtl: The :ref:`ds-dns-bypass-ttl` |
| :dscp: A :ref:`ds-dscp` to be used within the :term:`Delivery Service` |
| :ecsEnabled: A boolean that defines the :ref:`ds-ecs` setting on this :term:`Delivery Service` |
| :edgeHeaderRewrite: A set of :ref:`ds-edge-header-rw-rules` |
| :fqPacingRate: The :ref:`ds-fqpr` |
| :geoLimit: An integer that defines the :ref:`ds-geo-limit` |
| :geoLimitCountries: A string containing a comma-separated list defining the :ref:`ds-geo-limit-countries`\ [#geolimit]_ |
| :geoLimitRedirectUrl: A :ref:`ds-geo-limit-redirect-url`\ [#geolimit]_ |
| :geoProvider: The :ref:`ds-geo-provider` |
| :globalMaxMbps: The :ref:`ds-global-max-mbps` |
| :globalMaxTps: The :ref:`ds-global-max-tps` |
| :httpBypassFqdn: A :ref:`ds-http-bypass-fqdn` |
| :infoUrl: An :ref:`ds-info-url` |
| :initialDispersion: The :ref:`ds-initial-dispersion` |
| :ipv6RoutingEnabled: A boolean that defines the :ref:`ds-ipv6-routing` setting on this :term:`Delivery Service` |
| :logsEnabled: A boolean that defines the :ref:`ds-logs-enabled` setting on this :term:`Delivery Service` |
| :longDesc: The :ref:`ds-longdesc` of this :term:`Delivery Service` |
| :longDesc1: An optional field containing the 2nd long description of this :term:`Delivery Service` |
| :longDesc2: An optional field containing the 3rd long description of this :term:`Delivery Service` |
| :maxDnsAnswers: The :ref:`ds-max-dns-answers` allowed for this :term:`Delivery Service` |
| :maxOriginConnections: The :ref:`ds-max-origin-connections` |
| :midHeaderRewrite: A set of :ref:`ds-mid-header-rw-rules` |
| :missLat: The :ref:`ds-geo-miss-default-latitude` used by this :term:`Delivery Service` |
| :missLong: The :ref:`ds-geo-miss-default-longitude` used by this :term:`Delivery Service` |
| :multiSiteOrigin: A boolean that defines the use of :ref:`ds-multi-site-origin` by this :term:`Delivery Service` |
| :orgServerFqdn: The :ref:`ds-origin-url` |
| :originShield: A :ref:`ds-origin-shield` string |
| :profileId: An optional :ref:`profile-id` of the :ref:`ds-profile` with which this :term:`Delivery Service` will be associated |
| :protocol: An integral, unique identifier that corresponds to the :ref:`ds-protocol` used by this :term:`Delivery Service` |
| :qstringIgnore: An integral, unique identifier that corresponds to the :ref:`ds-qstring-handling` setting on this :term:`Delivery Service` |
| :rangeRequestHandling: An integral, unique identifier that corresponds to the :ref:`ds-range-request-handling` setting on this :term:`Delivery Service` |
| :regexRemap: A :ref:`ds-regex-remap` |
| :regionalGeoBlocking: A boolean defining the :ref:`ds-regionalgeo` setting on this :term:`Delivery Service` |
| :remapText: :ref:`ds-raw-remap` |
| :routingName: The :ref:`ds-routing-name` of this :term:`Delivery Service` |
| :signed: ``true`` if and only if ``signingAlgorithm`` is not ``null``, ``false`` otherwise |
| :signingAlgorithm: Either a :ref:`ds-signing-algorithm` or ``null`` to indicate URL/URI signing is not implemented on this :term:`Delivery Service` |
| :rangeSliceBlockSize: An integer that defines the byte block size for the ATS Slice Plugin. It can only and must be set if ``rangeRequestHandling`` is set to 3. It can only be between (inclusive) 262144 (256KB) - 33554432 (32MB). |
| :sslKeyVersion: This integer indicates the :ref:`ds-ssl-key-version` |
| :tenantId: The integral, unique identifier of the :ref:`ds-tenant` who owns this :term:`Delivery Service` |
| :trRequestHeaders: If defined, this defines the :ref:`ds-tr-req-headers` used by Traffic Router for this :term:`Delivery Service` |
| :trResponseHeaders: If defined, this defines the :ref:`ds-tr-resp-headers` used by Traffic Router for this :term:`Delivery Service` |
| :typeId: The integral, unique identifier of the :ref:`ds-types` of this :term:`Delivery Service` |
| :xmlId: This :term:`Delivery Service`'s :ref:`ds-xmlid` |
| |
| .. note:: While this field **must** be present, it is **not** allowed to change; this must be the same as the ``xml_id`` the :term:`Delivery Service` already has. This should almost never be different from the :term:`Delivery Service`'s ``displayName``. |
| |
| |
| .. code-block:: http |
| :caption: Request Example |
| |
| PUT /api/2.0/deliveryservices/1 HTTP/1.1 |
| Host: trafficops.infra.ciab.test |
| User-Agent: curl/7.47.0 |
| Accept: */* |
| Cookie: mojolicious=... |
| Content-Length: 761 |
| Content-Type: application/json |
| |
| { |
| "active": true, |
| "anonymousBlockingEnabled": false, |
| "cdnId": 2, |
| "cdnName": "CDN-in-a-Box", |
| "deepCachingType": "NEVER", |
| "displayName": "demo", |
| "dscp": 0, |
| "ecsEnabled": true, |
| "geoLimit": 0, |
| "geoProvider": 0, |
| "initialDispersion": 1, |
| "ipv6RoutingEnabled": false, |
| "lastUpdated": "2018-11-14 18:21:17+00", |
| "logsEnabled": true, |
| "longDesc": "A Delivery Service created expressly for API documentation examples", |
| "missLat": -1, |
| "missLong": -1, |
| "multiSiteOrigin": false, |
| "orgServerFqdn": "http://origin.infra.ciab.test", |
| "protocol": 0, |
| "qstringIgnore": 0, |
| "rangeRequestHandling": 0, |
| "regionalGeoBlocking": false, |
| "routingName": "video", |
| "signed": false, |
| "tenant": "root", |
| "tenantId": 1, |
| "typeId": 1, |
| "xmlId": "demo1" |
| } |
| |
| |
| Response Structure |
| ------------------ |
| .. code-block:: http |
| :caption: Response Example |
| |
| HTTP/1.1 200 OK |
| Access-Control-Allow-Credentials: true |
| Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Set-Cookie, Cookie |
| Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE |
| Access-Control-Allow-Origin: * |
| Set-Cookie: mojolicious=...; Path=/; Expires=Mon, 18 Nov 2019 17:40:54 GMT; Max-Age=3600; HttpOnly |
| Whole-Content-Sha512: z4PhNX7vuL3xVChQ1m2AB9Yg5AULVxXcg/SpIdNs6c5H0NE8XYXysP+DGNKHfuwvY7kxvUdBeoGlODJ6+SfaPg== |
| X-Server-Name: traffic_ops_golang/ |
| Date: Tue, 20 Nov 2018 14:12:25 GMT |
| Content-Length: 0 |
| Content-Type: text/plain; charset=utf-8 |
| |
| |
| ``DELETE`` |
| ========== |
| Deletes the target :term:`Delivery Service` |
| |
| :Auth. Required: Yes |
| :Roles Required: "admin" or "operations"\ [#tenancy]_ |
| :Response Type: ``undefined`` |
| |
| Request Structure |
| ----------------- |
| .. table:: Request Path Parameters |
| |
| +------+-------------------------------------------------------------------------------+ |
| | Name | Description | |
| +======+===============================================================================+ |
| | ID | The integral, unique identifier of the :term:`Delivery Service` to be deleted | |
| +------+-------------------------------------------------------------------------------+ |
| |
| .. code-block:: http |
| :caption: Request Example |
| |
| DELETE /api/2.0/deliveryservices/2 HTTP/1.1 |
| Host: trafficops.infra.ciab.test |
| User-Agent: curl/7.47.0 |
| Accept: */* |
| Cookie: mojolicious=... |
| |
| |
| Response Structure |
| ------------------ |
| .. code-block:: http |
| :caption: Response Example |
| |
| HTTP/1.1 200 OK |
| Access-Control-Allow-Credentials: true |
| Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Set-Cookie, Cookie |
| Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE |
| Access-Control-Allow-Origin: * |
| Content-Type: application/json |
| Set-Cookie: mojolicious=...; Path=/; Expires=Mon, 18 Nov 2019 17:40:54 GMT; Max-Age=3600; HttpOnly |
| Whole-Content-Sha512: w9NlQpJJEl56r6iYq/fk8o5WfAXeUS5XR9yDHvKUgPO8lYEo8YyftaSF0MPFseeOk60dk6kQo+MLYTDIAhhRxw== |
| X-Server-Name: traffic_ops_golang/ |
| Date: Tue, 20 Nov 2018 14:56:37 GMT |
| Content-Length: 57 |
| |
| { "alerts": [ |
| { |
| "text": "ds was deleted.", |
| "level": "success" |
| } |
| ]} |
| |
| |
| .. [#tenancy] Only those :term:`Delivery Services` assigned to :term:`Tenants` that are the requesting user's :term:`Tenant` or children thereof will appear in the output of a ``GET`` request, and the same constraints are placed on the allowed values of the ``tenantId`` field of a ``PUT`` request to update a new :term:`Delivery Service`. Furthermore, the only :term:`Delivery Services` a user may delete are those assigned to a :term:`Tenant` that is either the same :term:`Tenant` as the user's :term:`Tenant`, or a descendant thereof. |
| .. [#geoLimit] These fields must be defined if and only if ``geoLimit`` is non-zero |