HashMap Module REST API¶
- GET /v1/rating/module_config/hashmap/types¶
- Return the list of every mapping type available. - Return type
- list( - str)
 
- GET /v1/rating/module_config/hashmap/services¶
- Get the service list - Return
- List of every services. 
- Return type
 
- GET /v1/rating/module_config/hashmap/services/(service_id)¶
- Return a service. - Parameters
- service_id ( - uuid) – UUID of the service to filter on.
 
- Return type
 
- POST /v1/rating/module_config/hashmap/services¶
- Create hashmap service. 
- DELETE /v1/rating/module_config/hashmap/services¶
- Delete the service and all the sub keys recursively. - Parameters
- service_id ( - uuid) – UUID of the service to delete.
 
 
- type Service¶
- Type describing a service. - A service is directly mapped to the usage key, the collected service. - Data samples: - Json
- { "name": "compute", "service_id": "a733d0e1-1ec9-4800-8df8-671e4affd017" } 
- XML
- b'<value>\n <service_id>a733d0e1-1ec9-4800-8df8-671e4affd017</service_id>\n <name>compute</name>\n</value>' 
 - name¶
- Name of the service. 
 - service_id¶
- UUID of the service. 
 
- type ServiceCollection¶
- Type describing a list of services. - Data samples: - Json
- { "services": [ { "name": "compute", "service_id": "a733d0e1-1ec9-4800-8df8-671e4affd017" } ] } 
- XML
- b'<value>\n <services>\n <item>\n <service_id>a733d0e1-1ec9-4800-8df8-671e4affd017</service_id>\n <name>compute</name>\n </item>\n </services>\n</value>' 
 - services¶
- List of services. 
 
- GET /v1/rating/module_config/hashmap/fields¶
- Get the field list. - Parameters
- service_id ( - uuid) – Service’s UUID to filter on.
 
- Return
- List of every fields. 
- Return type
 
- GET /v1/rating/module_config/hashmap/fields/(field_id)¶
- Return a field. - Parameters
- field_id ( - uuid) – UUID of the field to filter on.
 
- Return type
 
- POST /v1/rating/module_config/hashmap/fields¶
- Create a field. 
- DELETE /v1/rating/module_config/hashmap/fields¶
- Delete the field and all the sub keys recursively. - Parameters
- field_id ( - uuid) – UUID of the field to delete.
 
 
- type Field¶
- Type describing a field. - A field is mapping a value of the ‘desc’ dict of the CloudKitty data. It’s used to map the name of a metadata. - Data samples: - Json
- { "field_id": "ac55b000-a05b-4832-b2ff-265a034886ab", "name": "image_id", "service_id": "a733d0e1-1ec9-4800-8df8-671e4affd017" } 
- XML
- b'<value>\n <field_id>ac55b000-a05b-4832-b2ff-265a034886ab</field_id>\n <name>image_id</name>\n <service_id>a733d0e1-1ec9-4800-8df8-671e4affd017</service_id>\n</value>' 
 - field_id¶
- UUID of the field. 
 - name¶
- Name of the field. 
 - service_id¶
- UUID of the parent service. 
 
- type FieldCollection¶
- Type describing a list of fields. - Data samples: - Json
- { "fields": [ { "field_id": "ac55b000-a05b-4832-b2ff-265a034886ab", "name": "image_id", "service_id": "a733d0e1-1ec9-4800-8df8-671e4affd017" } ] } 
- XML
- b'<value>\n <fields>\n <item>\n <field_id>ac55b000-a05b-4832-b2ff-265a034886ab</field_id>\n <name>image_id</name>\n <service_id>a733d0e1-1ec9-4800-8df8-671e4affd017</service_id>\n </item>\n </fields>\n</value>' 
 - fields¶
- List of fields. 
 
- GET /v1/rating/module_config/hashmap/mappings¶
- Get the mapping list - Parameters
- service_id ( - uuid) – Service UUID to filter on.
- field_id ( - uuid) – Field UUID to filter on.
- group_id ( - uuid) – Group UUID to filter on.
- no_group ( - bool) – Filter on orphaned mappings.
- tenant_id ( - uuid) – Tenant UUID to filter on.
- filter_tenant ( - bool) – Explicitly filter on tenant (default is to not filter on tenant). Useful if you want to filter on tenant being None.
 
