The schedules API provides functionality that allows an administrator to add, delete or update schedules

Get all schedules

Lists all the schedules configured in the Aspire, this endpoint needs at least the ADMINISTRATOR role to be executed.

GET /aspire/_api/schedules

Pagination query string parameters

Sorting query string parameters

Get all schedules, filtered

Lists schedules configured in Aspire, filtered by the specified criteria, this endpoint needs at least the OPERATOR role to be executed.

POST /aspire/_api/schedules/getAll

Pagination query string parameters

Sorting query string parameters

Filters: Find the schedule filter definition here

Response

{
    "count": {
        "totalItems": 1
    },
    "schedule": [
        {
            "id": "258962bd-1ad0-4881-af16-ed7774857ab5",
            "type": "time",
            "description": "Test schedules",
            "enabled": "true",
            "schedule": "0 3 1/5 ? * *",
            "after": "pepo",
            "seeds": [
                "81e23e44-4952-4938-8b1c-67b9101a3aad",
                "09db4593-ce57-4edd-9e24-1dc0d8dc4e24"
            ],
            "crawlMode": "full",
            "action": "start"
        }
    ]
}  

Status: 200




Get a single schedule information

This endpoint needs at least the ADMINISTRATOR role to be executed.

GET /aspire/_api/schedules/:id


Path Parameters

NameTypeRequiredDescription
idstringRequiredThe id of the schedule to return


Response

{
    "schedule": {
        "id": "258962bd-1ad0-4881-af16-ed7774857ab5",
        "type": "time",
        "description": "Test schedules",
        "enabled": "true",
        "schedule": "0 3 1/5 ? * *",
        "after": "pepo",
        "seeds": [
            "81e23e44-4952-4938-8b1c-67b9101a3aad",
            "09db4593-ce57-4edd-9e24-1dc0d8dc4e24"
        ],
        "crawlMode": "full",
        "action": "start"
    }
}

Status: 200, 404




Add schedule(s) to Aspire

This endpoint needs at least the ADMINISTRATOR role to be executed.

POST /aspire/_api/schedules


Body Parameters 

NameTypeRequiredDescription
typestringRequired

The type of schedule to add

  • "time"
  • "sequence"
descriptionstringRequiredDescription of the schedule
seedsstringOptionalthe seed(s) this schedule applies to (If we do not insert seeds, the schedule is useful just for testing purposes)
seedsFilterstringOptionalThe filter for finding seeds this schedules applies to. JSON format follows the format of the filter for seeds. If the above "seeds" parameter has been used, then the "seedsFilter" will be ignored when the schedule starts.
actionstringRequired if seeds are used

The action to perform by the scheduled task:

  • "start"
  • "stop"
  • "pause"
  • "resume"
crawlModestringRequired if seeds are used and action = start

The type of crawl to perform by the scheduled task:

  • "full"
  • "incremental"
  • "identity"
completeThresholdnumberOptionalPercentage of seeds to complete their crawl before continuing with the next schedule in the sequence. The value is a  number up to 1. E.g. 0.69 means 69 %. Default is 1.
enabledbooleanOptionalWhether this schedule is enabled or not. Defaults to false if omitted.

Other parameters passed in the request body will depend on the type of schedule being created. Some candidates are shown below:

NameTypeRequiredDescription
schedulestringRequired if type is "time"the cron like schedule for a time-based schedule
scheduleTimeTypestringRequired for UI if type is "time"

The type of the time-based schedule

  • "hourly"
  • "daily"
  • "weekly"
  • "monthly"
  • "custom"
afterstringRequired if type is "sequence"the ID of the schedule, after which this schedule should run
stopOnFailbooleanRequired if type is "sequence"Whether this schedule sequence will stop if the previous schedule crawl fails is enabled or not. Defaults to false if omitted.


Example 

