Monitoring as a Service (part of Cloud API) (1)

Download OpenAPI specification:Download

Alarm management endpoints for Monitoring as a Service by IONOS Cloud.

Monitoring as a Service (or just MaaS) is a PaaS service by IONOS Cloud. It is a complimentary “always-on” service that is provided to all compute instances (public cloud servers as well as IONOS Cloud Cubes). “Always-on” means that the user can start using the service directly after provisioning a virtual instance, without the need to select any options or configure additional properties.

What’s more, MaaS is readily available for the already-provisioned VMs, without requiring additional software or any changes to running virtual instances.

The “always-on” monitoring service collects instance metrics and provides options to set up threshold-based alarms and triggers for further actions. Monitoring as a Service currently supports email actions; additional action types will be added in future versions.

The Monitoring API can be used to manage (create/read/update/delete) monitoring alarms and actions.

Actions

Manage a reusable set of Actions. An Action can be assigned to an arbitrary number of Alarms.

This operation is restricted to contract owner, admin, and users with 'accessAndManageMonitoring' and Share/Edit access permissions for the data center, hosting the VM.

List all Actions

List all Actions for a particular contract.

Authorizations:
basicAuthtokenAuth
query Parameters
depth
number
Default: "0"

Controls the detail depth of the response objects.

  • depth=0: Only direct properties are included; children (such as executions or transitions) are not included.

  • depth=1: Direct properties and children references are included.

  • depth=2: Direct properties and children properties are included.

  • depth=3: Direct properties and children properties and children's children are included.

  • depth=... and so on

orderBy
string
Default: "createdDate"
Enum: "createdDate" "lastModifiedDate"

Define the property to be used for ordering the returned list.

Responses

Response samples

Content type
application/json
{
  • "id": "actions",
  • "type": "collection",
  • "href": "",
  • "items": [
    ]
}

Create Actions

Create an Action that can be assigned to an arbitrary number of Alarms.

  • "name" must not be null or blank

  • "type" must be of a valid type (EMAIL)

  • "typeProperties.emailTo" must be a well-formed email address that is not null or blank

Authorizations:
basicAuthtokenAuth
Request Body schema: application/json

The Action to be created. Please see the description section above for the required request body attributes.

object

Properties of the resource.

Responses

Request samples

Content type
application/json
{
  • "properties": {
    }
}

Response samples

Content type
application/json
{
  • "id": "615d1585-c6cd-4173-aca4-e18b243fd610",
  • "type": "action",
  • "href": "",
  • "metadata": {
    },
  • "properties": {
    },
  • "entities": {
    }
}

Get Actions by ID

Get an Action by the Action ID.

Authorizations:
basicAuthtokenAuth
path Parameters
actionId
required
string
Example: 615d1585-c6cd-4173-aca4-e18b243fd610

Unique resource identifier

query Parameters
depth
number
Default: "0"

Controls the detail depth of the response objects.

  • depth=0: Only direct properties are included; children (such as executions or transitions) are not included.

  • depth=1: Direct properties and children references are included.

  • depth=2: Direct properties and children properties are included.

  • depth=3: Direct properties and children properties and children's children are included.

  • depth=... and so on

Responses

Response samples

Content type
application/json
{
  • "id": "615d1585-c6cd-4173-aca4-e18b243fd610",
  • "type": "action",
  • "href": "",
  • "metadata": {
    },
  • "properties": {
    },
  • "entities": {
    }
}

Update Actions

Update an Action with the specified Action ID.

  • "name" must not be null or blank

  • "type" must be of a valid type (EMAIL)

  • "typeProperties.emailTo" must be a well-formed email address that is not null or blank.

Authorizations:
basicAuthtokenAuth
path Parameters
actionId
required
string
Example: 615d1585-c6cd-4173-aca4-e18b243fd610

Unique resource identifier

Request Body schema: application/json

The Action to be updated. Please see the description section above for the required request body attributes.

object

Properties of the resource.

Responses

Request samples