- Return
- List of every mappings. 
- Return type
 
- GET /v1/rating/module_config/hashmap/mappings/(mapping_id)¶
- Return a mapping. - Parameters
- mapping_id ( - uuid) – UUID of the mapping to filter on.
 
- Return type
 
- POST /v1/rating/module_config/hashmap/mappings¶
- Create a mapping. 
- PUT /v1/rating/module_config/hashmap/mappings¶
- Update a mapping. - Parameters
- mapping_id ( - uuid) – UUID of the mapping to update.
- mapping ( - Mapping) – Mapping data to insert.
 
 
- DELETE /v1/rating/module_config/hashmap/mappings¶
- Delete a mapping. - Parameters
- mapping_id ( - uuid) – UUID of the mapping to delete.
 
 
- GET /v1/rating/module_config/hashmap/mappings/group¶
- Get the group attached to the mapping. - Parameters
- mapping_id ( - uuid) – UUID of the mapping to filter on.
 
- Return type
 
- type Mapping¶
- Type describing a Mapping. - A mapping is used to apply rating rules based on a value, if the parent is a field then it’s check the value of a metadata. If it’s a service then it directly apply the rate to the volume. - Data samples: - Json
- { "cost": "4.2", "field_id": "ac55b000-a05b-4832-b2ff-265a034886ab", "mapping_id": "39dbd39d-f663-4444-a795-fb19d81af136", "tenant_id": "7977999e-2e25-11e6-a8b2-df30b233ffcb", "type": "flat", "value": "m1.micro" } 
- XML
- b'<value>\n <mapping_id>39dbd39d-f663-4444-a795-fb19d81af136</mapping_id>\n <value>m1.micro</value>\n <type>flat</type>\n <cost>4.2</cost>\n <field_id>ac55b000-a05b-4832-b2ff-265a034886ab</field_id>\n <tenant_id>7977999e-2e25-11e6-a8b2-df30b233ffcb</tenant_id>\n</value>' 
 - cost¶
- Value of the mapping. 
 - field_id¶
- UUID of the field. 
 - group_id¶
- UUID of the hashmap group. 
 - map_type¶
- Type of the mapping. 
 - mapping_id¶
- UUID of the mapping. 
 - service_id¶
- UUID of the service. 
 - tenant_id¶
- ID of the hashmap tenant. 
 - value¶
- Key of the mapping. 
 
- type MappingCollection¶
- Type describing a list of mappings. - Data samples: - Json
- { "mappings": [ { "cost": "4.2", "field_id": "ac55b000-a05b-4832-b2ff-265a034886ab", "mapping_id": "39dbd39d-f663-4444-a795-fb19d81af136", "tenant_id": "7977999e-2e25-11e6-a8b2-df30b233ffcb", "type": "flat", "value": "m1.micro" } ] } 
- XML
- b'<value>\n <mappings>\n <item>\n <mapping_id>39dbd39d-f663-4444-a795-fb19d81af136</mapping_id>\n <value>m1.micro</value>\n <type>flat</type>\n <cost>4.2</cost>\n <field_id>ac55b000-a05b-4832-b2ff-265a034886ab</field_id>\n <tenant_id>7977999e-2e25-11e6-a8b2-df30b233ffcb</tenant_id>\n </item>\n </mappings>\n</value>' 
 - mappings¶
- List of mappings. 
 
