{
   "apiVersion":"0.0.1",
   "swaggerVersion":"1.2",
   "basePath":"{{Protocol}}://{{Host}}",
   "resourcePath":"/collectd",
   "produces":[
      "application/json"
   ],
   "apis":[
      {
         "path":"/collectd/{pluginid}",
         "operations":[
            {
               "method":"GET",
               "summary":"Get a collectd value",
               "type":"array",
               "items":{
                  "type":"collectd_value"
               },
               "nickname":"get_collectd",
               "produces":[
                  "application/json"
               ],
               "parameters":[
                  {
                     "name":"pluginid",
                     "description":"The plugin ID",
                     "required":true,
                     "allowMultiple":false,
                     "type":"string",
                     "paramType":"path"
                  },
                  {
                     "name":"instance",
                     "description":"The plugin instance",
                     "required":false,
                     "allowMultiple":false,
                     "type":"string",
                     "paramType":"query"
                  },
                  {
                     "name":"type",
                     "description":"The plugin type",
                     "required":true,
                     "allowMultiple":false,
                     "type":"string",
                     "paramType":"query"
                  },
                  {
                     "name":"type_instance",
                     "description":"The plugin type instance",
                     "required":false,
                     "allowMultiple":false,
                     "type":"string",
                     "paramType":"query"
                  }
               ]
            },
            {
               "method":"POST",
               "summary":"Start reporting on one or more collectd metric",
               "type":"void",
               "nickname":"enable_collectd",
               "produces":[
                  "application/json"
               ],
               "parameters":[
                  {
                     "name":"pluginid",
                     "description":"The plugin ID, describe the component the metric belongs to. Examples are cache and alternator, etc'. Regex are supported.",
                     "required":true,
                     "allowMultiple":false,
                     "type":"string",
                     "paramType":"path"
                  },
                  {
                     "name":"instance",
                     "description":"The plugin instance typically #CPU indicating per CPU metric. Regex are supported. Omit for all",
                     "required":false,
                     "allowMultiple":false,
                     "type":"string",
                     "paramType":"query"
                  },
                  {
                     "name":"type",
                     "description":"The plugin type, the type of the information. Examples are total_operations, bytes, total_operations, etc'. Regex are supported. Omit for all",
                     "required":false,
                     "allowMultiple":false,
                     "type":"string",
                     "paramType":"query"
                  },
                  {
                     "name":"type_instance",
                     "description":"The plugin type instance, the specific metric. Exampls are total_writes, total_size, zones, etc'. Regex are supported, Omit for all",
                     "required":false,
                     "allowMultiple":false,
                     "type":"string",
                     "paramType":"query"
                  },
                  {
                     "name":"enable",
                     "description":"set to true to enable all, anything else or omit to disable",
                     "required":false,
                     "allowMultiple":false,
                     "type":"boolean",
                     "paramType":"query"
                  }
               ]
            }
         ]
      },
      {
         "path":"/collectd/",
         "operations":[
            {
               "method":"GET",
               "summary":"Get a list of all collectd metrics and their status",
               "type":"array",
               "items":{
                  "type":"collectd_metric_status"
               },
               "nickname":"get_collectd_items",
               "produces":[
                  "application/json"
               ],
               "parameters":[
               ]
            },
            {
               "method":"POST",
               "summary":"Enable or disable all collectd metrics",
               "type":"void",
               "nickname":"enable_all_collectd",
               "produces":[
                  "application/json"
               ],
               "parameters":[
                  {
                     "name":"enable",
                     "description":"set to true to enable all, anything else or omit to disable",
                     "required":false,
                     "allowMultiple":false,
                     "type":"boolean",
                     "paramType":"query"
                  }
               ]
            }
         ]
      }
   ],
   "models":{
      "type_instance_id":{
         "id":"type_instance_id",
         "description":"A type instance ID",
         "properties":{
            "plugin":{
               "type":"string",
               "description":"The plugin ID"
            },
            "plugin_instance":{
               "type":"string",
               "description":"The plugin instance"
            },
            "type":{
               "type":"string",
               "description":"The plugin type"
            },
            "type_instance":{
               "type":"string",
               "description":"The plugin type instance"
            }
         }
      },
      "collectd_value":{
         "id":"collectd_value",
         "description":"Holds a collectd value",
         "properties":{
            "values":{
               "description":"An array of values",
               "type":"array",
               "items":{
                  "type":"double"
               }
            }
         }
      },
      "collectd_metric_status":{
         "id":"collectd_metric_status",
         "description":"Holds a collectd id and an enable flag",
         "properties":{
            "id":{
               "description":"The metric ID",
               "type":"type_instance_id"
            },
            "enable":{
               "description":"Is the metric enabled",
               "type":"boolean"
            }
         }
      }
   }
}