Content type
application/json
{
  • "properties": {
    }
}

Response samples

Content type
application/json
{
  • "id": "615d1585-c6cd-4173-aca4-e18b243fd610",
  • "type": "action",
  • "href": "",
  • "metadata": {
    },
  • "properties": {
    },
  • "entities": {
    }
}

Delete Actions

Delete an Action with the specified Action ID.

Authorizations:
basicAuthtokenAuth
path Parameters
actionId
required
string
Example: 615d1585-c6cd-4173-aca4-e18b243fd610

Unique resource identifier

Responses

Response samples

Content type
application/json
{
  • "errorUuid": "615d1585-c6cd-4173-aca4-e18b243fd610",
  • "httpStatus": "400|401|404",
  • "messages": [
    ]
}

List all Action executions

List all executions for the specified Action.

Authorizations:
basicAuthtokenAuth
path Parameters
actionId
required
string
Example: 615d1585-c6cd-4173-aca4-e18b243fd610

Unique resource identifier

query Parameters
depth
number
Default: "0"

Controls the detail depth of the response objects.

  • depth=0: Only direct properties are included; children (such as executions or transitions) are not included.

  • depth=1: Direct properties and children references are included.

  • depth=2: Direct properties and children properties are included.

  • depth=3: Direct properties and children properties and children's children are included.

  • depth=... and so on

orderBy
string
Default: "createdDate"
Enum: "createdDate" "lastModifiedDate"

Define the property to be used for ordering the returned list.

Responses

Response samples

Content type
application/json
{
  • "id": "executions",
  • "type": "collection",
  • "href": "",
  • "items": [
    ]
}

Get Action executions by ID

Get an Action execution by Action and execution IDs.

Authorizations:
basicAuthtokenAuth
path Parameters
actionId
required
string
Example: 615d1585-c6cd-4173-aca4-e18b243fd610

Unique resource identifier

executionId
required
string
Example: 715d1585-c6cd-4173-aca4-e18b243fd720

Unique resource identifier

Responses

Response samples

Content type
application/json
{
  • "id": "615d1585-c6cd-4173-aca4-e18b243fd610",
  • "type": "execution",
  • "href": "",
  • "metadata": {
    },
  • "properties": {
    }
}

Alarms

Manage Alarms. An Alarm contains an expression to be evaluated against the resource. When the expression matches the resource, the Alarm is considered 'triggered'. An Alarm can have associated Actions, to be taken if the expression matches.

This operation is restricted to contract owner, admin, and users with 'accessAndManageMonitoring' and Share/Edit access permissions for the data center, hosting the VM.

List all Alarms

List all Alarms for a particular contract.

Authorizations:
basicAuthtokenAuth
query Parameters
depth
number
Default: "0"

Controls the detail depth of the response objects.

  • depth=0: Only direct properties are included; children (such as executions or transitions) are not included.

  • depth=1: Direct properties and children references are included.

  • depth=2: Direct properties and children properties are included.

  • depth=3: Direct properties and children properties and children's children are included.

  • depth=... and so on

orderBy
string
Default: "createdDate"
Enum: "createdDate" "lastModifiedDate"

Define the property to be used for ordering the returned list.

Responses

Response samples

Content type
application/json
{
  • "id": "alarms",
  • "type": "collection",
  • "href": "",
  • "items": [
    ]
}

Create Alarms

Create an Alarm. All of the following properties must be provided: "name" and "expression" ("comparisonThreshold", "metric" and "source").

  • "name": the name of the Alarm

  • "expression.source": the virtual instance for which you want to configure the Alarm

  • "expression.metric": the metric (CPU|Network|Storage)

  • "expression.comparisonThreshold": the threshold value to be applied for the Alarm

  • 'range': required when setting a 'rangeAggregation'

Authorizations:
basicAuthtokenAuth
Request Body schema: application/json

The Alarm to be created. Please see the description section above for the required request body attributes.

object

Properties of the resource.

object (AlarmEntitiesRequest)

Responses