- type Threshold¶
- Type describing a Threshold. - A threshold is used to apply rating rules based on a level, if the parent is a field then the level is checked against a metadata. If it’s a service then it’s the quantity of the resource that is checked. - Data samples: - Json
- { "cost": "4.2", "field_id": "ac55b000-a05b-4832-b2ff-265a034886ab", "level": "1024", "tenant_id": "7977999e-2e25-11e6-a8b2-df30b233ffcb", "threshold_id": "39dbd39d-f663-4444-a795-fb19d81af136", "type": "flat" } 
- XML
- b'<value>\n <threshold_id>39dbd39d-f663-4444-a795-fb19d81af136</threshold_id>\n <level>1024</level>\n <type>flat</type>\n <cost>4.2</cost>\n <field_id>ac55b000-a05b-4832-b2ff-265a034886ab</field_id>\n <tenant_id>7977999e-2e25-11e6-a8b2-df30b233ffcb</tenant_id>\n</value>' 
 - cost¶
- Value of the threshold. 
 - field_id¶
- UUID of the field. 
 - group_id¶
- UUID of the hashmap group. 
 - level¶
- Level of the threshold. 
 - map_type¶
- Type of the threshold. 
 - service_id¶
- UUID of the service. 
 - tenant_id¶
- ID of the hashmap tenant. 
 - threshold_id¶
- UUID of the threshold. 
 
- type ThresholdCollection¶
- Type describing a list of mappings. - Data samples: - Json
- { "thresholds": [ { "cost": "4.2", "field_id": "ac55b000-a05b-4832-b2ff-265a034886ab", "level": "1024", "tenant_id": "7977999e-2e25-11e6-a8b2-df30b233ffcb", "threshold_id": "39dbd39d-f663-4444-a795-fb19d81af136", "type": "flat" } ] } 
- XML
- b'<value>\n <thresholds>\n <item>\n <threshold_id>39dbd39d-f663-4444-a795-fb19d81af136</threshold_id>\n <level>1024</level>\n <type>flat</type>\n <cost>4.2</cost>\n <field_id>ac55b000-a05b-4832-b2ff-265a034886ab</field_id>\n <tenant_id>7977999e-2e25-11e6-a8b2-df30b233ffcb</tenant_id>\n </item>\n </thresholds>\n</value>' 
 - thresholds¶
- List of thresholds. 
 
- GET /v1/rating/module_config/hashmap/groups¶
- Get the group list - Return
- List of every group. 
- Return type
 
- GET /v1/rating/module_config/hashmap/groups/(group_id)¶
- Return a group. - Parameters
- group_id ( - uuid) – UUID of the group to filter on.
 
- Return type
 
- POST /v1/rating/module_config/hashmap/groups¶
- Create a group. 
- DELETE /v1/rating/module_config/hashmap/groups¶
- Delete a group. - Parameters
- group_id ( - uuid) – UUID of the group to delete.
- recursive ( - bool) – Delete mappings recursively.
 
 
- GET /v1/rating/module_config/hashmap/groups/mappings¶
- Get the mappings attached to the group. - Parameters
- group_id ( - uuid) – UUID of the group to filter on.
 
- Return type
 
- GET /v1/rating/module_config/hashmap/groups/thresholds¶
- Get the thresholds attached to the group. - Parameters
- group_id ( - uuid) – UUID of the group to filter on.
 
- Return type
 
- type Group¶
- Type describing a group. - A group is used to divide calculations. It can be used to create a group for the instance rating (flavor) and one if we have premium images (image_id). So you can take into account multiple parameters during the rating. - Data samples: - Json
- { "group_id": "afe898cb-86d8-4557-ad67-f4f01891bbee", "name": "instance_rating" } 
- XML
- b'<value>\n <group_id>afe898cb-86d8-4557-ad67-f4f01891bbee</group_id>\n <name>instance_rating</name>\n</value>' 
 - group_id¶
- UUID of the group. 
 - name¶
- Name of the group. 
 
- type GroupCollection¶
- Type describing a list of groups. - Data samples: - Json
- { "groups": [ { "group_id": "afe898cb-86d8-4557-ad67-f4f01891bbee", "name": "instance_rating" } ] } 
- XML
- b'<value>\n <groups>\n <item>\n <group_id>afe898cb-86d8-4557-ad67-f4f01891bbee</group_id>\n <name>instance_rating</name>\n </item>\n </groups>\n</value>' 
 - groups¶
- List of groups. 
 