POST /aspire/_api/schedules
[{
  "type": "time",
  "description": "Weekly seeds"
  "enabled": true,
  "stopOnFail": true, 
  "scheduleTimeType": "weekly",
  "schedule": "0 0 0 ? * SUN *",
  "completeThreshold": 0.65,
  "seeds": ["AAABcIueWUd=", "AAABcIueWUe="],
  "seedsFilter":{"tags":["tag1","tag2"]},
  "action": "start",
  "crawlMode": "full"
},
{
  "type": "sequence",
  "description": "Rollup"
  "enabled": false,
  "stopOnFail": true,  
  "after": "0 0 0 ? * SUN *",    
  "completeThreshold": 0.65,
  "seeds": ["AAABcIudWUd=", "AAABcIudWUe="],    
  "seedsFilter":{"tags":["tag1","tag2"]},
  "action": "start",
  "crawlMode": "incremental"
}]


Response 

{
  "schedule": [{
    "id": "AAABcIueWU0",
    "type": "time",
    "description": "Weekly seeds"
    "enabled": true,
    "stopOnFail": true,  
    "scheduleTimeType": "weekly",
    "schedule": "0 0 0 ? * SUN *",    
    "completeThreshold": 0.65,
    "seeds": ["AAABcIueWUd=", "AAABcIueWUe="],    
    "seedsFilter":{"tags":["tag1","tag2"]},
    "action": "start",
    "crawlMode": "full"
   },
   {
    "id": "AAABcIueWU1",
    "type": "sequence",
    "description": "Rollup"
    "enabled": false,
    "stopOnFail": true,  
    "after": "0 0 0 ? * SUN *",
    "completeThreshold": 0.65,
    "seeds": ["AAABcIudWUd=", "AAABcIudWUe="],    
    "seedsFilter":{"tags":["tag1","tag2"]},
    "action": "start",
    "crawlMode": "incremental"
 }]
}

See Response Body for details regarding the response body returned where multiple items are affected with some (or all) returning errors

Status: 201, 406




Update schedule(s)

Update schedules in Aspire. This endpoint needs at least the ADMINISTRATOR role to be executed.

PUT /aspire/_api/schedules/:id

PUT /aspire/_api/schedules


Path Parameters

NameTypeRequiredDescription
idstringRequiredThe identifier of the schedule to update


Body Parameters

NameTypeRequiredDescription
idstringRequiredThe identifier of the schedule to update
(see add schedule)
x

x - at least one field must be present


Example 

PUT /aspire/_api/schedules
{
  "AAABcIueWU0=": {
    "id": "AAABcIueWU0",
    "description": "Weekly seeds"
    "enabled": true,
	"stopOnFail": true,  
    "scheduleTimeType": "weekly",
    "schedule": "0 0 0 ? * SUN *",
    "seeds": ["AAABcIueWUd=", "AAABcIueWUe="],    
    "seedsFilter":{"tags":["tag1","tag2"]},
    "action": "start",
    "crawlMode": "full"
  },
  "AAABcIueWU1": {
    "id": "AAABcIueWU1",
    "description": "Rollup"
    "enabled": false,
	"stopOnFail": true,  
    "schedule": "0 0 0 ? * SUN *",
    "seeds": ["AAABcIudWUd=", "AAABcIudWUe="],
    "seedsFilter":{"tags":["tag1","tag2"]},
    "action": "start",
    "crawlMode": "incremental"
  }
}


Response 

{"schedule":[{"updated":true,"id":"AAABcID5GBc="},{"updated":true,"id":"AAABcID5GBd="}]}

Status: 200, 404, 406


Update schedules, filtered

Update schedules configured in the Aspire, filtered by specified criteria. This endpoint needs at least the ADMINISTRATOR role to be executed.

PUT /aspire/_api/schedules/updateAll

Filters: Check the schedule filter definition here.

Update body parameter