Request samples

Content type
application/json
{
  • "properties": {
    },
  • "entities": {
    }
}

Response samples

Content type
application/json
{
  • "id": "615d1585-c6cd-4173-aca4-e18b243fd610",
  • "type": "alarm",
  • "href": "",
  • "metadata": {
    },
  • "properties": {
    },
  • "entities": {
    }
}

Get Alarms by ID

Get an Alarm by the Alarm ID.

Authorizations:
basicAuthtokenAuth
path Parameters
alarmId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "615d1585-c6cd-4173-aca4-e18b243fd610",
  • "type": "alarm",
  • "href": "",
  • "metadata": {
    },
  • "properties": {
    },
  • "entities": {
    }
}

Update Alarms

Update an Alarm. All the following properties must be provided: "name" and "expression" ("comparisonThreshold", "metric" and "source").

  • "name": the name of the Alarm

  • "expression.source": the virtual instance for which you want to configure the Alarm

  • "expression.metric": the metric (CPU|Network|Storage)

  • "expression.comparisonThreshold": the threshold value to be applied for the Alarm

  • 'range': required when setting a 'rangeAggregation'

Authorizations:
basicAuthtokenAuth
path Parameters
alarmId
required
string
Example: 9460588f-f6ee-435f-a688-f798021b319d
Request Body schema: application/json

The Alarm to be updated. Please see the description section above for the required request body attributes.

object

Properties of the resource.

object (AlarmEntitiesRequest)

Responses

Request samples

Content type
application/json
{
  • "properties": {
    },
  • "entities": {
    }
}

Response samples

Content type
application/json
{
  • "id": "615d1585-c6cd-4173-aca4-e18b243fd610",
  • "type": "alarm",
  • "href": "",
  • "metadata": {
    },
  • "properties": {
    },
  • "entities": {
    }
}

Delete Alarms

Delete an Alarm with the specified ID.

Authorizations:
basicAuthtokenAuth
path Parameters
alarmId
required
string
Example: 9460588f-f6ee-435f-a688-f798021b319d

Responses

Response samples

Content type
application/json
{
  • "errorUuid": "615d1585-c6cd-4173-aca4-e18b243fd610",
  • "httpStatus": "400|401|404",
  • "messages": [
    ]
}

List Alarm transitions

List all Alarm transitions for a particular contract.

Authorizations:
basicAuthtokenAuth
path Parameters
alarmId
required
string
Example: 9460588f-f6ee-435f-a688-f798021b319d
query Parameters
depth
number
Default: "0"

Controls the detail depth of the response objects.

  • depth=0: Only direct properties are included; children (such as executions or transitions) are not included.

  • depth=1: Direct properties and children references are included.

  • depth=2: Direct properties and children properties are included.

  • depth=3: Direct properties and children properties and children's children are included.

  • depth=... and so on

orderBy
string
Default: "createdDate"
Enum: "createdDate" "lastModifiedDate"

Define the property to be used for ordering the returned list.

Responses

Response samples

Content type
application/json
{
  • "id": "transitions",
  • "type": "collection",
  • "href": "",
  • "items": [
    ]
}

Get Alarm transitions by ID

Get an Alarm transition by Alarm and transition IDs.

Authorizations:
basicAuthtokenAuth
path Parameters
alarmId
required
string
Example: 9460588f-f6ee-435f-a688-f798021b319d
transitionId
required
string
Example: 8460588f-f6ee-435f-a688-f798021b319d

Responses

Response samples

Content type
application/json
{
  • "href": "",
  • "id": "615d1585-c6cd-4173-aca4-e18b243fd610",
  • "type": "transition",
  • "metadata": {
    },
  • "properties": {
    }
}

Documentation

Endpoints for documentation purposes.

Display MaaS OpenAPI spec (JSON)

Display OpenAPI JSON specification for Monitoring as a Service.

Responses

Display MaaS OpenAPI spec (YAML)

Display OpenAPI YAML specification for Monitoring as a Service.

Responses