From 3b9ddd0f8f285b9cb41babd4aa3d8d4b813246ff Mon Sep 17 00:00:00 2001 From: ping <1017253325@qq.com> Date: Mon, 20 Oct 2025 16:05:18 +0800 Subject: [PATCH 1/6] update --- b/bz_order/getbz_order.dspy | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/b/bz_order/getbz_order.dspy b/b/bz_order/getbz_order.dspy index e2bb4bd..9d9ab0f 100644 --- a/b/bz_order/getbz_order.dspy +++ b/b/bz_order/getbz_order.dspy @@ -47,6 +47,39 @@ async def getbz_order(ns={}): AND bo.customerid = ${customerid}$ """ + # # 统计全部 累计支付金额和累计优惠金额 不包含各种筛选条件 + # # 累计支付金额=BUY+RENEW-BUY_REVERSE实际支付金额 累计优惠金额=BUY+RENEW-BUY_REVERSE优惠金额 + # total_amount_sql = """ + # SELECT + # COALESCE(SUM( + # CASE + # WHEN bo.business_op IN ('BUY', 'RENEW') THEN og.amount + # WHEN bo.business_op = 'BUY_REVERSE' THEN -og.amount + # ELSE 0 + # END + # ), 0) AS total_paid_amount, + # COALESCE(SUM( + # CASE + # WHEN bo.business_op IN ('BUY', 'RENEW') THEN (og.list_price * og.quantity - og.amount) + # WHEN bo.business_op = 'BUY_REVERSE' THEN -(og.list_price * og.quantity - og.amount) + # ELSE 0 + # END + # ), 0) AS total_discount_amount + # FROM order_goods og + # JOIN bz_order bo ON og.orderid = bo.id + # WHERE og.del_flg = '0' + # AND bo.del_flg = '0' + # AND bo.customerid = ${customerid}$ + # """ + # total_amount_result = await sor.sqlExe(total_amount_sql, {'customerid': customerid}) + # total_paid_amount = float(total_amount_result[0]['total_paid_amount']) if total_amount_result else 0.0 + # total_discount_amount = float(total_amount_result[0]['total_discount_amount']) if total_amount_result else 0.0 + # # 将累计支付金额和累计优惠金额添加到返回结果中 + # ns['total_paid_amount'] = total_paid_amount + # ns['total_discount_amount'] = total_discount_amount + # ns['total_count'] = total_count[0]['total_count'] if total_count else 0 + + # 根据订单号搜索 if ns.get('id'): sql += " AND bo.id LIKE ${order_id}$" From 129612605a3c98e106a0946bb6a6203d794f57cf Mon Sep 17 00:00:00 2001 From: yumoqing Date: Mon, 20 Oct 2025 17:05:21 +0800 Subject: [PATCH 2/6] bugfix --- conf/config.dev.json | 4 +++- conf/config.ncmatch.json | 3 ++- conf/config.prod.json | 3 ++- conf/config.test.json | 3 ++- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/conf/config.dev.json b/conf/config.dev.json index 16f678d..9829117 100644 --- a/conf/config.dev.json +++ b/conf/config.dev.json @@ -1,4 +1,5 @@ { + "password_key":"!@#$%^&*(*&^%$QWERTYUIqwertyui234567", "definitions":{ "search_model":"qwen2:7b", "search_url":"https://sage.opencomputing.cn/ollama/api/chat", @@ -34,7 +35,8 @@ "kwargs":{ "user":"kboss", "db":"kboss_dev", - "password":"QUZVcXg5V1p1STMybG5Ia7aQ6Dpt7Okh", + "passwordllll":"QUZVcXg5V1p1STMybG5Ia7aQ6Dpt7Okh", + "password":"NW6y8juHLagO2FUPzQmBSw==", "host":"db" } } diff --git a/conf/config.ncmatch.json b/conf/config.ncmatch.json index 61fa0d9..ecc7b07 100644 --- a/conf/config.ncmatch.json +++ b/conf/config.ncmatch.json @@ -1,4 +1,5 @@ { + "password_key":"!@#$%^&*(*&^%$QWERTYUIqwertyui234567", "definitions":{ "search_model":"qwen2:7b", "search_url":"https://sage.opencomputing.cn/ollama/api/chat", @@ -34,7 +35,7 @@ "kwargs":{ "user":"kboss", "db":"kboss_ncmatch", - "password":"QUZVcXg5V1p1STMybG5Ia7aQ6Dpt7Okh", + "password":"NW6y8juHLagO2FUPzQmBSw==", "host":"localhost" } } diff --git a/conf/config.prod.json b/conf/config.prod.json index 218f98a..bb5fa71 100644 --- a/conf/config.prod.json +++ b/conf/config.prod.json @@ -1,4 +1,5 @@ { + "password_key":"!@#$%^&*(*&^%$QWERTYUIqwertyui234567", "definitions":{ "search_model":"qwen2:7b", "search_url":"https://sage.opencomputing.cn/ollama/api/chat", @@ -30,7 +31,7 @@ "kwargs":{ "user":"kboss", "db":"kboss_prod", - "password":"QUZVcXg5V1p1STMybG5Ia7aQ6Dpt7Okh", + "password":"NW6y8juHLagO2FUPzQmBSw==", "host":"db" } } diff --git a/conf/config.test.json b/conf/config.test.json index a7f2925..be7408c 100644 --- a/conf/config.test.json +++ b/conf/config.test.json @@ -1,4 +1,5 @@ { + "password_key":"!@#$%^&*(*&^%$QWERTYUIqwertyui234567", "definitions":{ "search_model":"qwen2:7b", "search_url":"https://sage.opencomputing.cn/ollama/api/chat", @@ -30,7 +31,7 @@ "kwargs":{ "user":"kboss", "db":"kboss_test", - "password":"QUZVcXg5V1p1STMybG5Ia7aQ6Dpt7Okh", + "password":"NW6y8juHLagO2FUPzQmBSw==", "host":"db" } } From a1f2d2d2ade1fcd583ceb784310c54422bcef93a Mon Sep 17 00:00:00 2001 From: ping <1017253325@qq.com> Date: Mon, 20 Oct 2025 17:06:04 +0800 Subject: [PATCH 3/6] update --- b/promoting/getpromoting.dspy | 49 ++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/b/promoting/getpromoting.dspy b/b/promoting/getpromoting.dspy index 2db44e8..6b942f6 100644 --- a/b/promoting/getpromoting.dspy +++ b/b/promoting/getpromoting.dspy @@ -2,32 +2,33 @@ async def getpromoting(ns): """促销展示""" db = DBPools() async with db.sqlorContext('kboss') as sor: - if ns: + # if ns: # 生成邀请码展示促销活动 - users_id = await get_user() - if ns.get('type'): - ns['sort'] = 'create_at desc' + users_id = await get_user() + if ns.get('type'): + ns['sort'] = 'create_at desc' - orgid = await sor.R('users', {'id': users_id}) - ns['orgid'] = orgid[0]['orgid'] - # reacs = await sor.R('promoting', ns) - dates = datetime.datetime.now() - promoting = """select * from promoting where del_flg = 0 and orgid = ${orgid}$ and end_date > ${dates}$ order by create_at desc""" - reacs = await sor.sqlExe(promoting, {'orgid': ns['orgid'],'dates':dates}) - date = await get_business_date(sor=None) - listdata = [] - for i in reacs: - if i['end_date'] > date: - listdata.append(i) - return {'status': True, 'data': listdata} - else: - ns['del_flg'] = '0' - ns['sort'] = 'create_at desc' - orgid = await sor.R('users', {'id': users_id}) - ns['orgid'] = orgid[0]['orgid'] - reacs = await sor.R('promoting', ns) - return {'status': True, 'data': reacs} - return {'status': False, 'msg': '参数不正确'} + orgid = await sor.R('users', {'id': users_id}) + ns['orgid'] = orgid[0]['orgid'] + # reacs = await sor.R('promoting', ns) + dates = datetime.datetime.now() + promoting = """select * from promoting where del_flg = 0 and orgid = ${orgid}$ and end_date > ${dates}$ order by create_at desc""" + reacs = await sor.sqlExe(promoting, {'orgid': ns['orgid'],'dates':dates}) + date = await get_business_date(sor=None) + listdata = [] + for i in reacs: + if i['end_date'] > date: + listdata.append(i) + return {'status': True, 'data': listdata} + else: + ns['del_flg'] = '0' + ns['sort'] = 'create_at desc' + orgid = await sor.R('users', {'id': users_id}) + ns['orgid'] = orgid[0]['orgid'] + reacs = await sor.R('promoting', ns) + return {'status': True, 'data': reacs} + + # return {'status': False, 'msg': '参数不正确'} ret = await getpromoting(params_kw) return ret \ No newline at end of file From 90ed7cc3fb4b225a6e5487e263048c674ec88a0e Mon Sep 17 00:00:00 2001 From: ping <1017253325@qq.com> Date: Mon, 20 Oct 2025 17:07:42 +0800 Subject: [PATCH 4/6] updarte --- docs/API模块文档.md | 14775 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 14775 insertions(+) create mode 100644 docs/API模块文档.md diff --git a/docs/API模块文档.md b/docs/API模块文档.md new file mode 100644 index 0000000..769b89d --- /dev/null +++ b/docs/API模块文档.md @@ -0,0 +1,14775 @@ +--- +title: 默认模块 +language_tabs: + - shell: Shell + - http: HTTP + - javascript: JavaScript + - ruby: Ruby + - python: Python + - php: PHP + - java: Java + - go: Go +toc_footers: [] +includes: [] +search: true +code_clipboard: true +highlight_theme: darkula +headingLevel: 2 +generator: "@tarslib/widdershins v4.0.30" + +--- + +# 默认模块 + +Base URLs: + +# Authentication + +# 产品模板 + +## GET 产品模板添加 + +GET /product/specification_template_add.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |运营机构id| +|patternname|query|string| 否 |模板名称| +|productid|query|string| 否 |给哪个供应商添加的id| +|spec_pattern|query|string| 否 |模板内容| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 产品模板查找 + +GET /product/specification_template_search.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|providerid|query|string| 否 |指定供应商id| + +> 返回示例 + +> 200 Response + +```json +{ + "msg": "string", + "data": [ + { + "id": "string", + "orgid": "string", + "patternname": "string", + "productid": "string", + "spec_pattern": "string", + "del_flg": "string", + "create_at": "string" + } + ] +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» msg|string|true|none||none| +|» data|[object]|true|none||none| +|»» id|string|false|none||none| +|»» orgid|string|false|none||none| +|»» patternname|string|false|none||none| +|»» productid|string|false|none||none| +|»» spec_pattern|string|false|none||none| +|»» del_flg|string|false|none||none| +|»» create_at|string|false|none||none| + +## GET 产品模板删除 + +GET /product/specification_template_delete.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |产品模板查找时返回的id| + +> 返回示例 + +> 200 Response + +```json +{ + "msg": "string" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» msg|string|true|none||none| + +## GET 产品模板更新 + +GET /product/specification_template_update.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |查找时返回的id| +|orgid|query|string| 否 |机构id| +|patternname|query|string| 否 |模板名称| +|productid|query|string| 否 |产品id| +|spec_pattern|query|string| 否 |模板内容| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 未来网络产品查找 + +GET /product/wlwl_parameter_search.dspy + +不传输参数 返回所有内容 +同时传(high_school / chaosuan_center / route_num / broadband) 返回 'data': {'price': '350000', 'distance': '长距离'} + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|high_school |query|string| 否 |上海交通大学 北京航空航天大学| +|route_num|query|string| 否 |路由数| +|broadband|query|string| 否 |宽带| +|chaosuan_center |query|string| 否 |济南超算 无锡超算 广州超算 青岛超算| +|discount|query|string| 否 |折扣| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 规格数据增加 + +GET /product/specific_data_add.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |none| +|productid|query|string| 否 |产品id| +|spec_data|query|string| 否 |规格数据| + +> 返回示例 + +> 200 Response + +```json +{ + "msg": "string" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» msg|string|true|none||none| + +## GET 规格数据查找 + +GET /product/specific_data_search.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 规格数据删除 + +GET /product/specific_data_delete.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 规格数据更新 + +GET /product/specific_data_update.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |none| +|productid|query|string| 否 |产品id| +|spec_data|query|string| 否 |规格数据| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 产品组查询 + +GET /product/provider_product_group.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|prefix|query|string| 否 |查找供应商拼音前缀| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "string", + "data": { + "大数据平台": [ + { + "id": "string", + "providerid": "string", + "providerpid": "string", + "name": "string", + "description": "string", + "label": "string", + "productgroup": "string", + "ptype": "string", + "classify": "string", + "state": "string", + "effect_date": "string", + "expire_date": "string", + "salemode": "string", + "product_code": "string", + "spec_note": "string", + "product_area": "string", + "specific_pattern": "string", + "reseller_orgid": "string", + "del_flg": "string", + "create_at": "string" + } + ], + "泛CDN": [ + { + "id": "string", + "providerid": "string", + "providerpid": "string", + "name": "string", + "description": "string", + "label": "string", + "productgroup": "string", + "ptype": "string", + "classify": "string", + "state": "string", + "effect_date": "string", + "expire_date": "string", + "salemode": "string", + "product_code": "string", + "spec_note": "string", + "product_area": "string", + "specific_pattern": "string", + "reseller_orgid": "string", + "del_flg": "string", + "create_at": "string" + } + ], + "AI能力引擎": [ + { + "id": "string", + "providerid": "string", + "providerpid": "string", + "name": "string", + "description": "string", + "label": "string", + "productgroup": "string", + "ptype": "string", + "classify": "string", + "state": "string", + "effect_date": "string", + "expire_date": "string", + "salemode": "string", + "product_code": "string", + "spec_note": "string", + "product_area": "string", + "specific_pattern": "string", + "reseller_orgid": "string", + "del_flg": "string", + "create_at": "string" + } + ], + "云与业务安全": [ + { + "id": "string", + "providerid": "string", + "providerpid": "string", + "name": "string", + "description": "string", + "label": "string", + "productgroup": "string", + "ptype": "string", + "classify": "string", + "state": "string", + "effect_date": "string", + "expire_date": "string", + "salemode": "string", + "product_code": "string", + "spec_note": "string", + "product_area": "string", + "specific_pattern": "string", + "reseller_orgid": "string", + "del_flg": "string", + "create_at": "string" + } + ], + "网络": [ + { + "id": "string", + "providerid": "string", + "providerpid": "string", + "name": "string", + "description": "string", + "label": "string", + "productgroup": "string", + "ptype": "string", + "classify": "string", + "state": "string", + "effect_date": "string", + "expire_date": "string", + "salemode": "string", + "product_code": "string", + "spec_note": "string", + "product_area": "string", + "specific_pattern": "string", + "reseller_orgid": "string", + "del_flg": "string", + "create_at": "string" + } + ], + "边缘计算": [ + { + "id": "string", + "providerid": "string", + "providerpid": "string", + "name": "string", + "description": "string", + "label": "string", + "productgroup": "string", + "ptype": "string", + "classify": "string", + "state": "string", + "effect_date": "string", + "expire_date": "string", + "salemode": "string", + "product_code": "string", + "spec_note": "string", + "product_area": "string", + "specific_pattern": "string", + "reseller_orgid": "string", + "del_flg": "string", + "create_at": "string" + } + ], + "计算": [ + { + "id": "string", + "providerid": "string", + "providerpid": "string", + "name": "string", + "description": "string", + "label": "string", + "productgroup": "string", + "ptype": "string", + "classify": "string", + "state": "string", + "effect_date": "string", + "expire_date": "string", + "salemode": "string", + "product_code": "string", + "spec_note": "string", + "product_area": "string", + "specific_pattern": "string", + "reseller_orgid": "string", + "del_flg": "string", + "create_at": "string" + } + ], + "云原生平台": [ + { + "id": "string", + "providerid": "string", + "providerpid": "string", + "name": "string", + "description": "string", + "label": "string", + "productgroup": "string", + "ptype": "string", + "classify": "string", + "state": "string", + "effect_date": "string", + "expire_date": "string", + "salemode": "string", + "product_code": "string", + "spec_note": "string", + "product_area": "string", + "specific_pattern": "string", + "reseller_orgid": "string", + "del_flg": "string", + "create_at": "string" + } + ], + "数据库": [ + { + "id": "string", + "providerid": "string", + "providerpid": "string", + "name": "string", + "description": "string", + "label": "string", + "productgroup": "string", + "ptype": "string", + "classify": "string", + "state": "string", + "effect_date": "string", + "expire_date": "string", + "salemode": "string", + "product_code": "string", + "spec_note": "string", + "product_area": "string", + "specific_pattern": "string", + "reseller_orgid": "string", + "del_flg": "string", + "create_at": "string" + } + ], + "智能内容科技": [ + { + "id": "string", + "providerid": "string", + "providerpid": "string", + "name": "string", + "description": "string", + "label": "string", + "productgroup": "string", + "ptype": "string", + "classify": "string", + "state": "string", + "effect_date": "string", + "expire_date": "string", + "salemode": "string", + "product_code": "string", + "spec_note": "string", + "product_area": "string", + "specific_pattern": "string", + "reseller_orgid": "string", + "del_flg": "string", + "create_at": "string" + } + ], + "智慧城市": [ + { + "id": "string", + "providerid": "string", + "providerpid": "string", + "name": "string", + "description": "string", + "label": "string", + "productgroup": "string", + "ptype": "string", + "classify": "string", + "state": "string", + "effect_date": "string", + "expire_date": "string", + "salemode": "string", + "product_code": "string", + "spec_note": "string", + "product_area": "string", + "specific_pattern": "string", + "reseller_orgid": "string", + "del_flg": "string", + "create_at": "string" + } + ], + "存储": [ + { + "id": "string", + "providerid": "string", + "providerpid": "string", + "name": "string", + "description": "string", + "label": "string", + "productgroup": "string", + "ptype": "string", + "classify": "string", + "state": "string", + "effect_date": "string", + "expire_date": "string", + "salemode": "string", + "product_code": "string", + "spec_note": "string", + "product_area": "string", + "specific_pattern": "string", + "reseller_orgid": "string", + "del_flg": "string", + "create_at": "string" + } + ], + "SME企业服务": [ + { + "id": "string", + "providerid": "string", + "providerpid": "string", + "name": "string", + "description": "string", + "label": "string", + "productgroup": "string", + "ptype": "string", + "classify": "string", + "state": "string", + "effect_date": "string", + "expire_date": "string", + "salemode": "string", + "product_code": "string", + "spec_note": "string", + "product_area": "string", + "specific_pattern": "string", + "reseller_orgid": "string", + "del_flg": "string", + "create_at": "string" + } + ], + "视频云平台": [ + { + "id": "string", + "providerid": "string", + "providerpid": "string", + "name": "string", + "description": "string", + "label": "string", + "productgroup": "string", + "ptype": "string", + "classify": "string", + "state": "string", + "effect_date": "string", + "expire_date": "string", + "salemode": "string", + "product_code": "string", + "spec_note": "string", + "product_area": "string", + "specific_pattern": "string", + "reseller_orgid": "string", + "del_flg": "string", + "create_at": "string" + } + ], + "智能短信": [ + { + "id": "string", + "providerid": "string", + "providerpid": "string", + "name": "string", + "description": "string", + "label": "string", + "productgroup": "string", + "ptype": "string", + "classify": "string", + "state": "string", + "effect_date": "string", + "expire_date": "string", + "salemode": "string", + "product_code": "string", + "spec_note": "string", + "product_area": "string", + "specific_pattern": "string", + "reseller_orgid": "string", + "del_flg": "string", + "create_at": "string" + } + ] + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|object|true|none||none| +|»» 大数据平台|[object]|true|none||none| +|»»» id|string|true|none||none| +|»»» providerid|string|true|none||none| +|»»» providerpid|string|true|none||none| +|»»» name|string|true|none||none| +|»»» description|string|true|none||none| +|»»» label|string|true|none||none| +|»»» productgroup|string|true|none||none| +|»»» ptype|string|true|none||none| +|»»» classify|string|true|none||none| +|»»» state|string|true|none||none| +|»»» effect_date|string|true|none||none| +|»»» expire_date|string|true|none||none| +|»»» salemode|string|true|none||none| +|»»» product_code|string|true|none||none| +|»»» spec_note|string|true|none||none| +|»»» product_area|string|true|none||none| +|»»» specific_pattern|string|true|none||none| +|»»» reseller_orgid|string|true|none||none| +|»»» del_flg|string|true|none||none| +|»»» create_at|string|true|none||none| +|»» 泛CDN|[object]|true|none||none| +|»»» id|string|true|none||none| +|»»» providerid|string|true|none||none| +|»»» providerpid|string|true|none||none| +|»»» name|string|true|none||none| +|»»» description|string|true|none||none| +|»»» label|string|true|none||none| +|»»» productgroup|string|true|none||none| +|»»» ptype|string|true|none||none| +|»»» classify|string|true|none||none| +|»»» state|string|true|none||none| +|»»» effect_date|string|true|none||none| +|»»» expire_date|string|true|none||none| +|»»» salemode|string|true|none||none| +|»»» product_code|string|true|none||none| +|»»» spec_note|string|true|none||none| +|»»» product_area|string|true|none||none| +|»»» specific_pattern|string|true|none||none| +|»»» reseller_orgid|string|true|none||none| +|»»» del_flg|string|true|none||none| +|»»» create_at|string|true|none||none| +|»» AI能力引擎|[object]|true|none||none| +|»»» id|string|true|none||none| +|»»» providerid|string|true|none||none| +|»»» providerpid|string|true|none||none| +|»»» name|string|true|none||none| +|»»» description|string|true|none||none| +|»»» label|string|true|none||none| +|»»» productgroup|string|true|none||none| +|»»» ptype|string|true|none||none| +|»»» classify|string|true|none||none| +|»»» state|string|true|none||none| +|»»» effect_date|string|true|none||none| +|»»» expire_date|string|true|none||none| +|»»» salemode|string|true|none||none| +|»»» product_code|string|true|none||none| +|»»» spec_note|string|true|none||none| +|»»» product_area|string|true|none||none| +|»»» specific_pattern|string|true|none||none| +|»»» reseller_orgid|string|true|none||none| +|»»» del_flg|string|true|none||none| +|»»» create_at|string|true|none||none| +|»» 云与业务安全|[object]|true|none||none| +|»»» id|string|true|none||none| +|»»» providerid|string|true|none||none| +|»»» providerpid|string|true|none||none| +|»»» name|string|true|none||none| +|»»» description|string¦null|true|none||none| +|»»» label|string¦null|true|none||none| +|»»» productgroup|string|true|none||none| +|»»» ptype|string|true|none||none| +|»»» classify|string|true|none||none| +|»»» state|string|true|none||none| +|»»» effect_date|string|true|none||none| +|»»» expire_date|string|true|none||none| +|»»» salemode|string|true|none||none| +|»»» product_code|string|true|none||none| +|»»» spec_note|string|true|none||none| +|»»» product_area|string|true|none||none| +|»»» specific_pattern|string|true|none||none| +|»»» reseller_orgid|string|true|none||none| +|»»» del_flg|string|true|none||none| +|»»» create_at|string|true|none||none| +|»» 网络|[object]|true|none||none| +|»»» id|string|true|none||none| +|»»» providerid|string|true|none||none| +|»»» providerpid|string|true|none||none| +|»»» name|string|true|none||none| +|»»» description|string|true|none||none| +|»»» label|string|true|none||none| +|»»» productgroup|string|true|none||none| +|»»» ptype|string|true|none||none| +|»»» classify|string|true|none||none| +|»»» state|string|true|none||none| +|»»» effect_date|string|true|none||none| +|»»» expire_date|string|true|none||none| +|»»» salemode|string|true|none||none| +|»»» product_code|string|true|none||none| +|»»» spec_note|string|true|none||none| +|»»» product_area|string|true|none||none| +|»»» specific_pattern|string|true|none||none| +|»»» reseller_orgid|string|true|none||none| +|»»» del_flg|string|true|none||none| +|»»» create_at|string|true|none||none| +|»» 边缘计算|[object]|true|none||none| +|»»» id|string|false|none||none| +|»»» providerid|string|false|none||none| +|»»» providerpid|string|false|none||none| +|»»» name|string|false|none||none| +|»»» description|string|false|none||none| +|»»» label|string|false|none||none| +|»»» productgroup|string|false|none||none| +|»»» ptype|string|false|none||none| +|»»» classify|string|false|none||none| +|»»» state|string|false|none||none| +|»»» effect_date|string|false|none||none| +|»»» expire_date|string|false|none||none| +|»»» salemode|string|false|none||none| +|»»» product_code|string|false|none||none| +|»»» spec_note|string|false|none||none| +|»»» product_area|string|false|none||none| +|»»» specific_pattern|string|false|none||none| +|»»» reseller_orgid|string|false|none||none| +|»»» del_flg|string|false|none||none| +|»»» create_at|string|false|none||none| +|»» 计算|[object]|true|none||none| +|»»» id|string|true|none||none| +|»»» providerid|string|true|none||none| +|»»» providerpid|string|true|none||none| +|»»» name|string|true|none||none| +|»»» description|string|true|none||none| +|»»» label|string|true|none||none| +|»»» productgroup|string|true|none||none| +|»»» ptype|string|true|none||none| +|»»» classify|string|true|none||none| +|»»» state|string|true|none||none| +|»»» effect_date|string|true|none||none| +|»»» expire_date|string|true|none||none| +|»»» salemode|string|true|none||none| +|»»» product_code|string|true|none||none| +|»»» spec_note|string|true|none||none| +|»»» product_area|string|true|none||none| +|»»» specific_pattern|string|true|none||none| +|»»» reseller_orgid|string|true|none||none| +|»»» del_flg|string|true|none||none| +|»»» create_at|string|true|none||none| +|»» 云原生平台|[object]|true|none||none| +|»»» id|string|true|none||none| +|»»» providerid|string|true|none||none| +|»»» providerpid|string|true|none||none| +|»»» name|string|true|none||none| +|»»» description|string|true|none||none| +|»»» label|string|true|none||none| +|»»» productgroup|string|true|none||none| +|»»» ptype|string|true|none||none| +|»»» classify|string|true|none||none| +|»»» state|string|true|none||none| +|»»» effect_date|string|true|none||none| +|»»» expire_date|string|true|none||none| +|»»» salemode|string|true|none||none| +|»»» product_code|string|true|none||none| +|»»» spec_note|string|true|none||none| +|»»» product_area|string|true|none||none| +|»»» specific_pattern|string|true|none||none| +|»»» reseller_orgid|string|true|none||none| +|»»» del_flg|string|true|none||none| +|»»» create_at|string|true|none||none| +|»» 数据库|[object]|true|none||none| +|»»» id|string|true|none||none| +|»»» providerid|string|true|none||none| +|»»» providerpid|string|true|none||none| +|»»» name|string|true|none||none| +|»»» description|string|true|none||none| +|»»» label|string|true|none||none| +|»»» productgroup|string|true|none||none| +|»»» ptype|string|true|none||none| +|»»» classify|string|true|none||none| +|»»» state|string|true|none||none| +|»»» effect_date|string|true|none||none| +|»»» expire_date|string|true|none||none| +|»»» salemode|string|true|none||none| +|»»» product_code|string|true|none||none| +|»»» spec_note|string|true|none||none| +|»»» product_area|string|true|none||none| +|»»» specific_pattern|string|true|none||none| +|»»» reseller_orgid|string|true|none||none| +|»»» del_flg|string|true|none||none| +|»»» create_at|string|true|none||none| +|»» 智能内容科技|[object]|true|none||none| +|»»» id|string|false|none||none| +|»»» providerid|string|false|none||none| +|»»» providerpid|string|false|none||none| +|»»» name|string|false|none||none| +|»»» description|string|false|none||none| +|»»» label|string|false|none||none| +|»»» productgroup|string|false|none||none| +|»»» ptype|string|false|none||none| +|»»» classify|string|false|none||none| +|»»» state|string|false|none||none| +|»»» effect_date|string|false|none||none| +|»»» expire_date|string|false|none||none| +|»»» salemode|string|false|none||none| +|»»» product_code|string|false|none||none| +|»»» spec_note|string|false|none||none| +|»»» product_area|string|false|none||none| +|»»» specific_pattern|string|false|none||none| +|»»» reseller_orgid|string|false|none||none| +|»»» del_flg|string|false|none||none| +|»»» create_at|string|false|none||none| +|»» 智慧城市|[object]|true|none||none| +|»»» id|string|false|none||none| +|»»» providerid|string|false|none||none| +|»»» providerpid|string|false|none||none| +|»»» name|string|false|none||none| +|»»» description|string|false|none||none| +|»»» label|string|false|none||none| +|»»» productgroup|string|false|none||none| +|»»» ptype|string|false|none||none| +|»»» classify|string|false|none||none| +|»»» state|string|false|none||none| +|»»» effect_date|string|false|none||none| +|»»» expire_date|string|false|none||none| +|»»» salemode|string|false|none||none| +|»»» product_code|string|false|none||none| +|»»» spec_note|string|false|none||none| +|»»» product_area|string|false|none||none| +|»»» specific_pattern|string|false|none||none| +|»»» reseller_orgid|string|false|none||none| +|»»» del_flg|string|false|none||none| +|»»» create_at|string|false|none||none| +|»» 存储|[object]|true|none||none| +|»»» id|string|true|none||none| +|»»» providerid|string|true|none||none| +|»»» providerpid|string|true|none||none| +|»»» name|string|true|none||none| +|»»» description|string|true|none||none| +|»»» label|string|true|none||none| +|»»» productgroup|string|true|none||none| +|»»» ptype|string|true|none||none| +|»»» classify|string|true|none||none| +|»»» state|string|true|none||none| +|»»» effect_date|string|true|none||none| +|»»» expire_date|string|true|none||none| +|»»» salemode|string|true|none||none| +|»»» product_code|string|true|none||none| +|»»» spec_note|string|true|none||none| +|»»» product_area|string|true|none||none| +|»»» specific_pattern|string|true|none||none| +|»»» reseller_orgid|string|true|none||none| +|»»» del_flg|string|true|none||none| +|»»» create_at|string|true|none||none| +|»» SME企业服务|[object]|true|none||none| +|»»» id|string|true|none||none| +|»»» providerid|string|true|none||none| +|»»» providerpid|string|true|none||none| +|»»» name|string|true|none||none| +|»»» description|string|true|none||none| +|»»» label|string¦null|true|none||none| +|»»» productgroup|string|true|none||none| +|»»» ptype|string|true|none||none| +|»»» classify|string|true|none||none| +|»»» state|string|true|none||none| +|»»» effect_date|string|true|none||none| +|»»» expire_date|string|true|none||none| +|»»» salemode|string|true|none||none| +|»»» product_code|string|true|none||none| +|»»» spec_note|string|true|none||none| +|»»» product_area|string|true|none||none| +|»»» specific_pattern|string|true|none||none| +|»»» reseller_orgid|string|true|none||none| +|»»» del_flg|string|true|none||none| +|»»» create_at|string|true|none||none| +|»» 视频云平台|[object]|true|none||none| +|»»» id|string|true|none||none| +|»»» providerid|string|true|none||none| +|»»» providerpid|string|true|none||none| +|»»» name|string|true|none||none| +|»»» description|string|true|none||none| +|»»» label|string|true|none||none| +|»»» productgroup|string|true|none||none| +|»»» ptype|string|true|none||none| +|»»» classify|string|true|none||none| +|»»» state|string|true|none||none| +|»»» effect_date|string|true|none||none| +|»»» expire_date|string|true|none||none| +|»»» salemode|string|true|none||none| +|»»» product_code|string|true|none||none| +|»»» spec_note|string|true|none||none| +|»»» product_area|string|true|none||none| +|»»» specific_pattern|string|true|none||none| +|»»» reseller_orgid|string|true|none||none| +|»»» del_flg|string|true|none||none| +|»»» create_at|string|true|none||none| +|»» 智能短信|[object]|true|none||none| +|»»» id|string|false|none||none| +|»»» providerid|string|false|none||none| +|»»» providerpid|string|false|none||none| +|»»» name|string|false|none||none| +|»»» description|string|false|none||none| +|»»» label|string|false|none||none| +|»»» productgroup|string|false|none||none| +|»»» ptype|string|false|none||none| +|»»» classify|string|false|none||none| +|»»» state|string|false|none||none| +|»»» effect_date|string|false|none||none| +|»»» expire_date|string|false|none||none| +|»»» salemode|string|false|none||none| +|»»» product_code|string|false|none||none| +|»»» spec_note|string|false|none||none| +|»»» product_area|string|false|none||none| +|»»» specific_pattern|string|false|none||none| +|»»» reseller_orgid|string|false|none||none| +|»»» del_flg|string|false|none||none| +|»»» create_at|string|false|none||none| + +## GET 首页产品列表 + +GET /product/get_firstpage_product_tree.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|url_link|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 首页获取基座和网络 + +GET /product/get_firstpage_jizuonet.dspy + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 首页产品详情页 + +GET /product/get_firstpage_net_detail.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 立即咨询添加 + +GET /product/add_user_inquiry.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|url_link|query|string| 否 |none| +|publish_type|query|string| 否 |none| +|relate_id|query|string| 否 |none| +|content|query|string| 否 |none| +|custom_type|query|string| 否 |none| +|name|query|string| 否 |none| +|phone|query|string| 否 |none| +|company|query|string| 否 |none| +|email|query|string| 否 |none| +|feedback|query|string| 否 |销售回访字段,默认0,回访了为1,此处不是必传字段| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 立即咨询查找 + +GET /product/search_user_inquiry.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|url_link|query|string| 否 |none| +|to_excel|query|string| 否 |1:转换成excel| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 立即咨询更新 + +GET /product/update_user_inquiry.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |立即咨询查找返回的id| +|feedback|query|string| 否 |销售回访状态 反馈了就为1| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 立即咨询删除 + +GET /product/delete_user_inquiry.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |立即咨询查找返回的id| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 产品资源概览 + +GET /product/resource_overview.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |不是必传参数| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 资源到期预警 + +GET /product/get_resource_expire_time.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |不是必传参数| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "string", + "data": [ + { + "id": "string", + "name": "string", + "instanceid": "string", + "status": "string", + "expiretime": "string", + "days": 0 + } + ] +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|[object]|true|none||none| +|»» id|string|false|none||none| +|»» name|string|false|none||none| +|»» instanceid|string|false|none||none| +|»» status|string|false|none||none| +|»» expiretime|string|false|none||none| +|»» days|integer|false|none||none| + +## GET 首页产品树增加 + +GET /product/homepage_category_tree_add.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|url_link|query|string| 是 |none| +|userid|query|string| 否 |none| +|parentid|query|string| 是 |none| +|priority|query|string| 是 |优先级| +|name|query|string| 是 |名称| +|icon|query|string| 否 |icon链接| +|source|query|string| 否 |来源 例如:佳杰| +|listurl|query|string| 否 |跳转链接| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 首页产品树查询 + +GET /product/homepage_category_tree_search.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|url_link|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 首页产品树更新 + +GET /product/homepage_category_tree_update.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |none| +|userid|query|string| 否 |none| +|url_link|query|string| 否 |none| +|parentid|query|string| 否 |none| +|priority|query|string| 否 |none| +|name|query|string| 否 |none| +|icon|query|string| 否 |none| +|source|query|string| 否 |none| +|listurl|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 首页产品树删除 + +GET /product/homepage_category_tree_delete.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 全网查找 + +GET /product/global_search.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|url_link|query|string| 是 |路由链接| +|keyword|query|string| 是 |查询关键字| +|publish_type|query|string| 是 |发布类型| +|display_page|query|string| 是 |概览:overview 列表页:list| +|current_page|query|string| 是 |默认1| +|page_size|query|string| 是 |默认8| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 产品模板/供需广场 + +## GET 公司类别添加 + +GET /product/company_category_add.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |非必填| +|company_category|query|string| 否 |公司类型| +|url_link|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 公司类别查找 + +GET /product/company_category_search.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |非必填| +|url_link|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 公司类别更新 + +GET /product/company_category_update.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |none| +|company_category|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 公司类别删除 + +GET /product/company_category_delete.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 所属类别添加 + +GET /product/product_category_add.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |none| +|product_category|query|string| 否 |none| +|parentid|query|string| 否 |none| +|url_link|query|string| 否 |none| +|priority|query|string| 否 |展示优先级 1,2,3 (1的展示优先级最高,以此类推)| +|permission|query|string| 否 |1:普通用户发布时能看到 0:客户看不到 (默认1)| +|cart_flag|query|string| 否 |是否展示cpu,gpu选线 1:展示 NULL:不展示| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "string" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| + +## GET 所属类别查找 + +GET /product/product_category_search.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |非必填| +|url_link|query|string| 否 |必填| +|to_page|query|string| 否 |show:首页 publish:发布页 没有登录传递show| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "string", + "data": [ + { + "id": "string", + "name": "string", + "children": [ + { + "id": "string", + "name": "string", + "children": [ + null + ] + } + ] + } + ] +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|[object]|true|none||none| +|»» id|string|true|none||none| +|»» name|string|true|none||none| +|»» children|[object]|true|none||none| +|»»» id|string|true|none||none| +|»»» name|string|true|none||none| +|»»» children|[any]|true|none||none| + +## GET 所属类别更新 + +GET /product/product_category_update.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |none| +|product_category|query|string| 否 |none| +|cart_flag|query|string| 否 |是否显示cpu,gpu规格输入框| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 所属类别删除 + +GET /product/product_category_delete.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET (商品|需求)发布增加 + +GET /product/publish_product_add.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |none| +|publish_type|query|string| 否 |1:商品 2:需求| +|cart_flag|query|string| 否 |是否支持GPU| +|url_link|query|string| 否 |none| +|img|query|string| 否 |图片| +|product_name|query|string| 否 |none| +|product_category|query|string| 否 |注意是双引号| +|company_name|query|string| 否 |none| +|company_type|query|string| 否 |none| +|contact_person|query|string| 否 |none| +|job_title|query|string| 否 |none| +|phone_number|query|string| 否 |none| +|email|query|string| 否 |none| +|cpu|query|string| 否 |none| +|memeory|query|string| 否 |none| +|gpu|query|string| 否 |none| +|sys_disk|query|string| 否 |系统盘| +|data_disk|query|string| 否 |数据盘| +|net_card|query|string| 否 |网络配置| +|price|query|string| 否 |价格| +|unit|query|string| 否 |价格单位| +|discount|query|string| 否 |折扣| +|discount_price|query|string| 否 |折扣后价格| +|service_charge|query|string| 否 |none| +|short_term|query|string| 否 |是否短租 1:是 0:否| +|priority|query|string| 否 |首页展示优先级 默认1, 数字越大越靠前| +|status|query|string| 否 |上架状态 默认0, 0:未上架 1: 已上架| +|label|query|string| 否 |首页标签| +|first_page|query|string| 否 |是否推送到首页 默认0, 0:不推送到首页 1: 推送到首页| +|requirement_summary|query|string| 否 |商品概述| +|related_parameters|query|string| 否 |相关参数| +|application_scenario|query|string| 否 |应用场景| +|audit_status|query|string| 否 |审核状态:默认:pending, pending待审/approved通过/rejected拒绝| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET (商品|需求)发布查找-首页 + +GET /product/publish_product_search_first_page.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|url_link|query|string| 否 |来源链接| +|publish_type|query|string| 否 |1:商品 2:需求| +|to_page|query|string| 否 |square: 去广场 first_page:去首页 默认first_page| +|product_category|query|string| 否 |产品类别| +|company_type|query|string| 否 |不是必填 公司类别| +|page_size|query|string| 否 |默认8| +|current_page|query|string| 否 |第几页 默认1| +|userid|query|string| 否 |none| + +> 返回示例 + +> 500 Response + +``` +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|none|Inline| + +### 返回数据结构 + +## GET (商品|需求)管理查找 + +GET /product/publish_product_search.dspy + +#### 1. 客户或运营 查询单条详情 +>参数: id + +#### 2. 客户查看 +>参数: + page_size + current_page + publish_type + +#### 3. 运营查看自己发布 +>参数: + page_size + current_page + publish_type + manager_self='single' # 注意添加这个字段 + +#### 4. 运营查看所有人 +>参数: + page_size + current_page + publish_type + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|url_link|query|string| 否 |none| +|userid|query|string| 否 |none| +|page_size|query|string| 否 |none| +|current_page|query|string| 否 |none| +|publish_type|query|string| 否 |none| +|manager_self|query|string| 否 |1.客户查找:NULL 2.运营查找自己发布: single 3.运营查找所有人: NULL| +|id|query|string| 否 |可选,单条查询| +|audit_status|query|string| 否 |审核状态:默认:pending, pending待审/approved通过/rejected拒绝| +|listing_status|query|string| 否 |上架状态:listing上架/delisting下架| +|start_date|query|string| 否 |开始时间| +|end_date|query|string| 否 |结束时间| +|keyword|query|string| 否 |查询关键字| +|to_excel|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET (商品|需求)查找详情 + +GET /product/publish_product_search_detail.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |none| +|from|query|string| 否 |前端页面: f 后台页面: b| +|userid|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET (商品|需求)更新 + +GET /product/publish_product_update.dspy + +#### 1. 运营(编辑/审核)客户的产品 +#### 2. 运营编辑自己的产品 默认审批通过和发布成功 +#### 3. 运营删除自己的产品 del_flg = '1' +#### 4. 运营下架自己的产品 listing_status = 'delisting' +*** +#### 5. 客户编辑产品 审核状态是: 待审 上架状态是:空 +#### 6. 客户要下架产品 listing_status = 'delisting' +#### 7. 客户仅编辑重新提交产品 + +> Body 请求参数 + +```yaml +sdsd: "" + +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |需求/商品 id| +|userid|query|string| 否 |不是必填| +|audit_status|query|string| 否 |审核状态:pending待审/approved通过/rejected拒绝/| +|listing_status|query|string| 否 |上架状态:listing上架/delisting下架| +|reject_reason|query|string| 否 |none| +|body|body|object| 否 |none| +|» sdsd|body|string(binary)| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET (商品|需求) 导出 单条/多条 + +GET /product/publish_product_to_excel.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|ids|query|string| 否 |单条或多条 id数组, 注意双引号| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 首页产品类查找 + +GET /product/homepage_product_category.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|url_link|query|string| 否 |none| +|publish_type|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 用户/政企资质审核 + +## GET 资质添加 + +GET /user/enterprise_audit_info_add.dspy + +> Body 请求参数 + +```yaml +{} + +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |不是必填| +|account_type|query|string| 否 |账号类型: 1:政府 2:企业 3: 个人| +|company_name|query|string| 否 |公司名称| +|license_number|query|string| 否 |执照号码| +|license_original_img|query|string| 否 |营业执照正本照片路径| +|license_copy_img|query|string| 否 |营业执照副本照片路径| +|office_address|query|string| 否 |办公地址| +|registered_address|query|string| 否 |注册地址| +|contact_name|query|string| 否 |联系人姓名| +|telephone|query|string| 否 |固定电话| +|mobile_phone|query|string| 否 |移动电话| +|email|query|string| 否 |邮箱地址| +|audit_status|query|string| 否 |审核状态:pending待审/approved通过/rejected拒绝/| +|reject_reason|query|string| 否 |驳回原因| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 资质查询 + +GET /user/enterprise_audit_info_search.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|url_link|query|string| 是 |none| +|userid|query|string| 否 |不是必填| +|audit_status|query|string| 否 |审核状态:pending待审/approved通过/rejected拒绝/| +|current_page|query|string| 否 |默认1| +|page_size|query|string| 否 |默认10| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 资质更新 + +GET /user/enterprise_audit_info_update.dspy + +1. 客户更新 审批状态默认为待审 + +2. 运营更新 审批approved, 会把驳回原因reject_reason置空 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 是 |none| +|userid|query|string| 否 |none| +|audit_status|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 用户/用户浏览记录 + +## GET 浏览记录查找 + +GET /user/user_browse_history_search.dspy + +### product_info为空时 显示产品已下架 + +"userid": 用户ID, +"product_id": 产品ID, +"browse_time": 浏览时间, +"ip_address": 来源IP 默认空, +"user_agent": 代理 默认空, +"priority": 优先级 默认空, +"tag": 标签 默认空, +"product_info": 产品信息 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |用户id (不是必填)| +|current_page|query|string| 否 |当前页 (不是必填)| +|page_size|query|string| 否 |页面数量 (不是必填)| +|start_time|query|string| 否 |开始时间 (不是必填)| +|end_time|query|string| 否 |结束时间 (不是必填)| +|publish_type|query|string| 否 |发布类型| +|url_link|query|string| 否 |url_link| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 浏览记录删除 + +GET /user/user_browse_history_delete.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |将要删除的记录ID| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 用户/用户关注收藏 + +## GET 关注收藏添加 + +GET /user/favorite_add.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |用户id| +|productid|query|string| 否 |产品ID| +|favorite_type|query|string| 否 |1:商品 2:需求| +|tag|query|string| 否 |标签| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 关注收藏查找 + +GET /user/favorite_search.dspy + +### product_info 为null,标记为已下架该商品 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |none| +|current_page|query|string| 否 |none| +|page_size|query|string| 否 |none| +|favorite_type|query|string| 否 |1:商品 2:需求| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 关注收藏删除 + +GET /user/favorite_delete.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|productid|query|string| 否 |ID| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# kpi管理 + +## GET 运营kpi + +GET /kpi/operate_kpi.dspy + +运营kpi + type=运营 userid='' + +销售kpi + type=销售 userid='' + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |当前机构id| +|type|query|string| 否 |(type是销售传userid)/(type是运营传orgid)| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "string", + "data": { + "customer": { + "number": [ + 0 + ], + "date": [ + "string" + ], + "tongbi": [ + 0 + ], + "huanbi": [ + 0 + ] + } + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|object|true|none||none| +|»» customer|object|true|none||none| +|»»» number|[integer]|true|none||none| +|»»» date|[string]|true|none||none| +|»»» tongbi|[oneOf]|true|none||none| + +*oneOf* + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|»»»» *anonymous*|number|false|none||none| + +*xor* + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|»»»» *anonymous*|integer|false|none||none| + +*continued* + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|»»» huanbi|[number]|true|none||none| + +## GET 收入分析 + +GET /kpi/revenue_analysis.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|time|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 利润分析 + +GET /kpi/profit_analysis.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|time|query|string| 否 |none| +|userid|query|string| 否 |不是必填| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 客户获取账单列表 + +GET /kpi/user_get_bill.dspy + +id:账单号 +business_op: 购买状态 BUY=购买 RECHARGE=充值 RECHARGE_ALIPAY=支付宝充值 REFUND=退款 +provider_amt:原价 +amount:折后价格 +bill_date:账单日期 +bill_state: 0=未支付 1=已支付 2=已经取消 +productname:产品名称 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|user_orgid|query|string| 是 |用户userid| +|start_time|query|string| 否 |账单开始时间| +|end_time|query|string| 否 |账单结束时间| +|page_size|query|string| 是 |每页数量| +|current_page|query|string| 是 |当前页数| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 用户获取销售人员id + +GET /pub/get_salesman.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |用户id| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 运营获取所有账单 + +GET /kpi/operator_get_all_bill.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |业主机构orgid 必填| +|salemanid|query|string| 否 |销售人员的id 不是必填| +|user_orgid|query|string| 否 |用户的orgid 不是必填| +|current_page|query|string| 否 |当前页 必填| +|page_size|query|string| 否 |每页数量 默认20 不是必填| +|start_time|query|string| 否 |开始时间 不是必填| +|end_time|query|string| 否 |结束时间 不是必填| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "string", + "data": { + "total_page": 0, + "total_num": 0, + "bill_sum": 0, + "page_size": 0, + "current_page": "string", + "bill_list": [ + { + "id": "string", + "customerid": "string", + "orderid": "string", + "ordergoodsid": "string", + "business_op": "string", + "provider_amt": 0, + "quantity": 0, + "amount": 0, + "bill_date": "string", + "bill_timestamp": "string", + "bill_state": "string", + "productid": "string", + "providerid": "string", + "provider_billid": null, + "resourceid": null, + "del_flg": "string", + "create_at": "string", + "productname": "string", + "orgname": "string", + "orgcode": null, + "address": "string", + "salemanid": "string", + "salemanname": "string" + } + ] + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|object|true|none||none| +|»» total_page|integer|true|none||none| +|»» total_num|integer|true|none||none| +|»» bill_sum|number|true|none||none| +|»» page_size|integer|true|none||none| +|»» current_page|string|true|none||none| +|»» bill_list|[object]|true|none||none| +|»»» id|string|true|none||none| +|»»» customerid|string|true|none||none| +|»»» orderid|string¦null|true|none||none| +|»»» ordergoodsid|string¦null|true|none||none| +|»»» business_op|string|true|none||none| +|»»» provider_amt|integer¦null|true|none||none| +|»»» quantity|integer¦null|true|none||none| +|»»» amount|integer|true|none||none| +|»»» bill_date|string|true|none||none| +|»»» bill_timestamp|string|true|none||none| +|»»» bill_state|string|true|none||none| +|»»» productid|string¦null|true|none||none| +|»»» providerid|string¦null|true|none||none| +|»»» provider_billid|null|true|none||none| +|»»» resourceid|null|true|none||none| +|»»» del_flg|string|true|none||none| +|»»» create_at|string|true|none||none| +|»»» productname|string|true|none||none| +|»»» orgname|string|true|none||none| +|»»» orgcode|null|true|none||none| +|»»» address|string|true|none||none| +|»»» salemanid|string|true|none||none| +|»»» salemanname|string|true|none||none| + +## GET 获取客户数量 + +GET /kpi/get_cumulative_users.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|target|query|string| 否 |传递值枚举:year/month/day| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "string", + "data": [ + { + "target": "string", + "cumulative_users": 0 + } + ] +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|[object]|true|none||none| +|»» target|string|true|none||none| +|»» cumulative_users|integer|true|none||none| + +## GET 大屏展示首页 + +GET /kpi/large_screen_first_page.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|flag|query|string| 是 |0为虚拟数据 1:真实数据| +|orgid|query|string| 是 |业主机构/分销商 必填| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 大屏展示用户二 + +GET /kpi/large_screen_second_page.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|flag|query|string| 是 |0为虚拟数据 1:真实数据| +|orgid|query|string| 是 |业主机构/分销商 必填| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 大屏展示经营三 + +GET /kpi/large_screen_third_page.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|flag|query|string| 是 |0为虚拟数据 1:真实数据| +|orgid|query|string| 是 |业主机构/分销商 必填| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 大屏展示商户四 + +GET /kpi/large_screen_fourth_page.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|flag|query|string| 是 |0为虚拟数据 1:真实数据| +|orgid|query|string| 是 |业主机构/分销商 必填| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 济南超算 + +## GET 用户同步状态查询 + +GET /hpc/sync_status_search.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |销售的userid| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 同步用户购买产品 + +GET /hpc/hpc_sync_user.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|syncinfoid|query|string| 否 |同步状态查询接口返回的参数| +|customerid|query|string| 否 |用户orgid 同步状态查询接口返回的参数| +|productid|query|string| 否 |产品id 同步状态查询接口返回的参数| +|quantity|query|string| 否 |购买的产品数量 同步状态查询接口返回的参数| +|ldapuid|query|string| 否 |ldap账号 同步状态查询接口返回的参数| +|clustercode|query|string| 否 |集群账号 同步状态查询接口返回的参数| +|queuecode|query|string| 否 |队列账号 同步状态查询接口返回的参数| +|orgid|query|string| 否 |同步状态查询接口返回的参数| +|orgname|query|string| 否 |同步状态查询接口返回的参数| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 账号查询 + +GET /hpc/HpcLdapSearch.dspy + +返回所有账号 以及 对应账号绑定的客户 +如果账号没绑定 没有orgname字段 + +> 返回示例 + +> 200 Response + +```json +{ + "ldapuid": "string", + "clustercode": "string", + "queuecode": "string", + "orgid": "string", + "sync_status": null, + "last_access": "string", + "del_flg": "string", + "create_at": "string", + "orgname": "string" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» ldapuid|string|true|none||none| +|» clustercode|string|true|none||none| +|» queuecode|string|true|none||none| +|» orgid|string|true|none||none| +|» sync_status|null|true|none||none| +|» last_access|string|true|none||none| +|» del_flg|string|true|none||none| +|» create_at|string|true|none||none| +|» orgname|string|true|none|绑定的用户名称|none| + +## GET 未绑定用户查询 + +GET /hpc/HpcUserSearch.dspy + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 绑定用户 + +GET /hpc/bind_ldap.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |账号查询接口返回的id| +|clustercode|query|string| 否 |集群账号 账号查询接口返回的参数| +|queuecode|query|string| 否 |队列账号 账号查询接口返回的参数| +|ldapuid|query|string| 否 |ldap账号 账号查询接口返回的参数| +|orgid|query|string| 否 |要绑定的用户orgid 账号查询接口返回的参数| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 记录用户登录时间 + +GET /hpc/HpcAccessTime.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |用户的orgid| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 新增账号 + +GET /hpc/HpcLdapAdd.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|clustercode|query|string| 否 |集群账号| +|queuecode|query|string| 否 |队列账号| +|ldapuid|query|string| 否 |ldap账号| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 删除账号 + +GET /hpc/HpcLdapDelete.dspy + +1. 账号没有绑定过 参数orgid不填 或者 orgid为空 +2. 账号已经绑定过 参数orgid必填 +3. 已经同步成功的用户账号无法删除 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |账号查询接口返回的id| +|orgid|query|string| 否 |账号查询接口返回的orgid| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 更新账号 + +GET /hpc/HpcLdapUpdate.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |/hpc/HpcLdapSearch.dspy 返回的id| +|orgid|query|string| 否 |/hpc/HpcLdapSearch.dspy 返回的orgid| +|clustercode|query|string| 否 |/hpc/HpcLdapSearch.dspy 返回的集群账号| +|queuecode|query|string| 否 |/hpc/HpcLdapSearch.dspy 返回的队列账号| +|ldapuid|query|string| 否 |/hpc/HpcLdapSearch.dspy 返回的ladp账号| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 获取sign + +POST /hpc/jnan_get_sign.dspy + +2023-12-06 新增返回字段: warn_msg +场景: + 购买后自动同步成功 返回null + 购买后返回步成功返回: 您当前有未同步的购买信息, 请联系售后同步 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |none| +|username|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取所有产品 + +GET /hpc/jncs_get_product.dspy + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 供应商 + +## GET 销售配置折扣底价审批接口 + +GET /product/customer_product_config_approve_send.dspy + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 供应商更新 + +GET /provider/providerUpdate.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |供应商机构id| +|orgname|query|string| 否 |供应商机构名称| +|contactor|query|string| 否 |联系人| +|contactor_phone|query|string| 否 |联系电话| +|province_id|query|string| 否 |省id| +|city_id|query|string| 否 |市id| +|distinct_id|query|string| 否 |区id| +|emailaddress|query|string| 否 |邮箱| +|address|query|string| 否 |地址| +|main_business|query|string| 否 |主营业务描述| +|orgcode|query|string| 否 |组织结构代码| +|license_img|query|string| 否 |营业执照| +|id_img|query|string| 否 |身份证| +|accountid|query|string| 否 |账号| +|provider_table_id|query|string| 否 |供应商表id| +|name|query|string| 否 |供应商名称| +|description|query|string| 否 |描述| +|appid|query|string| 否 |应用id| +|providerkey|query|string| 否 |应用key| +|state|query|string| 否 |状态| +|settle_mode|query|string| 否 |销售结算方式| +|settle_flowid|query|string| 否 |结算流程| +|settle_datep|query|string| 否 |结算日期模版| +|start_date|query|string| 否 |起效日期| +|end_date|query|string| 否 |失效日期| +|salemode|query|string| 否 |销售方式| +|protocolid|query|string| 否 |销售协议id| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 百度云创建用户 + +POST /v1/vs/account + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|name|query|string| 否 |none| +|email|query|string| 否 |none| +|mobilePhone|query|string| 否 |none| +|accountType|query|string| 否 |none| +|Host|header|string| 否 |none| +|Content-Type|header|string| 否 |none| +|Authorization|header|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 供应商产品查询 + +GET /product/provider_product_search.dspy + +{ + "status" : true , + "msg" : "供应商产品查找成功" , + "classify_list" : [ + "未配置" + ], + "data" :[] +} + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|protocolid|query|string| 是 |供应商给当前机构签的协议id| +|productname|query|string| 否 |产品名称| +|start_discount|query|string| 否 |起始折扣| +|end_discount|query|string| 否 |结束折扣| +|classify|query|string| 否 |专属分类 这个字段用于批量折扣设置| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 运营配置统一普通折扣 + +GET /product/discount_guanli_jia.dspy + +注意: + productid 格式为 "A3eGE1BLcqxO8wXbuDq2T,BqBV4sk8jnEe316MagmlK" + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|bid_orgid|query|string| 是 |运营所属机构id| +|providerid|query|string| 是 |供应商id| +|productid|query|string| 是 |产品id| +|discount|query|string| 是 |统一折扣| +|productname|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 销售查看客户折扣底价 + +GET /product/xiaoshou_kan_zhekou.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|customerid|query|string| 是 |客户orgid| +|kv|query|string| 否 |kv=price时是销售查看售价设置, 没有这个字段是客户折扣设置| +|providerid|query|string| 否 |供应商筛选| +|productname|query|string| 否 |模糊查询的产品名称| +|start_discount|query|string| 否 |区间查询 起始折扣| +|end_discount|query|string| 否 |区间查询 结束折扣| +|classify|query|string| 否 |专属分类| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 运营查询统一折扣配置 + +GET /product/discount_guanli_cha.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|bid_orgid|query|string| 是 |当前机构id| +|providerid|query|string| 否 |供应商筛选查询| +|keyword|query|string| 否 |产品名称模糊查询| +|start_discount|query|string| 否 |起始折扣| +|end_discount|query|string| 否 |结束折扣| +|classify|query|string| 否 |专属分类查询| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 运营查询统一售价配置 + +GET /product/shoujia_guanli_cha.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|bid_orgid|query|string| 是 |运营所在orgid| +|providerid|query|string| 否 |要查询的供应商id| +|keyword|query|string| 否 |产品名称模糊查询| +|classify|query|string| 否 |专属分类查询| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取折扣 + +GET /get_discount + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|providerid|query|string| 是 |供应商id| +|userid|query|string| 否 |用户id| +|productid|query|string| 是 |产品id| +|prefix|query|string| 否 |供应商前缀| +|servicetype|query|string| 否 |供应商自带的产品pid| +|user_orgid|query|string| 否 |用户orgid| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 供应商/算力中心本地化 + +## GET 算力中心供应商列表 + +GET /provider/get_cpcc_provider.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |机构id| +|cpccid|query|string| 否 |用于筛选指定算力中心| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "get cpcc success", + "data": [ + { + "cpccid": "AROU9udKtPNyh0AZtO_WY", + "cpccname": "北京算网", + "provider_convert_state": true, + "init_product": false, + "provider_info": { + "providerid": "hwQKaILcp9g2rmnpjLbQ9", + "name": "算力中心AA" + } + } + ] +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» provider_convert_state|string|true|none||转换供应商状态 未转换/已转换| +|» provider_info|string|true|none||供应商信息| + +## GET 算力中心转供应商 + +GET /provider/cpccProviderAdd.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|name|query|string| 否 |等于cpccname| +|orgcode|query|string| 否 |等于cpccid| +|orgid|query|string| 否 |机构id| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取部件类型 + +GET /provider/get_cpcc_widget.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|cpcid|query|string| 否 |算力中心ID| +|type|query|string| 否 |gpu/cpu/disk/memory| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 配置产品 + +GET /provider/cpcc_product_add.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|reseller_orgid|query|string| 是 |=orgid 运营所在机构id| +|providerid|query|string| 是 |供应商id| +|product_type|query|string| 是 |1. customize:自定义产品 2. combination:组合产品| +|spec_note|query|string| 是 |当product_type为combination时 此参数必填| +|clusterid|query|string| 是 |站点ID 必传| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 客户查看产品 + +GET /provider/cpcc_kehu_kan_chanpin.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|domain_url|query|string| 是 |当前域名链接| +|duration|query|string| 是 |时长| +|duration_unit|query|string| 是 |时长单位| +|userid|query|string| 是 |不是必传| +|clusterid|query|string| 是 |none| +|resource_type|query|string| 是 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 创建K8S实例 + +GET /provider/create_cpcc_instance.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |不是必传| +|productid|query|string| 否 |none| +|providerid|query|string| 否 |none| +|amount|query|string| 否 |none| +|duration_unit|query|string| 否 |none| +|duration|query|string| 否 |none| +|domain_url|query|string| 否 |none| +|clusterid|query|string| 否 |none| +|source_name|query|string| 否 |none| +|source_authuser|query|string| 否 |none| +|source_authpasswd|query|string| 否 |none| +|source_podengine|query|string| 否 |none| +|source_replicasetnum|query|string| 否 |none| +|instance_type|query|string| 否 |none| +|pod_imagepath|query|string| 否 |none| +|source_memrate|query|string| 否 |none| +|source_cpurate|query|string| 否 |none| +|source_selflabel|query|string| 否 |none| +|source_gpu|query|string| 否 |none| +|source_portmode|query|string| 否 |none| +|source_restartpolicy|query|string| 否 |none| +|source_apiport|query|string| 否 |none| +|source_insideport|query|string| 否 |none| +|source_outsideport|query|string| 否 |none| +|source_mountpath|query|string| 否 |none| +|source_storagelimits|query|string| 否 |none| +|disk_sys_limit|query|string| 否 |none| +|source_nodeselector|query|string| 否 |none| +|gpu_model|query|string| 否 |none| +|cpu_model|query|string| 否 |none| +|orgid|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 协议接口 + +## GET 协议添加 + +GET /product/sale_protocol_add.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|offer_salemanid|query|string| 否 |销售人员id| +|offer_orgid|query|string| 否 |卖方orgid| +|bid_orgid|query|string| 否 |买方orgid| +|salemode|query|string| 否 |销售模式| +|settlemode|query|string| 否 |结算模式| +|settle_dp|query|string| 否 |结算日期模版| +|protocolfile|query|string| 否 |协议文件| +|start_date|query|string| 否 |none| +|end_date|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 协议查找 + +GET /product/sale_protocol_search.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|bid_orgid|query|string| 否 |none| +|offer_orgid|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 协议删除 + +GET /product/sale_protocol_delete.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |协议表id| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 协议更新 + +GET /product/sale_protocol_update.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|protocolid|query|string| 否 |协议id| +|salemode|query|string| 否 |销售模式| +|start_date|query|string| 否 |开始时间| +|end_date|query|string| 否 |结束时间| +|protocolfile|query|string| 否 |协议文件| +|settlemode|query|string| 否 |结算模式| +|settle_dp|query|string| 否 |结算日期模版| +|provider_table_id|query|string| 否 |供应商修改协议时填写| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 申请审批 + +## POST 获取审批密钥 + +POST /apv/get_apv_key.dspy + +> Body 请求参数 + +```json +{ + "orgid": "gg" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "code": 0, + "data": [ + { + "user_id": "string", + "send_dd_user_id": "string", + "source": "string", + "app_key": "string", + "app_secret": "string", + "http_aes_key": "string", + "http_token": "string", + "process_code": "string", + "process_name": "string", + "update_time": "string" + } + ] +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» code|integer|true|none||none| +|» data|[object]|true|none||none| +|»» user_id|string|true|none||none| +|»» send_dd_user_id|string|true|none||none| +|»» source|string|true|none||none| +|»» app_key|string|true|none||none| +|»» app_secret|string|true|none||none| +|»» http_aes_key|string|true|none||none| +|»» http_token|string|true|none||none| +|»» process_code|string|true|none||none| +|»» process_name|string¦null|true|none||none| +|»» update_time|string|true|none||none| + +## POST 保存审批密钥 + +POST /apv/save_apv_key.dspy + +> Body 请求参数 + +```json +{ + "id": "-K9htuHKMPGFaqxUdJ-sb", + "flag": "update", + "user_id": "ss", + "orgid": "ggs", + "send_dd_user_id": "00", + "source": "dd", + "app_key": "ding46800v9xr14eqxqy", + "app_secret": "4JXeCfHps7_skIetaJqbXaUcuPh0d2U7Ov01PAohjTpqx3UPDD9mzvl5Ls5iFV0j", + "http_aes_key": "AsRTUiiEz8VlAdBQ4TxOkukI5km7mx5pDGg6LVnEWbl", + "http_token": "t6E57RiEbW4yZnngwSJ9HfLJ6gl99" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 获取审批流信息 + +POST /apv/get_apv_flow.dspy + +> Body 请求参数 + +```json +{ + "orgid": "gg", + "business_id": "11" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "code": 0, + "msg": "string" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» code|integer|true|none||none| +|» msg|string|true|none||none| + +## POST 保存审批流信息 + +POST /apv/save_apv_flow.dspy + +> Body 请求参数 + +```json +{ + "orgid": "gg", + "user_id": "gg", + "business_id": "11", + "flag": "update", + "level_data": [ + { + "level_id": "1", + "level_mode": "NONE", + "apv_dd_user_phone": [ + "15938717631" + ] + }, + { + "level_id": "2", + "level_mode": "NONE", + "apv_dd_user_phone": [ + "15938717631", + "1" + ] + } + ] +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 获取审批列表 + +POST /apv/get_apv_list.dspy + +> Body 请求参数 + +```json +{ + "user_id": "1" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "string" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| + +## POST 获取业务列表 + +POST /apv/get_apv_business.dspy + +> Body 请求参数 + +```json +{} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "code": 0, + "data": [ + { + "user_id": "string", + "send_dd_user_id": "string", + "source": "string", + "app_key": "string", + "app_secret": "string", + "http_aes_key": "string", + "http_token": "string", + "process_code": "string", + "process_name": "string", + "update_time": "string" + } + ] +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» code|integer|true|none||none| +|» data|[object]|true|none||none| +|»» user_id|string|true|none||none| +|»» send_dd_user_id|string|true|none||none| +|»» source|string|true|none||none| +|»» app_key|string|true|none||none| +|»» app_secret|string|true|none||none| +|»» http_aes_key|string|true|none||none| +|»» http_token|string|true|none||none| +|»» process_code|string|true|none||none| +|»» process_name|string¦null|true|none||none| +|»» update_time|string|true|none||none| + +## POST 设置业务回调地址 + +POST /apv/apv_business.dspy + +> Body 请求参数 + +```json +{ + "business_name": "test", + "callback_url": "https://dev.kaiyuancloud.cn/account/addledgers.dspy" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| +|» business_name|body|string| 是 |none| +|» callback_url|body|string| 是 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "success", + "data": "WK76yFzB3o4yikmEI1b1D" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|string|true|none||none| + +## POST 设置审批模板 + +POST /apv/apv_template.dspy + +> Body 请求参数 + +```json +{ + "id": "6HV3USCHgqGj7Qtj4eFz6", + "business_id": "PoHcaRB7dhUqIe_a75F6h", + "title_template": "sss", + "detail_template": "sss" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| +|» id|body|string| 是 |none| +|» business_id|body|string| 是 |none| +|» title_template|body|string| 是 |none| +|» detail_template|body|string| 是 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "success" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| + +## POST 获取审批模板 + +POST /apv/get_apv_template.dspy + +> Body 请求参数 + +```json +{ + "business_id": "PoHcaRB7dhUqIe_a75F6h" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| +|» business_id|body|integer| 是 |none| +|» del_flg|body|string| 是 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "data": [ + { + "id": "1", + "business_id": "1", + "title_template": "线下充值", + "detail_template": "充值金额:$price", + "del_flg": "0", + "create_at": "2023-08-21 16:35:27", + "update_at": "2023-08-21 16:35:27" + } + ] +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» data|[object]|true|none||none| +|»» id|string|false|none||none| +|»» business_id|string|false|none||none| +|»» title_template|string|false|none||none| +|»» detail_template|string|false|none||none| +|»» del_flg|string|false|none||none| +|»» create_at|string|false|none||none| +|»» update_at|string|false|none||none| + +## POST 删除审批业务 + +POST /apv/delete_apv_business.dspy + +> Body 请求参数 + +```json +{ + "id": "oyJq-X9K1X9-syAXGlfxl", + "del_flg": "1" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 删除审批模板 + +POST /apv/delete_apv_template.dspy + +> Body 请求参数 + +```json +{ + "id": "xx", + "del_flg": "dd" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 设置发送人和表单 + +POST /apv/send_key_create.dspy + +> Body 请求参数 + +```json +{ + "id": "fK4zjEpZsRNO44tI27yAI", + "user_id": "g", + "orgid": "g", + "send_phone": "15938717631", + "source": "dingding", + "business_id": "1", + "process_code": "PROC-B2DAA076-6A9F-4740-80AB-0D5D4410F7AC", + "process_name": "通用审批" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 查询发送人和表单 + +POST /apv/send_key_select.dspy + +> Body 请求参数 + +```json +{ + "orgid": "g", + "business_id": "1" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 获取审批表单 + +POST /apv/get_apv_form.dspy + +> Body 请求参数 + +```json +{} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 通过手机号获取id + +POST /apv/get_id_by_phone_dd.dspy + +> Body 请求参数 + +```json +{ + "orgid": "gg", + "phone": "11" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 发送审批测试接口 + +POST /test/send_apv.dspy + +> Body 请求参数 + +```json +{ + "phone": "15938717631", + "orgid": "mIWUHBeeDM8mwAFPIQ8pS", + "user_id": "wQBaNMZovPRw_jeet7aJF", + "business_id": "1", + "form_component": { + "title": { + "": "" + }, + "detail": { + "price": "10000" + } + }, + "result_org": "gKG8UaYPjA_29K7puzaTM" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 阿里云接口 + +## GET 查询可用地域 + +GET /ali/DescribeRegions.dspy + + +实例的计费方式,更多详情,请参见计费概述。取值范围 +PrePaid:包年包月。此时,您必须确认自己的账号支持余额支付或者信用支付,否则将报错InvalidPayMethod。 +PostPaid:按量付费。 + +资源类型。取值范围: + +instance:ECS实例 +disk:磁盘 +reservedinstance:预留实例券 +scu:存储容量单位包 + +根据汉语、英语和日语筛选返回结果。更多详情,请参见RFC7231。取值范围: + +zh-CN:中文。 +en-US:英文。 +ja:日文。 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|instance_charge_type|query|string| 否 |实例的计费方式| +|resource_type|query|string| 否 |资源类型| +|accept_language|query|string| 否 |根据汉语、英语和日语筛选返回结果| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 佳杰用户同步 + +GET /ali/jiajie_sync_user.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |不是必传参数| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 佳杰获取跳转链接 + +GET /ali/jiajie_get_token_redirect.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |不是必传参数| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "string", + "data": "string" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|string|true|none||none| + +# 服务器租赁 + +## POST 创建租赁产品 + +POST /lease/create_lease_data.dspy + +> Body 请求参数 + +```json +{ + "products": { + "product_name": "商品7", + "stock": "3", + "user_id": "gg", + "price": "1", + "lease_start_time": "2023-01-06", + "lease_end_time": "2023-09-26" + }, + "servers": { + "store_name": "xx", + "device_type": "77", + "device_brand": "device_brand", + "resource_type": "resource_type ™️ ", + "card_type": "card_type", + "card_interface": "card_interface", + "cpu": "cc", + "memory": "memory", + "system_disk": "system_disk", + "data_disk": "data_disk", + "net_card1": "net_card1", + "net_card2": "net_card2", + "other_data": "other_data", + "price": "1" + } +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 查询租赁产品 + +POST /lease/filter_lease_data.dspy + +> Body 请求参数 + +```json +"{\n \"status\": 1,\n \"product_name\": \"开元云科技A\",\n \"store_name\": \"北京\",\n \"page\": 1,\n \"rows\": 10,\n \"sort\": \"create_at desc\"\n // \"sort\": \"create_at desc\"\n}" +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 修改产品信息 + +POST /lease/update_product.dspy + +> Body 请求参数 + +```json +{ + "product": { + "id": "AmAlWMSg-M5JYI75EWqk-", + "product_name": "product_name", + "price": "1", + "stock": "10", + "user_id": "ddddd", + "lease_start_time": "2023-07-06", + "lease_end_time": "2123-09-06" + } +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 保存合同 + +POST /lease/save_contract.dspy + +> Body 请求参数 + +```json +{ + "bill_id": "XX", + "title": "title", + "user_id": "user_id", + "start_date": "2023-09-08", + "end_date": "2023-09-08", + "salesman": "salesman", + "client": "client", + "status": "status", + "remark": "remark" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 修改合同 + +POST /lease/update_contract.dspy + +> Body 请求参数 + +```json +{ + "id": "AAC1PBqCpgnTEr_iaznCd", + "title": "gg", + "user_id": "gg", + "start_date": "2023-09-08", + "end_date": "2023-09-08", + "salesman": "salesman", + "client": "client", + "status": "status", + "remark": "remark" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 获取合同 + +POST /lease/get_contract.dspy + +> Body 请求参数 + +```json +{ + "user_id": "gg" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 购买自有服务器 + +POST /lease/buy.dspy + +> Body 请求参数 + +```json +"{\n \"bill_data\": {\n \"device_type\": \"123\",\n \"device_num\": \"2\",\n \"bandwidth\": \"123\",\n \"stored\": \"123\",\n \"test_type\": \"2\", // 测试期类型,0:无测试,1:免费,2:收费\n \"test_price\":11, // 若填则大于0\n \"test_day\":2, // 若填则大于0\n \"user_id\": \"9KVhsVCJsW_29q3hRhMAr\",\n \"start_date\": \"2023-10-28\",\n \"end_date\": \"2023-10-30\",\n \"ip_num\": 2\n },\n \"device_ids\": [\n [\n \"yvxMXEwBk8qloavs-F7iu\", // 商品id\n \"05or94z-xvz3l2d0DZHPs\" // 设备id\n ],\n [\n \"yvxMXEwBk8qloavs-F7iu\",\n \"06yPhYgtfVXV0QSc8oeKl\"\n ]\n \n ]\n}" +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 统计空闲 + +POST /lease/report_disengaged.dspy + +> Body 请求参数 + +```json +{ + "select_date": "2023-01-08" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 获取产品列表 + +POST /lease/get_product_list.dspy + +> Body 请求参数 + +```json +{} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 获取账单列表 + +POST /lease/get_bill_list.dspy + +> Body 请求参数 + +```json +{ + "user_id": "user_id", + "page": 1, + "rows": 3, + "sort": "create_at desc" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 获取账单详情 + +POST /lease/get_bill_detail.dspy + +> Body 请求参数 + +```json +{ + "bill_id": "ABl7_cp9l6k0kjrhls1NY" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 到期自动回收设备 + +POST /lease/update_stock.dspy + +> Body 请求参数 + +```json +{} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 到期警告 + +POST /lease/expiration_warning.dspy + +> Body 请求参数 + +```json +{} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 获取服务器数据 + +POST /lease/get_server_data.dspy + +> Body 请求参数 + +```json +{ + "field": "store_name" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 创建仓库 + +POST /lease/create_store.dspy + +> Body 请求参数 + +```json +{ + "name": "xx", + "location": "xxxx", + "address": "xxx", + "bandwidth_price": "123", + "stored_price": "1233", + "ip_price": "33", + "user_id": "xxxx" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 更新仓库 + +POST /lease/update_store.dspy + +> Body 请求参数 + +```json +{ + "id": "xx", + "name": "2", + "location": "xxxx", + "address": "xxx", + "bandwidth_price": "123", + "stored_price": "1233", + "ip_price": "33", + "user_id": "xxxx" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 获取仓库列表 + +POST /lease/get_store_list.dspy + +> Body 请求参数 + +```json +{ + "page": 1, + "rows": 21, + "sort": "create_at desc" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 获取去重后字段信息 + +POST /lease/get_distinct.dspy + +> Body 请求参数 + +```json +{ + "distinct": [ + "product_name", + "store_name" + ] +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 分销商 + +## GET 分销商折扣底价更新 + +GET /product/xiaoshou_gai_zhekou_dijia.dspy + +1. 添加修改折扣产品 参数discount必填 + price不传或为空 + +2. 添加修改底价产品 参数price必填 + discount不传或为空 + +2. 添加修改回佣产品 参数price和discount不填 + 参数price和discount不填不传或为空 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|offer_orgid|query|string| 是 |卖方机构id| +|bid_orgid|query|string| 是 |分销商机构id| +|productid|query|string| 是 |产品id 数组格式| +|discount|query|string| 否 |折扣| +|price|query|string| 否 |底价| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 分销商产品折扣配置查 + +GET /product/reseller_discount_config_get.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|offer_orgid|query|string| 是 |供应商id| +|bid_orgid|query|string| 是 |分销商id| +|salemode|query|string| 是 |销售模式 折扣产品:0 底价产品:2 回佣产品: 1| +|flag|query|string| 否 |标志: 查看已经配置: 1, 查看没有配置产品: 0| +|range|query|string| 否 |折扣范围查询 格式:“0.9,0.98”| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 分销商折扣底价删除 + +GET /product/discount_guanli_shan.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|zi_biao_id|query|string| 是 |子表id /product/reseller_discount_config_get.dspy返回| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 分销商独立信息添加 + +GET /reseller/independent_info_add.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |分销商表id:reseller_table_id| +|domain_name|query|string| 否 |分销商域名| +|logo|query|string| 否 |分销商logo图片地址| +|license_number|query|string| 否 |icp备案号| +|license|query|string| 否 |生产许可证图片地址| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 查找logo_ipc信息 + +GET /reseller/get_ipc_logo.dspy + +参数: + 场景一: url_link:初始化页面时(只传只传只传)传递的参数 + +参数: + 场景二: + reseller_table_id: 查询是否添加过域名时(只传只传只传)传递的参数 有就返回True, domain_name等 没有就会返回False + +上面两个参数根据场景 +场景一:刚登录页面 +场景二: 添加域名 + +场景一 添加后缀的方式访问 示例: https://kaiytuancloud.cn/domain/xterm.kaiyuancloud.cn + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|url_link|query|string| 否 |none| +|reseller_table_id|query|string| 否 |resellerOrgSearch.dspy返回的参数| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 分销商添加用户 + +GET /reseller/reseller_add_user.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|username|query|string| 否 |用户名称| +|password|query|string| 否 |密码| +|email|query|string| 否 |email| +|orgid|query|string| 否 |机构id| +|nick_name|query|string| 否 |用户名| +|address|query|string| 否 |地址| +|mobile|query|string| 否 |手机| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 分销商删除 + +GET /reseller/reseller_org_delete.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |resellerOrgSearch返回的id| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 分销商销售额查看 + +GET /reseller/reseller_analysis.dspy + +start_date和end_date 不是必填 +start_date和end_date 格式必须是 2023-08-01样式 不能是2023/08/01 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|reseller_orgid|query|string| 否 |分销商orgid| +|start_date|query|string| 否 |开始日期| +|end_date|query|string| 否 |结束日期| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 供应商结算统计 + +## POST 获取待结算的供应商list + +POST /provider_settle/get_settle_list.dspy + +> Body 请求参数 + +```json +{ + "orgid": "mIWUHBeeDM8mwAFPIQ8pS" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 获取指定供应商的账单list + +POST /provider_settle/get_settle_bill_list.dspy + +> Body 请求参数 + +```json +"{\n \"start_date\":\"2023-11-01\",\n \"end_date\":\"2023-11-01\",\n \"provider_id\":\"8PIR6T-FGQU9sQatdZWqu\", // 供应商id\n \"orgid\":\"mIWUHBeeDM8mwAFPIQ8pS\" // 机构id\n}" +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 发起审批申请 + +POST /provider_settle/send_apv.dspy + +> Body 请求参数 + +```json +{ + "orgid": "mIWUHBeeDM8mwAFPIQ8pS", + "user_id": "g", + "business_name": "供应商结算统计", + "id": [ + "ybBEmhdRLEU5-kVg7tmtG" + ], + "phone": "15938717631" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 供应商自动结算-审批回调API + +POST /provider_settle/apv_callback_provider_settle.dspy + +> Body 请求参数 + +```json +"// 审批自动回调接口\n{\n \"apv_id\":\"KD-VCUKKRAaPw2Y6_Dti3A07441698031462\",\n \"status\":\"agree\" \n}" +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 供应商自动结算 + +POST /provider_settle/auto_provider_settle_cron_job.dspy + +> Body 请求参数 + +```json +"// 定时任务自动调用接口" +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 导出-获取指定供应商的账单list + +POST /provider_settle/get_settle_bill_list_to_excel.dspy + +> Body 请求参数 + +```json +"{\n \"start_date\":\"2023-11-01\",\n \"end_date\":\"2023-11-01\",\n \"provider_id\":\"8PIR6T-FGQU9sQatdZWqu\", // 供应商id\n \"orgid\":\"mIWUHBeeDM8mwAFPIQ8pS\" // 机构id\n}" +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 百度云 + +## GET 获取tokenid + +GET /baiduc/get_tokenid.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 同步用户订单 + +GET /baiduc/update_baidu_order_list.dspy + +参数orgid和userid二选一 不能同时填 +填写orgid是更新所有客户订单 +填写userid是更新指定用户订单 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |更新本机构的所有客户订单 填这个不填userid| +|userid|query|string| 否 |更新指定用户的订单 选这个就不填orgid| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取百度用户列表 + +GET /baiduc/get_baidu_users_base_org.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 是 |必填| +|user_id_or_name|query|string| 否 |用户userid或者是用户名称 不是必填| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "string", + "data": [ + { + "user_id": "string", + "username": "string" + } + ] +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|[object]|true|none||none| +|»» user_id|string|true|none||none| +|»» username|string|true|none||none| + +## GET 查询百度订单 + +GET /baiduc/get_local_baidu_orders.dspy + +pageno 必填 + +pagesize 必填 + +userid 查询全部时不填 + +ordertype 订单类型,NEW(新购)、RENEW(续费)、REFUND(退款)、SHIFT_CHARGE(后付费计费方案变更)、DILATATION(升级)、SHRINKAGE(降级)、RESIZE(后付费变配)、COMPENSATE_TIME(赔付时长)、TRANSFER_IN(转入)、TO_PREPAY(后付费转预付费)、TO_POSTPAY(预付费转后付费)、TIME_EXPAND(续时订单),注括号内为解释,参数赋值英文字符 + +servicetype 产品类型,例:BCC,BOS等 + +producttype 计费类型:prepay/ postpay,分别表示预付费/后付费 + +status 订单状态, NEED_PURCHASE(等待支付),NEED_CONFIRM(待确认),CONFIRMED(已确认),CANCELLED(已取消), DEFERRED_CREATE(延迟创建),READY_FOR_CREATE(待创建),CREATING(创建中),CREATED(创建完成),CREATE_FAILED(创建失败),EXPIRED(超期),REFUND_SUCC(退款成功),REFUND_FAILED(退款失败) + +autoreneworder 1或0 布尔值,表示是否查询下单来源是自动续费的订单 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|pageNo|query|string| 是 |必填| +|pageSize|query|string| 是 |必填| +|user_id_or_name|query|string| 否 |none| +|ordertype|query|string| 否 |订单类型| +|servicetype|query|string| 否 |产品类型| +|producttype|query|string| 否 |计费类型| +|status|query|string| 否 |订单状态| +|autoreneworder|query|string| 否 |是否自动续费| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "string", + "pagesize": 0, + "totalcount": 0, + "pageno": "string", + "data": [ + { + "username": "string", + "user_id": "string", + "id": "string", + "orderid": "string", + "ordertype": "string", + "accountid": "string", + "servicetype": "string", + "producttype": "string", + "price": 0, + "status": "string", + "autoreneworder": "string", + "createtime": "string", + "updatetime": "string", + "del_flg": "string", + "create_at": "string", + "update_time": "string" + } + ] +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» pagesize|integer|true|none||none| +|» totalcount|integer|true|none||none| +|» pageno|string|true|none||none| +|» data|[object]|true|none||none| +|»» username|string|true|none||none| +|»» user_id|string|true|none||none| +|»» id|string|true|none||none| +|»» orderid|string|true|none||none| +|»» ordertype|string|true|none||none| +|»» accountid|string|true|none||none| +|»» servicetype|string|true|none||none| +|»» producttype|string|true|none||none| +|»» price|number|true|none||none| +|»» status|string|true|none||none| +|»» autoreneworder|string|true|none||none| +|»» createtime|string|true|none||none| +|»» updatetime|string|true|none||none| +|»» del_flg|string|true|none||none| +|»» create_at|string|true|none||none| +|»» update_time|string|true|none||none| + +## GET 订单交互处理 + +GET /baiducloud/get_baidu_orderlist.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|order_id|query|string| 否 |订单ID| +|userid|query|string| 否 |用户id| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 百度订单退款 + +GET /baiduc/baidu_confirm_refund_order.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|order_id|query|string| 否 |订单ID| +|baidu_id|query|string| 否 |百度用户ID| +|user_id|query|string| 否 |用户ID| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 资源查询 + +GET /baiduc/baidu_resource_query.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "string" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| + +## GET 取消退款 + +GET /baiduc/baidu_order_cancel.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|baidu_id|query|array[string]| 否 |none| +|order_id|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 发票开票 + +## POST 销售获取名下客户发票信息 + +POST /invoice/get_user_invoice.dspy + +> Body 请求参数 + +```json +{ + "user_id": "BplKduzcRmp0YzF_5G-EB" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 销售保存客户发票信息 + +POST /invoice/save_user_invoice.dspy + +> Body 请求参数 + +```json +"{\n \"orgid\": \"g\",\n \"user_id\": \"BplKduzcRmp0YzF_5G-EB\",\n \"client_id\": \"O7FVnSdEyui8Ujq1LRq6v\", // 客户的机构id\n \"title_type\":1\n}" +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 销售修改客户发票信息 + +POST /invoice/update_user_invoice.dspy + +> Body 请求参数 + +```json +"{ \n \"id\":\"1\",\n \"orgid\": \"gggg\",\n \"user_id\": \"BplKduzcRmp0YzF_5G-EB\",\n \"client_id\": \"O7FVnSdEyui8Ujq1LRq6v\", // 客户的机构id\n \"contract_number\": \"contract_number\",\n \"invoice_type\":2,\n \"invoice_title\": \"invoice_title\",\n \"tax_no\": \"tax_no\",\n \"bank_name\": \"bank_name\",\n \"bank_account\": \"bank_account\",\n \"phone\": \"phone\",\n \"receiver_name\": \"receiver_name\", \n \"address\": \"address\",\n \"post_code\": \"post_code\",\n \"title_type\":1\n}" +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 获取充值记录 + +POST /invoice/get_recharge_record.dspy + +> Body 请求参数 + +```json +"{ \n \"customerid\": \"O7FVnSdEyui8Ujq1LRq6v\" \n // \"customerid\":\"mIWUHBeeDM8mwAFPIQ8pS\" // 客户的orgid\n}" +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 申请开票 + +POST /invoice/apv_invoice.dspy + +> Body 请求参数 + +```json +"{\n \"orgid\": \"R_dUvCVA-mzv8qqx5vdd8\", // orgid\n \"maker\": \"R_dUvCVA-mzv8qqx5vdd8\", // user_id/orgid\n \"client_id\": \"R_dUvCVA-mzv8qqx5vdd8\", // 客户(机构)id 客户是一个机构\n \"user_id\": \"user_id\", // 当前登陆人的ID\n \"user_name\": \"user_name\", // 当前登陆人的名字\n \"recharge_id\": [ // 充值记录id\n // \"-pHC8OerOTyHvDAsQkllT\",\n \"4LaEJ-4X8H3gIxGV_7EJw\"\n // \"544VLt8UjVSb60FRM-MBp\",\n // \"58zrQIx4Ogp59FSCSuguC\",\n // \"5AqRdV3Aih_z8-5epXtEw\",\n // \"5LxIB7OE8pOClx9NLrUfS\",\n // \"6cDCyNMEqByMnYPQewG7b\",\n // \"6gJV2xPPlUWJh-4oXlol4\",\n // \"6xmq9oM_cXX6pIih6C68N\"\n ]\n}" +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 申请开票回调API + +POST /invoice/invoice_callback.dspy + +> Body 请求参数 + +```json +"{ \"orgid\":\"mIWUHBeeDM8mwAFPIQ8pS\",\n \"maker\": \"BplKduzcRmp0YzF_5G-EB\", // 发起人id 销售/客户id\n \"client_id\": \"xpkiSDsZRZp4WKD1V2Rp7\", // 客户id\n \"recharge_id\": [ // 充值记录id\n \"-pHC8OerOTyHvDAsQkllT\",\n \"4LaEJ-4X8H3gIxGV_7EJw\",\n \"544VLt8UjVSb60FRM-MBp\",\n \"58zrQIx4Ogp59FSCSuguC\",\n \"5AqRdV3Aih_z8-5epXtEw\",\n \"5LxIB7OE8pOClx9NLrUfS\",\n \"6cDCyNMEqByMnYPQewG7b\",\n \"6gJV2xPPlUWJh-4oXlol4\",\n \"6xmq9oM_cXX6pIih6C68N\"\n ]\n}" +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 销售获取名下的审批记录 + +POST /invoice/get_apv_list.dspy + +> Body 请求参数 + +```json +"{\n \"user_id\":\"BplKduzcRmp0YzF_5G-EB\" // 销售user_id\n}" +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 租赁设备产品化 + +## POST 获取供应商list + +POST /lease_product/get_provider.dspy + +> Body 请求参数 + +```json +{ + "orgid": "wLlfpADeWNZggdaARVpVo", + "org_type": 4 +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 获取产品list + +POST /lease_product/get_product.dspy + +> Body 请求参数 + +```json +"{\n \"providerid\":\"PaqJvHbAgtz9qHrPKsCNo\" // 供应商id\n}" +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 获取设备list + +POST /lease_product/get_server.dspy + +> Body 请求参数 + +```json +"{\n \"providerid\":\"PaqJvHbAgtz9qHrPKsCNo\", // 供应商id\n \"productid\":\"0MiSPyfTrwF99c0JVX4ii\", // 可选参数 产品id\n \"status\":0 // 可选 设备状态 0:可售\n}" +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 获取设备详情 + +POST /lease_product/get_server_detail.dspy + +> Body 请求参数 + +```json +"{\n \"server_id\":\"RPSaFXLIcf4QzRyWkZ9ju\", // 可选参数 设备id\n // \"id\":\"4_r2czW5eAKOCPhJ6gF3u1\"\n}" +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 根据产品添加设备 + +POST /lease_product/create_server.dspy + +> Body 请求参数 + +```json +{ + "providerid": "3MEgM-2zZid7kYCa4-AuJ", + "provider_name": "济南超算", + "productid": "5GE5sro6Picw5QRCjVtM0", + "product_name": "CPU节点/64G X86-Intel- E5-2682V4", + "stock": 15, + "user_id": "9KVhsVCJsW_29q3hRhMAr", + "price": "200", + "end_date": "2024-02-23", + "other_data": "4234", + "store_name": "上海", + "parameter": [ + { + "title": "device_type", + "parameter": "23", + "number": 1 + }, + { + "title": "device_brand", + "parameter": "4", + "number": 1 + }, + { + "title": "resource_type", + "parameter": "23423", + "number": 1 + }, + { + "title": "card_type", + "parameter": "4", + "number": 1 + }, + { + "title": "card_interface", + "parameter": "234234", + "number": 1 + }, + { + "title": "cpu", + "parameter": "234", + "number": 1 + }, + { + "title": "memory", + "parameter": "23423", + "number": 1 + }, + { + "title": "system_disk", + "parameter": "234", + "number": 1 + }, + { + "title": "data_disk", + "parameter": "234", + "number": 1 + }, + { + "title": "net_card1", + "parameter": "234", + "number": 1 + }, + { + "title": "net_card2", + "parameter": "234", + "number": 1 + } + ] +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 修改设备配置 + +POST /lease_product/update_server.dspy + +> Body 请求参数 + +```json +"{\n \"id\": \"RPSaFXLIcf4QzRyWkZ9ju\", // serverid\n \"productid\":\"q38zge3bkgj7ATQHD2cmV\", // productid\n \"price\": 10111, // 单价\n \"stock\":11, // 新库存\n \"change_stock\": -1, // 库存变化\n \"end_date\":\"2024-09-29\" // 只传值,不能修改\n }" +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 根据产品id获取价格 + +POST /lease_product/get_price.dspy + +> Body 请求参数 + +```json +"{\n \"productid\":\"productid2\", // 产品id\n}" +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 锁定设备 + +POST /lease_product/lock_server.dspy + +> Body 请求参数 + +```json +{ + "lease_start_time": "2023-11-30", + "lease_end_time": "2023-12-30", + "productid": "1", + "count": 111 +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 保存订单id + +POST /lease_product/save_order_id.dspy + +> Body 请求参数 + +```json +{ + "order_id": "", + "productid": "", + "count": 2 +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 释放锁定商品by_order id + +POST /lease_product/unlock_server_by_orderid.dspy + +> Body 请求参数 + +```json +{ + "order_id": "uM6KKHPSj9sAwGiIwtjfh" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 释放锁定商品by_id + +POST /lease_product/unlock_server_by_id.dspy + +> Body 请求参数 + +```json +{ + "count": 1, + "productid": "1" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 获取设备的订单 list + +POST /lease_product/get_order_list.dspy + +> Body 请求参数 + +```json +{ + "orgid": "mIWUHBeeDM8mwAFPIQ8pS" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 获取设备的订单详情 + +POST /lease_product/get_order_detail.dspy + +> Body 请求参数 + +```json +{ + "productid": "0zzwUzmGX7SHY_AHfz0NM" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 租赁到期自动释放设备 + +POST /lease_product/update_order.dspy + +> Body 请求参数 + +```json +{ + "id": "KZQ6tTMNcxO4GqK9x6kYP" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 购买设备 + +POST /lease_product/buy_server.dspy + +> Body 请求参数 + +```json +{ + "order_id": "FfdfLDifMB01uME215fGV" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 供应商-空闲率-租售率 + +POST /lease_product/provider_rate.dspy + +> Body 请求参数 + +```json +{ + "providerid": "PaqJvHbAgtz9qHrPKsCNo" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 商品-空闲率-租售率 + +POST /lease_product/product_rate.dspy + +> Body 请求参数 + +```json +{ + "productid": "1" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 站内信 + +## GET 获取未读信息及数量 + +GET /message/get_unreadmsg.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取所有通知消息 + +GET /message/get_msg.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": [ + { + "id": "string", + "senderid": "string", + "receiverid": "string", + "msgtitle": "string", + "msgtext": "string", + "msgtype": "string", + "msgstatus": "string", + "sendtime": "string", + "del_flg": "string", + "create_at": "string" + } + ] +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|[object]|true|none||none| +|»» id|string|true|none||none| +|»» senderid|string|true|none||none| +|»» receiverid|string|true|none||none| +|»» msgtitle|string|true|none||none| +|»» msgtext|string|true|none||none| +|»» msgtype|string|true|none||none| +|»» msgstatus|string|true|none||none| +|»» sendtime|string|true|none||none| +|»» del_flg|string|true|none||none| +|»» create_at|string|true|none||none| + +## GET 获取已读通知消息 + +GET /message/get_readmsg.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": [ + { + "id": "string", + "senderid": "string", + "receiverid": "string", + "msgtitle": "string", + "msgtext": "string", + "msgtype": "string", + "msgstatus": "string", + "sendtime": "string", + "del_flg": "string", + "create_at": "string" + } + ] +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|[object]|true|none||none| +|»» id|string|false|none||none| +|»» senderid|string|false|none||none| +|»» receiverid|string|false|none||none| +|»» msgtitle|string|false|none||none| +|»» msgtext|string|false|none||none| +|»» msgtype|string|false|none||none| +|»» msgstatus|string|false|none||none| +|»» sendtime|string|false|none||none| +|»» del_flg|string|false|none||none| +|»» create_at|string|false|none||none| + +## POST 发送消息通知 + +POST /message/add_msg.dspy + +> Body 请求参数 + +```json +"{\r\n \"senderid\":\"HPSInnrL8VpSm2WNRK9oO\",\r\n \"receiverid\": [\"1\",\"2\"], //单个的话字符串和列表都可以,多个的话写列表\r\n \"msgtitle\":\"账户余额变动通知\",\r\n \"msgtype\":\"产品服务\",\r\n \"msgtext\": \"尊敬的用户您好:截至目前,您的可用金余额为5000.00元,您的余额不足以支付本月的消费,系统将在48小时内停止服务,请您及时充值!\"\r\n}" +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "string" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| + +## POST 修改消息状态 + +POST /message/up_msg.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|msgid|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "string" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| + +## POST 删除通知消息 + +POST /message/del_msg.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "string" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| + +## GET 获取所有站内信模板 + +GET /message/getmsg_config.dspy + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "data": [ + null + ] +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» data|[any]|true|none||none| + +## POST 新增站内信模板 + +POST /message/addmsg_config.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|msgtype|query|string| 否 |none| +|msgtext|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "string" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| + +## POST 删除站内信模板 + +POST /message/delmsg_config.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| + +## POST 修改站内信模板 + +POST /message/upmsg_config.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |none| +|msgtype|query|string| 否 |none| +|msgtext|query|string| 否 |none| + +> 返回示例 + +> 404 Response + +``` +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|none|Inline| + +### 返回数据结构 + +## POST 修改发送状态 可以发送 + +POST /message/is_msg.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "string" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| + +## POST 修改发送状态 取消发送 + +POST /message/not_msg.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "string" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| + +# 文档管理 + +## POST 上传文档 + +POST /doc/upload_doc.dspy + +> Body 请求参数 + +```json +{ + "user_name": "韩明", + "file_type": "amet velit officia", + "title": "手传特拉", + "file_path": "dolore do deserunt a" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| +|» id|body|string| 是 |none| +|» user_name|body|string| 否 |上传者| +|» file_type|body|string| 否 |文件类型| +|» title|body|string| 否 |标题| +|» file_path|body|string| 否 |文件路径| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 获取文档列表 + +POST /doc/get_doc_list.dspy + +> Body 请求参数 + +```json +"{\n // \"kind\":1,\n // \"doc_type\":1\n}" +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 修改数据 + +POST /doc/update_doc.dspy + +> Body 请求参数 + +```json +{ + "id": "dE1we7zWMxfyBmofrDmuy", + "user_name": "韩明", + "file_type": "amet velit officia", + "title": "手传特拉", + "status": 0, + "del_flag": 0 +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| +|» id|body|string| 是 |none| +|» user_name|body|string| 否 |上传者| +|» file_type|body|string| 否 |文件类型| +|» title|body|string| 否 |标题| +|» file_path|body|string| 否 |文件路径| +|» status|body|integer| 否 |状态,0:不展示,1:展示| +|» del_flg|body|string| 否 |删除标志| + +#### 枚举值 + +|属性|值| +|---|---| +|» status|0| +|» status|1| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST health + +POST /zabbix/health.dspy + +> Body 请求参数 + +```json +{} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| +|» id|body|string| 是 |none| +|» user_name|body|string| 否 |上传者| +|» file_type|body|string| 否 |文件类型| +|» title|body|string| 否 |标题| +|» file_path|body|string| 否 |文件路径| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 悬浮窗 + +## POST 配置销售二维码名片 + +POST /floating/add_picture.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |none| +|picture|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 配置机构二维码名片 + +POST /floating/add_opicture.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|picture|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 展示销售二维码名片 + +GET /floating/get_picture.dspy + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 展示机构二维码名片 + +GET /floating/get_opicture.dspy + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 联系我们 + +GET /floating/contact.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 申请试用 + +POST /floating/apply.dspy + +> Body 请求参数 + +```json +{ + "userid": "n23WjC9yEpq8ixMnQTeQB", + "customer": "张佳栋", + "phone": "18317316386", + "unit": "开元云", + "product": "1", + "resources": [ + "A800", + "H100" + ], + "vcode": "123" +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "userid": "n23WjC9yEpq8ixMnQTeQB", + "customer": "张佳栋", + "phone": "18317316386", + "unit": "开元云", + "product": "1", + "resources": [ + "A800", + "H100" + ] +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| + +## GET 短信发送 + +GET /pub/sms_send_code.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|mobile|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 智算产品 + +## POST 客户展示智算产品 + +POST /product_smart/get_smart.dspy + +> Body 请求参数 + +```yaml +type: A100 + +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|type|query|string| 否 |none| +|body|body|object| 否 |none| +|» type|body|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": [ + { + "id": "string", + "product_model": "string", + "location": "string", + "scale": "string", + "leadtime": "string", + "update_date": "string", + "brand": "string", + "resource_type": "string", + "card_type": "string", + "card_interface": "string", + "cpu": "string", + "memory": "string", + "system_disk": "string", + "data_disk": "string", + "data_network": "string", + "card_network": "string", + "outer_bandwidth": "string", + "shared_storage": "string", + "address": "string" + } + ] +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|[object]|true|none||none| +|»» id|string|true|none||none| +|»» product_model|string|true|none||none| +|»» location|string|true|none||none| +|»» scale|string|true|none||none| +|»» leadtime|string|true|none||none| +|»» update_date|string|true|none||none| +|»» brand|string|true|none||none| +|»» resource_type|string|true|none||none| +|»» card_type|string|true|none||none| +|»» card_interface|string|true|none||none| +|»» cpu|string|true|none||none| +|»» memory|string|true|none||none| +|»» system_disk|string|true|none||none| +|»» data_disk|string|true|none||none| +|»» data_network|string|true|none||none| +|»» card_network|string|true|none||none| +|»» outer_bandwidth|string|true|none||none| +|»» shared_storage|string|true|none||none| +|»» address|string|true|none||none| + +## GET 销售展示智算产品 + +GET /product_smart/get_smart.dspy + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": [ + null + ] +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|[any]|true|none||none| + +## POST 销售修改智算产品 + +POST /product_smart/up_smart.dspy + +> Body 请求参数 + +```json +{ + "id": "BOqT_nHGxAZSeHK8IZ1Kb", + "product_model": "HGX-A800-80G-Nvlink", + "location": "嘉兴平湖", + "scale": "20", + "leadtime": "已售", + "brand": "张佳栋", + "resource_type": "裸金属", + "card_type": "A800(80G)*8", + "card_interface": "SXM4", + "cpu": "Intel-8358-2.6GHz-32C*2", + "memory": "DDR4-3200-64G*32", + "system_disk": "SATA-SSD-960G*2", + "data_disk": "NVMe-SSD-7.68T*2", + "data_network": "HCA 1Pot HDR200G MCX653105A-HDAT*4", + "card_network": "10Gbps 2PortLC-MM *1", + "outer_bandwidth": "1", + "shared_storage": "1", + "address": 1, + "test_claim": "收费", + "yearly_rant": "100", + "quarterly_rent": "150", + "monthly_rent": "200", + "remark": "240801到期", + "type": 13 +} +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|body|body|object| 否 |none| + +> 返回示例 + +> 502 Response + +``` +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|none|Inline| + +### 返回数据结构 + +## POST 销售删除智算产品 + +POST /product_smart/del_smart.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 批量添加智算产品 + +POST /product_smart/batch_add_zhisuan.dspy + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 京东云 + +## GET 检验手机号是否已经同步 + +GET /jdcloud/check_user_info.dspy + +已经同步返回 false +没有同步返回 true + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|mobile|query|string| 否 |检验手机号是否已经同步| +|userid|query|string| 否 |用户id| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 发送短信到指定手机号 + +GET /jdcloud/send_verify_code.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|mobile|query|string| 否 |发送短信到指定手机号| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 创建京东用户 + +GET /jdcloud/create_user.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |用户userid| +|username|query|string| 否 |用户username| +|mobile|query|string| 否 |用户手机号| +|verificationcode|query|string| 否 |用户输入的短信验证码| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 用户登录 + +GET /jdcloud/jdcloud_auth.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |用户id| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 首都云/私有网络 + +## GET 查询VPC信息 + +GET /capital/describe_vpc.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |用户的orgid| +|RegionCode|query|string| 否 |地域| +|AvailableZoneCode|query|string| 否 |地域可用区| +|flag|query|string| 否 |当客户点进去VPC页面的时候传这个字段| + +> 返回示例 + +> 500 Response + +``` +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|none|Inline| + +### 返回数据结构 + +## GET 创建一个VPC + +GET /capital/create_vpc.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|RegionCode|query|string| 否 |none| +|VPCName|query|string| 否 |none| +|VPCSegment|query|string| 否 |none| +|VPCSegmentType|query|string| 否 |none| +|BandwidthType|query|string| 否 |none| +|AvailableZoneCode|query|string| 否 |none| +|SubnetName|query|string| 否 |none| +|SubnetSegment|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 删除一个VPC + +GET /capital/delete_vpc.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|VPCId|query|string| 否 |VPC的id| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 查询子网信息 + +GET /capital/describe_subnet.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 是 |none| +|RegionCode|query|string| 是 |none| +|Keyword|query|string| 否 |none| +|PageNumber|query|string| 否 |none| +|VPCId|query|string| 否 |none| +|AvailableZoneCode|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "Code": "string", + "status": true, + "msg": "string" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» Code|string|true|none||none| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| + +## GET 创建一个子网 + +GET /capital/create_subnet.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|VPCId|query|string| 否 |none| +|SubnetName|query|string| 否 |none| +|SubnetSegment|query|string| 否 |none| +|AvailableZoneCode|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 删除一个子网 + +GET /capital/delete_subnet.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|SubnetId|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "Code": "string", + "status": true, + "msg": "string" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» Code|string|true|none||none| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| + +## GET 查询虚拟出网网关 + +GET /capital/describe_virtual_gateway.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|RegionCode|query|string| 否 |none| +|Keyword|query|string| 否 |none| +|PageNumber|query|string| 否 |none| +|VPCId|query|string| 否 |none| +|AvailableZoneCode|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 创建一个虚拟出网网关 + +GET /capital/create_virtual_gateway.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|VPCId|query|string| 否 |none| +|AvailableZoneCode|query|string| 否 |none| +|VirtualGateWayName|query|string| 否 |none| +|VirtualGateWaySegment|query|string| 否 |none| +|Type|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 删除一个虚拟出网网关 + +GET /capital/delete_virtual_gateway.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|VirtualGateWayId|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 查询EIP + +GET /capital/describe_eip.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |none| +|RegionCode|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 创建一个EIP + +GET /capital/create_eip.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |none| +|RegionCode|query|string| 否 |none| +|AvailableZoneId|query|string| 否 |none| +|BandwidthType|query|string| 否 |带宽类型| +|BillScheme|query|string| 否 |BandwIdth(固定带宽)BandwIdthMonth(固定带宽包月)| +|Qos|query|integer| 否 |带宽大小| +|Size|query|integer| 否 |创建个数| +|Description|query|string| 否 |none| +|SubjectId|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 变更EIP + +GET /capital/update_eip.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|EIPId|query|string| 否 |none| +|Description|query|string| 否 |none| +|Qos|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 删除一个EIP + +GET /capital/delete_eip.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|EIPId|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 绑定EIP到子网IP + +GET /capital/bind_eip.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|EIPId|query|string| 否 |none| +|NetId|query|string| 否 |none| +|IP|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET EIP从子网IP解绑 + +GET /capital/unbind_eip.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|EIPId|query|string| 否 |none| +|NetId|query|string| 否 |none| +|IP|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 查询共享带宽 + +GET /capital/describe_bandwidth.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|RegionCode|query|string| 否 |none| +|AvailableZoneCode|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 创建一个共享带宽 + +GET /capital/create_bandwidth.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|RegionCode|query|string| 否 |none| +|Name|query|string| 否 |none| +|AvailableZoneCode|query|string| 否 |none| +|BandwidthType|query|string| 否 |none| +|BillScheme|query|string| 否 |none| +|Qos|query|string| 否 |none| +|NETID|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 变更共享带宽 + +GET /capital/update_bandwidth.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|BandwidthId|query|string| 否 |none| +|Qos|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 删除一个共享带宽 + +GET /capital/delete_bandwidth.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|BandwidthId|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 共享带宽添加EIP + +GET /capital/bandwidth_add_eip.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|BandwidthId|query|string| 否 |none| +|EIPIdList|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 共享带宽移除EIP + +GET /capital/bandwidth_remove_eip.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|EIPIdList|query|string| 否 |none| +|Delete|query|string| 否 |none| +|RegionCode|query|string| 否 |none| +|BandwidthType|query|string| 否 |none| +|BillScheme|query|string| 否 |none| +|Qos|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 查询子网/虚拟出网网关/公网 IP 信息 + +GET /capital/ip_list.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|NetId|query|string| 否 |none| +|IPType|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 查询子网/虚拟出网网关 下的EIP + +GET /capital/net_eip_info.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|NetIdList|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 保留IP并绑定EIP + +GET /capital/eip_batch_bind_and_reserve_ip.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|AvailableZoneCode|query|string| 否 |none| +|Ips|query|string| 否 |none| +|NetId|query|string| 否 |none| +|AddressList|query|string| 否 |none| +|EIPList|query|string| 否 |none| +|Description|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 查询子网IP使用信息 + +GET /capital/ip_usage.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|NetId|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取线路类型 + +GET /capital/get_vpc_band_width.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|siteId|query|string| 否 |地域接口中返回的AzId| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取EIP价格 + +GET /capital/get_eip_price.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|user_orgid|query|string| 否 |必填| +|duration|query|string| 否 |包月时长 1:表示购买一个月 (新增) 不是必填| +|isMounth|query|string| 否 |是否包月 0:否 1:是| +|size|query|string| 否 |eip数量(个)| +|siteId|query|string| 否 |获取地域中返回的AzId| +|bandwidthConfIdStr|query|string| 否 |根据siteId获取的线路类型| +|qos|query|string| 否 |带宽值(mbps)| +|isToMonth|query|string| 否 |包月购买时,是否到月底 0:购买整月 1:到月底 (新增)| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 首都云/网络安全组 + +## GET 查看安全组 + +GET /capital/ecs_describe_security_groups.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |必传| +|RegionCode|query|string| 否 |none| +|SecurityGroupId|query|string| 否 |none| +|SecurityGroupName|query|string| 否 |none| +|PageNumber|query|string| 否 |none| +|PageSize|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 创建安全组 + +GET /capital/ecs_create_security_group.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |none| +|SecurityGroupName|query|string| 否 |none| +|SecurityGroupDescription|query|string| 否 |none| +|GroupInterconnected|query|boolean| 否 |none| +|RegionCode|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 修改安全组属性 + +GET /capital/ecs_modify_security_group_attribute.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|SecurityGroupId|query|string| 否 |none| +|SecurityGroupName|query|string| 否 |none| +|SecurityGroupDescription|query|string| 否 |none| +|GroupInterconnected|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 安全组删除 + +GET /capital/ecs_delete_security_group.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|SecurityGroupId|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 安全组添加规则 + +GET /capital/ecs_create_security_group_policies.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|SecurityGroupId|query|string| 否 |none| +|Ingress|query|string| 否 |传递数组 数组中具体字段见文档| +|Egress|query|string| 否 |传递数组 数组中具体字段见文档| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 查询安全组规则 + +GET /capital/ecs_describe_security_group_policies.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|SecurityGroupId|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 安全组规则删除 + +GET /capital/ecs_delete_security_group_policies.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|SecurityGroupId|query|string| 否 |none| +|PolicyIds|query|array[string]| 否 |传递数组| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 安全组修改规则 + +GET /capital/ecs_modify_security_group_policies.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|SecurityGroupId|query|string| 否 |none| +|SecurityGroupPolicySet|query|string| 否 |传递数组 数组内容见文档| +|Reset|query|string| 否 |true 或者是 false| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 安全组绑定实例 + +GET /capital/ecs_associate_security_groups.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|SecurityGroupId|query|string| 否 |none| +|RegionCode|query|string| 否 |none| +|InstanceSet|query|string| 否 |传递数组 具体见文档| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 安全组解绑实例 + +GET /capital/ecs_disassociate_security_groups.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|SecurityGroupId|query|string| 否 |none| +|InstanceIds|query|string| 否 |传递数组 具体见文档| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 修改/重置实例下安全组和优先级 + +GET /capital/ecs_modify_security_groups_priority.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|InstanceId|query|string| 否 |none| +|RegionCode|query|string| 否 |none| +|SecurityGroupSet|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 查询安全组关联实例统计 + +GET /capital/ecs_describe_security_group_association_statistics.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |none| +|SecurityGroupId|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取协议端口授权对象 + +GET /capital/u_get_protoclol_port.dspy + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 首都云/ECS/GPU云主机相关 + +## GET 获取地区可用区信息 + +GET /capital/region_az_info.dspy + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取计算类型族 + +GET /capital/ecs_family_info.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|AvailableZoneCode|query|string| 是 |可用区接口返回的内容| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取镜像信息 + +GET /capital/image_info.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|AvailableZoneCode|query|string| 是 |可用区接口返回的内容| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取云盘配额 + +GET /capital/describe_disk_quota.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|AvailableZoneCode|query|string| 否 |有效的地域| + +> 返回示例 + +> 200 Response + +```json +{ + "RequestId": "string", + "status": true, + "data": { + "QuotaList": [ + { + "TotalQuota": 0, + "UsedQuota": 0, + "FreeQuota": 0, + "DiskFeature": "string" + } + ] + }, + "msg": "string" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» RequestId|string|true|none||none| +|» status|boolean|true|none||none| +|» data|object|true|none||none| +|»» QuotaList|[object]|true|none||none| +|»»» TotalQuota|integer|false|none||none| +|»»» UsedQuota|integer|false|none||none| +|»»» FreeQuota|integer|false|none||none| +|»»» DiskFeature|string|false|none||none| +|» msg|string|true|none||none| + +## GET 获取云服务器列表 + +GET /capital/ecs_list.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |必传| +|AvailableZoneCode|query|string| 否 |none| +|VpcId|query|string| 否 |none| +|SearchInfo|query|string| 否 |none| +|PageNumber|query|string| 否 |none| +|PageSize|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取云服务器价格 + +GET /capital/get_ecs_price.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|user_orgid|query|string| 否 |none| +|AvailableZoneCode|query|string| 否 |none| +|EcsFamilyName|query|string| 否 |none| +|Cpu|query|string| 否 |none| +|Ram|query|string| 否 |none| +|Gpu|query|string| 否 |none| +|BillingMethod|query|string| 否 |none| +|Duration|query|string| 否 |none| +|IsToMonth|query|string| 否 |none| +|SystemDiskInfo|query|string| 否 |none| +|Number|query|string| 否 |none| +|DataDiskInfo|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取云服务器配置详情 + +GET /capital/get_ecs_detail.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|EcsId|query|string| 否 |云服务器id| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 批量获取云服务器状态 + +GET /capital/get_ecs_status.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|EcsIds|query|array[string]| 是 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取事件信息 + +GET /capital/describe_event.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|EventId|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 云服务器监控信息 + +GET /capital/instance_monitor.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|EcsId|query|string| 否 |none| +|StartTime|query|string| 否 |none| +|EndTime|query|string| 否 |none| +|Indicators|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取客户测试账户 + +GET /capital/describe_account_subject.dspy + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 创建云服务器 + +GET /capital/create_ecs.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|userid|query|string| 否 |none| +|user_orgid|query|string| 否 |none| +|amount|query|string| 否 |none| +|AvailableZoneCode|query|string| 否 |none| +|EcsFamilyName|query|string| 否 |none| +|Cpu|query|string| 否 |none| +|Ram|query|string| 否 |none| +|Gpu|query|string| 否 |none| +|Number|query|string| 否 |none| +|BillingMethod|query|string| 否 |none| +|ImageId|query|string| 否 |none| +|SystemDisk|query|string| 否 |none| +|DataDisk|query|string| 否 |没有数据盘时 传递空数组| +|VpcInfo|query|string| 否 |none| +|SubnetInfo|query|string| 否 |none| +|SecurityGroups|query|string| 否 |none| +|Name|query|string| 否 |none| +|StartNumber|query|string| 否 |none| +|Password|query|string| 否 |密码| +|PubnetInfo|query|string| 否 |购买EIP| +|Duration|query|string| 否 |none| +|IsToMonth|query|string| 否 |none| +|IsAutoRenewal|query|string| 否 |none| +|TestAccount|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 批量操作云服务器开、关机、重启 + +GET /capital/operate_ecs.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|EcsId|query|array[string]| 否 |云服务器id列表 注意使用双引号| +|OpType|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 删除云服务器 + +GET /capital/delete_ecs.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|EcsIds|query|string| 否 |none| +|DeleteEip|query|string| 否 |可选| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 修改实例管理员用户密码 + +GET /capital/ecs_reset_password.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|EcsIds|query|string| 否 |none| +|Password|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 修改云服务器名称 + +GET /capital/change_ecs_name.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|EcsId|query|string| 否 |none| +|Name|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 创建私有镜像 + +GET /capital/create_image.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|EcsId|query|string| 否 |none| +|Name|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 删除节点镜像 + +GET /capital/delete_image.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|ImageIds|query|string| 否 |none| +|AvailableZoneCode|query|string| 否 |可选| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 同步镜像到目标节点 + +GET /capital/sync_image.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|ImageId|query|string| 否 |none| +|AvailableZoneCodes|query|string| 否 |none| +|TestAccount|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取云服务器远程连接地址 + +GET /capital/describe_instance_vnc_url.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|EcsId|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取弹性云服务器ECS计算类型规格及其销售状况 + +GET /capital/describe_zone_instance_type.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|AvailableZoneCode|query|string| 否 |none| +|EcsFamilyName|query|string| 否 |none| +|Cpu|query|string| 否 |可选| +|Ram|query|string| 否 |可选| +|Gpu|query|string| 否 |可选| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 互联云 + +## POST 检测账号是否存在 + +POST /casdao/register_existence.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|username|query|string| 否 |用户名 使用手机号查询没有作用 只能是用户名| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 优刻得 + +## GET 获取主机列表 + +GET /ucloud/describe_uhost_instance.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|user_orgid|query|string| 否 |none| +|region|query|string| 否 |none| +|Zone|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 同步用户 + +GET /ucloud/ucloud_create_user.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |用户orgid 已经创建过的会返回false| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 获取某个地域下可售/售罄机型 + +POST /ucloud/describe_available_instance_types.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|Region|query|string| 否 |none| +|MachineType|query|string| 否 |none| +|Zone|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取镜像 + +GET /ucloud/describe_image.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |用户orgid| +|region|query|string| 否 |地域| +|ImageType|query|string| 否 |none| +|FuncType|query|string| 否 |none| +|OsType|query|string| 否 |none| +|Offset|query|string| 否 |none| +|Limit|query|string| 否 |none| +|Zone|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +``` +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取地域可用区 + +GET /ucloud/get_local_regions.dspy + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "string", + "data": [ + { + "Name": "string", + "Region": "string", + "Zone": [ + { + "ZoneName": "string", + "ZoneId": "string" + } + ] + } + ] +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|[object]|true|none||none| +|»» Name|string|true|none||none| +|»» Region|string|true|none||none| +|»» Zone|[object]|true|none||none| +|»»» ZoneName|string|true|none||none| +|»»» ZoneId|string|true|none||none| + +## GET 获取eip价格 + +GET /ucloud/get_eip_price.dspy + +调试链接: https://console.ucloud.cn/uapi/detail?id=GetEIPPrice + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|user_orgid|query|string| 否 |none| +|Region|query|string| 否 |调试链接说明: https://console.ucloud.cn/uapi/detail?id=GetEIPPrice| +|OperatorName|query|string| 否 |none| +|Bandwidth|query|string| 否 |none| +|ChargeType|query|string| 否 |none| +|Quantity|query|string| 否 |none| +|PayMode|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "string", + "data": { + "PriceSet": [ + { + "ChargeType": "string", + "OriginalPrice": 0, + "Price": 0, + "PurchaseValue": 0 + } + ] + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|object|true|none||none| +|»» PriceSet|[object]|true|none||none| +|»»» ChargeType|string|false|none||none| +|»»» OriginalPrice|number|false|none||none| +|»»» Price|number|false|none||none| +|»»» PurchaseValue|integer|false|none||none| + +## GET 获取主机和硬盘价格 + +GET /ucloud/get_uhost_instance_price.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|user_orgid|query|string| 否 |none| +|Region|query|string| 否 |none| +|Zone|query|string| 否 |none| +|CPU|query|number| 否 |none| +|Memory|query|integer| 否 |内存大小。单位:MB。范围 :[1024, 262144],取值为1024的倍数| +|Count|query|integer| 否 |购买台数,范围[1,5]| +|ImageId|query|string| 否 |none| +|GPU|query|integer| 否 |none| +|ChargeType|query|string| 否 |计费模式。枚举值为: \\ > Year,按年付费; \\ > Month,按月付费;\\ > Dynamic,按小时付费 | +|NetCapability|query|string| 否 |网络增强。枚举值:Normal,不开启; Super,开启网络增强1.0。 默认值为Normal。| +|MachineType|query|array[string]| 否 |none| +|GpuType|query|string| 否 |none| +|Quantity|query|integer| 否 |购买时长。默认: 1。按小时购买(Dynamic)时无需此参数。 月付时,此参数传0,代表了购买至月末。| +|UDSetUHostInstance|query|boolean| 否 |none| +|ShowPriceDetails|query|boolean| 否 |none| +|Disks|query|array[string]| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 创建云主机 + +POST /ucloud/create_uhost_instance.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |none| +|userid|query|string| 否 |none| +|amount|query|string| 否 |none| +|Region|query|string| 否 |none| +|Zone|query|string| 否 |none| +|ImageId|query|string| 否 |none| +|LoginMode|query|string| 否 |none| +|Password|query|string| 否 |none| +|Name|query|string| 否 |none| +|Tag|query|string| 否 |none| +|ChargeType|query|string| 否 |none| +|CPU|query|string| 否 |none| +|Memory|query|string| 否 |none| +|GpuType|query|string| 否 |none| +|GPU|query|string| 否 |none| +|NetCapability|query|string| 否 |none| +|HotplugFeature|query|string| 否 |none| +|MachineType|query|string| 否 |none| +|MaxCount|query|string| 否 |none| +|Disks|query|string| 否 |none| +|NetworkInterface|query|string| 否 |none| +|Quantity|query|string| 否 |购买时长。默认:值 1。按小时购买(Dynamic/Postpay)时无需此参数。 月付时,此参数传0,代表购买至月末。| +|SecurityGroupId|query|string| 否 |安全组| +|MinimalCpuPlatform|query|string| 否 |最低cpu平台| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 关闭主机 + +GET /ucloud/stop_uhost_instance.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 是 |用户orgid| +|region|query|string| 是 |地域| +|Zone|query|string| 否 |none| +|UHostId|query|string| 是 |UHost实例ID| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 启动主机 + +GET /ucloud/start_uhost_instance.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 是 |用户orgid| +|region|query|string| 是 |地域| +|Zone|query|string| 否 |none| +|UHostId|query|string| 是 |UHost实例ID| +|DiskPassword|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 重启主机 + +GET /ucloud/reboot_uhost_instance.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 是 |用户orgid| +|region|query|string| 是 |地域| +|Zone|query|string| 否 |none| +|UHostId|query|string| 是 |UHost实例ID| +|DiskPassword|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取登录VNC信息 + +GET /ucloud/get_uhost_instance_vnc_info.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |none| +|region|query|string| 否 |none| +|UHostId|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "string", + "data": { + "UHostId": "string", + "UhostId": "string", + "VncIP": "string", + "VncPassword": "string", + "VncPort": 0 + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|object|true|none||none| +|»» UHostId|string|true|none||none| +|»» UhostId|string|true|none||none| +|»» VncIP|string|true|none||none| +|»» VncPassword|string|true|none||none| +|»» VncPort|integer|true|none||none| + +## GET 删除主机 + +GET /ucloud/terminate_uhost_instance.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |none| +|region|query|string| 否 |none| +|UHostId|query|string| 否 |none| +|ReleaseEIP|query|string| 否 |删除主机时是否释放绑定的EIP。默认为false。| +|ReleaseUDisk|query|string| 否 |删除主机时是否同时删除挂载的数据盘。默认为false。| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 重置密码 + +GET /ucloud/reset_uhost_instance_password.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |none| +|region|query|string| 否 |none| +|Zone|query|string| 否 |none| +|UHostId|query|string| 否 |none| +|Password|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 优刻得/安全组-防火墙 + +## GET 获取防火墙基本协议 + +GET /ucloud/get_firewall_protocol.dspy + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 创建防火墙 + +POST /ucloud/create_firewall.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |用户orgid| +|region|query|string| 否 |地域| +|name|query|string| 否 |安全组名称| +|remark|query|string| 否 |防火墙描述| +|rule|query|array[string]| 否 |数组,防火墙规则| +|tag|query|string| 否 |业务组 默认Default| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取防火墙信息 + +GET /ucloud/describe_firewall.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 是 |用户orgid| +|region|query|string| 是 |地域| +|ResourceId|query|string| 否 |不是必填,绑定防火墙组的资源ID| +|limit|query|string| 否 |返回数据长度,默认为50,最大10000000| +|offset|query|string| 否 |列表起始位置偏移量,默认为0| +|ResourceType|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 删除防火墙 + +GET /ucloud/delete_firewall.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |用户orgid| +|region|query|string| 否 |地域| +|FWId|query|string| 否 |防火墙资源ID| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 更新防火墙规则 + +GET /ucloud/update_firewall.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |用户orgid| +|region|query|string| 否 |地域| +|FWId|query|string| 否 |防火墙资源ID| +|rule|query|array[string]| 否 |数组,防火墙规则| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 更新防火墙属性 + +GET /ucloud/update_firewall_attribute.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |用户orgid| +|region|query|string| 否 |地域| +|FWId|query|string| 否 |安全组ID| +|name|query|string| 否 |更新得安全组名称| +|tag|query|string| 否 |更新的安全组标签| +|remark|query|string| 否 |更新的安全组备注| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取防火墙绑定资源 + +GET /ucloud/describe_firewall_resource.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |用户orgid| +|region|query|string| 否 |地域| +|FWId|query|string| 否 |安全组ID| +|limit|query|string| 否 |none| +|offset|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 绑定到资源上 + +GET /ucloud/grant_firewall.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 是 |用户orgid| +|region|query|string| 是 |地域| +|FWId|query|string| 是 |防火墙ID| +|ResourceType|query|string| 否 |默认uhost, 绑定防火墙的资源类型| +|ResourceId|query|string| 是 |所应用资源ID| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 解绑资源 + +GET /ucloud/disassociate_firewall.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 是 |用户orgid| +|region|query|string| 是 |地域| +|FWId|query|string| 是 |防火墙ID| +|ResourceType|query|string| 否 |默认uhost 绑定防火墙的资源类型| +|ResourceId|query|string| 是 |所应用资源ID| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 优刻得/外网-EIP + +## GET 创建弹性IP + +GET /ucloud/allocate_eip.dspy + +参数说明线上调试链接: https://console.ucloud.cn/uapi/detail?id=AllocateEIP + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |none| +|userid|query|string| 否 |none| +|amount|query|string| 否 |none| +|Region|query|string| 否 |none| +|OperatorName|query|string| 否 |none| +|Bandwidth|query|string| 否 |none| +|Tag|query|string| 否 |none| +|ChargeType|query|string| 否 |none| +|Quantity|query|string| 否 |# 购买的时长, 默认: 1| +|PayMode|query|string| 否 |none| +|Name|query|string| 否 |none| +|Count|query|string| 否 | # 固定值 购买EIP数量,默认值为1| +|Remark|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 绑定EIP + +GET /ucloud/bind_eip.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |none| +|Region|query|string| 否 |none| +|EIPId|query|string| 否 |none| +|ResourceType|query|string| 否 |none| +|ResourceId|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取EIP信息 + +GET /ucloud/describe_eip.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |none| +|Region|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 解绑EIP + +GET /ucloud/un_bind_eip.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |none| +|Region|query|string| 否 |none| +|EIPId|query|string| 否 |none| +|ResourceType|query|string| 否 |none| +|ResourceId|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 删除释放EIP + +GET /ucloud/release_eip.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |none| +|Region|query|string| 否 |none| +|EIPId|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 微信支付 + +## GET 获取登录code + +GET /kpi/get_code_state.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|state|query|string| 否 |前端生成的state| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 微信支付开启 + +POST /customer/add_weixpay.dspy + +> Body 请求参数 + +``` +string + +``` + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|total|query|integer| 否 |1块钱传递100 1毛钱传递10 1分钱传递1| +|userid|query|string| 否 |充值用户id| +|body|body|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "recharge_logdict_id": "string" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» recharge_logdict_id|string|true|none|向查询接口传递|none| + +## GET 微信支付状态 + +GET /customer/get_weixinpaytype + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|recharge_logdict_id|query|string| 否 |add接口返回值| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取appid + +GET /kpi/get_wechat_appid.dspy + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 登录接口 + +GET /user/loginUser.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|wechatCode|query|string| 否 |获取登录code接口返回的code| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# 小程序 + +## GET 查询用户供给 + +GET /kpi/user_supply.dspy + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "string", + "data": [ + { + "id": "string", + "createby": "string", + "userid": null, + "updatetime": "string", + "remark": "string", + "companyid": null, + "supplytitle": "string", + "supplydesc": "string", + "supplytype": "string", + "provincename": "string", + "cityname": "string", + "framepowerway": "string", + "framepower": "string", + "frameheight": "string", + "frameprice": "string", + "supplynum": "string", + "supplybegin": "string", + "supplyend": "string", + "endtime": null, + "status": "string", + "bwoperator": "string", + "bwroutetype": "string", + "bwbandwidthprice": "string", + "bwbandwidthnum": "string", + "bwipprice": "string", + "bwippriceunit": "string", + "bwipnum": "string", + "gpuabilitytype": "string", + "gpuapplypflops": "string", + "gpuresource": "string", + "gputype": "string", + "gpunet": "string", + "gpunum": "string", + "gpuoccasion": "string", + "gpuprice": "string", + "supplynodeid": null, + "nodedataid": null, + "ordernum": "string", + "recommendstatus": "string", + "priceunit": "string", + "brandname": "string", + "modelname": "string", + "infopicurl": "string", + "goodstype": "string", + "goodsnumber": "string", + "goodsprice": "string", + "goodsaddress": "string", + "contactuser": "string", + "contactusermobile": "string", + "companyname": null, + "batchnum": null, + "expiretime": "string", + "arrivetime": "string", + "del_flg": null, + "create_at": "string" + } + ] +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|[object]|true|none||none| +|»» id|string|true|none||none| +|»» createby|string|true|none||none| +|»» userid|null|true|none||none| +|»» updatetime|string¦null|true|none||none| +|»» remark|string¦null|true|none||none| +|»» companyid|null|true|none||none| +|»» supplytitle|string|true|none||none| +|»» supplydesc|string|true|none||none| +|»» supplytype|string|true|none||none| +|»» provincename|string¦null|true|none||none| +|»» cityname|string¦null|true|none||none| +|»» framepowerway|string¦null|true|none||none| +|»» framepower|string¦null|true|none||none| +|»» frameheight|string¦null|true|none||none| +|»» frameprice|string¦null|true|none||none| +|»» supplynum|string¦null|true|none||none| +|»» supplybegin|string¦null|true|none||none| +|»» supplyend|string¦null|true|none||none| +|»» endtime|null|true|none||none| +|»» status|string|true|none||none| +|»» bwoperator|string¦null|true|none||none| +|»» bwroutetype|string¦null|true|none||none| +|»» bwbandwidthprice|string¦null|true|none||none| +|»» bwbandwidthnum|string¦null|true|none||none| +|»» bwipprice|string¦null|true|none||none| +|»» bwippriceunit|string¦null|true|none||none| +|»» bwipnum|string¦null|true|none||none| +|»» gpuabilitytype|string¦null|true|none||none| +|»» gpuapplypflops|string¦null|true|none||none| +|»» gpuresource|string¦null|true|none||none| +|»» gputype|string¦null|true|none||none| +|»» gpunet|string¦null|true|none||none| +|»» gpunum|string¦null|true|none||none| +|»» gpuoccasion|string¦null|true|none||none| +|»» gpuprice|string¦null|true|none||none| +|»» supplynodeid|null|true|none||none| +|»» nodedataid|null|true|none||none| +|»» ordernum|string|true|none||none| +|»» recommendstatus|string|true|none||none| +|»» priceunit|string¦null|true|none||none| +|»» brandname|string¦null|true|none||none| +|»» modelname|string¦null|true|none||none| +|»» infopicurl|string¦null|true|none||none| +|»» goodstype|string¦null|true|none||none| +|»» goodsnumber|string¦null|true|none||none| +|»» goodsprice|string¦null|true|none||none| +|»» goodsaddress|string¦null|true|none||none| +|»» contactuser|string¦null|true|none||none| +|»» contactusermobile|string¦null|true|none||none| +|»» companyname|null|true|none||none| +|»» batchnum|null|true|none||none| +|»» expiretime|string¦null|true|none||none| +|»» arrivetime|string¦null|true|none||none| +|»» del_flg|null|true|none||none| +|»» create_at|string|true|none||none| + +## GET 查询用户需求 + +GET /kpi/user_demand.dspy + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "string", + "data": [ + { + "id": "string", + "userid": null, + "remark": null, + "companyid": null, + "demandtitle": "string", + "demanddesc": "string", + "brandname": "string", + "modelname": "string", + "demandtype": "string", + "provincename": "string", + "cityname": "string", + "budgetprice": "string", + "demandbegin": "string", + "demandend": "string", + "endtime": null, + "status": "string", + "contactuser": "string", + "contactusermobile": "string", + "ordernum": "string", + "recommendstatus": "string", + "priceunit": "string", + "del_flg": null, + "create_at": "string" + } + ] +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|[object]|true|none||none| +|»» id|string|true|none||none| +|»» userid|null|true|none||none| +|»» remark|null|true|none||none| +|»» companyid|null|true|none||none| +|»» demandtitle|string|true|none||none| +|»» demanddesc|string|true|none||none| +|»» brandname|string¦null|true|none||none| +|»» modelname|string¦null|true|none||none| +|»» demandtype|string|true|none||none| +|»» provincename|string|true|none||none| +|»» cityname|string¦null|true|none||none| +|»» budgetprice|string|true|none||none| +|»» demandbegin|string|true|none||none| +|»» demandend|string|true|none||none| +|»» endtime|null|true|none||none| +|»» status|string|true|none||none| +|»» contactuser|string|true|none||none| +|»» contactusermobile|string|true|none||none| +|»» ordernum|string|true|none||none| +|»» recommendstatus|string|true|none||none| +|»» priceunit|string¦null|true|none||none| +|»» del_flg|null|true|none||none| +|»» create_at|string|true|none||none| + +## GET 运维获取供应key + +GET /operation/get_kyy_supply_key.dspy + +> 返回示例 + +> 200 Response + +```json +{ + "data": [ + "string" + ] +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» data|[string]|true|none||none| + +## GET 运维添加供应产品 + +GET /operation/kyy_add_supply.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |none| +|basic_info|query|string| 否 |集群基础信息| +|filepath|query|string| 否 |none| +|remark|query|string| 否 |备注信息| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "string" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| + +## GET 运维查找(id查找/条件查找)供应产品 + +GET /operation/get_kyy_supply.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |none| +|find_key|query|string| 否 |不传递 就是查找全部| +|id|query|string| 否 |id查找 上面两个字段不传| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "string", + "data": [ + { + "id": "string", + "orgid": "string", + "basic_info": "string", + "excel_info": null, + "file_path": "string", + "remark": "string", + "del_flg": "string", + "create_at": "string" + } + ] +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|[object]|true|none||none| +|»» id|string|false|none||none| +|»» orgid|string|false|none||none| +|»» basic_info|string|false|none||none| +|»» excel_info|null|false|none||none| +|»» file_path|string|false|none||none| +|»» remark|string|false|none||none| +|»» del_flg|string|false|none||none| +|»» create_at|string|false|none||none| + +## GET 运维删除供应产品 + +GET /operation/delete_kyy_supply.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|delete_id|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 运维更新供应产品 + +GET /operation/update_kyy_supply.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |查询接口获取到的id| +|basic_info|query|string| 否 |none| +|remark|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 运维单独上传excel + +GET /operation/excel_to_html_with_merges.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |none| +|update_id|query|string| 否 | 新添加该值不传递, 要上传/更新的id| +|filepath|query|string| 否 |文件路径| +|remark|query|string| 否 |备注| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# k8s服务 + +## GET 用户创建实例 + +GET /k8cloud/user_create_pod.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|storage|query|string| 否 |存储 /G| +|cpu|query|string| 否 |cpu /核| +|memory|query|string| 否 |内存 /G| +|gpu|query|string| 否 |gpu /卡| +|gpumem|query|string| 否 |gpu /单卡M| +|image|query|string| 否 |镜像| +|orgid|query|string| 否 |用户orgid| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 运营获取集群资源 + +GET /k8cloud/get_available_resources.dspy + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 用户获取实例 + +GET /k8cloud/user_get_instance.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |用户orgid| +|customer_goods_id|query|string| 否 |资源ID| + +> 返回示例 + +> 404 Response + +``` +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|none|Inline| + +### 返回数据结构 + +## GET 用户删除实例 + +GET /k8cloud/cloud_instance_delete.dspy + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |用户获取实例返回的id| +|podname|query|string| 否 |pod名称| +|pvcname|query|string| 否 |pvc名称| +|customer_goods_id|query|string| 否 |用户资源ID| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# kboss容器云/算力中心服务核心API + +## POST 集群节点绑定/解绑标签 + +POST /pcapi/api/v1/cluster/common/node_label_opt + +给某算力中心的某集群中的某节点打标签 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|host|query|string| 是 |none| +|port|query|boolean| 是 |none| +|user|query|string| 是 |none| +|psssword|query|string| 是 |none| +|worker_node|query|string| 是 |目标节点| +|label|query|string| 是 |目标标签| +|opt|query|string| 是 |标签操作,label:绑定,unlabel:解绑| +|Authorization|header|string| 是 |base64加密ssh账号密码信息(示例是ysh,Kyy@123456)| + +#### 详细说明 + +**Authorization**: base64加密ssh账号密码信息(示例是ysh,Kyy@123456) +用于pcapi服务校验客户端,下面是python写法 +headers = basic_auth_headers('ssh账号', 'ssh密码') + +> 返回示例 + +```json +{ + "status": true, + "info": "节点绑定标签成功", + "data": {} +} +``` + +```json +{ + "status": false, + "info": "switch node failed", + "data": { + "state": "uncordon", + "drain": false + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» info|string|true|none||none| +|» data|object|true|none||none| +|»» node_name|string|true|none||none| +|»» force|boolean|true|none||none| + +## GET 集群节点库存检测接口 + +GET /pcapi/api/v1/cluster/common/determine_accommodat + +接收平台传来的若干产品组合JSON和集群上下文信息 +用于判断某集群中是否至少有一个可用节点来承载这个资源实例的创建 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|kubeconfig|query|string| 是 |集群上下文信息| +|resources|query|string| 是 |平台请求资源详情| +|Authorization|header|string| 是 |base64加密ssh账号密码信息(示例是ysh,Kyy@123456)| + +#### 详细说明 + +**Authorization**: base64加密ssh账号密码信息(示例是ysh,Kyy@123456) +用于pcapi服务校验客户端,下面是python写法 +headers = basic_auth_headers('ssh账号', 'ssh密码') + +> 返回示例 + +> 200 Response + +```json +[ + "置灰产品id_2", + "置灰产品id_3", + "置灰产品id_4" +] +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 创建k8s集群(master) + +POST /pcapi/api/v1/cluster/common/new_cluster + +通过ssh远程调度安装kubernetes集群的控制节点, +返回集群节点加入凭证及kubeconfig文件, +供工作节点注册加入和后续API管理Kubernetes资源 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|cluster_type|query|string| 否 |集群类型,目前默认(只)支持kubernetes| +|host|query|string| 是 |安装控制节点的IP| +|port|query|integer| 是 |安装控制节点ssh端口| +|user|query|string| 是 |远程ssh认证用户| +|psssword|query|string| 是 |远程ssh认证密码| +|role|query|string| 是 |集控制节点角色| +|Authorization|header|string| 是 |base64加密ssh账号密码信息(示例是ysh,Kyy@123456)| + +#### 详细说明 + +**Authorization**: base64加密ssh账号密码信息(示例是ysh,Kyy@123456) +用于pcapi服务校验客户端,下面是python写法 +headers = basic_auth_headers('ssh账号', 'ssh密码') + +> 返回示例 + +```json +{ + "status": true, + "info": "operate success", + "data": "kubeadm join 192.168.0.3:6443 --token nt80u6.gzpj9dxsrw79270c --discovery-token-ca-cert-hash sha256:7b33439b2a1b37a8d8938513bd45405f57c3255771c3b9b9b90af448d886b0c2 \n apiVersion: v1 clusters: - cluster: certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURCVENDQWUyZ0F3SUJBZ0lJTGd4THlGMjM3QmN3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TlRBME1ETXdOelE1TXpWYUZ3MHpOVEEwTURFd056VTBNelZhTUJVeApFekFSQmdOVkJBTVRDbXQxWW1WeWJtVjBaWE13Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLCkFvSUJBUURQUm5hdkZmNXBTWWUvVmJLc0s2SnhEazhyc2hsc2h5WnNNRk8xZDVhZG45Z055T0wwR2NtbEsrQ1EKVklKSnF3RklJeSsxUVlEd3VRMytzczEwYmV2Y2lqM1BRanluaXJRRkNhRlA0NHh2ZkEyK2thV1FYeTVncGwrMwpjSkI1K1MxVmx2Vi9aSHQ5SXgwNjFCdHB4dE5oMUkxNS9IYk4rWmVNNnEvd3lxUW93Y01ub2pyNDltYkxxOWNwCnFSem5LL2FwWXlBYnljUk9uWWlIZ0FjQWdsclFOTjBKUEJZd2dRd0pIUmlIcGhtVFBkdmY2ckxkNFR0dFl2OXgKdmZIRDNjVUdwZkVBUElaNUJBVi9ZM3p5V0pSbDQzSFV2Ri9jemNDQ01jOVlUd3VXaEpxb2doUUZUdnNuSVZzTwovNEtKQzRwQXFSenJlZFRWdExmMXgzQlRpVCt0QWdNQkFBR2pXVEJYTUE0R0ExVWREd0VCL3dRRUF3SUNwREFQCkJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJUZjRZbzBpOVpIZC9ObzdkYWZrZVRTbzVzdzN6QVYKQmdOVkhSRUVEakFNZ2dwcmRXSmxjbTVsZEdWek1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRRERLalJWVVp1YwppckJ4QWdZWnBBeW5NSHdWQTF6YStVT09FM1U0MEMyVTN0VGgrK1BsN2o2ZGJZTWNWdEFvTXhxaDRiVjNQRW5SCmtWcWNaN2NjS3FGSXduZlhHK0ZGTVVwazVoTk0xLzc2UXBobi9OWk8zSStSVjFtV0VOU1BzM1FZdEVoWktXUlgKYWRXZ0krK0x1cUZyZVpTVzVjRXNnMWZDODFtd3dhTXdkRHZWcFJZMFEwWlBsMGFqTURsSlNDaDNOSXpQOS82bwpndXBrY1JSdWtvRGlscWVraXlrRWJ5OVJCWHZIbXo3Q0sxQ1ZnZXZJTDZrVnRPRFF2Rm10Qm1WemlRNWFDcXJOCmtZNmd6OUNGMkdKc2M4UkZrcWQxbzdMelhPakJsTkdzN2k2WmdEOE1Ca2tiank2RmZDZWVndmxOOGFCU2VmblEKZ2ZNOVptbnRpMVNDCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K server: https://192.168.0.3:6443 name: kubernetes contexts: - context: cluster: kubernetes user: kubernetes-admin name: kubernetes-admin@kubernetes current-context: kubernetes-admin@kubernetes kind: Config preferences: {} users: - name: kubernetes-admin user: client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURJRENDQWdpZ0F3SUJBZ0lIVGZPdmU4TzBJVEFOQmdrcWhraUc5dzBCQVFzRkFEQVZNUk13RVFZRFZRUUQKRXdwcmRXSmxjbTVsZEdWek1CNFhEVEkxTURRd016QTNORGt6TlZvWERUSTJNRFF3TXpBM05UUXpOMW93TkRFWApNQlVHQTFVRUNoTU9jM2x6ZEdWdE9tMWhjM1JsY25NeEdUQVhCZ05WQkFNVEVHdDFZbVZ5Ym1WMFpYTXRZV1J0CmFXNHdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFEWVJJT3h0TWFkOWs2T1JsL1UKZ2ZnZVJDQkpjZmMrc2ZFbzkxeW4vc05KZFVIbWRuamtMaC9wRjcwZkdoVWZ3R2t5dzR0WkdpTFFNR0xwclpyeAphVTdJT0R3a3I2ejl1SkQzaHlFZExhZGpZT0NOMHJhUFNpV05GV1QwSVN2UVBjZzNGQkQ2YmFHb2RtSmN5YnBPCk5qY1VZZmh5WEVqRXMwOU92QzhhZUJCbm9Na1RkRk53dlFaYXE2LzR3eTUyN0k3aUdIUVdvL21JS1VUVHhzRFgKMzJnVXErZmRVMEh5STJJeWhNMGdwT29uNURCVmRUbWsyMkZsVHk0ZWJ3Q3R4QmMvRCtpelhuZFpVd2tHMExMVwpqTEc4L3JkWTZ4WFJDVkhHM1BWNURRK0JvNEpnMTUwWWFSUnBKeDJYSGxad3N5OFBZcWVLcTM0b1pxczRTRndmCjJCY3JBZ01CQUFHalZqQlVNQTRHQTFVZER3RUIvd1FFQXdJRm9EQVRCZ05WSFNVRUREQUtCZ2dyQmdFRkJRY0QKQWpBTUJnTlZIUk1CQWY4RUFqQUFNQjhHQTFVZEl3UVlNQmFBRk4vaGlqU0wxa2QzODJqdDFwK1I1TktqbXpEZgpNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUJBUUFTR0phc1EyQXpLdVNZWFdtMGlYOUhnWTNZQUJGMHpYRzRKZU5lCjREekxkOHF2TXlqRGMwUWFWSUtNbWswemhrV1ZIQzNKSEZWalRXcDBUNFE0TlVBMk8rOXFob1p0a25NL3dsQlUKS0Zab3ZHNFd6SU1sdVJwL21ZRUIzL3dHbkFPV01MdEtBSWJ3d3FRVWl4VW5KYkxCeG4xQ1k5ZERzb1o4VmZZMQp4N2R0WDBJWjJkbU1ETTVLV1lrbW5tQWJBR0tXazZBR3pVWEpWNmlTU3laYjlWLzNuN3hmZlpZRkVDQXBQNk91CjhmRGdIVjBCdEMxS3VmU0tsTitLMnF2aXAzMlRjRHdoTEVHQWQ2aU9qYzhBRXlHelJmOWY4M0xUSGJ2dGtibjYKR0VQQlBQSExSTFlQWEh0OE9LbHdNOThwQWxkSkIyWEJ6UEttc0JFeGFOSWRXd2FTCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBMkVTRHNiVEduZlpPamtaZjFJSDRIa1FnU1hIM1BySHhLUGRjcC83RFNYVkI1blo0CjVDNGY2UmU5SHhvVkg4QnBNc09MV1JvaTBEQmk2YTJhOFdsT3lEZzhKSytzL2JpUTk0Y2hIUzJuWTJEZ2pkSzIKajBvbGpSVms5Q0VyMEQzSU54UVErbTJocUhaaVhNbTZUalkzRkdINGNseEl4TE5QVHJ3dkduZ1FaNkRKRTNSVApjTDBHV3F1ditNTXVkdXlPNGhoMEZxUDVpQ2xFMDhiQTE5OW9GS3ZuM1ZOQjhpTmlNb1ROSUtUcUorUXdWWFU1CnBOdGhaVTh1SG04QXJjUVhQdy9vczE1M1dWTUpCdEN5MW95eHZQNjNXT3NWMFFsUnh0ejFlUTBQZ2FPQ1lOZWQKR0drVWFTY2RseDVXY0xNdkQyS25pcXQrS0dhck9FaGNIOWdYS3dJREFRQUJBb0lCQVFDQ1djRjZ3YmdaQzVWTApvZFV1MCt1RjZvLy9WS2F1YmpncDlmWXQ5NXNqVW42Vzl2OWtvUHh3MVBNVHBQZm9mR09yeWpyYVNLdUZDalVFCkhiUlBINmJ4ZlJ1YkRSdmFqWDByQkpLTDhMRjhiNjdKTEtFR2VxMXBmT1N0VkxVQXZjeElqbHF4WnBUU1loQmwKVnQxcE9MbzRHZGpTclJiYklDeUVDMTdrdUV0QytZV3lFb3E5MmlLNVdMTHdHM2hwVzhyVlVLVzZ2T0cyd0l4bAp0RWhMSGpOOWtnb1VVa2pORG9tK2FlcVVxeXhDeUZEdll4UmdhVTd0Y3pJSk52SUk3aDYxaExQbEZtMmxGQ0xlCjhjeTdKUDMyV1ZDSUpUMHhRNkJJRTdvVld4WWIvMzFVSHYrTHg0UHlBcFpiZ3piMjlvQm54VjhneUxnVjZDWW0Kd1psQlQ4S2hBb0dCQU9tMFZqTkVHVm5EaXNsTDFVVkNKYzFCVU1KcjNwalQvV0g4d2s0UzJYWmhwRWdVQmpQYgpDM3Y5czkxNHh6SjhXYWFtUFZPVGZMRmxzRWFLNnJpMFhjQkhXQi9ob1R1aDVKaDByS1RNWWFMTm9SdU00VCt6Ci9zUG1aY1ZMVXcxdHFmd3U5YlVpSTJCQURQNFM2MUFubk5hSnF1UmFWRk8vT1pqZUkvbHJzMVBSQW9HQkFPem0KVTNvcjNuSDh4WHI2WDNJUjRDM3l3TkZLaHNVVE44VmdWNWRVL0U5RmRHTldUVzRkWHdCK01jeUlQMlFLbjlycwpmcU9Cb0c3NlRKVHF0YzVobjY5Q014c1lVNVdPcDhOZW9oaXplY1luSTFjTk94TmZwdzZDdUZVb1pmTFFxU1dICmJ4dEVEaFkrcXJjR2FLZ3VzMk1uMkJ2cEg1bUhCTk5DL05pSVZ1WTdBb0dBZFlnVEhkOHVuSjBockJCdUpsR1kKN3p2YzRKb2RMV0RYZWpNQ2lQOGp6RXhZc1VNWXgzVnV0aUdtRmtpS2JWSnFSOHdzNVY0MEJJY3VlcHVjWmQyWApsSDZNekNQTjBVNmV4eWxPTmVidlowL2dxUmxWb3BMa0dpTkJwVkkzWjNaeVdYaElhNXJLamJwSWpuSjNVeTFJCnpBQWFLSk5nKzJrZEQwc1FibnlDaURFQ2dZQVFDZVA2OEg5bDdqd2NnRmozNnhmblpIa0RjbTAvYUhhdEtVR2sKNEQ4WXl0WC9aN2RrVGg3QmRNbkFWRFVlZTgyb3o3d2ZLOGFGM1BKVVhyT2lYbCttU1BBVzFJWE1LVlZZVjg3WApwMGNHVUY0SEpjRXJKWjIwME1yVUVTRWQyRnlyU3NrTjZvU2RvdTZCNTdBc09zVXdZR0UwT290R0pLc0I5cFlSCnZ1RkxRd0tCZ1FEZVFuRElPaUQ2SEpmc2loTC8xZ3dnS0hVeVc2WGYrNFhQODd3ZlVXT1N0SEpza29oTkZHdk8KSnpNdUFvc2V2UGFWdElCSXBZbFgycUlaaHlhdyt2VW9BUTZYRnR3WjM1QWo1T1VPbVFQQUJWbkVXZUJZRzdSaQpaZmhEU2NTek5xb3ozWFpjMnA4a2VMWE1XOWJsTDNNOTdOMFRLbExuZ0NrSTdoaXJMVGE2T0E9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo= " +} +``` + +```json +{ + "status": false, + "info": "operate failed", + "data": "" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» info|string|true|none||none| +|» data|string|true|none||none| + +## POST 新增工作节点(worker) + +POST /pcapi/api/v1/cluster/common/new_worker + +通过ssh远程调度安装kubernetes集群的工作节点, +并自动输入加入集群指令,完成工作节点注册 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|cluster_type|query|string| 否 |集群类型,目前默认(只)支持kubernetes| +|host|query|string| 是 |安装控制节点的IP| +|port|query|integer| 是 |安装控制节点ssh端口| +|user|query|string| 是 |远程ssh认证用户| +|psssword|query|string| 是 |远程ssh认证密码| +|role|query|string| 是 |工作节点角色| +|join_command|query|string| 是 |加入集群指令| +|Authorization|header|string| 是 |base64加密ssh账号密码信息(示例是ysh,Kyy@123456)| + +#### 详细说明 + +**Authorization**: base64加密ssh账号密码信息(示例是ysh,Kyy@123456) +用于pcapi服务校验客户端,下面是python写法 +headers = basic_auth_headers('ssh账号', 'ssh密码') + +> 返回示例 + +```json +{ + "status": true, + "info": "operate success", + "data": "" +} +``` + +```json +{ + "status": false, + "info": "operate failed", + "data": "" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||状态| +|» info|string|true|none||详情| +|» data|string|true|none||数据| + +## GET 获取某集群所有资源实例 + +GET /pcapi/api/v1/cluster/common/get_cluster_pods + +通过拿到指定集群的ssh协议参数, +远程获取该集群下的所有计算资源实例信息 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|host|query|string| 是 |none| +|port|query|integer| 是 |none| +|user|query|string| 是 |none| +|psssword|query|string| 是 |none| +|Authorization|header|string| 是 |base64加密ssh账号密码信息(示例是ysh,Kyy@123456)| + +#### 详细说明 + +**Authorization**: base64加密ssh账号密码信息(示例是ysh,Kyy@123456) +用于pcapi服务校验客户端,下面是python写法 +headers = basic_auth_headers('ssh账号', 'ssh密码') + +> 返回示例 + +```json +{ + "status": true, + "info": "operate success", + "data": { + "total": 2, + "rows": [ + { + "pod_namespace": "my-namespace", + "pod_name": "mysql-deployment-548dbbfc8f-dxltl", + "pod_ready": "0/1", + "pod_running": "ImagePullBackOff", + "pod_restart": "0", + "pod_age": "17h", + "pod_ip": "10.244.5.3", + "pod_node": "k8s-worker-20250408132243", + "pod_nominated_node": "", + "pod_readiness_gates": "" + }, + { + "pod_namespace": "my-namespace", + "pod_name": "mysql-deployment-6fc6584bd6-6prqc", + "pod_ready": "0/1", + "pod_running": "ImagePullBackOff", + "pod_restart": "0", + "pod_age": "17h", + "pod_ip": "10.244.5.6", + "pod_node": "k8s-worker-20250408132243", + "pod_nominated_node": "", + "pod_readiness_gates": "" + } + ] + } +} +``` + +```json +{ + "status": false, + "info": "operate failed", + "data": "" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» info|string|true|none||none| +|» data|object|true|none||none| +|»» total|integer|true|none||none| +|»» rows|[object]|true|none||none| +|»»» pod_namespace|string|true|none||none| +|»»» pod_name|string|true|none||none| +|»»» pod_ready|string|true|none||none| +|»»» pod_running|string|true|none||none| +|»»» pod_restart|string|true|none||none| +|»»» pod_age|string|true|none||none| +|»»» pod_ip|string|true|none||none| +|»»» pod_node|string|true|none||none| +|»»» pod_nominated_node|string|true|none||none| +|»»» pod_readiness_gates|string|true|none||none| + +## GET 获取某集群所有计算节点 + +GET /pcapi/api/v1/cluster/common/get_cluster_nodes + +通过拿到指定集群的ssh协议参数, +远程获取该集群下的所有计算节点信息 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|host|query|string| 是 |none| +|port|query|integer| 是 |none| +|user|query|string| 是 |none| +|psssword|query|string| 是 |none| +|Authorization|header|string| 是 |base64加密ssh账号密码信息(示例是ysh,Kyy@123456)| + +#### 详细说明 + +**Authorization**: base64加密ssh账号密码信息(示例是ysh,Kyy@123456) +用于pcapi服务校验客户端,下面是python写法 +headers = basic_auth_headers('ssh账号', 'ssh密码') + +> 返回示例 + +```json +{ + "status": true, + "info": "operate success", + "data": { + "total": 2, + "rows": [ + { + "node_name": "k8s-master", + "node_status": "Ready", + "node_role": "control-plane", + "node_age": "5d18h", + "node_version": "v1.28.2", + "node_internalip": "192.168.0.3", + "node_externalip": "", + "node_osversion": "Ubuntu 22.04.1 LTS", + "node_kernelversion": "5.15.0-91-generic", + "node_containeruntime": "containerd://1.7.24" + }, + { + "node_name": "k8s-worker-20250408132243", + "node_status": "Ready", + "node_role": "", + "node_age": "21h", + "node_version": "v1.28.2", + "node_internalip": "192.168.0.2", + "node_externalip": "", + "node_osversion": "Ubuntu 22.04.1 LTS", + "node_kernelversion": "5.15.0-91-generic", + "node_containeruntime": "containerd://1.7.24" + } + ] + } +} +``` + +```json +{ + "status": false, + "info": "operate failed", + "data": "" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» info|string|true|none||none| +|» data|object|true|none||none| +|»» total|integer|true|none||none| +|»» rows|[object]|true|none||none| +|»»» pod_namespace|string|true|none||none| +|»»» pod_name|string|true|none||none| +|»»» pod_ready|string|true|none||none| +|»»» pod_running|string|true|none||none| +|»»» pod_restart|string|true|none||none| +|»»» pod_age|string|true|none||none| +|»»» pod_ip|string|true|none||none| +|»»» pod_node|string|true|none||none| +|»»» pod_nominated_node|string|true|none||none| +|»»» pod_readiness_gates|string|true|none||none| + +## POST 开发中-删除指定集群某工作节点 + +POST /pcapi/api/v1/cluster/common/delete_cluster_node + +1.通过ssh协议及集群资源实例参数,远程删除指定集群下某计算资源实例,删除失败原因可能很多,统一在结果中告知 +2.若强制删除,则系统先会标记该节点为不可用,再驱逐所有pod到其他节点,最后再删除 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|host|query|string| 是 |none| +|port|query|integer| 是 |none| +|user|query|string| 是 |none| +|psssword|query|string| 是 |none| +|node_name|query|string| 是 |节点名称(主机名)| +|force|query|boolean| 否 |是否强制删除(--force --grace-period=0选项)| +|Authorization|header|string| 是 |base64加密ssh账号密码信息(示例是ysh,Kyy@123456)| + +#### 详细说明 + +**Authorization**: base64加密ssh账号密码信息(示例是ysh,Kyy@123456) +用于pcapi服务校验客户端,下面是python写法 +headers = basic_auth_headers('ssh账号', 'ssh密码') + +> 返回示例 + +```json +{ + "status": true, + "info": "delete node success", + "data": { + "node_name": "k8s-worker-20250408132243", + "force": true + } +} +``` + +```json +{ + "status": false, + "info": "delete node failed", + "data": { + "node_name": "k8s-worker-20250408132243", + "force": true + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» info|string|true|none||none| +|» data|string|true|none||none| + +## POST 开发中-切换某集群某工作节点状态 + +POST /pcapi/api/v1/cluster/common/node_state_switch + +暂停/恢复kubernetes集群中某工作节点的可用状态,暂停即暂时不再接收新的pod调度 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|host|query|string| 是 |none| +|port|query|boolean| 是 |none| +|user|query|string| 是 |none| +|psssword|query|string| 是 |none| +|state|query|string| 是 |暂停还是恢复| +|darin|query|boolean| 否 |是否驱逐现有pod,默认不驱逐| +|Authorization|header|string| 是 |base64加密ssh账号密码信息(示例是ysh,Kyy@123456)| + +#### 详细说明 + +**Authorization**: base64加密ssh账号密码信息(示例是ysh,Kyy@123456) +用于pcapi服务校验客户端,下面是python写法 +headers = basic_auth_headers('ssh账号', 'ssh密码') + +#### 枚举值 + +|属性|值| +|---|---| +|state|cordon| +|state|uncordon| + +> 返回示例 + +```json +{ + "status": true, + "info": "switch node success", + "data": { + "state": "cordon", + "drain": false + } +} +``` + +```json +{ + "status": false, + "info": "switch node failed", + "data": { + "state": "uncordon", + "drain": false + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» info|string|true|none||none| +|» data|object|true|none||none| +|»» node_name|string|true|none||none| +|»» force|boolean|true|none||none| + +## POST 通过YAML实例化资源实例 + +POST /pcapi/api/v1/cluster/common/yaml_apply_delete + +每次被调用都接收对方传来的新的yml文件内容,实例化k8s集群Pod资源, +其中包含创建,修改,删除kubernetes资源实例等操作 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|cluster_type|query|string| 否 |集群类型 | +|host|query|string| 否 |主机地址 | +|port|query|integer| 否 |端口 | +|user|query|string| 否 |用户名 | +|psssword|query|string| 否 |密码 | +|kubeconfig|query|string| 否 |集群上下文 | +|action|query|string| 否 |操作 | +|namespace_name|query|string| 否 |命名空间名称 | +|serviceaccount_name|query|string| 否 |命名空间服务认证名称 | +|podcd_name|query|string| 否 |Pod引擎名称 | +|service_name|query|string| 否 |资源服务名称 | +|clusterid|query|string| 否 |集群ID | +|cpcid|query|string| 否 |算力中心ID| +|source_name|query|string| 否 |资源名称 | +|instance_type|query|string| 否 |实例类型 | +|source_replicasetnum|query|string| 否 |副本数量 | +|source_authuser|query|string| 否 |认证用户名 | +|source_authpasswd|query|string| 否 |认证密码| +|source_podengine|query|string| 否 |Pod引擎类型 | +|pod_imagepath|query|string| 否 |基础镜像| +|source_memrate|query|string| 否 |内存限制 | +|source_cpurate|query|string| 否 |CPU 限制| +|source_selflabel|query|string| 否 |资源实例标签 | +|source_portmode|query|string| 否 |端口映射模式 | +|source_restartpolicy|query|string| 否 |重启策略 | +|source_apiport|query|string| 否 |集群内映射端口 | +|source_insideport|query|string| 否 |容器内监听端口 | +|source_outsideport|query|string| 否 |集群外映射端口 | +|source_mountpath|query|string| 否 |容器内挂载路径 | +|source_storagelimits|query|string| 否 |存储盘大小| +|Authorization|header|string| 是 |base64加密ssh账号密码信息(示例是ysh,Kyy@123456)| + +#### 详细说明 + +**Authorization**: base64加密ssh账号密码信息(示例是ysh,Kyy@123456) +用于pcapi服务校验客户端,下面是python写法 +headers = basic_auth_headers('ssh账号', 'ssh密码') + +> 返回示例 + +```json +{ + "status": true, + "info": "operate success", + "data": null +} +``` + +```json +{ + "status": false, + "info": "operate failed", + "data": null +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» info|string|true|none||none| +|» data|string|true|none||none| + +# kboss容器云/算力中心管理 + +## GET 算力中心展示 + +GET /dev/cpcc/cpclist/get_cpclist.dspy + +获取所有算力中心(列表信息),纯数据库操作 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|page|query|string| 否 |none| +|rows|query|string| 否 |none| +|sort|query|string| 否 |none| +|orgid|query|string| 否 |线下调试/非登录态可指定组织ID进行操作| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "算力中心数据查询成功", + "data": { + "total": 2, + "rows": [ + { + "id": "-z2r4CFb-7rcfugNn2wIr", + "name": "首都算力中心1", + "orgid": "mIWUHBeeDM8mwAFPIQ8pS", + "pcapi_url": "https://opencomputing.ai", + "api_user": "ysh", + "api_pwd": "Kyy@123456", + "enable_date": "2025-05-16", + "expire_date": "2026-06-17", + "contactname": "Ahexl", + "contactphone": "13141005621", + "row_num_": 1 + }, + { + "id": "AROU9udKtPNyh0AZtO_WY", + "name": "测试pcapi", + "orgid": "mIWUHBeeDM8mwAFPIQ8pS", + "pcapi_url": "https://trial.kaiyuancloud.cn", + "api_user": "ysh", + "api_pwd": "QUZVcXg5V1p1STMybG5Ia5XIAWA87bQMgZw=", + "enable_date": "2025-04-13", + "expire_date": "2025-04-18", + "contactname": "kyy", + "contactphone": "", + "row_num_": 2 + } + ] + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» total|integer|true|none||none| +|» rows|[object]|true|none||none| +|»» id|string|true|none||none| +|»» name|string|true|none||none| +|»» orgid|string|true|none||none| +|»» pcapi_url|string|true|none||none| +|»» api_user|string|true|none||none| +|»» api_pwd|string|true|none||none| +|»» enable_date|string|true|none||none| +|»» expire_date|string|true|none||none| +|»» contactname|string|true|none||none| +|»» contactphone|string|true|none||none| +|»» orgid_text|string|true|none||none| +|»» row_num_|integer|true|none||none| + +## POST 算力中心添加 + +POST /dev/cpcc/cpclist/add_cpclist.dspy + +添加算力中心,纯数据库操作 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|name|query|string| 是 |算力中心名称| +|pcapi_url|query|string| 是 |算力中心API总址| +|api_user|query|string| 是 |算力中心接口账号| +|api_pwd|query|string| 是 |算力中心接口密码| +|contactname|query|string| 是 |联系人| +|contactphone|query|string| 是 |手机号| +|enable_date|query|string| 否 |启用日期| +|expire_date|query|string| 否 |停用日期| +|orgid|query|string| 否 |线下调试/非登录态可指定组织ID进行操作| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "新建算力中心成功", + "data": { + "api_pwd": "Kyy@123456", + "api_user": "ysh", + "contactname": "Ahexl", + "contactphone": "13141005621", + "enable_date": "2025-05-16", + "expire_date": "2026-06-17", + "name": "首都算力中心1", + "orgid": "mIWUHBeeDM8mwAFPIQ8pS", + "pcapi_url": "https://opencomputing.ai", + "id": "9Luu-tbsJmEEcJxoAkumM" + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|object|true|none||none| +|»» api_pwd|string|true|none||none| +|»» api_user|string|true|none||none| +|»» contactname|string|true|none||none| +|»» contactphone|string|true|none||none| +|»» enable_date|string|true|none||none| +|»» expire_date|string|true|none||none| +|»» name|string|true|none||none| +|»» orgid|string|true|none||none| +|»» pcapi_url|string|true|none||none| +|»» id|string|true|none||none| + +## POST 算力中心更新 + +POST /dev/cpcc/cpclist/update_cpclist.dspy + +更新某算力中心的基本数据,纯数据库操作 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 是 |算力中心ID| +|name|query|string| 是 |算力中心名称| +|pcapi_url|query|string| 是 |算力中心API总址| +|api_user|query|string| 是 |算力中心接口账号| +|api_pwd|query|string| 是 |算力中心接口密码| +|contactname|query|string| 是 |联系人| +|contactphone|query|string| 是 |手机号| +|enable_date|query|string| 否 |启用日期| +|expire_date|query|string| 否 |停用日期| + +> 返回示例 + +```json +{ + "status": true, + "msg": "更新算力中心成功", + "data": { + "api_pwd": "QUZVcXg5V1p1STMybG5Ia5aL/gkv7+gmSkA=", + "api_user": "修改后数据1", + "contactname": "Ahexl", + "contactphone": "13141005621", + "enable_date": "2025-05-16", + "expire_date": "2026-06-17", + "id": "gOHOm7Wm01OPnBUFeeVi8", + "name": "首都算力中心3", + "pcapi_url": "https://opencomputing.ai" + } +} +``` + +```json +{ + "status": false, + "msg": "无算力中心ID" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» widgettype|string|true|none||none| +|» options|object|true|none||none| +|»» title|string|true|none||none| +|»» cwidth|integer|true|none||none| +|»» cheight|integer|true|none||none| +|»» timeout|integer|true|none||none| +|»» message|string|true|none||none| + +## POST 算力中心删除 + +POST /dev/cpcc/cpclist/delete_cpclist.dspy + +删除某算力中心,纯数据库操作 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |算力中心展示接口返回的id| +|orgid|query|string| 否 |线下调试/非登录态可指定组织ID进行操作| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "删除算力中心成功", + "data": { + "id": "u8swLRSlyDt7IGpJurPVZ", + "orgid": "mIWUHBeeDM8mwAFPIQ8pS" + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» widgettype|string|true|none||none| +|» options|object|true|none||none| +|»» title|string|true|none||none| +|»» timeout|integer|true|none||none| +|»» cwidth|integer|true|none||none| +|»» cheight|integer|true|none||none| +|»» message|string|true|none||none| + +# kboss容器云/算力设备管理 + +## GET 算力设备展示 + +GET /dev/cpcc/cpcnode/get_cpcnode.dspy + +输入算力中心id,展示该算力中心下所有算力设备,包含已安装的和未安装的 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|cpcid|query|string| 是 |算力中心id| +|page|query|string| 否 |看哪页| +|rows|query|string| 否 |看多少行| +|sort|query|string| 否 |根据什么字段排序| + +> 返回示例 + +```json +{ + "status": true, + "msg": "获取算力设备成功", + "data": { + "total": 3, + "rows": [ + { + "id": "1cV3nLWGD_YLqXm9OUWKU", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "name": "2-虚拟机ubuntu2204", + "clusterid": "4hBm8atruISOU2bs24t_N", + "node_status": "1", + "ip": "192.168.0.2", + "devicetype": "0", + "sshport": 22, + "adminuser": "root", + "adminpwd": "Yuanshenhong.1", + "enable_date": "2025-03-31", + "export_date": "2029-10-30", + "external_ip": "未设置", + "cpu_model": "STANDARD", + "cpu_stock": 0, + "memory_model": "STANDARD", + "memory_stock": 0, + "sysdisk_stock": 0, + "datadisk_stock": 0, + "gpu_model": "STANDARD", + "gpu_stock": 0, + "role": "worker", + "node_status_text": "占用", + "devicetype_text": "虚拟机", + "row_num_": 1 + }, + { + "id": "RJZ2GMHSWGVG7iRk_AJYm", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "name": "3-虚拟机ubuntu2204", + "clusterid": "4hBm8atruISOU2bs24t_N", + "node_status": "1", + "ip": "192.168.0.3", + "devicetype": "0", + "sshport": 22, + "adminuser": "root", + "adminpwd": "Yuanshenhong.1", + "enable_date": "2025-03-28", + "export_date": "9999-12-31", + "external_ip": "未设置", + "cpu_model": "STANDARD", + "cpu_stock": 0, + "memory_model": "STANDARD", + "memory_stock": 0, + "sysdisk_stock": 0, + "datadisk_stock": 0, + "gpu_model": "STANDARD", + "gpu_stock": 0, + "role": "master", + "node_status_text": "占用", + "devicetype_text": "虚拟机", + "row_num_": 2 + }, + { + "id": "ULwkzAj-pF-RYkJde3hbS", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "name": "假算力设备", + "clusterid": "4hBm8atruISOU2bs24t_X", + "node_status": "0", + "ip": "192.168.110.120", + "devicetype": "1", + "sshport": 22, + "adminuser": "ysh", + "adminpwd": "Kyy@123456", + "enable_date": "2025-06-04", + "export_date": "2025-06-04", + "external_ip": "未设置", + "cpu_model": "STANDARD", + "cpu_stock": 0, + "memory_model": "STANDARD", + "memory_stock": 0, + "sysdisk_stock": 0, + "datadisk_stock": 0, + "gpu_model": "STANDARD", + "gpu_stock": 0, + "role": "master", + "node_status_text": "空闲", + "devicetype_text": "物理机", + "row_num_": 3 + } + ] + } +} +``` + +```json +{ + "status": false, + "msg": "无算力中心ID" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|object|true|none||none| +|»» total|integer|true|none||none| +|»» rows|[object]|true|none||none| +|»»» id|string|true|none||设备id| +|»»» cpcid|string|true|none||算力中心id| +|»»» name|string|true|none||设备名称| +|»»» node_status|string|true|none||设备状态,占用/空闲| +|»»» clusterid|string|true|none||集群id| +|»»» ip|string|true|none||内网IP| +|»»» devicetype|string|true|none||设备类型,物理机/虚拟机| +|»»» sshport|integer|true|none||ssh端口| +|»»» adminuser|string|true|none||ssh用户| +|»»» adminpwd|string|true|none||ssh用户密码| +|»»» enable_date|string|true|none||启用日期| +|»»» export_date|string|true|none||结束日期| +|»»» external_ip|string|true|none||公网IP| +|»»» cpu_model|string|true|none||CPU硬件型号| +|»»» cpu_stock|integer|true|none||CPU核数量| +|»»» memory_model|string|true|none||内存硬件型号| +|»»» memory_stock|integer|true|none||内存大小(按Gi)| +|»»» sysdisk_stock|integer|true|none||系统盘大小(按Gi)| +|»»» datadisk_stock|integer|true|none||数据盘大小(按:Gi)| +|»»» gpu_model|string|true|none||GPU型号(格式:RTXABCD-32G)| +|»»» gpu_stock|integer|true|none||GPU卡数量| +|»»» node_status_text|string|true|none||none| +|»»» devicetype_text|string|true|none||none| +|»»» cluster_name|string|true|none||所属集群,默认为空| +|»»» role|string|true|none||集群角色,值为master:控制/worker:工作,默认为空| +|»»» row_num_|integer|true|none||none| + +## POST 算力设备添加 + +POST /dev/cpcc/cpcnode/add_cpcnode.dspy + +入网算力设备添加,纯数据库操作; +算力设备后续用作安装算力集群各角色节点 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|cpcid|query|string| 是 |算力中心ID| +|ip|query|string| 是 |IP地址| +|name|query|string| 是 |设备简称| +|devicetype|query|string| 是 |设备类型,0是虚拟机,1是物理机| +|sshport|query|string| 是 |SSH端口| +|adminuser|query|string| 是 |管理账号| +|adminpwd|query|string| 是 |管理密码| +|node_status|query|string| 是 |算力设备状态,0是空闲,1是占用| +|external_ip|query|string| 是 |公网IP| +|cpu_model|query|string| 是 |CPU型号| +|cpu_stock|query|integer| 是 |CPU库存量,核为单位| +|memory_model|query|string| 是 |内存型号| +|memory_stock|query|integer| 是 |内存库存量,Gi为单位| +|sysdisk_stock|query|integer| 是 |系统盘库存量,Gi为单位| +|datadisk_stock|query|integer| 是 |数据盘库存量,Gi为单位| +|gpu_model|query|string| 是 |GPU型号| +|gpu_stock|query|integer| 是 |GPU库存量,卡为单位| +|role|query|string| 是 |集群角色| +|enable_date|query|string| 否 |启用日期| +|export_date|query|string| 否 |停用日期| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "新增算力设备成功", + "data": { + "adminpwd": "QUZVcXg5V1p1STMybG5Ia5aL/gkv7+gmSkA=", + "adminuser": "ysh", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "devicetype": "1", + "enable_date": "2025-05-16", + "export_date": "2026-06-17", + "ip": "192.168.0.8", + "name": "gpu设备1", + "node_status": "0", + "sshport": "22", + "id": "DeolAhhh_sE6UE9DMqDSa" + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» widgettype|string|true|none||none| +|» options|object|true|none||none| +|»» user_data|object|true|none||none| +|»»» _webbricks_|[string]|true|none||none| +|»»» width|[string]|true|none||none| +|»»» height|[string]|true|none||none| +|»»» _is_mobile|[string]|true|none||none| +|»»» cpcid|string|true|none||none| +|»»» ip|string|true|none||none| +|»»» name|string|true|none||none| +|»»» devicetype|string|true|none||none| +|»»» sshport|string|true|none||none| +|»»» adminuser|string|true|none||none| +|»»» adminpwd|string|true|none||none| +|»»» node_status|string|true|none||none| +|»»» enable_date|string|true|none||none| +|»»» export_date|string|true|none||none| +|»»» id|string|true|none||none| +|»» cwidth|integer|true|none||none| +|»» cheight|integer|true|none||none| +|»» title|string|true|none||none| +|»» timeout|integer|true|none||none| +|»» message|string|true|none||none| + +## POST 算力设备更新 + +POST /dev/cpcc/cpcnode/update_cpcnode.dspy + +更新某算力设备基本信息, +更新时密码加密那块每次都会加密,建议取消那块逻辑 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 是 |算力设备ID| +|cpcid|query|string| 是 |算力中心ID| +|ip|query|string| 是 |IP地址| +|name|query|string| 是 |设备简称| +|devicetype|query|string| 是 |设备类型,0是虚拟机,1是物理机| +|sshport|query|string| 是 |SSH端口| +|adminuser|query|string| 是 |管理账号| +|adminpwd|query|string| 是 |管理密码| +|node_status|query|string| 是 |算力设备状态| +|external_ip|query|string| 是 |公网IP| +|cpu_model|query|string| 是 |CPU型号| +|cpu_stock|query|integer| 是 |CPU库存量,核为单位| +|memory_model|query|string| 是 |内存型号| +|memory_stock|query|integer| 是 |内存库存量,Gi为单位| +|sysdisk_stock|query|integer| 是 |系统盘库存量,Gi为单位| +|datadisk_stock|query|integer| 是 |数据盘库存量,Gi为单位| +|gpu_model|query|string| 是 |GPU型号| +|gpu_stock|query|integer| 是 |GPU库存量,卡为单位| +|role|query|string| 是 |集群角色| +|enable_date|query|string| 否 |启用日期| +|export_date|query|string| 否 |停用日期| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "更新算力中心成功", + "data": { + "adminpwd": "Kyy@123456", + "adminuser": "ysh", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "devicetype": "1", + "enable_date": "2025-05-16", + "export_date": "2026-06-17", + "id": "E71hIuIKvTr5D2w2Sxnc9", + "ip": "192.168.0.8", + "name": "gpu设备122cccc", + "node_status": "0", + "sshport": "22" + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» widgettype|string|true|none||none| +|» options|object|true|none||none| +|»» title|string|true|none||none| +|»» cwidth|integer|true|none||none| +|»» cheight|integer|true|none||none| +|»» timeout|integer|true|none||none| +|»» message|string|true|none||none| + +## POST 算力设备移除 + +POST /dev/cpcc/cpcnode/delete_cpcnode.dspy + +移除算力中心中的某个算力设备,建议交互方式使用DELETE方法 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |算力设备查找返回的id| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "删除算力设备成功", + "data": { + "id": "Za8rOOFoacMZnbKoTVig2" + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» widgettype|string|true|none||none| +|» options|object|true|none||none| +|»» title|string|true|none||none| +|»» timeout|integer|true|none||none| +|»» cwidth|integer|true|none||none| +|»» cheight|integer|true|none||none| +|»» message|string|true|none||none| + +# kboss容器云/标签管理 + +## GET 获取资源标签 + +GET /dev/cpcc/cpclabel/get_cpclabel.dspy + +获取该算力中心下的所有资源标签,展示时尽量每行一个键值对 + +在新增资源实例配置接口前需要,同步获取相应节点标签,下拉框进行选择(传 {key 单位 value} 给后端) + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|orgid|query|string| 否 |用户组织id| + +> 返回示例 + +```json +{ + "status": true, + "msg": "获取资源标签成功", + "data": { + "total": 4, + "rows": [ + { + "id": "3h1CPE1jv7TwF52A4urJd", + "name": "非GPU设备", + "orgid": "mIWUHBeeDM8mwAFPIQ8pS", + "labeltype": "1", + "label_key": "kyy-gpu", + "symbol": "=", + "label_value": "false", + "update_time": "2025-05-28 14:42:04", + "row_num_": 1 + }, + { + "id": "APP5429j81a4kBmmrhi52", + "name": "GPU设备", + "orgid": "mIWUHBeeDM8mwAFPIQ8pS", + "labeltype": "1", + "label_key": "kyy-gpu", + "symbol": "=", + "label_value": "true", + "update_time": "2025-05-28 14:42:06", + "row_num_": 2 + }, + { + "id": "Fx1xo6bXcFLp9pLLXgpRN", + "name": "测试标签", + "orgid": "mIWUHBeeDM8mwAFPIQ8pS", + "labeltype": "0", + "label_key": "kyy-test", + "symbol": ":", + "label_value": "ok", + "update_time": "2025-05-28 14:42:21", + "row_num_": 3 + }, + { + "id": "mfbiVzlAtd87H1cX_b81X", + "name": "cd", + "orgid": "mIWUHBeeDM8mwAFPIQ8pS", + "labeltype": "0", + "label_key": "kyy-we", + "symbol": ":", + "label_value": "qwe", + "update_time": "2025-05-28 14:42:24", + "row_num_": 4 + } + ] + } +} +``` + +```json +{ + "status": false, + "msg": "无算力中心id" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|object|true|none||none| +|»» total|integer|true|none||none| +|»» rows|[object]|true|none||none| +|»»» id|string|true|none|标签id|none| +|»»» name|string|true|none|标签名称|none| +|»»» orgid|string|true|none|用户组织id|none| +|»»» labeltype|string|true|none|标签类型|哪种资源的标签,0是实例标签,1是节点标签,后续再拓展其它| +|»»» label_key|string|true|none|标签属性|none| +|»»» symbol|string|true|none|等价符号|= 是节点标签, :是资源标签| +|»»» label_value|string|true|none|标签值|none| +|»»» update_time|string|true|none|更新时间|none| +|»»» row_num_|integer|true|none||none| + +## POST 新增资源标签 + +POST /dev/cpcc/cpclabel/add_cpclabel.dspy + +新增资源标签 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|name|query|string| 是 |标签名称| +|labeltype|query|string| 是 |哪种资源的标签,0是实例标签,1是节点标签,后续再拓展其它| +|label_key|query|string| 是 |标签属性| +|label_value|query|string| 是 |标签属性值| +|orgid|query|string| 否 |用户组织id| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "新增资源标签成功", + "data": { + "label_key": "kyy-app", + "label_value": "mysql8", + "labeltype": "0", + "name": "mysql8资源实例", + "orgid": "mIWUHBeeDM8mwAFPIQ8pS", + "id": "BvJGOTjpDelumxH5Uo0Qz", + "update_time": "2025-05-27 14:13:00" + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 删除资源标签 + +POST /dev/cpcc/cpclabel/delete_cpclabel.dspy + +删除资源标签 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 是 |标签列表返回的id| +|orgid|query|string| 否 |用户组织id| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "删除资源标签成功", + "data": { + "id": "6bi3hfxxVqMM7hy-OuitEa" + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 集群节点绑定/解绑标签 + +POST /dev/cpcc/cpclabel/setup_cpclabel.dspy + +给指定算力中心里某集群中的工作节点绑定标签/解绑标签 + +一次只能一个标签 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|cpcid|query|string| 是 |算力中心id| +|clusterid|query|string| 是 |算力集群id| +|label|query|string| 是 |单个标签内容| +|worker_node|query|string| 是 |集群某节点(页面返回的节点名)| +|opt|query|string| 是 |操作,label是绑定,unlabel是解绑| +|orgid|query|string| 否 |用户组织id| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "设置节点标签成功", + "data": { + "clusterid": "4hBm8atruISOU2bs24t_N", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "label": "kyy-gpu=false", + "opt": "label", + "orgid": "mIWUHBeeDM8mwAFPIQ8pS", + "worker_node": "k8s-worker-20250408132243" + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# kboss容器云/算力集群管理 + +## GET 获取多算力集群信息 + +GET /dev/cpcc/cpccluster/get_cpccluster.dspy + +输入算力中心ID,展示该算力中心下所有kubernetes集群信息 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|cpcid|query|string| 是 |算力中心id| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "获取算力集群成功", + "data": { + "total": 1, + "rows": [ + { + "id": "4hBm8atruISOU2bs24t_N", + "name": "测试离线安装控制节点", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "clustertype": "0", + "controllerid": "RJZ2GMHSWGVG7iRk_AJYm", + "enable_date": "2025-04-03", + "export_date": "2025-05-10", + "clusterjoin": "kubeadm join 192.168.0.3:6443 --token nt80u6.gzpj9dxsrw79270c --discovery-token-ca-cert-hash sha256:7b33439b2a1b37a8d8938513bd45405f57c3255771c3b9b9b90af448d886b0c2", + "kubeconfig": "apiVersion: v1\nclusters:\n- cluster:\n certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURCVENDQWUyZ0F3SUJBZ0lJTGd4THlGMjM3QmN3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TlRBME1ETXdOelE1TXpWYUZ3MHpOVEEwTURFd056VTBNelZhTUJVeApFekFSQmdOVkJBTVRDbXQxWW1WeWJtVjBaWE13Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLCkFvSUJBUURQUm5hdkZmNXBTWWUvVmJLc0s2SnhEazhyc2hsc2h5WnNNRk8xZDVhZG45Z055T0wwR2NtbEsrQ1EKVklKSnF3RklJeSsxUVlEd3VRMytzczEwYmV2Y2lqM1BRanluaXJRRkNhRlA0NHh2ZkEyK2thV1FYeTVncGwrMwpjSkI1K1MxVmx2Vi9aSHQ5SXgwNjFCdHB4dE5oMUkxNS9IYk4rWmVNNnEvd3lxUW93Y01ub2pyNDltYkxxOWNwCnFSem5LL2FwWXlBYnljUk9uWWlIZ0FjQWdsclFOTjBKUEJZd2dRd0pIUmlIcGhtVFBkdmY2ckxkNFR0dFl2OXgKdmZIRDNjVUdwZkVBUElaNUJBVi9ZM3p5V0pSbDQzSFV2Ri9jemNDQ01jOVlUd3VXaEpxb2doUUZUdnNuSVZzTwovNEtKQzRwQXFSenJlZFRWdExmMXgzQlRpVCt0QWdNQkFBR2pXVEJYTUE0R0ExVWREd0VCL3dRRUF3SUNwREFQCkJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJUZjRZbzBpOVpIZC9ObzdkYWZrZVRTbzVzdzN6QVYKQmdOVkhSRUVEakFNZ2dwcmRXSmxjbTVsZEdWek1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRRERLalJWVVp1YwppckJ4QWdZWnBBeW5NSHdWQTF6YStVT09FM1U0MEMyVTN0VGgrK1BsN2o2ZGJZTWNWdEFvTXhxaDRiVjNQRW5SCmtWcWNaN2NjS3FGSXduZlhHK0ZGTVVwazVoTk0xLzc2UXBobi9OWk8zSStSVjFtV0VOU1BzM1FZdEVoWktXUlgKYWRXZ0krK0x1cUZyZVpTVzVjRXNnMWZDODFtd3dhTXdkRHZWcFJZMFEwWlBsMGFqTURsSlNDaDNOSXpQOS82bwpndXBrY1JSdWtvRGlscWVraXlrRWJ5OVJCWHZIbXo3Q0sxQ1ZnZXZJTDZrVnRPRFF2Rm10Qm1WemlRNWFDcXJOCmtZNmd6OUNGMkdKc2M4UkZrcWQxbzdMelhPakJsTkdzN2k2WmdEOE1Ca2tiank2RmZDZWVndmxOOGFCU2VmblEKZ2ZNOVptbnRpMVNDCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K\n server: https://192.168.0.3:6443\n name: kubernetes\ncontexts:\n- context:\n cluster: kubernetes\n user: kubernetes-admin\n name: kubernetes-admin@kubernetes\ncurrent-context: kubernetes-admin@kubernetes\nkind: Config\npreferences: {}\nusers:\n- name: kubernetes-admin\n user:\n client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURJRENDQWdpZ0F3SUJBZ0lIVGZPdmU4TzBJVEFOQmdrcWhraUc5dzBCQVFzRkFEQVZNUk13RVFZRFZRUUQKRXdwcmRXSmxjbTVsZEdWek1CNFhEVEkxTURRd016QTNORGt6TlZvWERUSTJNRFF3TXpBM05UUXpOMW93TkRFWApNQlVHQTFVRUNoTU9jM2x6ZEdWdE9tMWhjM1JsY25NeEdUQVhCZ05WQkFNVEVHdDFZbVZ5Ym1WMFpYTXRZV1J0CmFXNHdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFEWVJJT3h0TWFkOWs2T1JsL1UKZ2ZnZVJDQkpjZmMrc2ZFbzkxeW4vc05KZFVIbWRuamtMaC9wRjcwZkdoVWZ3R2t5dzR0WkdpTFFNR0xwclpyeAphVTdJT0R3a3I2ejl1SkQzaHlFZExhZGpZT0NOMHJhUFNpV05GV1QwSVN2UVBjZzNGQkQ2YmFHb2RtSmN5YnBPCk5qY1VZZmh5WEVqRXMwOU92QzhhZUJCbm9Na1RkRk53dlFaYXE2LzR3eTUyN0k3aUdIUVdvL21JS1VUVHhzRFgKMzJnVXErZmRVMEh5STJJeWhNMGdwT29uNURCVmRUbWsyMkZsVHk0ZWJ3Q3R4QmMvRCtpelhuZFpVd2tHMExMVwpqTEc4L3JkWTZ4WFJDVkhHM1BWNURRK0JvNEpnMTUwWWFSUnBKeDJYSGxad3N5OFBZcWVLcTM0b1pxczRTRndmCjJCY3JBZ01CQUFHalZqQlVNQTRHQTFVZER3RUIvd1FFQXdJRm9EQVRCZ05WSFNVRUREQUtCZ2dyQmdFRkJRY0QKQWpBTUJnTlZIUk1CQWY4RUFqQUFNQjhHQTFVZEl3UVlNQmFBRk4vaGlqU0wxa2QzODJqdDFwK1I1TktqbXpEZgpNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUJBUUFTR0phc1EyQXpLdVNZWFdtMGlYOUhnWTNZQUJGMHpYRzRKZU5lCjREekxkOHF2TXlqRGMwUWFWSUtNbWswemhrV1ZIQzNKSEZWalRXcDBUNFE0TlVBMk8rOXFob1p0a25NL3dsQlUKS0Zab3ZHNFd6SU1sdVJwL21ZRUIzL3dHbkFPV01MdEtBSWJ3d3FRVWl4VW5KYkxCeG4xQ1k5ZERzb1o4VmZZMQp4N2R0WDBJWjJkbU1ETTVLV1lrbW5tQWJBR0tXazZBR3pVWEpWNmlTU3laYjlWLzNuN3hmZlpZRkVDQXBQNk91CjhmRGdIVjBCdEMxS3VmU0tsTitLMnF2aXAzMlRjRHdoTEVHQWQ2aU9qYzhBRXlHelJmOWY4M0xUSGJ2dGtibjYKR0VQQlBQSExSTFlQWEh0OE9LbHdNOThwQWxkSkIyWEJ6UEttc0JFeGFOSWRXd2FTCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K\n client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBMkVTRHNiVEduZlpPamtaZjFJSDRIa1FnU1hIM1BySHhLUGRjcC83RFNYVkI1blo0CjVDNGY2UmU5SHhvVkg4QnBNc09MV1JvaTBEQmk2YTJhOFdsT3lEZzhKSytzL2JpUTk0Y2hIUzJuWTJEZ2pkSzIKajBvbGpSVms5Q0VyMEQzSU54UVErbTJocUhaaVhNbTZUalkzRkdINGNseEl4TE5QVHJ3dkduZ1FaNkRKRTNSVApjTDBHV3F1ditNTXVkdXlPNGhoMEZxUDVpQ2xFMDhiQTE5OW9GS3ZuM1ZOQjhpTmlNb1ROSUtUcUorUXdWWFU1CnBOdGhaVTh1SG04QXJjUVhQdy9vczE1M1dWTUpCdEN5MW95eHZQNjNXT3NWMFFsUnh0ejFlUTBQZ2FPQ1lOZWQKR0drVWFTY2RseDVXY0xNdkQyS25pcXQrS0dhck9FaGNIOWdYS3dJREFRQUJBb0lCQVFDQ1djRjZ3YmdaQzVWTApvZFV1MCt1RjZvLy9WS2F1YmpncDlmWXQ5NXNqVW42Vzl2OWtvUHh3MVBNVHBQZm9mR09yeWpyYVNLdUZDalVFCkhiUlBINmJ4ZlJ1YkRSdmFqWDByQkpLTDhMRjhiNjdKTEtFR2VxMXBmT1N0VkxVQXZjeElqbHF4WnBUU1loQmwKVnQxcE9MbzRHZGpTclJiYklDeUVDMTdrdUV0QytZV3lFb3E5MmlLNVdMTHdHM2hwVzhyVlVLVzZ2T0cyd0l4bAp0RWhMSGpOOWtnb1VVa2pORG9tK2FlcVVxeXhDeUZEdll4UmdhVTd0Y3pJSk52SUk3aDYxaExQbEZtMmxGQ0xlCjhjeTdKUDMyV1ZDSUpUMHhRNkJJRTdvVld4WWIvMzFVSHYrTHg0UHlBcFpiZ3piMjlvQm54VjhneUxnVjZDWW0Kd1psQlQ4S2hBb0dCQU9tMFZqTkVHVm5EaXNsTDFVVkNKYzFCVU1KcjNwalQvV0g4d2s0UzJYWmhwRWdVQmpQYgpDM3Y5czkxNHh6SjhXYWFtUFZPVGZMRmxzRWFLNnJpMFhjQkhXQi9ob1R1aDVKaDByS1RNWWFMTm9SdU00VCt6Ci9zUG1aY1ZMVXcxdHFmd3U5YlVpSTJCQURQNFM2MUFubk5hSnF1UmFWRk8vT1pqZUkvbHJzMVBSQW9HQkFPem0KVTNvcjNuSDh4WHI2WDNJUjRDM3l3TkZLaHNVVE44VmdWNWRVL0U5RmRHTldUVzRkWHdCK01jeUlQMlFLbjlycwpmcU9Cb0c3NlRKVHF0YzVobjY5Q014c1lVNVdPcDhOZW9oaXplY1luSTFjTk94TmZwdzZDdUZVb1pmTFFxU1dICmJ4dEVEaFkrcXJjR2FLZ3VzMk1uMkJ2cEg1bUhCTk5DL05pSVZ1WTdBb0dBZFlnVEhkOHVuSjBockJCdUpsR1kKN3p2YzRKb2RMV0RYZWpNQ2lQOGp6RXhZc1VNWXgzVnV0aUdtRmtpS2JWSnFSOHdzNVY0MEJJY3VlcHVjWmQyWApsSDZNekNQTjBVNmV4eWxPTmVidlowL2dxUmxWb3BMa0dpTkJwVkkzWjNaeVdYaElhNXJLamJwSWpuSjNVeTFJCnpBQWFLSk5nKzJrZEQwc1FibnlDaURFQ2dZQVFDZVA2OEg5bDdqd2NnRmozNnhmblpIa0RjbTAvYUhhdEtVR2sKNEQ4WXl0WC9aN2RrVGg3QmRNbkFWRFVlZTgyb3o3d2ZLOGFGM1BKVVhyT2lYbCttU1BBVzFJWE1LVlZZVjg3WApwMGNHVUY0SEpjRXJKWjIwME1yVUVTRWQyRnlyU3NrTjZvU2RvdTZCNTdBc09zVXdZR0UwT290R0pLc0I5cFlSCnZ1RkxRd0tCZ1FEZVFuRElPaUQ2SEpmc2loTC8xZ3dnS0hVeVc2WGYrNFhQODd3ZlVXT1N0SEpza29oTkZHdk8KSnpNdUFvc2V2UGFWdElCSXBZbFgycUlaaHlhdyt2VW9BUTZYRnR3WjM1QWo1T1VPbVFQQUJWbkVXZUJZRzdSaQpaZmhEU2NTek5xb3ozWFpjMnA4a2VMWE1XOWJsTDNNOTdOMFRLbExuZ0NrSTdoaXJMVGE2T0E9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=", + "clustertype_text": "kubernetes", + "controllerid_text": "192.168.0.3", + "row_num_": 1 + } + ] + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» total|integer|true|none||none| +|» rows|[object]|true|none||none| +|»» id|string|false|none||none| +|»» name|string|false|none||集群名称| +|»» cpcid|string|false|none||所属算力中心,前端转ID为名称| +|»» clustertype|string|false|none||集群类型,前端不显示| +|»» controllerid|string|false|none||控制节点,前端不显示| +|»» enable_date|string|false|none||启用日期| +|»» clusterjoin|string|false|none||集群注册码| +|»» export_date|string|false|none||停止日期| +|»» kubeconfig|string|false|none||集群上下文,前端隐藏,给pcapi用的| +|»» clustertype_text|string|false|none||集群类型文字| +|»» controllerid_text|string|false|none||控制节点文字| +|»» ready|integer|true|none||集群状态,0:正在安装,1:安装完成| +|»» row_num_|integer|false|none||none| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| + +## POST 算力集群基础信息更新 + +POST /dev/cpcc/cpccluster/update_cpccluster.dspy + +修改某算力集群的基础信息 + +注意:前端需要处理一下,只能修改集群名称和两个时间参数,其他参数不允许修改!!! + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|cpcid|query|string| 是 |所属算力中心ID| +|id|query|string| 是 |算力集群id| +|controllerid|query|string| 否 |集群控制节点id| +|name|query|string| 否 |集群名称| +|cluster_type|query|string| 否 |集群类型,0为kubernetes,1为slurm| +|clusterjoin|query|string| 否 |集群注册码| +|enable_date|query|string| 否 |启用时间| +|export_date|query|string| 否 |停止时间| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取空闲的算力设备 + +GET /dev/cpcc/cpcnode/get_cpcidle_device.dspy + +用于创建集群时选择空闲设备(选择IP)。 + +注意:创建集群或新增集群工作节点时需要先获取到空闲状态的算力设备(IP)!!! + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|cpcid|query|string| 是 |算力中心id| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "获取空闲设备成功", + "data": [ + { + "id": "XLUBumc_RzHBStQfpi5u0", + "name": "gpu设备1", + "clusterid": null, + "node_status": "0", + "ip": "192.168.0.8", + "devicetype": "1", + "sshport": 22, + "adminuser": "ysh", + "adminpwd": "Kyy@123456", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "enable_date": "2025-05-16", + "export_date": "2026-06-17" + } + ] +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» id|string|true|none||none| +|» ip|string|true|none||none| +|» node_status|string|true|none||0空闲,1占用| + +## GET 实时集群资源实例看板 + +GET /dev/cpcc/cpcpod/get_cpcpod.dspy + +查看实时集群资源实例信息,字段解释详见下方 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|cpcid|query|string| 是 |算力中心ID| +|clusterid|query|string| 是 |算力集群ID| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "获取集群实时资源实例成功", + "data": { + "total": 1, + "rows": [ + { + "pod_namespace": "4hbm8atruisou2bs24t-n-miwuhbeedm8mwafpiq8ps", + "pod_name": "q2aodptfquogblu5nzblt-statefulset-0", + "pod_ready": "1/1", + "pod_running": "Running", + "pod_restart": "0", + "pod_age": "16h", + "pod_ip": "10.244.5.36", + "pod_node": "k8s-worker-20250408132243", + "pod_nominated_node": "无", + "pod_cpurate": "0.004核", + "pod_memrate": "2.539Mi", + "pod_gpu": "0", + "pod_cpu_limit": "2", + "pod_memory_limit": "5Gi", + "pod_gpu_limit": "0" + } + ] + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|object|true|none||none| +|»» total|integer|true|none||none| +|»» rows|[object]|true|none||none| +|»»» pod_namespace|string|true|none|命名空间|none| +|»»» pod_name|string|true|none|资源实例名称|none| +|»»» pod_ready|string|true|none|就绪状态|none| +|»»» pod_running|string|true|none|运行状态|none| +|»»» pod_restart|string|true|none|重启次数|none| +|»»» pod_age|string|true|none| 运行时长|d是天,h是小时,m是分钟,s是秒| +|»»» pod_ip|string|true|none|集群内部IP|none| +|»»» pod_node|string|true|none|Pod节点主机名|none| +|»»» pod_nominated_node|string|true|none|指定节点/调度模式|默认值:自动调度| +|»»» pod_cpurate|string|true|none| cpu使用数|none| +|»»» pod_memrate|string|true|none|内存使用数|none| +|»»» pod_gpu|string|true|none|GPU使用数|none| +|»»» pod_cpu_limit|string|true|none|CPU限制|none| +|»»» pod_memory_limit|string|true|none|内存限制|none| +|»»» pod_gpu_limit|string|true|none|GPU限制|none| +|»»» pod_readiness_gates|[string]|true|none||none| + +## GET 实时集群成员节点看板 + +GET /dev/cpcc/cpcworker/get_cpcworker.dspy + +查看试试集群成员节点列表信息,字段解释详见下方 + +给pcapi的人看的 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|cpcid|query|string| 是 |算力中心ID| +|clusterid|query|string| 是 |算力集群ID| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "获取集群实时成员节点成功", + "data": { + "total": 2, + "rows": [ + { + "node_name": "k8s-master", + "node_status": "已就绪", + "node_role": "控制节点", + "node_age": "70d", + "node_version": "v1.28.2", + "node_internalip": "192.168.0.3", + "node_externalip": "未分配", + "node_osversion": "Ubuntu 22.04.1 LTS", + "node_kernelversion": "5.15.0-91-generic", + "node_containeruntime": "containerd://1.7.24", + "node_labels": [ + "kyy-gpu=false" + ], + "node_cpurate": "21.2%", + "node_memrate": "1.4%", + "node_gpu": "0%", + "available_cpu": "3.15核", + "available_memory": "15.30Gi", + "available_gpu": 0 + }, + { + "node_name": "k8s-worker-20250408132243", + "node_status": "已就绪", + "node_role": "工作节点", + "node_age": "65d", + "node_version": "v1.28.2", + "node_internalip": "192.168.0.2", + "node_externalip": "未分配", + "node_osversion": "Ubuntu 22.04.1 LTS", + "node_kernelversion": "5.15.0-91-generic", + "node_containeruntime": "containerd://1.7.24", + "node_labels": [ + "kyy-gpu=false" + ], + "node_cpurate": "60.0%", + "node_memrate": "34.8%", + "node_gpu": "0%", + "available_cpu": "1.60核", + "available_memory": "10.11Gi", + "available_gpu": 0 + } + ] + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|object|true|none||none| +|»» total|integer|true|none||none| +|»» rows|[object]|true|none||none| +|»»» node_name|string|true|none|主机名|none| +|»»» node_status|string|true|none|运行状态|none| +|»»» node_role|string|true|none|节点角色|none| +|»»» node_age|string|true|none|运行时长|none| +|»»» node_version|string|true|none|kubernetes版本|none| +|»»» node_internalip|string|true|none|内网IP|none| +|»»» node_externalip|string|true|none|外网IP|none| +|»»» node_osversion|string|true|none|操作系统版本|none| +|»»» node_kernelversion|string|true|none|内核版本|none| +|»»» node_containeruntime|string|true|none|容器运行时版本|none| +|»»» node_labels|[string]|true|none|节点标签|none| +|»»» node_cpurate|string|true|none|CPU利用率|none| +|»»» node_memrate|string|true|none|内存利用率|none| +|»»» node_gpu|string|true|none|GPU利用率|none| +|»»» available_cpu|string|true|none|可用CPU|none| +|»»» available_memory|string|true|none|可用内存|none| +|»»» available_gpu|integer|true|none|可用GPU|none| + +## POST 新增集群资源实例配置 + +POST /dev/cpcc/cpcpodyaml/new_cpcpodyaml.dspy + +1.通过kboss前端输入资源实例参数/操作指令给kboss后端,再中转给算力中心pcapi服务进行kubernetes核心API操作,级联创建相应的资源实例; +2.目前算力中心pcapi服务有且仅支持Linux操作系统Ubuntu:22.04和关系型数据库MySQL:8.0; +3.算力中心pcapi服务操作结果返回给kboss后端,kboss后端再反馈给前端操作结果即可。 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|clusterid|query|string| 是 |集群唯一标识ID| +|source_name|query|string| 是 |资源实例的名称| +|source_authuser|query|string| 是 |初始认证账号| +|source_authpasswd|query|string| 是 |初始认证密码| +|source_podengine|query|string| 是 |资源实例控制器,下拉框,默认StatefulSet,Deployment,DaemonSet,CronJob,Job,Standalone| +|source_replicasetnum|query|string| 是 |HPA副本数| +|instance_type|query|string| 是 |资源实例类型,下拉框,默认LinuxOS为Linux操作系统,RelationalDB为关系型数据库| +|pod_imagepath|query|string| 是 |基础镜像,下拉框,默认docker.io/library/ubuntu:22.04,docker.io/library/mysql:8.0,docker.io/jupyter/base-notebook:latest| +|source_memrate|query|string| 是 |内存资源限制| +|source_cpurate|query|string| 是 |CPU资源限制| +|source_selflabel|query|string| 是 |自定义标签,用于资源分类| +|source_gpu|query|string| 是 |分配GPU个数| +|source_portmode|query|string| 是 |服务暴露的端口模式,下拉框,默认NodePort,Ingress,LoadBalancer| +|source_restartpolicy|query|string| 是 |容器重启策略,下拉框,默认Always,OnFailure,Never| +|source_apiport|query|string| 是 |服务对外提供的端口| +|source_insideport|query|string| 是 |容器内部监听的端口| +|source_outsideport|query|string| 是 |通过NodePort暴露的节点端口| +|source_mountpath|query|string| 是 |容器内的挂载路径| +|source_storagelimits|query|string| 是 |存储资源限制| +|source_nodeselector|query|string| 是 |节点选择器| +|orgid|query|string| 否 |线下调试/非登录态可指定组织ID进行操作| +|cpu_model|query|string| 是 |CPU型号| +|gpu_model|query|string| 是 |显卡型号| +|disk_sys_limit|query|string| 是 |默认系统盘空间| +|userid|query|string| 否 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "新增资源实例参数成功,请10秒后查看实时资源实例面板", + "data": { + "action": "apply", + "namespace_name": "4hbm8atruisou2bs24t-n-miwuhbeedm8mwafpiq8ps", + "serviceaccount_name": "4hbm8atruisou2bs24t-n-miwuhbeedm8mwafpiq8ps-serviceaccount", + "podcd_name": "evfldtxjkr3jd8zxnfhd5-statefulset", + "service_name": "evfldtxjkr3jd8zxnfhd5-service", + "instance_type": "LinuxOS", + "clusterid": "4hBm8atruISOU2bs24t_N", + "orgid": "mIWUHBeeDM8mwAFPIQ8pS", + "pod_imagepath": "docker.io/library/ubuntu:22.04", + "source_apiport": "6035", + "source_authpasswd": "kyycloud", + "source_authuser": "root", + "source_cpurate": "1000m", + "source_insideport": "3306", + "source_memrate": "512Mi", + "source_mountpath": "/mnt/data", + "source_name": "kyy-new5090gpu-ubuntu2204", + "source_outsideport": "30063", + "source_podengine": "StatefulSet", + "source_portmode": "NodePort", + "source_replicasetnum": "1", + "source_restartpolicy": "Always", + "source_selflabel": "app:ubuntu3", + "source_storagelimits": "49Gi", + "source_nodeselector": "kyy-gpu=false", + "id": "evfldtxjkr3jd8zxnfhd5", + "cpcid": "AROU9udKtPNyh0AZtO_WY" + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|object|true|none||none| +|»» action|string|true|none||none| +|»» namespace_name|string|true|none||none| +|»» serviceaccount_name|string|true|none||none| +|»» podcd_name|string|true|none||none| +|»» service_name|string|true|none||none| +|»» instance_type|string|true|none||none| +|»» clusterid|string|true|none||none| +|»» orgid|string|true|none||none| +|»» pod_imagepath|string|true|none||none| +|»» source_apiport|string|true|none||none| +|»» source_authpasswd|string|true|none||none| +|»» source_authuser|string|true|none||none| +|»» source_cpurate|string|true|none||none| +|»» source_insideport|string|true|none||none| +|»» source_memrate|string|true|none||none| +|»» source_mountpath|string|true|none||none| +|»» source_name|string|true|none||none| +|»» source_outsideport|string|true|none||none| +|»» source_podengine|string|true|none||none| +|»» source_portmode|string|true|none||none| +|»» source_replicasetnum|string|true|none||none| +|»» source_restartpolicy|string|true|none||none| +|»» source_selflabel|string|true|none||none| +|»» source_storagelimits|string|true|none||none| +|»» id|string|true|none||none| +|»» cpcid|string|true|none||none| + +## GET 获取集群资源实例配置 + +GET /dev/cpcc/cpcpodyaml/get_cpcpodyaml.dspy + +获取资源实例的配置,普通用户和管理员都是 +后续会把实时资源实例看板数据接口和这个进行优化展示,目前先这样吧 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|cpcid|query|string| 是 |算力中心ID| +|clusterid|query|string| 是 |算力集群ID| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "获取资源实例静态配置成功", + "data": { + "total": 1, + "rows": [ + { + "id": "evfldtxjkr3jd8zxnfhd5", + "namespace_name": "4hbm8atruisou2bs24t-n-miwuhbeedm8mwafpiq8ps", + "serviceaccount_name": "4hbm8atruisou2bs24t-n-miwuhbeedm8mwafpiq8ps-serviceaccount", + "podcd_name": "evfldtxjkr3jd8zxnfhd5-statefulset", + "service_name": "evfldtxjkr3jd8zxnfhd5-service", + "clusterid": "4hBm8atruISOU2bs24t_N", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "source_name": "kyy-new5090gpu-ubuntu2204", + "source_authuser": "root", + "source_authpasswd": "kyycloud", + "source_podengine": "StatefulSet", + "source_replicasetnum": 1, + "pod_imagepath": "docker.io/library/ubuntu:22.04", + "source_memrate": "512Mi", + "source_cpurate": "1000m", + "source_selflabel": "app:ubuntu3", + "source_portmode": "NodePort", + "source_restartpolicy": "Always", + "source_apiport": 6035, + "source_insideport": 3306, + "source_outsideport": 30063, + "source_mountpath": "/mnt/data", + "source_storagelimits": "49Gi", + "instance_type": "LinuxOS", + "source_nodeselector": "kyy-gpu=false", + "username": "kyy-运营", + "row_num_": 1 + } + ] + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|object|true|none||none| +|»» total|integer|true|none||none| +|»» rows|[object]|true|none||none| +|»»» id|string|true|none|id|none| +|»»» namespace_name|string|true|none|命名空间|none| +|»»» serviceaccount_name|string|true|none|命名空间服务认证|none| +|»»» podcd_name|string|true|none|资源控制器名称|none| +|»»» service_name|string|true|none|服务名称|none| +|»»» clusterid|string|true|none|集群id|none| +|»»» cpcid|string|true|none|算力中心id|none| +|»»» source_name|string|true|none|资源名称|none| +|»»» source_authuser|string|true|none|初始认证账号|none| +|»»» source_authpasswd|string|true|none|初始认证密码|none| +|»»» source_podengine|string|true|none|资源控制器|none| +|»»» source_replicasetnum|string|true|none|HPA副本数|none| +|»»» pod_imagepath|string|true|none|资源基础镜像|none| +|»»» source_memrate|string|true|none|资源内存限制|none| +|»»» source_cpurate|string|true|none|资源CPU限制|none| +|»»» source_selflabel|string|true|none|资源自身标签|none| +|»»» source_portmode|string|true|none|端口映射模式|none| +|»»» source_restartpolicy|string|true|none|重启策略|none| +|»»» source_apiport|string|true|none|资源内部监听端口|none| +|»»» source_insideport|string|true|none|集群内部映射端口|none| +|»»» source_outsideport|string|true|none|集群外部映射端口|none| +|»»» source_mountpath|string|true|none|容器内挂载点|none| +|»»» source_storagelimits|string|true|none|数据存储大小限制|none| +|»»» instance_type|string|true|none|资源实例类型|none| +|»»» source_nodeselector|string|true|none|节点选择器|none| +|»»» username|string|true|none|所属用户|none| + +## POST 更新集群资源实例配置 + +POST /dev/cpcc/cpcpodyaml/update_cpcpodyaml.dspy + +更新资源实例配置,参数类似新增资源实例参数接口传递方式 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|cpcid|query|string| 是 |算力中心ID| +|clusterid|query|string| 是 |集群唯一标识ID| +|id|query|string| 否 |资源实例配置ID| +|source_name|query|string| 是 |资源实例的名称| +|source_authuser|query|string| 是 |初始认证账号| +|source_authpasswd|query|string| 是 |初始认证密码| +|source_podengine|query|string| 是 |资源实例控制器,下拉框,默认StatefulSet,Deployment,DaemonSet,CronJob,Job,Standalone| +|source_replicasetnum|query|string| 是 |HPA副本数| +|instance_type|query|string| 是 |资源实例类型,下拉框,默认LinuxOS为Linux操作系统,RelationalDB为关系型数据库| +|pod_imagepath|query|string| 是 |基础镜像,下拉框,默认docker.io/library/ubuntu:22.04,docker.io/library/mysql:8.0,docker.io/jupyter/base-notebook:latest| +|source_memrate|query|string| 是 |内存资源限制| +|source_cpurate|query|string| 是 |CPU资源限制| +|source_selflabel|query|string| 是 |自定义标签,用于资源分类| +|source_portmode|query|string| 是 |服务暴露的端口模式,下拉框,默认NodePort,Ingress,LoadBalancer| +|source_restartpolicy|query|string| 是 |容器重启策略,下拉框,默认Always,OnFailure,Never| +|source_apiport|query|string| 是 |服务对外提供的端口| +|source_insideport|query|string| 是 |容器内部监听的端口| +|source_outsideport|query|string| 是 |通过NodePort暴露的节点端口| +|source_mountpath|query|string| 是 |容器内的挂载路径| +|source_storagelimits|query|string| 是 |存储资源限制| +|source_nodeselector|query|string| 否 |节点选择器| +|orgid|query|string| 否 |线下调试/非登录态可指定组织ID进行操作| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "资源参数更新成功,请10秒后查看实时资源实例面板", + "data": { + "clusterid": "4hBm8atruISOU2bs24t_N", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "id": "evfldtxjkr3jd8zxnfhd5", + "instance_type": "LinuxOS", + "orgid": "mIWUHBeeDM8mwAFPIQ8pS", + "pod_imagepath": "docker.io/library/ubuntu:22.04", + "source_apiport": "6035", + "source_authpasswd": "kyycloud", + "source_authuser": "root", + "source_cpurate": "1000m", + "source_insideport": "3306", + "source_memrate": "512Mi", + "source_mountpath": "/mnt/data", + "source_name": "kyy-new5090gpu-ubuntu2204", + "source_outsideport": "30063", + "source_podengine": "StatefulSet", + "source_portmode": "NodePort", + "source_replicasetnum": "2", + "source_restartpolicy": "Always", + "source_selflabel": "app:ubuntu3", + "source_nodeselector": "kyy-gpu=false", + "source_storagelimits": "49Gi" + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 删除集群资源实例配置 + +POST /dev/cpcc/cpcpodyaml/delete_cpcpodyaml.dspy + +根据资源实例配置级联删除集群中的相关资源及实例 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 是 |要删除的资源实例配置id| +|orgid|query|string| 否 |线下调试/非登录态可指定组织ID进行操作| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "级联删除集群资源成功,请10秒后查看实时资源实例面板", + "data": { + "id": "evfldtxjkr3jd8zxnfhd5" + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 算力中心新建算力集群(调试中) + +POST /dev/cpcc/cpccluster/new_cluster.dspy + +重操作约5分钟!!! +Web前端创建算力集群,Web后端接收到参数后传递参数给算力中心服务pcapi。 +pcapi进行ssh远程到某算力设备中进行安装算力集群(控制节点),安装结果字段返回给Web后端进行存库。 +中间是一连贯操作,请确保Web前后端之间接口有超时判断能力。 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|cpcid|query|string| 是 |算力中心id| +|ctl_nodeid|query|string| 是 |集群控制节点的id| +|cluster_type|query|string| 是 |集群类别,0是kubernetes,1是slurm| +|cluster_name|query|string| 是 |集群名称| +|enable_date|query|string| 是 |启用时间| +|export_date|query|string| 是 |停用时间| + +> 返回示例 + +```json +{ + "status": true, + "msg": "操作成功!\n加入集群凭证: kubeadm join 192.168.0.3:6443 --token nt80u6.gzpj9dxsrw79270c --discovery-token-ca-cert-hash sha256:7b33439b2a1b37a8d8938513bd45405f57c3255771c3b9b9b90af448d886b0c2", + "data": { + "id": "RJZ2GMHSWGVG7iRk_AJYm", + "node_status": "1", + "clusterid": "4hBm8atruISOU2bs24t_N", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "role": "master" + } +} +``` + +```json +{ + "status": false, + "msg": "算力中心服务操作失败" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|object|true|none||none| +|»» id|string|true|none||none| +|»» node_status|string|true|none||none| +|»» clusterid|string|true|none||none| +|»» cpcid|string|true|none||none| +|»» role|string|true|none||none| + +## POST 算力中心移除算力集群(未开发) + +POST /computing/cpcluster_delete.dspy + +重操作约1分钟!!! + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 是 |算力集群查找返回的id| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# kboss容器云/算力部件(含计价)管理 + +## POST 新增算力部件 + +POST /dev/cpcc/cpcwidget/add_cpcwidget.dspy + +添加算力部件,其中包含CPU核数,CPU型号,内存用量,GPU个数等信息 + +注意: +1. 每个算力中心下的算力部件不一样! +2. 添加相同类型和系列的组件,不会新增记录 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|cpcid|query|string| 是 |算力中心id| +|clusterid|query|string| 是 |算力集群id| +|type|query|string| 是 |算力部件类型(下拉框,cpu/memory/disk/gpu)| +|resource_unit|query|string| 是 |资源分配单位(下拉框,跟随type字段,个cpu/Gi内存/Gi存储/张显卡)| +|unit_price|query|string| 是 |单位单价数额(1.99元每分钟每Mi)| +|model|query|string| 是 |算力部件型号,默认STANDARD| +|stock|query|integer| 是 |库存量,默认为0,显示无货,超过0显示有货| +|charge_unit|query|string| 是 |计费周期(下拉框,默认小时/分钟/秒/天)| +|account_unit|query|string| 是 |计费人民币单位(下拉框,默认元/角/分)| +|add_opt|query|string| 是 |下拉框,是否是增加库存操作,默认给no,可选yes| + +> 返回示例 + +```json +{ + "status": false, + "msg": "该部件已存在,请前往编辑!" +} +``` + +```json +{ + "status": true, + "msg": "新增算力部件成功", + "data": { + "account_unit": "元", + "charge_unit": "小时", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "model": "INTEL(R) XEON(R) PLATINUM 8582C", + "resource_unit": "m", + "stock": "0", + "type": "cpu", + "unit_price": "1.99", + "id": "SwaVSlL6RtORQrNTqAGi6", + "update_time": "2025-06-03 16:24:28" + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## GET 获取算力部件 + +GET /dev/cpcc/cpcwidget/get_cpcwidget.dspy + +展示该算力中心下所有的算力部件 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|cpcid|query|string| 是 |算力中心id| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "获取算力部件成功", + "data": { + "total": 14, + "rows": [ + { + "id": "SwaVSlL6RtORQrNTqAGi6", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "type": "cpu", + "model": "INTEL(R) XEON(R) PLATINUM 8582C", + "unit_price": 1.5, + "resource_unit": "核", + "stock": 0, + "consumed": 0, + "charge_unit": "小时", + "account_unit": "元", + "update_time": "2025-06-10 15:22:56", + "import_export": [ + { + "clusterid": "4hBm8atruISOU2bs24t_N", + "clustername": "朝阳区", + "stock": 0, + "consumed": 0 + } + ] + }, + { + "id": "OmME0B0AQjCkr__TT2LSZ", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "type": "cpu", + "model": "STANDARD", + "unit_price": 2.2, + "resource_unit": "核", + "stock": 0, + "consumed": 0, + "charge_unit": "小时", + "account_unit": "元", + "update_time": "2025-06-10 15:22:53", + "import_export": [ + { + "clusterid": "4hBm8atruISOU2bs24t_N", + "clustername": "朝阳区", + "stock": 0, + "consumed": 0 + } + ] + }, + { + "id": "e6FGUkiEN6uujVfNp6oBK", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "type": "cpu", + "model": "AMD EPYC 7542 32-Core Processor", + "unit_price": 0.8, + "resource_unit": "核", + "stock": 0, + "consumed": 0, + "charge_unit": "小时", + "account_unit": "元", + "update_time": "2025-06-10 15:22:50", + "import_export": [ + { + "clusterid": "4hBm8atruISOU2bs24t_N", + "clustername": "朝阳区", + "stock": 0, + "consumed": 0 + } + ] + }, + { + "id": "meebE6wMvHi0eLHw-GGkJ", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "type": "disk", + "model": "DATA", + "unit_price": 0.01, + "resource_unit": "Gi", + "stock": 0, + "consumed": 0, + "charge_unit": "小时", + "account_unit": "元", + "update_time": "2025-06-10 15:22:54", + "import_export": [ + { + "clusterid": "4hBm8atruISOU2bs24t_N", + "clustername": "朝阳区", + "stock": 0, + "consumed": 0 + } + ] + }, + { + "id": "JFaQH-YjuYjfX7oy7lojF", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "type": "disk", + "model": "SYS", + "unit_price": 0.005, + "resource_unit": "Gi", + "stock": 0, + "consumed": 0, + "charge_unit": "小时", + "account_unit": "元", + "update_time": "2025-06-10 15:22:51", + "import_export": [ + { + "clusterid": "4hBm8atruISOU2bs24t_N", + "clustername": "朝阳区", + "stock": 0, + "consumed": 0 + } + ] + }, + { + "id": "XXXe35qAC1E0Dqu2GN5pN", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "type": "gpu", + "model": "STANDARD-8G", + "unit_price": 2, + "resource_unit": "卡", + "stock": 5, + "consumed": 0, + "charge_unit": "小时", + "account_unit": "元", + "update_time": "2025-06-10 16:29:22", + "import_export": [ + { + "clusterid": "4hBm8atruISOU2bs24t_X", + "clustername": "通州区", + "stock": 2, + "consumed": 0 + }, + { + "clusterid": "4hBm8atruISOU2bs24t_N", + "clustername": "朝阳区", + "stock": 3, + "consumed": 0 + } + ] + }, + { + "id": "Rj-YyF__ELLvosq6Mgxjn", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "type": "gpu", + "model": "A100-80G", + "unit_price": 18, + "resource_unit": "卡", + "stock": 0, + "consumed": 0, + "charge_unit": "小时", + "account_unit": "元", + "update_time": "2025-06-10 15:22:55", + "import_export": [ + { + "clusterid": "4hBm8atruISOU2bs24t_N", + "clustername": "朝阳区", + "stock": 0, + "consumed": 0 + } + ] + }, + { + "id": "ImmA3ghOcrQ-Ltebmm1x2", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "type": "gpu", + "model": "RTX5090-32G", + "unit_price": 6, + "resource_unit": "卡", + "stock": 0, + "consumed": 0, + "charge_unit": "小时", + "account_unit": "元", + "update_time": "2025-06-10 15:22:51", + "import_export": [ + { + "clusterid": "4hBm8atruISOU2bs24t_N", + "clustername": "朝阳区", + "stock": 0, + "consumed": 0 + } + ] + }, + { + "id": "BCEJAaX7pt20bfni4hJbp", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "type": "gpu", + "model": "RTX4090-24G", + "unit_price": 4, + "resource_unit": "卡", + "stock": 0, + "consumed": 0, + "charge_unit": "小时", + "account_unit": "元", + "update_time": "2025-06-10 15:22:48", + "import_export": [ + { + "clusterid": "4hBm8atruISOU2bs24t_N", + "clustername": "朝阳区", + "stock": 0, + "consumed": 0 + } + ] + }, + { + "id": "aHUd2O5sawlVqsn2icysS", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "type": "gpu", + "model": "V100-32G", + "unit_price": 12, + "resource_unit": "卡", + "stock": 0, + "consumed": 0, + "charge_unit": "小时", + "account_unit": "元", + "update_time": "2025-06-10 15:22:47", + "import_export": [ + { + "clusterid": "4hBm8atruISOU2bs24t_N", + "clustername": "朝阳区", + "stock": 0, + "consumed": 0 + } + ] + }, + { + "id": "uSOsd4iM5ohtDvJPMqE-h", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "type": "memory", + "model": "Samsung DDR4 DIMMs", + "unit_price": 0.005, + "resource_unit": "Gi", + "stock": 0, + "consumed": 0, + "charge_unit": "小时", + "account_unit": "元", + "update_time": "2025-06-10 15:22:57", + "import_export": [ + { + "clusterid": "4hBm8atruISOU2bs24t_N", + "clustername": "朝阳区", + "stock": 0, + "consumed": 0 + } + ] + }, + { + "id": "PC9YvPO3pJ_I1_fd8xvca", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "type": "memory", + "model": "STANDARD", + "unit_price": 0.0004, + "resource_unit": "Gi", + "stock": 0, + "consumed": 0, + "charge_unit": "小时", + "account_unit": "元", + "update_time": "2025-06-10 15:22:55", + "import_export": [ + { + "clusterid": "4hBm8atruISOU2bs24t_N", + "clustername": "朝阳区", + "stock": 0, + "consumed": 0 + } + ] + }, + { + "id": "LLHswyKb78yYPMZIDBbjd", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "type": "memory", + "model": "Crucial P-series", + "unit_price": 0.0005, + "resource_unit": "Gi", + "stock": 0, + "consumed": 0, + "charge_unit": "小时", + "account_unit": "元", + "update_time": "2025-06-10 15:22:52", + "import_export": [ + { + "clusterid": "4hBm8atruISOU2bs24t_N", + "clustername": "朝阳区", + "stock": 0, + "consumed": 0 + } + ] + }, + { + "id": "B2Jl1_6P7mMdIdtvO-Qcf", + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "type": "memory", + "model": "Kingston FURY", + "unit_price": 0.0002, + "resource_unit": "Gi", + "stock": 0, + "consumed": 0, + "charge_unit": "小时", + "account_unit": "元", + "update_time": "2025-06-10 15:22:47", + "import_export": [ + { + "clusterid": "4hBm8atruISOU2bs24t_N", + "clustername": "朝阳区", + "stock": 0, + "consumed": 0 + } + ] + } + ] + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|object|true|none||none| +|»» total|integer|true|none||none| +|»» rows|[object]|true|none||none| +|»»» id|string|true|none||none| +|»»» cpcid|string|true|none||算力中心ID| +|»»» type|string|true|none||算力部件类型,目前只有cpu/memory/disk/gpu四种固定类型| +|»»» model|string|true|none||部件型号/系列| +|»»» unit_price|number|true|none||单位单价数额(2.5元/Mi*小时)| +|»»» resource_unit|string|true|none||计费资源单位(个核/Mi内存/Gi存储/块gpu)| +|»»» stock|integer|true|none||总库存数| +|»»» consumed|integer|true|none||总消耗数| +|»»» charge_unit|string|true|none||计费周期单位(小时/分钟/秒/天)| +|»»» account_unit|string|true|none||计费货币单位(元/角/分)| +|»»» update_time|string|true|none||更新时间| +|»»» import_export|[object]|true|none||库存元数据| +|»»»» clusterid|string|true|none||集群名| +|»»»» clustername|string|true|none||集群id| +|»»»» stock|integer|true|none||库存数| +|»»»» consumed|integer|true|none||消耗数| +|»»» clusterid|string|true|none||算力集群ID| +|»»» row_num_|integer|true|none||none| + +## GET 部件组合询价 + +GET /dev/cpcc/cpcwidget/accrual_price.dspy + +客户端通过此接口,查询不同算力部件组合后的产品定价 + +如用户要查询某些部件组合运行2天的定价,可以传参数(下面参数说明不支持array友好显示,array里面每项都是字典/json,看这里就行,amount字段值是 整型): +{ + "resources": [ + {"type": "cpu", "model": "INTEL(R) XEON(R) PLATINUM 8582C", "amount": 4}, + {"type": "memory", "model": "Samsung DDR4 DIMMs", "amount": 8192}, # 8GB必须转成8192Mi + {"type": "disk", "model": "DATA", "amount": 512}, + {"type": "gpu", "model": "RTX5090-32G", "amount": 2} + ], + "duration": 2, + "duration_unit": "天" + } +进行计算,其他条件同理 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|cpcid|query|string| 是 |算力中心id| +|resources|query|array[string]| 是 |1. 多种算力部件自由组合成的数组;| +|duration|query|integer| 是 |使用时长,整数| +|duration_unit|query|string| 是 |使用时长单位,可以是小时,天,周,月| +|clusterid|query|string| 否 |集群id,查看集群库存| + +#### 详细说明 + +**resources**: 1. 多种算力部件自由组合成的数组; +2. 内存一定是以Mi为单位(如8GB必须转成8192Mi),其他单位要提前转成Mi级; +3.字段解释: +type: 部件类型,下拉cpu,memory,disk,gpu +model:部件子类型,自定义填写 +amount:部件使用量,整型,输入框后面显示单位(cpu-核,memory-Mi,disk-Gi,gpu-卡) + +> 返回示例 + +```json +{ + "status": true, + "msg": "获取部件组合价格成功", + "data": { + "total_price": 64.08, + "currency": "元", + "price_details": [ + { + "resource_name": "cpu INTEL(R) XEON(R) PLATINUM 8582C", + "resource_type": "cpu", + "amount": 4, + "resource_unit": "核", + "unit_price": 1.5, + "duration": "1", + "duration_unit": "小时", + "subtotal": 6 + }, + { + "resource_name": "memory Samsung DDR4 DIMMs", + "resource_type": "memory", + "amount": 8192, + "resource_unit": "Mi", + "unit_price": 0.005, + "duration": "1", + "duration_unit": "小时", + "subtotal": 40.96 + }, + { + "resource_name": "disk DATA", + "resource_type": "disk", + "amount": 512, + "resource_unit": "Gi", + "unit_price": 0.01, + "duration": "1", + "duration_unit": "小时", + "subtotal": 5.12 + }, + { + "resource_name": "gpu RTX5090-32G", + "resource_type": "gpu", + "amount": 2, + "resource_unit": "卡", + "unit_price": 6, + "duration": "1", + "duration_unit": "小时", + "subtotal": 12 + } + ], + "status": true, + "message": "汇算正常", + "duration": "1", + "duration_unit": "小时" + } +} +``` + +```json +{ + "status": false, + "msg": "无效的 gpu 部件型号: RTXs5090-32G", + "data": { + "total_price": 52.08, + "currency": "元", + "price_details": [ + { + "resource_name": "cpu INTEL(R) XEON(R) PLATINUM 8582C", + "resource_type": "cpu", + "amount": 4, + "resource_unit": "核", + "unit_price": 1.5, + "duration": "1", + "duration_unit": "小时", + "subtotal": 6 + }, + { + "resource_name": "memory Samsung DDR4 DIMMs", + "resource_type": "memory", + "amount": 8192, + "resource_unit": "Mi", + "unit_price": 0.005, + "duration": "1", + "duration_unit": "小时", + "subtotal": 40.96 + }, + { + "resource_name": "disk DATA", + "resource_type": "disk", + "amount": 512, + "resource_unit": "Gi", + "unit_price": 0.01, + "duration": "1", + "duration_unit": "小时", + "subtotal": 5.12 + }, + { + "resource_type": "gpu", + "error": "无效的 gpu 部件型号: RTXs5090-32G" + } + ], + "status": false, + "message": "无效的 gpu 部件型号: RTXs5090-32G", + "duration": "1", + "duration_unit": "小时" + } +} +``` + +```json +{ + "status": false, + "msg": "memory Samsung DDR4 DIMMs 库存不足 (库存: 1280, 请求: 8192)", + "data": { + "total_price": 23.12, + "currency": "元", + "price_details": [ + { + "resource_name": "cpu INTEL(R) XEON(R) PLATINUM 8582C", + "resource_type": "cpu", + "amount": 4, + "resource_unit": "核", + "unit_price": 1.5, + "duration": "1", + "duration_unit": "小时", + "subtotal": 6 + }, + { + "resource_type": "memory", + "error": "memory Samsung DDR4 DIMMs 库存不足 (库存: 1280, 请求: 8192)" + }, + { + "resource_name": "disk DATA", + "resource_type": "disk", + "amount": 512, + "resource_unit": "Gi", + "unit_price": 0.01, + "duration": "1", + "duration_unit": "小时", + "subtotal": 5.12 + }, + { + "resource_name": "gpu RTX5090-32G", + "resource_type": "gpu", + "amount": 2, + "resource_unit": "卡", + "unit_price": 6, + "duration": "1", + "duration_unit": "小时", + "subtotal": 12 + } + ], + "status": false, + "message": "memory Samsung DDR4 DIMMs 库存不足 (库存: 1280, 请求: 8192)", + "duration": "1", + "duration_unit": "小时" + } +} +``` + +```json +{ + "status": false, + "msg": "没有该类型组件", + "data": { + "total_price": 0, + "currency": "元", + "price_details": [ + { + "resource_type": "cpu", + "error": "没有该类型组件" + }, + { + "resource_type": "memory", + "error": "没有该类型组件" + }, + { + "resource_type": "disk", + "error": "没有该类型组件" + }, + { + "resource_type": "gpu", + "error": "没有该类型组件" + } + ], + "status": false, + "message": "没有该类型组件", + "duration": 1, + "duration_unit": "小时" + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|object|true|none||none| +|»» total_price|number|true|none||none| +|»» currency|string|true|none||none| +|»» price_details|[object]|true|none||none| +|»»» resource_name|string|true|none||none| +|»»» resource_type|string|true|none||none| +|»»» amount|integer|true|none||none| +|»»» resource_unit|string|true|none||none| +|»»» unit_price|number|true|none||none| +|»»» duration|string|true|none||none| +|»»» duration_unit|string|true|none||none| +|»»» subtotal|integer|true|none||none| +|»» status|boolean|true|none|接口状态|none| +|»» message|string|true|none|接口信息|none| +|»» duration|string|true|none|时间间隔长度|2| +|»» duration_unit|string|true|none|时间间隔单位|小时/天/周/月| + +## POST 更新算力部件单价 + +POST /dev/cpcc/cpcwidget/update_cpcwidget.dspy + +更新算力部件信息 + +注意: +1.只能更新单位单价! +2.必须登录态才能操作! + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 否 |获取算力部件得到的id| +|cpcid|query|string| 是 |算力中心id| +|unit_price|query|string| 是 |更新单位单价,浮点数,apifox不支持设置浮点格式,请注意| +|type|query|string| 是 |算力部件类型| +|model|query|string| 是 |gpu型号系列| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "更新算力部件成功", + "data": { + "cpcid": "AROU9udKtPNyh0AZtO_WY", + "id": "YnTYUrOhKTB_WjuK8zNj5", + "unit_price": "0.0009" + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 移除算力部件 + +POST /dev/cpcc/cpcwidget/delete_cpcwidget.dspy + +移除算力中心部件 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|id|query|string| 是 |节点部件查找返回的id| +|cpcid|query|string| 是 |算力中心id| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# kboss容器云/算力集群节点管理(未开发) + +## POST 算力集群新增工作节点(调试中) + +POST /dev/cpcc/cpcworker/new_cpcworker.dspy + +重操作约3分钟!!! +Web前端给某集群新增算力节点,Web后端接收到参数后传递参数给算力中心服务pcapi。 +pcapi进行ssh远程到某算力设备中进行安装算力集群(控制节点),安装结果字段返回给Web后端进行存库。 +中间是一连贯操作,请确保Web前后端之间接口有超时判断能力。 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|cpcid|query|string| 是 |算力中心id| +|clusterid|query|string| 是 |选中集群id| +|worker_nodeid|query|string| 是 |选中算力设备id| + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +## POST 算力集群移除工作节点(未开发) + +POST / + +重操作约1分钟!!! + +> 返回示例 + +> 200 Response + +```json +{} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +# kboss容器云/购买页通用接口(调试中) + +## GET 获取站点GPU资源配置库存 + +GET /dev/cpcc/cpcwidget/obtaining_gpuinfo.dspy + +购买页GPU算力资源(含库存信息) +获取去重后显示该算力中心下的GPU算力资源 +以算力集群为最小单位获取资源 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|cpcid|query|string| 否 |算力中心id| +|clusterid|query|string| 否 |算力集群id| + +> 返回示例 + +```json +{ + "status": true, + "msg": "获取集群GPU库存成功", + "data": { + "V100-32G": 8, + "RTX4090-24G": 12, + "RTX5090-32G": 10, + "A100-80G": 5, + "STANDARD-8G": 1 + } +} +``` + +```json +{ + "status": true, + "msg": "获取集群GPU库存成功", + "data": { + "V100-32G": 8, + "RTX4090-24G": 12, + "RTX5090-32G": 10, + "另一个算力集群(不同算力中心下)显卡型号XXX-12G": 1, + "A100-80G": 5, + "STANDARD-8G": 1 + } +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||none| +|» msg|string|true|none||none| +|» data|object|true|none||none| +|»» V100-32G|integer|true|none||none| +|»» RTX4090-24G|integer|true|none||none| +|»» RTX5090-32G|integer|true|none||none| +|»» A100-80G|integer|true|none||none| +|»» STANDARD-8G|integer|true|none||none| + +## GET 获取站点不可部署产品ID + +GET /dev/cpcc/cpcbuy/determine_accommodat.dspy + +1. 判断购买页的产品组合是否能完整部署到某站点/集群中的可用节点上? +2. 原理:资源实例是运行在某节点上的,至少有一个工作节点拥有用户勾选的所有部件库存可用量时才可进行下一步,否则报无可用节点! +3. 入参:算力中心-集群中若干算力部件参数组组成的JSON +4. 出参:置灰/不可部署产品id组成的数组 + +### 请求参数 + +|名称|位置|类型|必选|说明| +|---|---|---|---|---| +|cpcid|query|string| 是 |算力中心id| +|clusterid|query|string| 是 |集群id| +|resources|query|string| 是 |请求资源详情| +|kyylabels|query|string| 是 |none| + +> 返回示例 + +> 200 Response + +```json +{ + "status": true, + "msg": "获取不可部署产品ID成功", + "data": [ + "5436-f-gdsb--ewrewrerrtwt", + "6787jhgvgjhv32412343142jvgj" + ], + "reason": "dynamic" +} +``` + +### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|boolean|true|none||接口状态| +|» msg|string|true|none||接口状态详情| +|» data|[string]|true|none||none| +|» reason|string|true|none||判定环节| + +# 数据模型 + +

