HashMap 模块 REST API

GET /v1/rating/module_config/hashmap/types

返回可用的每种映射类型列表。

返回类型:

list(str)

GET /v1/rating/module_config/hashmap/services

获取服务列表

返回:

每个服务的列表。

返回类型:

ServiceCollection

GET /v1/rating/module_config/hashmap/services/(service_id)

返回一个服务。

参数:
  • service_id (uuid) – 用于筛选的服务 UUID。

返回类型:

服务

POST /v1/rating/module_config/hashmap/services

创建 hashmap 服务。

参数:
  • service_data (Service) – 要创建的服务的信息。

返回类型:

服务

DELETE /v1/rating/module_config/hashmap/services

删除服务及其所有子键(递归)。

参数:
  • service_id (uuid) – 要删除的服务 UUID。

type Service

描述服务的类型。

服务直接映射到使用键,收集的服务。

数据示例

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

服务名称。

service_id

服务的 UUID。

type ServiceCollection

描述服务列表的类型。

数据示例

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

服务列表。

GET /v1/rating/module_config/hashmap/fields

获取字段列表。

参数:
  • service_id (uuid) – 用于筛选的服务 UUID。

返回:

所有字段的列表。

返回类型:

FieldCollection

GET /v1/rating/module_config/hashmap/fields/(field_id)

返回一个字段。

参数:
  • field_id (uuid) – 用于筛选的字段 UUID。

返回类型:

Field

POST /v1/rating/module_config/hashmap/fields

创建一个字段。

参数:
  • field_data (Field) – 要创建的字段的信息。

返回类型:

Field

DELETE /v1/rating/module_config/hashmap/fields

删除字段及其所有子键(递归)。

参数:
  • field_id (uuid) – 要删除的字段 UUID。

type Field

描述字段的类型。

字段映射 CloudKitty 数据 ‘desc’ 字典中的一个值。它用于映射元数据的名称。

数据示例

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。

name

字段的名称。

service_id

父服务的 UUID。

type FieldCollection

描述字段列表的类型。

数据示例

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

字段列表。

GET /v1/rating/module_config/hashmap/mappings

获取映射列表

参数:
  • service_id (uuid) – 用于筛选的服务 UUID。

  • field_id (uuid) – 用于筛选的字段 UUID。

  • group_id (uuid) – 用于筛选的组 UUID。

  • no_group (bool) – 筛选孤立映射。

  • tenant_id (uuid) – 用于筛选的租户 UUID。

  • filter_tenant (bool) – 显式筛选租户(默认情况下不筛选租户)。如果希望筛选租户为 None,则很有用。

  • deleted (bool) – 显示已删除的映射。

  • start (datetime) – 映射开始时间晚于该日期。

  • end (datetime) – 映射结束时间早于该日期。

  • updated_by (str) – 用于筛选的用户 uuid。

  • created_by (str) – 用于筛选的用户 uuid。

  • deleted_by (str) – 用于筛选的用户 uuid。

  • description (str) – 描述中包含该文本的映射。

  • is_active (bool) – 仅活动映射。

参数:

all: 列出所有规则。

返回:

所有映射的列表。

返回类型:

MappingCollection

GET /v1/rating/module_config/hashmap/mappings/(mapping_id)

返回一个映射。

参数:
  • mapping_id (uuid) – 用于筛选的映射 UUID。

返回类型:

Mapping

POST /v1/rating/module_config/hashmap/mappings

创建一个映射。

参数:
  • force (bool) – 允许过去开始和结束时间。

  • mapping_data (Mapping) – 要创建的映射的信息。

返回类型:

Mapping

PUT /v1/rating/module_config/hashmap/mappings

更新一个映射。

参数:
  • mapping_id (uuid) – 要更新的映射 UUID。

  • mapping (Mapping) – 要插入的映射数据。

DELETE /v1/rating/module_config/hashmap/mappings

删除一个映射。

参数:
  • mapping_id (uuid) – 要删除的映射 UUID。

GET /v1/rating/module_config/hashmap/mappings/group

获取附加到映射的组。

参数:
  • mapping_id (uuid) – 用于筛选的映射 UUID。

返回类型:

Group

type Mapping

描述映射的类型。

映射用于根据值应用评级规则,如果父级是字段,则检查元数据的值。如果它是服务,则直接将费率应用于卷。

数据示例

