Skip to content

Instantly share code, notes, and snippets.

@harageth
Created May 1, 2019 20:57
Show Gist options
  • Save harageth/d3223a2892f309990ff6b4f00da55cd9 to your computer and use it in GitHub Desktop.
Save harageth/d3223a2892f309990ff6b4f00da55cd9 to your computer and use it in GitHub Desktop.
{
"swagger" : "2.0",
"info" : {
"version" : "0.1.0",
"title" : "Salus Monitor Management"
},
"schemes" : [ "https", "http" ],
"paths" : {
"/api/boundMonitors/{envoyId}" : {
"get" : {
"summary" : "Gets all BoundMonitors attached to a particular Envoy",
"description" : "",
"operationId" : "getBoundMonitors",
"parameters" : [ {
"name" : "envoyId",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/BoundMonitorDTO"
}
}
}
},
"security" : [ {
"repose_auth" : [ "write:monitor", "read:monitor", "delete:monitor" ]
} ]
}
},
"/api/monitors" : {
"get" : {
"summary" : "Gets all Monitors irrespective of Tenant",
"description" : "",
"operationId" : "getAll",
"parameters" : [ {
"name" : "size",
"in" : "query",
"required" : false,
"type" : "integer",
"default" : 100,
"format" : "int32"
}, {
"name" : "page",
"in" : "query",
"required" : false,
"type" : "integer",
"default" : 0,
"format" : "int32"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/PageDetailedMonitorOutput"
}
}
},
"security" : [ {
"repose_auth" : [ "write:monitor", "read:monitor", "delete:monitor" ]
} ]
}
},
"/api/monitorsAsStream" : {
"get" : {
"operationId" : "getAllAsStream",
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/SseEmitter"
}
}
},
"security" : [ {
"repose_auth" : [ "write:monitor", "read:monitor", "delete:monitor" ]
} ]
}
},
"/api/tenant/{tenantId}/monitorLabels" : {
"get" : {
"summary" : "Gets all Monitors that match labels. All labels must match to retrieve relevant Monitors.",
"description" : "",
"operationId" : "getMonitorsWithLabels",
"parameters" : [ {
"name" : "tenantId",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"required" : false,
"schema" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
}
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/Monitor"
}
}
}
},
"security" : [ {
"repose_auth" : [ "write:monitor", "read:monitor", "delete:monitor" ]
} ]
}
},
"/api/tenant/{tenantId}/monitors" : {
"get" : {
"summary" : "Gets all Monitors for Tenant",
"description" : "",
"operationId" : "getAllForTenant",
"parameters" : [ {
"name" : "tenantId",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "size",
"in" : "query",
"required" : false,
"type" : "integer",
"default" : 100,
"format" : "int32"
}, {
"name" : "page",
"in" : "query",
"required" : false,
"type" : "integer",
"default" : 0,
"format" : "int32"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/PageDetailedMonitorOutput"
}
}
},
"security" : [ {
"repose_auth" : [ "write:monitor", "read:monitor", "delete:monitor" ]
} ]
},
"post" : {
"summary" : "Creates new Monitor for Tenant",
"description" : "",
"operationId" : "create",
"parameters" : [ {
"name" : "tenantId",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"required" : false,
"schema" : {
"$ref" : "#/definitions/DetailedMonitorInput"
}
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/DetailedMonitorOutput"
}
},
"201" : {
"description" : "Successfully Created Monitor"
}
},
"security" : [ {
"repose_auth" : [ "write:monitor", "read:monitor", "delete:monitor" ]
} ]
}
},
"/api/tenant/{tenantId}/monitors/{uuid}" : {
"get" : {
"summary" : "Gets specific Monitor for Tenant",
"description" : "",
"operationId" : "getById",
"parameters" : [ {
"name" : "tenantId",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "uuid",
"in" : "path",
"required" : true,
"type" : "string",
"format" : "uuid"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/DetailedMonitorOutput"
}
}
},
"security" : [ {
"repose_auth" : [ "write:monitor", "read:monitor", "delete:monitor" ]
} ]
},
"put" : {
"summary" : "Updates specific Monitor for Tenant",
"description" : "",
"operationId" : "update",
"parameters" : [ {
"name" : "tenantId",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "uuid",
"in" : "path",
"required" : true,
"type" : "string",
"format" : "uuid"
}, {
"in" : "body",
"name" : "body",
"required" : false,
"schema" : {
"$ref" : "#/definitions/DetailedMonitorInput"
}
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/DetailedMonitorOutput"
}
}
},
"security" : [ {
"repose_auth" : [ "write:monitor", "read:monitor", "delete:monitor" ]
} ]
},
"delete" : {
"summary" : "Deletes specific Monitor for Tenant",
"description" : "",
"operationId" : "delete",
"parameters" : [ {
"name" : "tenantId",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "uuid",
"in" : "path",
"required" : true,
"type" : "string",
"format" : "uuid"
} ],
"responses" : {
"204" : {
"description" : "Resource Deleted"
}
},
"security" : [ {
"repose_auth" : [ "write:monitor", "read:monitor", "delete:monitor" ]
} ]
}
}
},
"definitions" : {
"BoundMonitorDTO" : {
"type" : "object",
"properties" : {
"monitorId" : {
"type" : "string",
"format" : "uuid"
},
"zoneTenantId" : {
"type" : "string"
},
"zoneId" : {
"type" : "string"
},
"resourceTenant" : {
"type" : "string"
},
"resourceId" : {
"type" : "string"
},
"agentType" : {
"type" : "string",
"enum" : [ "TELEGRAF", "FILEBEAT" ]
},
"renderedContent" : {
"type" : "string"
},
"envoyId" : {
"type" : "string"
}
}
},
"Cpu" : {
"allOf" : [ {
"$ref" : "#/definitions/LocalPlugin"
}, {
"type" : "object",
"properties" : {
"percpu" : {
"type" : "boolean",
"description" : "This is a test"
},
"totalcpu" : {
"type" : "boolean"
},
"collectCpuTime" : {
"type" : "boolean"
},
"reportActive" : {
"type" : "boolean"
}
}
} ]
},
"DetailedMonitorInput" : {
"type" : "object",
"required" : [ "details" ],
"properties" : {
"name" : {
"type" : "string"
},
"labelSelector" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
},
"details" : {
"example" : "\"details\":{ \"type\": \"local|remote\",\"plugin\":{ \"type\":\"cpu\", \"collectCpuTime\": false, \"percpu\": false,\"reportActive\": false, \"totalcpu\": true}}",
"description" : "details",
"$ref" : "#/definitions/MonitorDetails"
}
}
},
"DetailedMonitorOutput" : {
"type" : "object",
"required" : [ "details" ],
"properties" : {
"id" : {
"type" : "string"
},
"name" : {
"type" : "string"
},
"labelSelector" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
},
"details" : {
"example" : "\"details\":{ \"type\": \"local|remote\", \"plugin\":{ \"type\":\"cpu\", \"collectCpuTime\": false, \"percpu\": false, \"reportActive\": false, \"totalcpu\": true} }",
"description" : "details",
"$ref" : "#/definitions/MonitorDetails"
}
}
},
"Disk" : {
"allOf" : [ {
"$ref" : "#/definitions/LocalPlugin"
}, {
"type" : "object",
"properties" : {
"mountPoints" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"ignoreFs" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
}
} ]
},
"DiskIo" : {
"allOf" : [ {
"$ref" : "#/definitions/LocalPlugin"
}, {
"type" : "object",
"properties" : {
"devices" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"skipSerialNumber" : {
"type" : "boolean"
},
"deviceTags" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"nameTemplates" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
}
} ]
},
"LocalMonitorDetails" : {
"allOf" : [ {
"$ref" : "#/definitions/MonitorDetails"
}, {
"type" : "object",
"required" : [ "plugin" ],
"properties" : {
"plugin" : {
"$ref" : "#/definitions/LocalPlugin"
}
}
} ]
},
"LocalPlugin" : {
"type" : "object",
"discriminator" : "type"
},
"Mem" : {
"allOf" : [ {
"$ref" : "#/definitions/LocalPlugin"
}, {
"type" : "object"
} ]
},
"Monitor" : {
"type" : "object",
"required" : [ "agentType", "content", "tenantId" ],
"properties" : {
"id" : {
"type" : "string",
"format" : "uuid"
},
"monitorName" : {
"type" : "string"
},
"labelSelector" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
},
"tenantId" : {
"type" : "string",
"minLength" : 1
},
"content" : {
"type" : "string",
"minLength" : 1
},
"agentType" : {
"type" : "string",
"enum" : [ "TELEGRAF", "FILEBEAT" ]
},
"selectorScope" : {
"type" : "string",
"enum" : [ "ALL_OF", "REMOTE" ]
},
"zones" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
}
},
"MonitorDetails" : {
"type" : "object",
"discriminator" : "type"
},
"Page" : {
"type" : "object",
"properties" : {
"totalPages" : {
"type" : "integer",
"format" : "int32"
},
"totalElements" : {
"type" : "integer",
"format" : "int64"
},
"size" : {
"type" : "integer",
"format" : "int32"
},
"content" : {
"type" : "array",
"items" : {
"type" : "object"
}
},
"number" : {
"type" : "integer",
"format" : "int32"
},
"sort" : {
"$ref" : "#/definitions/Sort"
},
"first" : {
"type" : "boolean"
},
"numberOfElements" : {
"type" : "integer",
"format" : "int32"
},
"last" : {
"type" : "boolean"
},
"pageable" : {
"$ref" : "#/definitions/Pageable"
},
"empty" : {
"type" : "boolean"
}
}
},
"PageDetailedMonitorOutput" : {
"type" : "object",
"properties" : {
"totalPages" : {
"type" : "integer",
"format" : "int32"
},
"totalElements" : {
"type" : "integer",
"format" : "int64"
},
"size" : {
"type" : "integer",
"format" : "int32"
},
"content" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/DetailedMonitorOutput"
}
},
"number" : {
"type" : "integer",
"format" : "int32"
},
"sort" : {
"$ref" : "#/definitions/Sort"
},
"first" : {
"type" : "boolean"
},
"numberOfElements" : {
"type" : "integer",
"format" : "int32"
},
"last" : {
"type" : "boolean"
},
"pageable" : {
"$ref" : "#/definitions/Pageable"
},
"empty" : {
"type" : "boolean"
}
}
},
"Pageable" : {
"type" : "object",
"properties" : {
"offset" : {
"type" : "integer",
"format" : "int64"
},
"sort" : {
"$ref" : "#/definitions/Sort"
},
"paged" : {
"type" : "boolean"
},
"unpaged" : {
"type" : "boolean"
},
"pageNumber" : {
"type" : "integer",
"format" : "int32"
},
"pageSize" : {
"type" : "integer",
"format" : "int32"
}
}
},
"Ping" : {
"allOf" : [ {
"$ref" : "#/definitions/RemotePlugin"
}, {
"type" : "object",
"properties" : {
"urls" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"count" : {
"type" : "integer",
"format" : "int32"
},
"pingInterval" : {
"type" : "integer",
"format" : "int32"
},
"timeout" : {
"type" : "integer",
"format" : "int32"
},
"deadline" : {
"type" : "integer",
"format" : "int32"
},
"interfaceOrAddress" : {
"type" : "string"
}
}
} ]
},
"RemoteMonitorDetails" : {
"allOf" : [ {
"$ref" : "#/definitions/MonitorDetails"
}, {
"type" : "object",
"required" : [ "plugin" ],
"properties" : {
"monitoringZones" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"plugin" : {
"$ref" : "#/definitions/RemotePlugin"
}
}
} ]
},
"RemotePlugin" : {
"type" : "object",
"discriminator" : "type"
},
"Sort" : {
"type" : "object",
"properties" : {
"sorted" : {
"type" : "boolean"
},
"unsorted" : {
"type" : "boolean"
},
"empty" : {
"type" : "boolean"
}
}
},
"SseEmitter" : {
"type" : "object",
"properties" : {
"timeout" : {
"type" : "integer",
"format" : "int64"
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment