$schema: http://support.riverbed.com/apis/service_def/2.2 description: Monitor and reports on various system-level failures id: http://support.riverbed.com/apis/npm.health/1.1 name: npm.health provider: riverbed resources: health_node: additionalProperties: false description: A monitored health node links: get: method: GET response: {$ref: '#/resources/health_node'} self: {path: '$/health_nodes/items/{id}'} set: method: PUT request: {$ref: '#/resources/health_node'} response: {$ref: '#/resources/health_node'} properties: alert_definition: additionalProperties: false description: 'Information about the alerts that may be sent as a result of problems with this health area. ' properties: alert_severities: description: 'List of supported notification severities ' items: {$ref: '#/types/severity'} type: array alert_type: description: 'Type of alert this node generates ' enum: [continuous, discrete, unknown] type: string notification_id: {description: 'The npm.usernotify notification_id used when sending notifications of a health change for this node. If this is the empty string, this node does not produce alerts or notifications. '} readOnly: true required: [notification_id, alert_type, alert_severities] type: object category: {description: Category this node belongs to, readOnly: true, type: string} children: description: 'A list of node identifiers for which this node is a parent ' items: description: 'The identifier of a child node ' relations: health_node: resource: '#/resources/health_node' vars: {id: 0/id} type: string readOnly: true type: array current_alert: additionalProperties: false description: 'If present, the node is currently in an alert state ' properties: severity: $merge: source: {$ref: '#/types/severity'} with: {description: The current severity of the node} status_message: {description: 'Message describing the reason for the alert ', type: string} timestamp: {description: 'Time, in UTC seconds, when the node entered this alert state ', type: integer} violations: description: Violations causing this alert items: additionalProperties: false description: One health node violation properties: name: {description: 'The name of the sub-object in violation ', type: string} severity: {$ref: '#/types/severity'} required: [name, severity] type: object type: array readOnly: true required: [severity, status_message, violations] type: object description: {description: The description of this node, readOnly: true, type: string} id: {description: 'Internal dotted ID of this health node ', readOnly: true, type: string} name: {description: The name of this node, readOnly: true, type: string} parameters: description: 'Configurable parameters used to analyze the health of this node ' items: {$ref: '#/types/health_parameter'} type: array parent_id: description: 'The identifier of this node''s immediate parent, if any ' readOnly: true relations: health_node: resource: '#/resources/health_node' vars: {id: 0/id} type: string relations: instances: {description: All health nodes, resource: '#/resources/health_nodes'} required: [id, parent_id, children, name, description, category, alert_definition, parameters] type: object health_nodes: additionalProperties: false description: Available health nodes links: get: method: GET response: {$ref: '#/resources/health_nodes'} self: {path: $/health_nodes} properties: items: description: A single health node items: {$ref: '#/resources/health_node'} type: array required: [items] type: object title: NPM System Health types: health_parameter: additionalProperties: false description: 'A user-configurable parameter affecting health node behavior ' oneOf: - properties: default_value: {type: integer} parameter_type: enum: [integer] type: string value: {type: integer} type: object - properties: default_value: {type: number} parameter_type: enum: [number] type: string value: {type: number} type: object - properties: default_value: {type: boolean} parameter_type: enum: [boolean] type: string value: {type: boolean} type: object properties: default_value: anyOf: - {type: integer} - {type: number} - {type: boolean} description: Default parameter value readOnly: true description: {description: Explanatory text for this value, readOnly: true, type: string} id: {description: Internal identifier for this value, readOnly: true, type: string} name: {description: Human name of this parameter, readOnly: true, type: string} parameter_type: description: Basic type identifier of this value enum: [integer, number, boolean] readOnly: true type: string validations: description: 'A list of validations constraining this value ' items: {$ref: '#/types/parameter_validation'} readOnly: true type: array value: anyOf: - {type: integer} - {type: number} - {type: boolean} description: Current parameter value required: [id, parameter_type, name, description, value, default_value, validations] type: object parameter_validation: additionalProperties: true description: A validation operation to constrain a value oneOf: - additionalProperties: false description: Numeric range validation properties: maximum: {description: 'Optional inclusive maximum allowed numeric value ', type: number} minimum: {description: 'Optional inclusive minimum allowed numeric value ', type: number} validation: description: Type of validation rule enum: [range] type: string required: [validation] type: object - additionalProperties: false description: Constrain this value against another parameter properties: constraint: description: Type of constraint enum: [greater_than, less_than] type: string id: {description: Parameter to validate against, type: string} validation: description: Type of validation rule enum: [parameter] type: string required: [validation, id, constraint] type: object properties: validation: description: The base type of validation to perform enum: [range, parameter] type: string required: [validation] type: object severity: additionalProperties: false description: The severity of an alert properties: level: {description: The severity level. Higher is more severe., type: integer} name: {description: Name of the severity, type: string} required: [level, name] type: object version: '1.1'