{
  "update" : {
    "description" : "DESCRIPTION",
    "schedule" : "SCHEDULE",
    "action" : "ACTION",
    "after" : "AFTER",
    "crawlMode" : "crawlMode",
    "enabled" : "ENABLED",
    "stopOnFail": true,  
    "scheduleTimeType" : "SCHEDULE_TIME_TYPE",
    "seeds" : ["SEED1", "SEED2", "SEED3", ...],      
    "seedsFilter":{"tags":["tag1","tag2"]},
    "seeds.add" : ["SEED1", "SEED2", "SEED3", ...],
    "seeds.remove" : ["SEED1", "SEED2", "SEED3", ...],  }
}

Response

{
  "message": "update result response message"
}

Status: 200, 406




Delete schedules(s)

Delete one or more schedules from Aspire. This endpoint needs at least the ADMINISTRATOR role to be executed.

DELETE /aspire/_api/schedules/:id

DELETE /aspire/_api/schedules

POST /aspire/_api/schedules/delete


Path Parameters and Query parameters

NameTypeRequiredDescription
idstringRequiredThe identifier(s) of the schedule(s) to delete


Body Parameter

NameTypeRequiredDescription
idsstringRequiredThe identifier(s) of the schedule(s) to delete


Examples

DELETE /aspire/_api/schedules/AAABcID5GBc

DELETE /aspire/_api/schedules?id=AAABcID5GBc&id=AAABcID5GBd

POST /aspire/_api/schedules/delete
{
  "ids":["AAABcID5GBc","AAABcID5GBd"]
}


Response

{
  "message": "delete result response message"
}

Status: 200, 404, 406


Delete multiple schedules, filtered

Delete multiple schedules from Aspire, filtered by a specified criteria. This endpoint needs at least the ADMINISTRATOR role to be executed.

POST /aspire/_api/schedules/deleteAll

Filters: See the schedule filter definition here.

Response

{
  "message": "optional response message"
}

Status: 200




Export schedule(s)

Export one or more schedule from Aspire, this endpoint needs at least the OPERATOR role to be executed.

GET /aspire/_api/schedule/export

GET /aspire/_api/schedules/export/:id

POST /aspire/_api/schedules/exportAll

Every configuration item has the option to export from the UI, using the single menu or by the bulk actions:

Something important that you need to know is that when you export a config item that depends on another, the export will contain also all the dependencies.

Take into consideration that components with resources loaded into elastic, will be exported, but the resource itself will not, so you will need to reupload the resource and go and select your resource in the component again.


Path Parameters and Query parameters

NameTypeRequiredDescription
idstringRequiredThe identifier(s) of the schedule(s) to export


Body Parameter

NameTypeRequiredDescription
idsstringRequiredThe identifier(s) of the schedule(s) to export


Examples

GET /aspire/_api/schedules/export/AAABcID5GBc

DELETE /aspire/_api/schedules/export?id=AAABcID5GBc&id=AAABcID5GBd

POST /aspire/_api/schedules/export
{
  "ids":["AAABcID5GBc","AAABcID5GBd"]
}


Response

{
  "export": {
    "schedules": {
      "schedule": {
        "id": "<schedule_id>",
        "type": "time",
        "description": "test",
        "enabled": "false",
        "scheduleTimeType": "daily",
        "stopOnFail": false,
        "schedule": "0 0 0 1\/1 * ?",
        "after": null,
        "seeds": "<seed_id>",
        "crawlMode": "full",
        "completeThreshold": 1.0,
        "action": "pause"
      },
      ...
    },
    "seeds": {
      "seed": [
        {
          "id": "<seed_id>",
          "type": "rest-api",
          "description": "RestSeed",
          "connector": "<connector_id>",
          "seed": "N\/A",
          "priority": "medium",          
          "connection": "<connectio_id>",
          "workflows": [
            "<workflow_id>"
          ],
          "properties": {
            "seed": "N\/A",
            "crawlRules": [
              ...
            ],
            "stopOnScannerError": true
          }
        },
        ...
      ]
    },
    "connectors": {
      "connector": [
        {
          "id": "<connector_id>",
          "artifact": "com.accenture.aspire:aspire-rest-source",
          "type": "rest-api",
          "description": "RestConnector",
          "properties": {
            "debug": false,
            "wDebug": false,
            ...
          }
        },
        ...
      ]
    },
    "connections": {
      "connection": [
        {
          "id": "<connection_id>",
          "type": "rest-api",
          "description": "RestConnection",
          "properties": {
            ....
          }
        },
        ...
      ]
    },
    "workflows": {
      "workflow": [
        {
          "id": "<workflow_id>",
          "type": "connector",
          "description": "myWorkFlow",
          "templates": {
            ...            
          },
          "events": {
            "event": [
              ...
            ]
          },
          "rules": {
            "rule": [
              ...
            ]
          }
        },
        ...
      ]
    }
  }
}

