Assign a :term:`Delivery Service Request` to a user.
.. versionadded:: 4.0
Auth. Required: | Yes |
---|---|
Roles Required: | "admin" or "operations" |
Permissions Required: | DS-REQUEST:READ, USER:READ |
Response Type: | Object (string) |
Name | Description |
---|---|
ID | The integral, unique identifier of the :term:`Delivery Service Request` for which assignment is being retrieved |
GET /api/4.1/deliveryservice_requests/1/assign HTTP/1.1
User-Agent: python-requests/2.24.0
Accept-Encoding: gzip, deflate
Accept: */*
Connection: keep-alive
Cookie: mojolicious=...
The response is the username of the user to whom the :term:`Delivery Service Request` is assigned - or null
if it is unassigned.
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-Encoding: gzip
Content-Type: application/json
Set-Cookie: mojolicious=...; Path=/; Expires=Tue, 02 Feb 2021 22:48:48 GMT; Max-Age=3600; HttpOnly
Vary: Accept-Encoding
X-Server-Name: traffic_ops_golang/
Date: Tue, 02 Feb 2021 21:48:48 GMT
Content-Length: 45
{ "response": "admin" }
Auth. Required: | Yes |
---|---|
Roles Required: | "admin" or "operations" |
Permissions Required: | DS-REQUEST:UPDATE, DS-REQUEST:READ, USER:READ |
Response Type: | Object |
Name | Description |
---|---|
ID | The integral, unique identifier of the :term:`Delivery Service Request` being assigned |
assignee: | The username of the user to whom the :term:`Delivery Service Request` is assigned .. versionadded:: 4.0 |
---|---|
assigneeId: | The integral, unique identifier of the user to whom the :term:`Delivery Service Request` is assigned .. versionchanged:: 4.0 Prior to APIv4.0, this was the only property that could be used to change a :term:`Delivery Service Request`'s Assignee - and thus was a required field. It is not required to send both of these; either property is sufficient to determine an :ref:`dsr-assignee`. In most cases, it's easier to use just `assignee`. If both *are* given, then `assigneeId` will take precedence in the event that the two properties do not refer to the same user. Sending a request that sets the assignee to ``null`` un-assigns the :term:`DSR` from any assignees it previously had\ [#implicit-null]_. |
PUT /api/4.1/deliveryservice_requests/1/assign HTTP/1.1
User-Agent: python-requests/2.24.0
Accept-Encoding: gzip, deflate
Accept: */*
Connection: keep-alive
Cookie: mojolicious=...
Content-Length: 20
{"assignee": "admin"}
The response contains a full representation of the newly assigned :term:`Delivery Service Request`.
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-Encoding: gzip
Content-Type: application/json
Set-Cookie: mojolicious=...; Path=/; Expires=Sun, 23 Feb 2020 14:45:51 GMT; Max-Age=3600; HttpOnly
Whole-Content-Sha512: h7uBZHLQtRYbOSOR5AtQQrZ4uMeEWivWNT74fCf6WtLbAMwGpRrMjNmBYKduv48DEnRqG6WVM/4nBu3AkCUqPw==
X-Server-Name: traffic_ops_golang/
Date: Sun, 23 Feb 2020 13:45:51 GMT
Content-Length: 931
{ "alerts": [{
"text": "Changed assignee of 'demo1' Delivery Service Request to 'admin'",
"level": "success"
}],
"response": {
"assignee": "admin",
"author": "admin",
"changeType": "update",
"createdAt": "2020-09-25T06:52:23.758877Z",
"id": 6,
"lastEditedBy": "admin",
"lastUpdated": "2020-09-25T07:01:24.600029Z",
"original": {
"active": true,
"anonymousBlockingEnabled": false,
"cacheurl": null,
"ccrDnsTtl": null,
"cdnId": 2,
"cdnName": "CDN-in-a-Box",
"checkPath": null,
"displayName": "Demo 1",
"dnsBypassCname": null,
"dnsBypassIp": null,
"dnsBypassIp6": null,
"dnsBypassTtl": null,
"dscp": 0,
"edgeHeaderRewrite": null,
"geoLimit": 0,
"geoLimitCountries": null,
"geoLimitRedirectURL": null,
"geoProvider": 0,
"globalMaxMbps": null,
"globalMaxTps": null,
"httpBypassFqdn": null,
"id": 1,
"infoUrl": null,
"initialDispersion": 1,
"ipv6RoutingEnabled": true,
"lastUpdated": "2020-09-25T02:09:54Z",
"logsEnabled": true,
"longDesc": "Apachecon North America 2018",
"matchList": [
{
"type": "HOST_REGEXP",
"setNumber": 0,
"pattern": ".*\\.demo1\\..*"
}
],
"maxDnsAnswers": null,
"midHeaderRewrite": null,
"missLat": 42,
"missLong": -88,
"multiSiteOrigin": false,
"originShield": null,
"orgServerFqdn": "http://origin.infra.ciab.test",
"profileDescription": null,
"profileId": null,
"profileName": null,
"protocol": 2,
"qstringIgnore": 0,
"rangeRequestHandling": 0,
"regexRemap": null,
"regional": false,
"regionalGeoBlocking": false,
"remapText": null,
"requiredCapabilities": [],
"routingName": "video",
"signed": false,
"sslKeyVersion": 1,
"tenantId": 1,
"type": "HTTP",
"typeId": 1,
"xmlId": "demo1",
"exampleURLs": [
"http://video.demo1.mycdn.ciab.test",
"https://video.demo1.mycdn.ciab.test"
],
"deepCachingType": "NEVER",
"fqPacingRate": null,
"signingAlgorithm": null,
"tenant": "root",
"trResponseHeaders": null,
"trRequestHeaders": null,
"consistentHashRegex": null,
"consistentHashQueryParams": [
"abc",
"pdq",
"xxx",
"zyx"
],
"maxOriginConnections": 0,
"ecsEnabled": false,
"rangeSliceBlockSize": null,
"topology": "demo1-top",
"firstHeaderRewrite": null,
"innerHeaderRewrite": null,
"lastHeaderRewrite": null,
"serviceCategory": null,
"tlsVersions": null
},
"requested": {
"active": true,
"anonymousBlockingEnabled": false,
"cacheurl": null,
"ccrDnsTtl": 30,
"cdnId": 2,
"cdnName": null,
"checkPath": null,
"displayName": "Demo 1 but modified by a DSR",
"dnsBypassCname": null,
"dnsBypassIp": null,
"dnsBypassIp6": null,
"dnsBypassTtl": null,
"dscp": 0,
"edgeHeaderRewrite": null,
"geoLimit": 0,
"geoLimitCountries": null,
"geoLimitRedirectURL": null,
"geoProvider": 0,
"globalMaxMbps": null,
"globalMaxTps": null,
"httpBypassFqdn": null,
"id": 1,
"infoUrl": null,
"initialDispersion": 3,
"ipv6RoutingEnabled": null,
"lastUpdated": null,
"logsEnabled": false,
"longDesc": "long desc",
"matchList": null,
"maxDnsAnswers": null,
"midHeaderRewrite": null,
"missLat": null,
"missLong": null,
"multiSiteOrigin": null,
"originShield": null,
"orgServerFqdn": null,
"profileDescription": null,
"profileId": null,
"profileName": null,
"protocol": null,
"qstringIgnore": null,
"rangeRequestHandling": null,
"regexRemap": null,
"regional": false,
"regionalGeoBlocking": false,
"remapText": null,
"requiredCapabilities": [],
"routingName": "cdn",
"signed": false,
"sslKeyVersion": null,
"tenantId": 1,
"type": null,
"typeId": 8,
"xmlId": "demo1",
"exampleURLs": null,
"deepCachingType": "NEVER",
"fqPacingRate": null,
"signingAlgorithm": null,
"tenant": null,
"trResponseHeaders": null,
"trRequestHeaders": null,
"consistentHashRegex": null,
"consistentHashQueryParams": null,
"maxOriginConnections": 0,
"ecsEnabled": false,
"rangeSliceBlockSize": null,
"topology": null,
"firstHeaderRewrite": null,
"innerHeaderRewrite": null,
"lastHeaderRewrite": null,
"serviceCategory": null,
"tlsVersions": null
},
"status": "draft"
}}
[1] | Because of how the Traffic Ops API parses requests, there is no distinction between null and undefined /missing properties. This means that sending the request payload {} in this case will result in the :term:`DSR` being unassigned. |