jobs
GET
Retrieve Content Invalidation Jobs.
- Auth. Required:
Yes
- Roles Required:
None[1]
- Response Type:
Array
Request Structure
Name |
Required |
Description |
---|---|---|
assetUrl |
no |
Return only Content Invalidation Jobs that operate on URLs by matching this regular expression |
cdn |
no |
Return only Content Invalidation Jobs for delivery services with this CDN name |
createdBy |
no |
Return only Content Invalidation Jobs that were created by the user with this username |
deliveryService |
no |
Return only Content Invalidation Jobs that operate on the Delivery Service with this xml_id |
dsId |
no |
Return only Content Invalidation Jobs pending on the Delivery Service identified by this integral, unique identifier |
id |
no |
Return only the single invalidation Content Invalidation Job identified by this integral, unique identifer |
keyword |
no |
Return only Content Invalidation Jobs that have this “keyword” - only “PURGE” should exist |
maxRevalDurationDays |
no |
Return only Content Invalidation Jobs with a startTime that is within the window defined by the |
userId |
no |
Return only Content Invalidation Jobs created by the user identified by this integral, unique identifier |
GET /api/3.0/jobs?id=3&dsId=1&userId=2 HTTP/1.1
Host: trafficops.infra.ciab.test
User-Agent: python-requests/2.20.1
Accept-Encoding: gzip, deflate
Accept: */*
Connection: keep-alive
Cookie: mojolicious=...
Response Structure
- assetUrl:
A regular expression - matching URLs will be operated upon according to
keyword
- createdBy:
The username of the user who initiated the Content Invalidation Job
- deliveryService:
The xml_id of the Delivery Service on which this Content Invalidation Job operates
- id:
An integral, unique identifier for this Content Invalidation Job
- keyword:
A keyword that represents the operation being performed by the Content Invalidation Job:
- PURGE
This Content Invalidation Job will prevent caching of URLs matching the
assetUrl
until it is removed (or its Time to Live expires)
- parameters:
A string containing key/value pairs representing parameters associated with the Content Invalidation Job - currently only uses Time to Live e.g.
"TTL:48h"
- startTime:
The date and time at which the Content Invalidation Job began, in a non-standard format
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=Mon, 18 Nov 2019 17:40:54 GMT; Max-Age=3600; HttpOnly
Whole-Content-Sha512: gH41oEi2zrd3y8yo+wfohn4/oHU098RpyPnqBzU7HlLUDkMOPKjAZnamcYqfdy7yDCFDUcgqkvbFAvnljxyb8w==
X-Server-Name: traffic_ops_golang/
Date: Tue, 18 Jun 2019 19:47:30 GMT
Content-Length: 186
{ "response": [{
"assetUrl": "http://origin.infra.ciab.test/.*",
"createdBy": "admin",
"deliveryService": "demo1",
"id": 3,
"keyword": "PURGE",
"parameters": "TTL:2h",
"startTime": "2019-06-18 21:28:31+00"
}]}
POST
Creates a new Content Invalidation Job.
Caution
Creating a Content Invalidation Job immediately triggers a CDN-wide revalidation update. In the case that the global Parameter use_reval_pending
has a value of exactly "0"
, this will instead trigger a CDN-wide “Queue Updates”. This means that Content Invalidation Jobs become active immediately at their startTime
- unlike most other configuration changes they do not wait for a Snapshot or a “Queue Updates”. Furthermore, if the global Parameter use_reval_pending
is "0"
, this will cause all pending configuration changes to propagate to all cache servers in the CDN. Take care when using this endpoint.
- Auth. Required:
Yes
- Roles Required:
“operations” or “admin”[1]
- Response Type:
Object
Request Structure
- deliveryService:
This should either be the integral, unique identifier of a Delivery Service, or a string containing an xml_id
- startTime:
This can be a string in the legacy
YYYY-MM-DD HH:MM:SS
format, or a string in RFC 3339 format, or a string representing a date in the same non-standard format as thelast_updated
fields common in other API responses, or finally it can be a number indicating the number of milliseconds since the Unix Epoch (January 1, 1970 UTC). This date must be in the future.- regex:
A regular expression that will be used to match the path part of URIs for content stored on cache servers that service traffic for the Delivery Service identified by
deliveryService
.- ttl:
Either the number of hours for which the Content Invalidation Job should remain active, or a “duration” string, which is a sequence of numbers followed by units. The accepted units are:
h
gives a duration in hoursm
gives a duration in minutess
gives a duration in secondsms
gives a duration in millisecondsus
(orµs
) gives a duration in microsecondsns
gives a duration in nanoseconds
These durations can be combined e.g.
2h45m
specifies a TTL of two hours and forty-five minutes - however note that durations are always rounded up to the nearest hour so that e.g.121m
becomes three hours. TTLs cannot ever be negative, obviously.
POST /api/3.0/jobs HTTP/1.1
Host: trafficops.infra.ciab.test
User-Agent: python-requests/2.20.1
Accept-Encoding: gzip, deflate
Accept: */*
Connection: keep-alive
Cookie: mojolicious=...
Content-Length: 80
Content-Type: application/json
{
"deliveryService": "demo1",
"startTime": 1560893311219,
"regex": "/.*",
"ttl": "121m"
}
Response Structure
- assetUrl:
A regular expression - matching URLs will be operated upon according to
keyword
- createdBy:
The username of the user who initiated the Content Invalidation Job
- deliveryService:
The xml_id of the Delivery Service on which this Content Invalidation Job operates
- id:
An integral, unique identifier for this Content Invalidation Job
- keyword:
A keyword that represents the operation being performed by the Content Invalidation Job:
- PURGE
This Content Invalidation Job will prevent caching of URLs matching the
assetUrl
until it is removed (or its Time to Live expires)
- parameters:
A string containing key/value pairs representing parameters associated with the Content Invalidation Job - currently only uses Time to Live e.g.
"TTL:48h"
- startTime:
The date and time at which the Content Invalidation Job began, in a non-standard format
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
Location: https://trafficops.infra.ciab.test/api/3.0/jobs?id=3
Set-Cookie: mojolicious=...; Path=/; Expires=Mon, 18 Nov 2019 17:40:54 GMT; Max-Age=3600; HttpOnly
Whole-Content-Sha512: nB2xg2IqO56rLT8dI4+KZgxOsTe5ShctG1U8epRsY9NyyMIpx8TZYt5MrO2QikuYh+NnyoR6V0VICCnGCKZpKw==
X-Server-Name: traffic_ops_golang/
Date: Tue, 18 Jun 2019 19:37:06 GMT
Content-Length: 238
{
"alerts": [
{
"text": "Invalidation Job creation was successful",
"level": "success"
}
],
"response": {
"assetUrl": "http://origin.infra.ciab.test/.*",
"createdBy": "admin",
"deliveryService": "demo1",
"id": 3,
"keyword": "PURGE",
"parameters": "TTL:2h",
"startTime": "2019-06-18 21:28:31+00"
}
}
PUT
Replaces an existing Content Invalidation Job with a new one provided in the request. This method of editing a Content Invalidation Job does not prevent the requesting user from changing fields that normally only have one value. Use with care.
Caution
Modifying a Content Invalidation Job immediately triggers a CDN-wide revalidation update. In the case that the global Parameter use_reval_pending
has a value of exactly "0"
, this will instead trigger a CDN-wide “Queue Updates”. This means that Content Invalidation Jobs become active immediately at their startTime
- unlike most other configuration changes they do not wait for a Snapshot or a “Queue Updates”. Furthermore, if the global Parameter use_reval_pending
is "0"
, this will cause all pending configuration changes to propagate to all cache servers in the CDN. Take care when using this endpoint.
- Auth. Required:
Yes
- Roles Required:
“operations” or “admin”[1]
- Response Type:
Object
Request Structure
Name |
Required |
Description |
---|---|---|
id |
yes |
The integral, unique identifier of the Content Invalidation Job being modified |
- assetUrl:
A regular expression - matching URLs will be operated upon according to
keyword
Note
Unlike in the payloads of POST requests to this endpoint, this must be a full URL regular expression, as it is not combined with the Origin Server Base URL of the Delivery Service identified by
deliveryService
.- createdBy:
The username of the user who initiated the Content Invalidation Job[2]
- deliveryService:
The xml_id of the Delivery Service on which this Content Invalidation Job operates[2] - unlike POST request payloads, this cannot be an integral, unique identifier
- id:
An integral, unique identifier for this Content Invalidation Job[2]
- keyword:
A keyword that represents the operation being performed by the Content Invalidation Job. It can have any (string) value, but the only value with any meaning to Traffic Control is:
- PURGE
This Content Invalidation Job will prevent caching of URLs matching the
assetUrl
until it is removed (or its Time to Live expires)
- parameters:
A string containing space-separated key/value pairs - delimited by colons (:s) representing parameters associated with the Content Invalidation Job. In practice, any string can be passed as a Content Invalidation Job’s
parameters
, but the only value with meaning is a single key/value pair indicated a TTL in hours in the formatTTL:hoursh
, and any other type of value may cause components of Traffic Control to work improperly or not at all.- startTime:
This can be a string in the legacy
YYYY-MM-DD HH:MM:SS
format, or a string in RFC 3339 format, or a string representing a date in the same non-standard format as thelast_updated
fields common in other API responses, or finally it can be a number indicating the number of milliseconds since the Unix Epoch (January 1, 1970 UTC). This must be in the future, but only by no more than two days.
PUT /api/3.0/jobs?id=3 HTTP/1.1
Host: trafficops.infra.ciab.test
User-Agent: python-requests/2.20.1
Accept-Encoding: gzip, deflate
Accept: */*
Connection: keep-alive
Cookie: mojolicious=...
Content-Length: 188
Content-Type: application/json
{
"assetUrl": "http://origin.infra.ciab.test/.*",
"createdBy": "admin",
"deliveryService": "demo1",
"id": 3,
"keyword": "PURGE",
"parameters": "TTL:360h",
"startTime": "2019-06-20 18:33:40+00"
}
Response Structure
- assetUrl:
A regular expression - matching URLs will be operated upon according to
keyword
- createdBy:
The username of the user who initiated the Content Invalidation Job
- deliveryService:
The xml_id of the Delivery Service on which this Content Invalidation Job operates
- id:
An integral, unique identifier for this Content Invalidation Job
- keyword:
A keyword that represents the operation being performed by the Content Invalidation Job:
- PURGE
This Content Invalidation Job will prevent caching of URLs matching the
assetUrl
until it is removed (or its Time to Live expires)
- parameters:
A string containing key/value pairs representing parameters associated with the Content Invalidation Job - currently only uses Time to Live e.g.
"TTL:48h"
- startTime:
The date and time at which the Content Invalidation Job began, in a non-standard format
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=Mon, 18 Nov 2019 17:40:54 GMT; Max-Age=3600; HttpOnly
Whole-Content-Sha512: +P1PTav4ZBoiQcCqQnUqf+J0dCfQgVj8mzzKtUCA69mWYulya9Bjf6BUd8Aro2apmpgPBkCEA5sITJV1tMYA0Q==
X-Server-Name: traffic_ops_golang/
Date: Wed, 19 Jun 2019 13:38:59 GMT
Content-Length: 234
{ "alerts": [{
"text": "Content invalidation job updated",
"level": "success"
}],
"response": {
"assetUrl": "http://origin.infra.ciab.test/.*",
"createdBy": "admin",
"deliveryService": "demo1",
"id": 3,
"keyword": "PURGE",
"parameters": "TTL:360h",
"startTime": "2019-06-20 18:33:40+00"
}}
DELETE
Deletes a Content Invalidation Job.
Tip
Content Content Invalidation Jobs that have passed their TTL are not automatically deleted - for record-keeping purposes - so use this to clean up old jobs that are no longer useful.
Caution
Deleting a Content Invalidation Job immediately triggers a CDN-wide revalidation update. In the case that the global Parameter use_reval_pending
has a value of exactly "0"
, this will instead trigger a CDN-wide “Queue Updates”. This means that Content Invalidation Jobs become active immediately at their startTime
- unlike most other configuration changes they do not wait for a Snapshot or a “Queue Updates”. Furthermore, if the global Parameter use_reval_pending
is "0"
, this will cause all pending configuration changes to propagate to all cache servers in the CDN. Take care when using this endpoint.
- Auth. Required:
Yes
- Roles Required:
“operations” or “admin”[1]
- Response Type:
Object
Request Structure
Name |
Required |
Description |
---|---|---|
id |
yes |
The integral, unique identifier of the Content Invalidation Job being modified |
DELETE /api/3.0/jobs?id=3 HTTP/1.1
Host: trafficops.infra.ciab.test
User-Agent: python-requests/2.20.1
Accept-Encoding: gzip, deflate
Accept: */*
Connection: keep-alive
Cookie: mojolicious=...
Content-Length: 0
Response Structure
- assetUrl:
A regular expression - matching URLs will be operated upon according to
keyword
- createdBy:
The username of the user who initiated the Content Invalidation Job
- deliveryService:
The xml_id of the Delivery Service on which this Content Invalidation Job operates
- id:
An integral, unique identifier for this Content Invalidation Job
- keyword:
A keyword that represents the operation being performed by the Content Invalidation Job:
- PURGE
This Content Invalidation Job will prevent caching of URLs matching the
assetUrl
until it is removed (or its Time to Live expires)
- parameters:
A string containing key/value pairs representing parameters associated with the Content Invalidation Job - currently only uses Time to Live e.g.
"TTL:48h"
- startTime:
The date and time at which the Content Invalidation Job began, in a non-standard format
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=Mon, 18 Nov 2019 17:40:54 GMT; Max-Age=3600; HttpOnly
Whole-Content-Sha512: FqfziXJYYwHb84Fac9+p4NEY3EsklYxe94wg/VOmlXk4R6l4SaPSh015CChPt/yT72MsWSETnIuRD9KtoK4I+w==
X-Server-Name: traffic_ops_golang/
Date: Tue, 18 Jun 2019 22:55:15 GMT
Content-Length: 234
{ "alerts": [
{
"text": "Content invalidation job was deleted",
"level": "success"
}
],
"response": {
"assetUrl": "http://origin.infra.ciab.test/.*",
"createdBy": "admin",
"deliveryService": "demo1",
"id": 3,
"keyword": "PURGE",
"parameters": "TTL:36h",
"startTime": "2019-06-20 18:33:40+00"
}}