====== System's maintenance windows ======
===== Ad hoc =====
**Description:**
* Ad hoc maintenance API can start and stop the maintenance of one or several systems from one group.
* Its particularity is that you can use group name and system SID instead of UUIDs, which makes it more practical
* Maintenance lasts for a given duration and can be started either immediately or at a specified date.
* With Ad hoc, maintenances are scheduled once and will not repeat.
**Services:**
^ Start maintenance ^^^
| Description| Starts the maintenance of systems immediately or at specified date ||
| Method | **PUT** ||
| URL| /maintenance/adhoc/start ||
| **Parameters** |||
| group | The name of the group | mandatory |
| systems | Coma separated list of SAP sids | mandatory |
| duration | Duration of the maintenance in minutes | mandatory |
| startdate | Start date of the maintenance (yyyyMMddHHmmz) | optional |
| **Example** |||
| ///maintenance/adhoc/start?group=Agentil&systems=HA5,IDZ&duration=60&startdate=202006301200CET// |||
^ Stop maintenance ^^^
| Description| Immediately stops maintenance of the systems ||
| Method | **PUT** ||
| URL| /maintenance/adhoc/stop ||
| **Parameters** |||
| group | The name of the group | mandatory |
| systems | Coma separated list of SAP sids | mandatory |
| **Example** |||
| ///maintenance/adhoc/stop?group=Agentil&systems=HA5,IDZ// |||
===== Scheduled maintenance =====
**Description:**
* Scheduled maintenance can be created do define recurrent and scheduled maintenance
* Recurrent maintenance defines maintenance periods occuring as per a cron.
* Scheduled maintenance define a maintenance period occuring just once.
* When a maintenance is triggered, it creates a "maintenance period" which will prevent any monitor to be executed on a system.
* Maintenance periods can be stopped at any time, resuming the montoring of the systems.
* To stop a maintenance period will not prevent the next maintenance to happen as per its cron
**Services:**
^ **GET** All maintenance definition ^^^
| Description| Get maintenance definitions ||
| Method | **GET** ||
| URL| /maintenance/definitions/all ||
| **Parameters** |||
| No parameters |||
| **Example** |||
| ///maintenance/definitions/all// |||
| **Returns** |||
|
[
{
"id": "b52adc25-daf0-45fd-88c3-bdd59ee7b375",
"name": "maintenance once",
"cron": null,
"duration": 10,
"startTime": 1594288200000,
"active": true,
"creationTime": 1594288149814,
"systemsJson": "[{ \"groupid\":\"bdf0e47c-6f0b-49c1-a142-3861bf8e749c\",\"systemid\":\"de74adf5-82a2-4e08-92d1-8f599271c01d\" }]",
"type": "SCHEDULED"
},
{
"id": "53f57305-6ef8-4ea7-a52a-33f4007e5d5e",
"name": "maintenance every 5",
"cron": "0 0/5 * * * ? *",
"duration": 2,
"startTime": 1594288200000,
"active": true,
"creationTime": 1594303785291,
"systemsJson": "[{ \"groupid\":\"bdf0e47c-6f0b-49c1-a142-3861bf8e749c\",\"systemid\":\"de74adf5-82a2-4e08-92d1-8f599271c01d\" }]",
"type": "RECURRENT"
}
]
|||
^ **CREATE** recurrent maintenance definition ^^^
| Description| Create recurrent maintenance definition ||
| Method | **POST** ||
| URL| /maintenance/definitions ||
| **JSON Body** |||
| name | The name of the maintenance | mandatory |
| duration| The duration of the maintenance in minutes | mandatory |
| active| The state of the maintenance (ignored if false) | mandatory |
| cron| The cron string | mandatory |
| type | The type of maintenance: RECURRENT | mandatory |
|systemsJson | A json table of tuples for groupid and systemid | mandatory |
| **Example** |||
|
{
"name": "maintenance every 5",
"duration": 2,
"active": true,
"cron":"0 0/5 * * * ? *",
"type": "RECURRENT",
"systemsJson": "[{ \"groupid\":\"bdf0e47c-6f0b-49c1-a142-3861bf8e749c\",\"systemid\":\"de74adf5-82a2-4e08-92d1-8f599271c01d\" }]"
}
|||
| **Returns** |||
|
{
"id": "53f57305-6ef8-4ea7-a52a-33f4007e5d5e",
"name": "maintenance every 5",
"cron": "0 0/5 * * * ? *",
"duration": 2,
"active": true,
"creationTime": 1594303785291,
"systemsJson": "[{ \"groupid\":\"bdf0e47c-6f0b-49c1-a142-3861bf8e749c\",\"systemid\":\"de74adf5-82a2-4e08-92d1-8f599271c01d\" }]",
"type": "RECURRENT"
}
|||
^ **CREATE** scheduled maintenance definition ^^^
| Description| Create scheduled maintenance definition ||
| Method | **POST** ||
| URL| /maintenance/definitions ||
| **JSON Body** |||
| name | The name of the maintenance | mandatory |
| duration| The duration of the maintenance in minutes | mandatory |
| active| The state of the maintenance (ignored if false) | mandatory |
| startTime | The startTime in EPOCH format | mandatory |
| type | The type of maintenance: SCHEDULED| mandatory |
|systemsJson | A json table of tuples for groupid and systemid | mandatory |
| **Example** |||
|
{
"name": "scheduled maintenance",
"duration": 2,
"active": true,
"startTime": 1594288200000,
"type": "SCHEDULED",
"systemsJson": "[{ \"groupid\":\"bdf0e47c-6f0b-49c1-a142-3861bf8e749c\",\"systemid\":\"de74adf5-82a2-4e08-92d1-8f599271c01d\" }]"
}
|||
| **Returns** |||
|
{
"id": "53f57305-6ef8-4ea7-a52a-33f4007e5d5e",
"name": "scheduled maintenance",
"duration": 2,
"startTime": 1594288200000,
"active": true,
"creationTime": 1594303785291,
"systemsJson": "[{ \"groupid\":\"bdf0e47c-6f0b-49c1-a142-3861bf8e749c\",\"systemid\":\"de74adf5-82a2-4e08-92d1-8f599271c01d\" }]",
"type": "SCHEDULED"
}
|||
^ **UPDATE** maintenance definition ^^^
| Description| Update maintenance definition ||
| Method | **PUT** ||
| URL| /maintenance/definitions ||
| **JSON Body** |||
| id | The id of the definition | mandatory |
| name | The name of the maintenance | mandatory |
| duration| The duration of the maintenance in minutes | mandatory |
| active| The state of the maintenance (ignored if false) | mandatory |
| startTime or cron | depending on the type | mandatory |
| type | The type of maintenance: RECURRENT or SCHEDULED | mandatory |
|systemsJson | A json table of tuples for groupid and systemid | mandatory |
| **Example** |||
|
{
"id": "53f57305-6ef8-4ea7-a52a-33f4007e5d5e",
"name": "scheduled maintenance",
"duration": 2,
"active": true,
"startTime": 1594288200000,
"type": "SCHEDULED",
"systemsJson": "[{ \"groupid\":\"bdf0e47c-6f0b-49c1-a142-3861bf8e749c\",\"systemid\":\"de74adf5-82a2-4e08-92d1-8f599271c01d\" }]"
}
|||
| **Returns** |||
|
{
"id": "53f57305-6ef8-4ea7-a52a-33f4007e5d5e",
"name": "scheduled maintenance",
"duration": 2,
"startTime": 1594288200000,
"active": true,
"creationTime": 1594303785291,
"systemsJson": "[{ \"groupid\":\"bdf0e47c-6f0b-49c1-a142-3861bf8e749c\",\"systemid\":\"de74adf5-82a2-4e08-92d1-8f599271c01d\" }]",
"type": "SCHEDULED"
}
|||
^ **DELETE** maintenance definition ^^^
| Description| Delete created maintenance definitions ||
| Method | **DELETE** ||
| URL| /maintenance/definitions ||
| **Parameters** |||
| ids| coma separated list of ids | mandatory |
| **Example** |||
| ///maintenance/definitions?ids=53f57305-6ef8-4ea7-a52a-33f4007e5d5e// |||