Status: 200, 404, 406


Export multiple schedules, filtered

Export multiple schedules from Aspire, filtered by a specified criteria, this endpoint needs at least the OPERATOR role to be executed.

POST /aspire/_api/schedules/exportAll

Filters: The connection filter definition here

Response

{
  "export": {
    "schedules": {
      "schedule": {
        "id": "<schedule_id>",
        "type": "time",
        "description": "test",
        "enabled": "false",
        "scheduleTimeType": "daily",
        "stopOnFail": false,
        "schedule": "0 0 0 1\/1 * ?",
        "after": null,
        "seeds": "<seed_id>",
        "crawlMode": "full",
        "completeThreshold": 1.0,
        "action": "pause"
      },
      ...
    },
    "seeds": {
      "seed": [
        {
          "id": "<seed_id>",
          "type": "rest-api",
          "description": "RestSeed",
          "connector": "<connector_id>",
          "seed": "N\/A",
          "priority": "medium",          
          "connection": "<connectio_id>",
          "workflows": [
            "<workflow_id>"
          ],
          "properties": {
            "seed": "N\/A",
            "crawlRules": [
              ...
            ],
            "stopOnScannerError": true
          }
        },
        ...
      ]
    },
    "connectors": {
      "connector": [
        {
          "id": "<connector_id>",
          "artifact": "com.accenture.aspire:aspire-rest-source",
          "type": "rest-api",
          "description": "RestConnector",
          "properties": {
            "debug": false,
            "wDebug": false,
            ...
          }
        },
        ...
      ]
    },
    "connections": {
      "connection": [
        {
          "id": "<connection_id>",
          "type": "rest-api",
          "description": "RestConnection",
          "properties": {
            ....
          }
        },
        ...
      ]
    },
    "workflows": {
      "workflow": [
        {
          "id": "<workflow_id>",
          "type": "connector",
          "description": "myWorkFlow",
          "templates": {
            ...            
          },
          "events": {
            "event": [
              ...
            ]
          },
          "rules": {
            "rule": [
              ...
            ]
          }
        },
        ...
      ]
    }
  }
}

Status: 200




Import

The import usage can be found here





Filters

 Some endpoint queries require a filter. A filter is basically a JSON object with the following format:

Schedule filter:

{ 
 "filter" : {
    "ids" : ["ID1", "ID2", "ID3", ...],
    "type" : "TYPE",
    "description" : "DESCRIPTION",
	"seeds" : ["SEED1", "SEED2", "SEED3", ...]
  }
}




Execute schedules 

Execute schedules, either sequence or time based. This endpoint needs at least an ADMINISTRATOR role to be executed.

POST /aspire/_api/schedules/execute

Body Parameters

NameTypeRequiredDescription
idstringRequiredThe ID of the schedule


Examples

Executes a single schedule

{
  "id" : "AAABcIueWU1"
}

Executes multiple schedules

{   
	"id" : ["AAABcIueWU1", "AAABcIueWU2"] 
}

Response

{
    "AAABcIueWU1": {
        "status": "success"
    },
	"AAABcIueWU2": {
        "status": "failed"
    }
}

Status: 200, 404

  • No labels