Json
{
    "created_at": "2023-01-01T10:10:10",
    "created_by": "7977999e2e2511e6a8b2df30b233ffcb",
    "deleted": "2023-01-15T00:00:00",
    "deleted_by": "7977999e2e2511e6a8b2df30b233ffcb",
    "description": "description",
    "end": "2023-03-01T00:00:00",
    "name": "rule 1",
    "start": "2023-02-01T00:00:00",
    "tenant_id": null,
    "type": "flat",
    "updated_by": "7977999e2e2511e6a8b2df30b233ffcb",
    "value": ""
}
XML
b'<value>\n  <value />\n  <type>flat</type>\n  <tenant_id nil="true" />\n  <created_at>2023-01-01T10:10:10</created_at>\n  <start>2023-02-01T00:00:00</start>\n  <end>2023-03-01 00:00:00</end>\n  <name>rule 1</name>\n  <description>description</description>\n  <deleted>2023-01-15T00:00:00</deleted>\n  <created_by>7977999e2e2511e6a8b2df30b233ffcb</created_by>\n  <updated_by>7977999e2e2511e6a8b2df30b233ffcb</updated_by>\n  <deleted_by>7977999e2e2511e6a8b2df30b233ffcb</deleted_by>\n</value>'
cost

映射的值。

created_at

创建规则的日期。

created_by

创建规则的用户的 ID。

deleted

删除规则的日期。

deleted_by

删除规则的用户的 ID。

description

规则的描述。

end

必须为 None 或未来的日期。要设置过去的日期,请在 POST 查询中使用 force 参数。

field_id

字段的 UUID。

group_id

hashmap 组的 UUID。

map_type

映射的类型。

mapping_id

映射的 UUID。

name

规则的名称。

service_id

服务的 UUID。

start

必须为 None 或未来的日期。要设置过去的日期,请在 POST 查询中使用 force 参数。

tenant_id

hashmap 租户的 ID。

updated_by

最后更新规则的用户的 ID。

value

映射的键。

type MappingCollection

描述映射列表的类型。

数据示例

Json
{
    "mappings": [
        {
            "created_at": "2023-01-01T10:10:10",
            "created_by": "7977999e2e2511e6a8b2df30b233ffcb",
            "deleted": "2023-01-15T00:00:00",
            "deleted_by": "7977999e2e2511e6a8b2df30b233ffcb",
            "description": "description",
            "end": "2023-03-01T00:00:00",
            "name": "rule 1",
            "start": "2023-02-01T00:00:00",
            "tenant_id": null,
            "type": "flat",
            "updated_by": "7977999e2e2511e6a8b2df30b233ffcb",
            "value": ""
        }
    ]
}
XML
b'<value>\n  <mappings>\n    <item>\n      <value />\n      <type>flat</type>\n      <tenant_id nil="true" />\n      <created_at>2023-01-01T10:10:10</created_at>\n      <start>2023-02-01T00:00:00</start>\n      <end>2023-03-01 00:00:00</end>\n      <name>rule 1</name>\n      <description>description</description>\n      <deleted>2023-01-15T00:00:00</deleted>\n      <created_by>7977999e2e2511e6a8b2df30b233ffcb</created_by>\n      <updated_by>7977999e2e2511e6a8b2df30b233ffcb</updated_by>\n      <deleted_by>7977999e2e2511e6a8b2df30b233ffcb</deleted_by>\n    </item>\n  </mappings>\n</value>'
mappings

映射列表。

type Threshold

描述阈值的类型。

阈值用于根据级别应用评级规则,如果父级是字段,则将级别检查与元数据进行比较。如果它是服务,则它是检查资源数量。

数据示例

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

阈值的值。

field_id

字段的 UUID。

group_id

hashmap 组的 UUID。

level

阈值的级别。

map_type

阈值的类型。

service_id

服务的 UUID。

tenant_id

hashmap 租户的 ID。

threshold_id

阈值的 UUID。

type ThresholdCollection

描述映射列表的类型。

数据示例

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

阈值列表。

GET /v1/rating/module_config/hashmap/groups

获取组列表

返回:

所有组的列表。

返回类型:

GroupCollection

GET /v1/rating/module_config/hashmap/groups/(group_id)

返回一个组。

参数:
  • group_id (uuid) – 用于筛选的组 UUID。

返回类型:

Group

POST /v1/rating/module_config/hashmap/groups

创建一个组。

参数:
  • group_data (Group) – 要创建的组的信息。

返回类型:

Group

DELETE /v1/rating/module_config/hashmap/groups

删除一个组。

参数:
  • group_id (uuid) – 要删除的组的 UUID。

  • recursive (bool) – 递归删除映射。

GET /v1/rating/module_config/hashmap/groups/mappings

获取附加到该组的映射。

参数:
  • group_id (uuid) – 用于筛选的组 UUID。

返回类型:

MappingCollection

GET /v1/rating/module_config/hashmap/groups/thresholds

获取附加到该组的阈值。

参数:
  • group_id (uuid) – 用于筛选的组 UUID。

返回类型:

ThresholdCollection

type Group

描述一个组的类型。

组用于划分计算。它可以用于为实例评级(flavor)创建一个组,以及在有高级镜像(image_id)时创建一个组。因此,您可以在评级过程中考虑多个参数。

数据示例

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。

name

组的名称。

type GroupCollection

描述组列表的类型。

数据示例

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

组列表。