文档基础表

+ + + + + + +```json +{ + "id": "string", + "user_name": "NULL", + "kind": "NULL", + "file_type": "NULL", + "title": "NULL", + "content": "NULL", + "file_path": "NULL", + "status": 0, + "del_flg": "'0'", + "create_at": "current_timestamp()", + "update_at": "current_timestamp()" +} + +``` + +### 属性 + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|id|string|true|none||none| +|user_name|string|false|none||上传者| +|kind|integer|false|none||文件所属分类| +|file_type|string|false|none||文件类型| +|title|string|false|none||标题| +|content|string|false|none||内容| +|file_path|string|false|none||文件路径| +|status|integer|false|none||状态,0:不展示,1:展示| +|del_flg|string|false|none||删除标志| +|create_at|string|true|none||创建时间戳| +|update_at|string|true|none||修改时间戳| + +#### 枚举值 + +|属性|值| +|---|---| +|status|0| +|status|1| + From a90849fecea50472cc70ccd7fa70f766d1fcbd8e Mon Sep 17 00:00:00 2001 From: ping <1017253325@qq.com> Date: Mon, 20 Oct 2025 17:34:19 +0800 Subject: [PATCH 5/6] update --- conf/config.dev.json | 1 - 1 file changed, 1 deletion(-) diff --git a/conf/config.dev.json b/conf/config.dev.json index 9829117..ae8cd3e 100644 --- a/conf/config.dev.json +++ b/conf/config.dev.json @@ -35,7 +35,6 @@ "kwargs":{ "user":"kboss", "db":"kboss_dev", - "passwordllll":"QUZVcXg5V1p1STMybG5Ia7aQ6Dpt7Okh", "password":"NW6y8juHLagO2FUPzQmBSw==", "host":"db" } From ba3757dca2b35c393c681fcaff1f820507706650 Mon Sep 17 00:00:00 2001 From: ping <1017253325@qq.com> Date: Mon, 20 Oct 2025 18:15:29 +0800 Subject: [PATCH 6/6] update --- conf/config.dev.json | 3 +-- conf/config.ncmatch.json | 3 +-- conf/config.prod.json | 3 +-- conf/config.test.json | 3 +-- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/conf/config.dev.json b/conf/config.dev.json index ae8cd3e..16f678d 100644 --- a/conf/config.dev.json +++ b/conf/config.dev.json @@ -1,5 +1,4 @@ { - "password_key":"!@#$%^&*(*&^%$QWERTYUIqwertyui234567", "definitions":{ "search_model":"qwen2:7b", "search_url":"https://sage.opencomputing.cn/ollama/api/chat", @@ -35,7 +34,7 @@ "kwargs":{ "user":"kboss", "db":"kboss_dev", - "password":"NW6y8juHLagO2FUPzQmBSw==", + "password":"QUZVcXg5V1p1STMybG5Ia7aQ6Dpt7Okh", "host":"db" } } diff --git a/conf/config.ncmatch.json b/conf/config.ncmatch.json index ecc7b07..61fa0d9 100644 --- a/conf/config.ncmatch.json +++ b/conf/config.ncmatch.json @@ -1,5 +1,4 @@ { - "password_key":"!@#$%^&*(*&^%$QWERTYUIqwertyui234567", "definitions":{ "search_model":"qwen2:7b", "search_url":"https://sage.opencomputing.cn/ollama/api/chat", @@ -35,7 +34,7 @@ "kwargs":{ "user":"kboss", "db":"kboss_ncmatch", - "password":"NW6y8juHLagO2FUPzQmBSw==", + "password":"QUZVcXg5V1p1STMybG5Ia7aQ6Dpt7Okh", "host":"localhost" } } diff --git a/conf/config.prod.json b/conf/config.prod.json index bb5fa71..218f98a 100644 --- a/conf/config.prod.json +++ b/conf/config.prod.json @@ -1,5 +1,4 @@ { - "password_key":"!@#$%^&*(*&^%$QWERTYUIqwertyui234567", "definitions":{ "search_model":"qwen2:7b", "search_url":"https://sage.opencomputing.cn/ollama/api/chat", @@ -31,7 +30,7 @@ "kwargs":{ "user":"kboss", "db":"kboss_prod", - "password":"NW6y8juHLagO2FUPzQmBSw==", + "password":"QUZVcXg5V1p1STMybG5Ia7aQ6Dpt7Okh", "host":"db" } } diff --git a/conf/config.test.json b/conf/config.test.json index be7408c..a7f2925 100644 --- a/conf/config.test.json +++ b/conf/config.test.json @@ -1,5 +1,4 @@ { - "password_key":"!@#$%^&*(*&^%$QWERTYUIqwertyui234567", "definitions":{ "search_model":"qwen2:7b", "search_url":"https://sage.opencomputing.cn/ollama/api/chat", @@ -31,7 +30,7 @@ "kwargs":{ "user":"kboss", "db":"kboss_test", - "password":"NW6y8juHLagO2FUPzQmBSw==", + "password":"QUZVcXg5V1p1STMybG5Ia7aQ6Dpt7Okh", "host":"db" } }