CloudKitty REST API (v1)¶
Collector¶
-
GET
/v1/collector
¶ Unused function, hack to let pecan route requests to subcontrollers.
-
GET
/v1/collector/mappings
¶ Return the list of every services mapped to a collector.
Parameters: - collector (
unicode
) – Filter on the collector name.
Return: Service to collector mappings collection.
Return type: - collector (
-
GET
/v1/collector/mappings/
(service)¶ Return a service to collector mapping.
Parameters: - service (
unicode
) – Name of the service to filter on.
Return type: - service (
-
POST
/v1/collector/mappings
¶ Create a service to collector mapping.
Parameters: - collector (
unicode
) – Name of the collector to apply mapping on. - service (
unicode
) – Name of the service to apply mapping on.
Return type: - collector (
-
DELETE
/v1/collector/mappings
¶ Delete a service to collector mapping.
Parameters: - service (
unicode
) – Name of the service to filter on.
- service (
-
GET
/v1/collector/states
¶ Query the enable state of a collector.
Parameters: - name (
unicode
) – Name of the collector.
Return: State of the collector.
Return type: - name (
-
PUT
/v1/collector/states
¶ Set the enable state of a collector.
Parameters: - name (
unicode
) – Name of the collector. - infos (
CollectorInfos
) – New state informations of the collector.
Return: State of the collector.
Return type: - name (
-
type
CollectorInfos
¶ Type describing a collector module.
Data samples:
- Json
{ "enabled": true, "name": "ceilometer" }
- XML
<value> <name>ceilometer</name> <enabled>true</enabled> </value>
-
enabled
¶ Type: bool State of the collector.
-
name
¶ Type: unicode Name of the collector.
-
type
ServiceToCollectorMapping
¶ Type describing a service to collector mapping.
Data samples:
- Json
{ "collector": "ceilometer", "service": "compute" }
- XML
<value> <service>compute</service> <collector>ceilometer</collector> </value>
-
collector
¶ Type: unicode Name of the collector.
-
service
¶ Type: unicode Name of the service.
-
type
ServiceToCollectorMappingCollection
¶ Type describing a service to collector mapping collection.
Data samples:
- Json
{ "mappings": [ { "collector": "ceilometer", "service": "compute" } ] }
- XML
<value> <mappings> <item> <service>compute</service> <collector>ceilometer</collector> </item> </mappings> </value>
-
mappings
¶ Type: list(ServiceToCollectorMapping) List of service to collector mappings.
Info¶
-
GET
/v1/info/config
¶ Return current configuration.
Return type: dict( str
:None
)
-
GET
/v1/info/services
¶ Get the service list.
Return: List of every services. Return type: CloudkittyServiceInfoCollection
-
GET
/v1/info/services/
(service_name)¶ Return a service.
Parameters: - service_name (
unicode
) – name of the service.
Return type: - service_name (
-
type
CloudkittyServiceInfo
¶ Type describing a service info in CloudKitty.
Data samples:
- Json
{ "metadata": [ "resource_id", "flavor", "availability_zone" ], "service_id": "compute", "unit": "instance" }
- XML
<value> <service_id>compute</service_id> <metadata> <item>resource_id</item> <item>flavor</item> <item>availability_zone</item> </metadata> <unit>instance</unit> </value>
-
metadata
¶ Type: list(unicode) List of service metadata
-
service_id
¶ Type: Enum(compute, image, volume, network.bw.in, network.bw.out, network.floating) Name of the service.
-
unit
¶ Type: unicode service unit
-
type
CloudkittyServiceInfoCollection
¶ A list of CloudKittyServiceInfo.
Data samples:
- Json
{ "services": [ { "metadata": [ "resource_id", "flavor", "availability_zone" ], "service_id": "compute", "unit": "instance" } ] }
- XML
<value> <services> <item> <service_id>compute</service_id> <metadata> <item>resource_id</item> <item>flavor</item> <item>availability_zone</item> </metadata> <unit>instance</unit> </item> </services> </value>
Rating¶
-
GET
/v1/rating/modules
¶ return the list of loaded modules.
Return: name of every loaded modules. Return type: CloudkittyModuleCollection
-
GET
/v1/rating/modules/
(module_id)¶ return a module
Return: CloudKittyModule Return type: CloudkittyModule
-
PUT
/v1/rating/modules
¶ Change the state and priority of a module.
Parameters: - module_id (
unicode
) – name of the module to modify - module (
CloudkittyModule
) – CloudKittyModule object describing the new desired state
Return type: - module_id (
-
POST
/v1/rating/quote
¶ Get an instant quote based on multiple resource descriptions.
Parameters: - res_data (
CloudkittyResourceCollection
) – List of resource descriptions.
Return: Total price for these descriptions.
Return type: float
- res_data (
-
GET
/v1/rating/reload_modules
¶ Trigger a rating module list reload.
-
type
CloudkittyModule
¶ A rating extension summary
Data samples:
- Json
{ "description": "Sample extension.", "enabled": true, "hot-config": false, "priority": 2 }
- XML
<value> <description>Sample extension.</description> <enabled>true</enabled> <hot-config>false</hot-config> <priority>2</priority> </value>
-
description
¶ Type: unicode Short description of the extension.
-
enabled
¶ Type: bool Extension status.
-
hot_config
¶ Type: bool On-the-fly configuration support.
-
module_id
¶ Type: unicode Name of the extension.
-
priority
¶ Type: int Priority of the extension.
-
type
CloudkittyModuleCollection
¶ A list of rating extensions.
Data samples:
- Json
{}
- XML
<value />
-
type
CloudkittyResource
¶ Type describing a resource in CloudKitty.
Data samples:
- Json
{ "desc": { "image_id": "a41fba37-2429-4f15-aa00-b5bc4bf557bf" }, "service": "compute", "volume": "1" }
- XML
<value> <service>compute</service> <desc> <item> <key>image_id</key> <value>a41fba37-2429-4f15-aa00-b5bc4bf557bf</value> </item> </desc> <volume>1</volume> </value>
-
desc
¶ Type: dict(unicode: None) Description of the resources parameters.
-
service
¶ Type: Enum(compute, image, volume, network.bw.in, network.bw.out, network.floating) Name of the service.
-
volume
¶ Type: Decimal Volume of resources.
-
type
CloudkittyResourceCollection
¶ A list of CloudKittyResources.
Data samples:
- Json
{}
- XML
<value />
Report¶
-
GET
/v1/report/summary
¶ Return the summary to pay for a given period.
Return type: SummaryCollectionModel
-
GET
/v1/report/tenants
¶ Return the list of rated tenants.
Return type: list( unicode
)
-
GET
/v1/report/total
¶ Return the amount to pay for a given period.
Return type: Decimal
Storage¶
-
GET
/v1/storage/dataframes
¶ Return a list of rated resources for a time period and a tenant.
Parameters: - begin (
datetime
) – Start of the period - end (
datetime
) – End of the period - tenant_id (
unicode
) – UUID of the tenant to filter on. - resource_type (
unicode
) – Type of the resource to filter on.
Return: Collection of DataFrame objects.
Return type: - begin (
-
type
RatedResource
¶ Represents a rated CloudKitty resource.
Data samples:
- Json
{ "desc": { "flavor": "m1.tiny", "vcpus": "1" }, "rating": "1.0", "service": "compute", "volume": "1.0" }
- XML
<value> <rating>1.0</rating> <service>compute</service> <desc> <item> <key>flavor</key> <value>m1.tiny</value> </item> <item> <key>vcpus</key> <value>1</value> </item> </desc> <volume>1.0</volume> </value>
-
type
DataFrame
¶ Type describing a stored data frame.
Data samples:
- Json
{ "begin": "2015-04-22T07:00:00", "end": "2015-04-22T08:00:00", "resources": [ { "desc": { "flavor": "m1.tiny", "vcpus": "1" }, "rating": "1.0", "service": "compute", "volume": "1.0" } ], "tenant_id": "69d12143688f413cbf5c3cfe03ed0a12" }
- XML
<value> <begin>2015-04-22T07:00:00</begin> <end>2015-04-22T08:00:00</end> <tenant_id>69d12143688f413cbf5c3cfe03ed0a12</tenant_id> <resources> <item> <rating>1.0</rating> <service>compute</service> <desc> <item> <key>flavor</key> <value>m1.tiny</value> </item> <item> <key>vcpus</key> <value>1</value> </item> </desc> <volume>1.0</volume> </item> </resources> </value>
-
begin
¶ Type: datetime Begin date for the sample.
-
end
¶ Type: datetime End date for the sample.
-
resources
¶ Type: list(RatedResource) A resource list.
-
tenant_id
¶ Type: unicode Tenant owner of the sample.
-
type
DataFrameCollection
¶ A list of stored data frames.
Data samples:
- Json
{ "dataframes": [ { "begin": "2015-04-22T07:00:00", "end": "2015-04-22T08:00:00", "resources": [ { "desc": { "flavor": "m1.tiny", "vcpus": "1" }, "rating": "1.0", "service": "compute", "volume": "1.0" } ], "tenant_id": "69d12143688f413cbf5c3cfe03ed0a12" } ] }
- XML
<value> <dataframes> <item> <begin>2015-04-22T07:00:00</begin> <end>2015-04-22T08:00:00</end> <tenant_id>69d12143688f413cbf5c3cfe03ed0a12</tenant_id> <resources> <item> <rating>1.0</rating> <service>compute</service> <desc> <item> <key>flavor</key> <value>m1.tiny</value> </item> <item> <key>vcpus</key> <value>1</value> </item> </desc> <volume>1.0</volume> </item> </resources> </item> </dataframes> </value>