diff --git a/cmdb-api/api/commands/click_acl.py b/cmdb-api/api/commands/click_acl.py index 3588d8c..395e06c 100644 --- a/cmdb-api/api/commands/click_acl.py +++ b/cmdb-api/api/commands/click_acl.py @@ -35,8 +35,22 @@ def add_user(): """ + from api.models.acl import App + from api.lib.perm.acl.cache import AppCache + from api.lib.perm.acl.cache import RoleCache + from api.lib.perm.acl.role import RoleCRUD + from api.lib.perm.acl.role import RoleRelationCRUD + username = click.prompt('Enter username', confirmation_prompt=False) password = click.prompt('Enter password', hide_input=True, confirmation_prompt=True) email = click.prompt('Enter email ', confirmation_prompt=False) + is_admin = click.prompt('Admin (Y/N) ', confirmation_prompt=False, type=bool, default=False) UserCRUD.add(username=username, password=password, email=email) + + if is_admin: + app = AppCache.get('acl') or App.create(name='acl') + acl_admin = RoleCache.get('acl_admin') or RoleCRUD.add_role('acl_admin', app.id, True) + rid = RoleCache.get_by_name(None, username).id + + RoleRelationCRUD.add(acl_admin, acl_admin.id, [rid], app.id) diff --git a/cmdb-api/api/commands/click_cmdb.py b/cmdb-api/api/commands/click_cmdb.py index f64cad0..e7ad1ea 100644 --- a/cmdb-api/api/commands/click_cmdb.py +++ b/cmdb-api/api/commands/click_cmdb.py @@ -5,6 +5,7 @@ import copy import datetime import json import time +import uuid import click import requests @@ -176,6 +177,11 @@ def cmdb_counter(): from api.lib.cmdb.cache import CMDBCounterCache current_app.test_request_context().push() + if not UserCache.get('worker'): + from api.lib.perm.acl.user import UserCRUD + + UserCRUD.add(username='worker', password=uuid.uuid4().hex, email='worker@xxx.com') + login_user(UserCache.get('worker')) while True: try: diff --git a/cmdb-api/api/lib/cmdb/auto_discovery/templates/aliyun_ecs.json b/cmdb-api/api/lib/cmdb/auto_discovery/templates/aliyun_ecs.json index ca9285f..e570b2d 100644 --- a/cmdb-api/api/lib/cmdb/auto_discovery/templates/aliyun_ecs.json +++ b/cmdb-api/api/lib/cmdb/auto_discovery/templates/aliyun_ecs.json @@ -1,647 +1,386 @@ -[ - { - "name": "CreationTime", - "type": "文本", - "example": "2017-12-10T04:04Z", - "desc": "\u5b9e\u4f8b\u521b\u5efa\u65f6\u95f4\u3002\u4ee5ISO 8601\u4e3a\u6807\u51c6\uff0c\u5e76\u4f7f\u7528UTC+0\u65f6\u95f4\uff0c\u683c\u5f0f\u4e3ayyyy-MM-ddTHH:mmZ\u3002\u66f4\u591a\u4fe1\u606f\uff0c\u8bf7\u53c2\u89c1[ISO 8601](~~25696~~)\u3002" - }, - { - "name": "SerialNumber", - "type": "文本", - "example": "51d1353b-22bf-4567-a176-8b3e12e4****", - "desc": "\u5b9e\u4f8b\u5e8f\u5217\u53f7\u3002" - }, - { - "name": "Status", - "type": "文本", - "example": "Running", - "desc": "\u5b9e\u4f8b\u72b6\u6001\u3002" - }, - { - "name": "DeploymentSetId", - "type": "文本", - "example": "ds-bp67acfmxazb4p****", - "desc": "\u90e8\u7f72\u96c6ID\u3002" - }, - { - "name": "KeyPairName", - "type": "文本", - "example": "testKeyPairName", - "desc": "\u5bc6\u94a5\u5bf9\u540d\u79f0\u3002" - }, - { - "name": "SaleCycle", - "type": "文本", - "example": "month", - "desc": "> \u8be5\u53c2\u6570\u5df2\u5f03\u7528\uff0c\u4e0d\u518d\u8fd4\u56de\u6709\u610f\u4e49\u7684\u6570\u636e\u3002" - }, - { - "name": "SpotStrategy", - "type": "文本", - "example": "NoSpot", - "desc": "\u6309\u91cf\u5b9e\u4f8b\u7684\u7ade\u4ef7\u7b56\u7565\u3002\u53ef\u80fd\u503c\uff1a\n\n- NoSpot\uff1a\u6b63\u5e38\u6309\u91cf\u4ed8\u8d39\u5b9e\u4f8b\u3002\n- SpotWithPriceLimit\uff1a\u8bbe\u7f6e\u4e0a\u9650\u4ef7\u683c\u7684\u62a2\u5360\u5f0f\u5b9e\u4f8b\u3002\n- SpotAsPriceGo\uff1a\u7cfb\u7edf\u81ea\u52a8\u51fa\u4ef7\uff0c\u6700\u9ad8\u6309\u91cf\u4ed8\u8d39\u4ef7\u683c\u7684\u62a2\u5360\u5f0f\u5b9e\u4f8b\u3002" - }, - { - "name": "DeviceAvailable", - "type": "boolean", - "example": "true", - "desc": "\u5b9e\u4f8b\u662f\u5426\u53ef\u4ee5\u6302\u8f7d\u6570\u636e\u76d8\u3002" - }, - { - "name": "LocalStorageCapacity", - "type": "整数", - "example": "1000", - "desc": "\u5b9e\u4f8b\u6302\u8f7d\u7684\u672c\u5730\u5b58\u50a8\u5bb9\u91cf\u3002" - }, - { - "name": "Description", - "type": "文本", - "example": "testDescription", - "desc": "\u5b9e\u4f8b\u63cf\u8ff0\u3002" - }, - { - "name": "SpotDuration", - "type": "整数", - "example": "1", - "desc": "\u62a2\u5360\u5f0f\u5b9e\u4f8b\u7684\u4fdd\u7559\u65f6\u957f\uff0c\u5355\u4f4d\u4e3a\u5c0f\u65f6\u3002\u53ef\u80fd\u503c\u4e3a0~6\u3002\n\n- \u4fdd\u7559\u65f6\u957f2~6\u6b63\u5728\u9080\u6d4b\u4e2d\uff0c\u5982\u9700\u5f00\u901a\u8bf7\u63d0\u4ea4\u5de5\u5355\u3002\n- \u503c\u4e3a0\uff0c\u5219\u4e3a\u65e0\u4fdd\u62a4\u671f\u6a21\u5f0f\u3002\n\n>\u5f53SpotStrategy\u503c\u4e3aSpotWithPriceLimit\u6216SpotAsPriceGo\u65f6\u8fd4\u56de\u8be5\u53c2\u6570\u3002" - }, - { - "name": "InstanceNetworkType", - "type": "文本", - "example": "vpc", - "desc": "\u5b9e\u4f8b\u7f51\u7edc\u7c7b\u578b\u3002\u53ef\u80fd\u503c\uff1a\n\n- classic\uff1a\u7ecf\u5178\u7f51\u7edc\u3002\n- vpc\uff1a\u4e13\u6709\u7f51\u7edcVPC\u3002" - }, - { - "name": "InstanceName", - "type": "文本", - "example": "InstanceNameTest", - "desc": "\u5b9e\u4f8b\u540d\u79f0\u3002" - }, - { - "name": "OSNameEn", - "type": "文本", - "example": "CentOS 7.4 64 bit", - "desc": "\u5b9e\u4f8b\u64cd\u4f5c\u7cfb\u7edf\u7684\u82f1\u6587\u540d\u79f0\u3002" - }, - { - "name": "HpcClusterId", - "type": "文本", - "example": "hpc-bp67acfmxazb4p****", - "desc": "\u5b9e\u4f8b\u6240\u5c5e\u7684HPC\u96c6\u7fa4ID\u3002" - }, - { - "name": "SpotPriceLimit", - "type": "float", - "example": "0.98", - "desc": "\u5b9e\u4f8b\u7684\u6bcf\u5c0f\u65f6\u6700\u9ad8\u4ef7\u683c\u3002\u652f\u6301\u6700\u59273\u4f4d\u5c0f\u6570\uff0c\u53c2\u6570SpotStrategy=SpotWithPriceLimit\u65f6\uff0c\u8be5\u53c2\u6570\u751f\u6548\u3002" - }, - { - "name": "Memory", - "type": "整数", - "example": "16384", - "desc": "\u5185\u5b58\u5927\u5c0f\uff0c\u5355\u4f4d\u4e3aMiB\u3002" - }, - { - "name": "OSName", - "type": "文本", - "example": "CentOS 7.4 64 \u4f4d", - "desc": "\u5b9e\u4f8b\u7684\u64cd\u4f5c\u7cfb\u7edf\u540d\u79f0\u3002" - }, - { - "name": "DeploymentSetGroupNo", - "type": "整数", - "example": "1", - "desc": "ECS\u5b9e\u4f8b\u7ed1\u5b9a\u90e8\u7f72\u96c6\u5206\u6563\u90e8\u7f72\u65f6\uff0c\u5b9e\u4f8b\u5728\u90e8\u7f72\u96c6\u4e2d\u7684\u5206\u7ec4\u4f4d\u7f6e\u3002" - }, - { - "name": "ImageId", - "type": "文本", - "example": "m-bp67acfmxazb4p****", - "desc": "\u5b9e\u4f8b\u8fd0\u884c\u7684\u955c\u50cfID\u3002" - }, - { - "name": "VlanId", - "type": "文本", - "example": "10", - "desc": "\u5b9e\u4f8b\u7684VLAN ID\u3002\n\n>\u8be5\u53c2\u6570\u5373\u5c06\u88ab\u5f03\u7528\uff0c\u4e3a\u63d0\u9ad8\u517c\u5bb9\u6027\uff0c\u8bf7\u5c3d\u91cf\u4f7f\u7528\u5176\u4ed6\u53c2\u6570\u3002" - }, - { - "name": "ClusterId", - "type": "文本", - "example": "c-bp67acfmxazb4p****", - "desc": "\u5b9e\u4f8b\u6240\u5728\u7684\u96c6\u7fa4ID\u3002\n\n>\u8be5\u53c2\u6570\u5373\u5c06\u88ab\u5f03\u7528\uff0c\u4e3a\u63d0\u9ad8\u517c\u5bb9\u6027\uff0c\u8bf7\u5c3d\u91cf\u4f7f\u7528\u5176\u4ed6\u53c2\u6570\u3002" - }, - { - "name": "GPUSpec", - "type": "文本", - "example": "NVIDIA V100", - "desc": "\u5b9e\u4f8b\u89c4\u683c\u9644\u5e26\u7684GPU\u7c7b\u578b\u3002" - }, - { - "name": "AutoReleaseTime", - "type": "文本", - "example": "2017-12-10T04:04Z", - "desc": "\u6309\u91cf\u4ed8\u8d39\u5b9e\u4f8b\u7684\u81ea\u52a8\u91ca\u653e\u65f6\u95f4\u3002" - }, - { - "name": "DeletionProtection", - "type": "boolean", - "example": "false", - "desc": "\u5b9e\u4f8b\u91ca\u653e\u4fdd\u62a4\u5c5e\u6027\uff0c\u6307\u5b9a\u662f\u5426\u652f\u6301\u901a\u8fc7\u63a7\u5236\u53f0\u6216API\uff08DeleteInstance\uff09\u91ca\u653e\u5b9e\u4f8b\u3002\n\n- true\uff1a\u5df2\u5f00\u542f\u5b9e\u4f8b\u91ca\u653e\u4fdd\u62a4\u3002\n- false\uff1a\u672a\u5f00\u542f\u5b9e\u4f8b\u91ca\u653e\u4fdd\u62a4\u3002\n\n> \u8be5\u5c5e\u6027\u4ec5\u9002\u7528\u4e8e\u6309\u91cf\u4ed8\u8d39\u5b9e\u4f8b\uff0c\u4e14\u53ea\u80fd\u9650\u5236\u624b\u52a8\u91ca\u653e\u64cd\u4f5c\uff0c\u5bf9\u7cfb\u7edf\u91ca\u653e\u64cd\u4f5c\u4e0d\u751f\u6548\u3002" - }, - { - "name": "StoppedMode", - "type": "文本", - "example": "KeepCharging", - "desc": "\u5b9e\u4f8b\u505c\u673a\u540e\u662f\u5426\u7ee7\u7eed\u6536\u8d39\u3002\u53ef\u80fd\u503c\uff1a\n\n- KeepCharging\uff1a\u505c\u673a\u540e\u7ee7\u7eed\u6536\u8d39\uff0c\u4e3a\u60a8\u7ee7\u7eed\u4fdd\u7559\u5e93\u5b58\u8d44\u6e90\u3002\n- StopCharging\uff1a\u505c\u673a\u540e\u4e0d\u6536\u8d39\u3002\u505c\u673a\u540e\uff0c\u6211\u4eec\u91ca\u653e\u5b9e\u4f8b\u5bf9\u5e94\u7684\u8d44\u6e90\uff0c\u4f8b\u5982vCPU\u3001\u5185\u5b58\u548c\u516c\u7f51IP\u7b49\u8d44\u6e90\u3002\u91cd\u542f\u662f\u5426\u6210\u529f\u4f9d\u8d56\u4e8e\u5f53\u524d\u5730\u57df\u4e2d\u662f\u5426\u4ecd\u6709\u8d44\u6e90\u5e93\u5b58\u3002\n- Not-applicable\uff1a\u672c\u5b9e\u4f8b\u4e0d\u652f\u6301\u505c\u673a\u4e0d\u6536\u8d39\u529f\u80fd\u3002" - }, - { - "name": "GPUAmount", - "type": "整数", - "example": "4", - "desc": "\u5b9e\u4f8b\u89c4\u683c\u9644\u5e26\u7684GPU\u6570\u91cf\u3002" - }, - { - "name": "HostName", - "type": "文本", - "example": "testHostName", - "desc": "\u5b9e\u4f8b\u4e3b\u673a\u540d\u3002" - }, - { - "name": "InstanceId", - "type": "文本", - "example": "i-bp67acfmxazb4p****", - "desc": "\u5b9e\u4f8bID\u3002" - }, - { - "name": "InternetMaxBandwidthOut", - "type": "整数", - "example": "5", - "desc": "\u516c\u7f51\u51fa\u5e26\u5bbd\u6700\u5927\u503c\uff0c\u5355\u4f4d\u4e3aMbit/s\u3002" - }, - { - "name": "InternetMaxBandwidthIn", - "type": "整数", - "example": "50", - "desc": "\u516c\u7f51\u5165\u5e26\u5bbd\u6700\u5927\u503c\uff0c\u5355\u4f4d\u4e3aMbit/s\u3002" - }, - { - "name": "InstanceType", - "type": "文本", - "example": "ecs.g5.large", - "desc": "\u5b9e\u4f8b\u89c4\u683c\u3002" - }, - { - "name": "InstanceChargeType", - "type": "文本", - "example": "PostPaid", - "desc": "\u5b9e\u4f8b\u7684\u8ba1\u8d39\u65b9\u5f0f\u3002\u53ef\u80fd\u503c\uff1a\n\n- PrePaid\uff1a\u5305\u5e74\u5305\u6708\u3002\n- PostPaid\uff1a\u6309\u91cf\u4ed8\u8d39\u3002" - }, - { - "name": "RegionId", - "type": "文本", - "example": "cn-hangzhou", - "desc": "\u5b9e\u4f8b\u6240\u5c5e\u5730\u57dfID\u3002" - }, - { - "name": "IoOptimized", - "type": "boolean", - "example": "true", - "desc": "\u662f\u5426\u4e3aI/O\u4f18\u5316\u578b\u5b9e\u4f8b\u3002" - }, - { - "name": "StartTime", - "type": "文本", - "example": "2017-12-10T04:04Z", - "desc": "\u5b9e\u4f8b\u6700\u8fd1\u4e00\u6b21\u7684\u542f\u52a8\u65f6\u95f4\u3002\u4ee5ISO8601\u4e3a\u6807\u51c6\uff0c\u5e76\u4f7f\u7528UTC+0\u65f6\u95f4\uff0c\u683c\u5f0f\u4e3ayyyy-MM-ddTHH:mmZ\u3002\u66f4\u591a\u4fe1\u606f\uff0c\u8bf7\u53c2\u89c1[ISO8601](~~25696~~)\u3002" - }, - { - "name": "Cpu", - "type": "整数", - "example": "8", - "desc": "vCPU\u6570\u3002" - }, - { - "name": "LocalStorageAmount", - "type": "整数", - "example": "2", - "desc": "\u5b9e\u4f8b\u6302\u8f7d\u7684\u672c\u5730\u5b58\u50a8\u6570\u91cf\u3002" - }, - { - "name": "ExpiredTime", - "type": "文本", - "example": "2017-12-10T04:04Z", - "desc": "\u8fc7\u671f\u65f6\u95f4\u3002\u4ee5ISO8601\u4e3a\u6807\u51c6\uff0c\u5e76\u4f7f\u7528UTC+0\u65f6\u95f4\uff0c\u683c\u5f0f\u4e3ayyyy-MM-ddTHH:mmZ\u3002\u66f4\u591a\u4fe1\u606f\uff0c\u8bf7\u53c2\u89c1[ISO8601](~~25696~~)\u3002" - }, - { - "name": "ResourceGroupId", - "type": "文本", - "example": "rg-bp67acfmxazb4p****", - "desc": "\u5b9e\u4f8b\u6240\u5c5e\u7684\u4f01\u4e1a\u8d44\u6e90\u7ec4ID\u3002" - }, - { - "name": "InternetChargeType", - "type": "文本", - "example": "PayByTraffic", - "desc": "\u7f51\u7edc\u8ba1\u8d39\u7c7b\u578b\u3002\u53ef\u80fd\u503c\uff1a\n\n- PayByBandwidth\uff1a\u6309\u56fa\u5b9a\u5e26\u5bbd\u8ba1\u8d39\u3002\n- PayByTraffic\uff1a\u6309\u4f7f\u7528\u6d41\u91cf\u8ba1\u8d39\u3002" - }, - { - "name": "ZoneId", - "type": "文本", - "example": "cn-hangzhou-g", - "desc": "\u5b9e\u4f8b\u6240\u5c5e\u53ef\u7528\u533a\u3002" - }, - { - "name": "Recyclable", - "type": "boolean", - "example": "false", - "desc": "\u5b9e\u4f8b\u662f\u5426\u53ef\u4ee5\u56de\u6536\u3002" - }, - { - "name": "ISP", - "type": "文本", - "example": "null", - "desc": "> \u8be5\u53c2\u6570\u6b63\u5728\u9080\u6d4b\u4e2d\uff0c\u6682\u672a\u5f00\u653e\u4f7f\u7528\u3002" - }, - { - "name": "CreditSpecification", - "type": "文本", - "example": "Standard", - "desc": "\u4fee\u6539\u7a81\u53d1\u6027\u80fd\u5b9e\u4f8b\u7684\u8fd0\u884c\u6a21\u5f0f\u3002\u53ef\u80fd\u503c\uff1a\n\n- Standard\uff1a\u6807\u51c6\u6a21\u5f0f\u3002\u6709\u5173\u5b9e\u4f8b\u6027\u80fd\u7684\u66f4\u591a\u4fe1\u606f\uff0c\u8bf7\u53c2\u89c1[\u4ec0\u4e48\u662f\u7a81\u53d1\u6027\u80fd\u5b9e\u4f8b](~~59977~~)\u4e2d\u7684\u6027\u80fd\u7ea6\u675f\u6a21\u5f0f\u7ae0\u8282\u3002\n- Unlimited\uff1a\u65e0\u6027\u80fd\u7ea6\u675f\u6a21\u5f0f\uff0c\u6709\u5173\u5b9e\u4f8b\u6027\u80fd\u7684\u66f4\u591a\u4fe1\u606f\uff0c\u8bf7\u53c2\u89c1[\u4ec0\u4e48\u662f\u7a81\u53d1\u6027\u80fd\u5b9e\u4f8b](~~59977~~)\u4e2d\u7684\u65e0\u6027\u80fd\u7ea6\u675f\u6a21\u5f0f\u7ae0\u8282\u3002" - }, - { - "name": "InstanceTypeFamily", - "type": "文本", - "example": "ecs.g5", - "desc": "\u5b9e\u4f8b\u89c4\u683c\u65cf\u3002" - }, - { - "name": "OSType", - "type": "文本", - "example": "linux", - "desc": "\u5b9e\u4f8b\u7684\u64cd\u4f5c\u7cfb\u7edf\u7c7b\u578b\uff0c\u5206\u4e3aWindows Server\u548cLinux\u4e24\u79cd\u3002\u53ef\u80fd\u503c\uff1a\n\n- windows\u3002\n- linux\u3002" - }, - { - "name": "NetworkInterfaces", - "type": "json", - "example": { - "type": "json", - "properties": { - "Type": { - "description": "\u5f39\u6027\u7f51\u5361\u7c7b\u578b\u3002\u53ef\u80fd\u503c\uff1a\n- Primary\uff1a\u4e3b\u7f51\u5361\u3002\n- Secondary\uff1a\u8f85\u52a9\u5f39\u6027\u7f51\u5361\u3002", - "type": "文本", - "example": "Primary" - }, - "MacAddress": { - "description": "\u5f39\u6027\u7f51\u5361\u7684MAC\u5730\u5740\u3002", - "type": "文本", - "example": "00:16:3e:32:b4:**" - }, - "PrimaryIpAddress": { - "description": "\u5f39\u6027\u7f51\u5361\u4e3b\u79c1\u6709IP\u5730\u5740\u3002", - "type": "文本", - "example": "172.17.**.***" - }, - "NetworkInterfaceId": { - "description": "\u5f39\u6027\u7f51\u5361\u7684ID\u3002", - "type": "文本", - "example": "eni-2zeh9atclduxvf1z****" - }, - "PrivateIpSets": { - "type": "array", - "items": { - "type": "json", - "properties": { - "PrivateIpAddress": { - "description": "\u5b9e\u4f8b\u7684\u79c1\u7f51IP\u5730\u5740\u3002", - "type": "文本", - "example": "172.17.**.**" - }, - "Primary": { - "description": "\u662f\u5426\u662f\u4e3b\u79c1\u7f51IP\u5730\u5740\u3002", - "type": "boolean", - "example": "true" - } - } - }, - "description": "PrivateIpSet\u7ec4\u6210\u7684\u96c6\u5408\u3002" - }, - "Ipv6Sets": { - "type": "array", - "items": { - "type": "json", - "properties": { - "Ipv6Address": { - "description": "\u4e3a\u5f39\u6027\u7f51\u5361\u6307\u5b9a\u7684IPv6\u5730\u5740\u3002", - "type": "文本", - "example": "2408:4321:180:1701:94c7:bc38:3bfa:***" - } - } - }, - "description": "\u4e3a\u5f39\u6027\u7f51\u5361\u5206\u914d\u7684IPv6\u5730\u5740\u96c6\u5408\u3002\u4ec5\u5f53\u8bf7\u6c42\u53c2\u6570`AdditionalAttributes.N`\u53d6\u503c\u4e3a`NETWORK_PRIMARY_ENI_IP`\u65f6\uff0c\u624d\u4f1a\u8fd4\u56de\u8be5\u53c2\u6570\u503c\u3002" - }, - "Ipv4PrefixSets": { - "type": "array", - "items": { - "type": "json", - "properties": { - "Ipv4Prefix": { - "description": "IPv4\u524d\u7f00\u3002", - "type": "文本", - "example": "47.122.*.*/19" - } - } - }, - "description": "IPv4\u524d\u7f00\u96c6\u5408\u3002" - }, - "Ipv6PrefixSets": { - "type": "array", - "items": { - "type": "json", - "properties": { - "Ipv6Prefix": { - "description": "IPv6\u524d\u7f00\u3002", - "type": "文本", - "example": "2001:1111:*:*::/64" - } - } - }, - "description": "IPv6\u524d\u7f00\u96c6\u5408\u3002" - } - }, - "description": "\u5b9e\u4f8b\u5305\u542b\u7684\u5f39\u6027\u7f51\u5361\u96c6\u5408\u3002" - }, - "desc": "\u5b9e\u4f8b\u5305\u542b\u7684\u5f39\u6027\u7f51\u5361\u96c6\u5408\u3002" - }, - { - "name": "OperationLocks", - "type": "文本、多值", - "example": { - "type": "json", - "properties": { - "LockMsg": { - "description": "\u5b9e\u4f8b\u88ab\u9501\u5b9a\u7684\u63cf\u8ff0\u4fe1\u606f\u3002", - "type": "文本", - "example": "The specified instance is locked due to financial reason." - }, - "LockReason": { - "description": "\u9501\u5b9a\u7c7b\u578b\u3002\u53ef\u80fd\u503c\uff1a\n\n- financial\uff1a\u56e0\u6b20\u8d39\u88ab\u9501\u5b9a\u3002\n- security\uff1a\u56e0\u5b89\u5168\u539f\u56e0\u88ab\u9501\u5b9a\u3002\n- Recycling\uff1a\u62a2\u5360\u5f0f\u5b9e\u4f8b\u7684\u5f85\u91ca\u653e\u9501\u5b9a\u72b6\u6001\u3002\n- dedicatedhostfinancial\uff1a\u56e0\u4e3a\u4e13\u6709\u5bbf\u4e3b\u673a\u6b20\u8d39\u5bfc\u81f4ECS\u5b9e\u4f8b\u88ab\u9501\u5b9a\u3002\n- refunded\uff1a\u56e0\u9000\u6b3e\u88ab\u9501\u5b9a\u3002", - "type": "文本", - "example": "Recycling" - } - } - }, - "desc": "\u5b9e\u4f8b\u7684\u9501\u5b9a\u539f\u56e0\u3002" - }, - { - "name": "Tags", - "type": "json", - "example": { - "type": "json", - "properties": { - "TagValue": { - "description": "\u5b9e\u4f8b\u7684\u6807\u7b7e\u503c\u3002", - "type": "文本", - "example": "TestValue" - }, - "TagKey": { - "description": "\u5b9e\u4f8b\u7684\u6807\u7b7e\u952e\u3002", - "type": "文本", - "example": "TestKey" - } - } - }, - "desc": "\u5b9e\u4f8b\u7684\u6807\u7b7e\u96c6\u5408\u3002" - }, - { - "name": "RdmaIpAddress", - "type": "文本、多值", - "example": { - "description": "HPC\u5b9e\u4f8b\u7684Rdma\u7f51\u7edcIP\u3002", - "type": "文本", - "example": "10.10.10.102" - }, - "desc": "HPC\u5b9e\u4f8b\u7684Rdma\u7f51\u7edcIP\u5217\u8868\u3002" - }, - { - "name": "SecurityGroupIds", - "type": "文本、多值", - "example": { - "description": "\u5b89\u5168\u7ec4ID\u3002", - "type": "文本", - "example": "sg-bp67acfmxazb4p****" - }, - "desc": "\u5b9e\u4f8b\u6240\u5c5e\u5b89\u5168\u7ec4ID\u5217\u8868\u3002" - }, - { - "name": "PublicIpAddress", - "type": "文本、多值", - "example": { - "description": "\u5b9e\u4f8b\u516c\u7f51IP\u5730\u5740\u3002", - "type": "文本", - "example": "121.40.**.**" - }, - "desc": "\u5b9e\u4f8b\u516c\u7f51IP\u5730\u5740\u5217\u8868\u3002" - }, - { - "name": "InnerIpAddress", - "type": "文本、多值", - "example": { - "description": "\u7ecf\u5178\u7f51\u7edc\u7c7b\u578b\u5b9e\u4f8b\u7684\u5185\u7f51IP\u5730\u5740\u3002", - "type": "文本", - "example": "10.170.**.**" - }, - "desc": "\u7ecf\u5178\u7f51\u7edc\u7c7b\u578b\u5b9e\u4f8b\u7684\u5185\u7f51IP\u5730\u5740\u5217\u8868\u3002" - }, - { - "name": "VpcAttributes", - "type": "json", - "example": { - "VpcId": { - "description": "\u4e13\u6709\u7f51\u7edcVPC ID\u3002", - "type": "文本", - "example": "vpc-2zeuphj08tt7q3brd****" - }, - "NatIpAddress": { - "description": "\u4e91\u4ea7\u54c1\u7684IP\uff0c\u7528\u4e8eVPC\u4e91\u4ea7\u54c1\u4e4b\u95f4\u7684\u7f51\u7edc\u4e92\u901a\u3002", - "type": "文本", - "example": "172.17.**.**" - }, - "VSwitchId": { - "description": "\u865a\u62df\u4ea4\u6362\u673aID\u3002", - "type": "文本", - "example": "vsw-2zeh0r1pabwtg6wcs****" - }, - "PrivateIpAddress": { - "type": "array", - "items": { - "description": "\u79c1\u6709IP\u5730\u5740\u3002", - "type": "文本", - "example": "172.17.**.**" - }, - "description": "\u79c1\u6709IP\u5730\u5740\u5217\u8868\u3002" - } - }, - "desc": "\u4e13\u6709\u7f51\u7edcVPC\u5c5e\u6027\u3002" - }, - { - "name": "EipAddress", - "type": "json", - "example": { - "IsSupportUnassociate": { - "description": "\u662f\u5426\u53ef\u4ee5\u89e3\u7ed1\u5f39\u6027\u516c\u7f51IP\u3002", - "type": "boolean", - "example": "true" - }, - "InternetChargeType": { - "description": "\u5f39\u6027\u516c\u7f51IP\u7684\u8ba1\u8d39\u65b9\u5f0f\u3002\n\n- PayByBandwidth\uff1a\u6309\u5e26\u5bbd\u8ba1\u8d39\u3002\n\n- PayByTraffic\uff1a\u6309\u6d41\u91cf\u8ba1\u8d39\u3002", - "type": "文本", - "example": "PayByTraffic" - }, - "IpAddress": { - "description": "\u5f39\u6027\u516c\u7f51IP\u3002", - "type": "文本", - "example": "42.112.**.**" - }, - "Bandwidth": { - "description": "\u5f39\u6027\u516c\u7f51IP\u7684\u516c\u7f51\u5e26\u5bbd\u9650\u901f\uff0c\u5355\u4f4d\u4e3aMbit/s\u3002", - "type": "整数", - "format": "int32", - "example": "5" - }, - "AllocationId": { - "description": "\u5f39\u6027\u516c\u7f51IP\u7684ID\u3002", - "type": "文本", - "example": "eip-2ze88m67qx5z****" - } - }, - "desc": "\u5f39\u6027\u516c\u7f51IP\u7ed1\u5b9a\u4fe1\u606f\u3002" - }, - { - "name": "HibernationOptions", - "type": "json", - "example": { - "Configured": { - "description": "> \u8be5\u53c2\u6570\u6b63\u5728\u9080\u6d4b\u4e2d\uff0c\u6682\u672a\u5f00\u653e\u4f7f\u7528\u3002", - "type": "boolean", - "example": "false" - } - }, - "desc": "> \u8be5\u53c2\u6570\u6b63\u5728\u9080\u6d4b\u4e2d\uff0c\u6682\u672a\u5f00\u653e\u4f7f\u7528\u3002" - }, - { - "name": "DedicatedHostAttribute", - "type": "json", - "example": { - "DedicatedHostId": { - "description": "\u4e13\u6709\u5bbf\u4e3b\u673aID\u3002", - "type": "文本", - "example": "dh-bp67acfmxazb4p****" - }, - "DedicatedHostName": { - "description": "\u4e13\u6709\u5bbf\u4e3b\u673a\u540d\u79f0\u3002", - "type": "文本", - "example": "testDedicatedHostName" - }, - "DedicatedHostClusterId": { - "description": "\u4e13\u6709\u5bbf\u4e3b\u673a\u96c6\u7fa4ID\u3002", - "type": "文本", - "example": "dc-bp67acfmxazb4h****" - } - }, - "desc": "\u7531\u4e13\u6709\u5bbf\u4e3b\u673a\u96c6\u7fa4ID\uff08DedicatedHostClusterId\uff09\u3001\u4e13\u6709\u5bbf\u4e3b\u673aID\uff08DedicatedHostId\uff09\u548c\u540d\u79f0\uff08DedicatedHostName\uff09\u7ec4\u6210\u7684\u5bbf\u4e3b\u673a\u5c5e\u6027\u6570\u7ec4\u3002" - }, - { - "name": "EcsCapacityReservationAttr", - "type": "json", - "example": { - "CapacityReservationPreference": { - "description": "\u5bb9\u91cf\u9884\u7559\u504f\u597d\u3002", - "type": "文本", - "example": "cr-bp67acfmxazb4p****" - }, - "CapacityReservationId": { - "description": "\u5bb9\u91cf\u9884\u7559ID\u3002", - "type": "文本", - "example": "cr-bp67acfmxazb4p****" - } - }, - "desc": "\u4e91\u670d\u52a1\u5668ECS\u7684\u5bb9\u91cf\u9884\u7559\u76f8\u5173\u53c2\u6570\u3002" - }, - { - "name": "DedicatedInstanceAttribute", - "type": "json", - "example": { - "Affinity": { - "description": "\u4e13\u6709\u5bbf\u4e3b\u673a\u5b9e\u4f8b\u662f\u5426\u4e0e\u4e13\u6709\u5bbf\u4e3b\u673a\u5173\u8054\u3002\u53ef\u80fd\u503c\uff1a\n\n- default\uff1a\u4e13\u6709\u5bbf\u4e3b\u673a\u5b9e\u4f8b\u4e0d\u4e0e\u4e13\u6709\u5bbf\u4e3b\u673a\u5173\u8054\u3002\u505c\u673a\u4e0d\u6536\u8d39\u5b9e\u4f8b\u91cd\u542f\u540e\uff0c\u53ef\u80fd\u4f1a\u653e\u7f6e\u5728\u81ea\u52a8\u8d44\u6e90\u90e8\u7f72\u6c60\u4e2d\u7684\u5176\u5b83\u4e13\u6709\u5bbf\u4e3b\u673a\u4e0a\u3002\n\n- host\uff1a\u4e13\u6709\u5bbf\u4e3b\u673a\u5b9e\u4f8b\u4e0e\u4e13\u6709\u5bbf\u4e3b\u673a\u5173\u8054\u3002\u505c\u673a\u4e0d\u6536\u8d39\u5b9e\u4f8b\u91cd\u542f\u540e\uff0c\u4ecd\u653e\u7f6e\u5728\u539f\u4e13\u6709\u5bbf\u4e3b\u673a\u4e0a\u3002", - "type": "文本", - "example": "default" - }, - "Tenancy": { - "description": "\u5b9e\u4f8b\u7684\u5bbf\u4e3b\u673a\u7c7b\u578b\u662f\u5426\u4e3a\u4e13\u6709\u5bbf\u4e3b\u673a\u3002\u53ef\u80fd\u503c\uff1a\n\n- default\uff1a\u5b9e\u4f8b\u7684\u5bbf\u4e3b\u673a\u7c7b\u578b\u4e0d\u662f\u4e13\u6709\u5bbf\u4e3b\u673a\u3002\n\n- host\uff1a\u5b9e\u4f8b\u7684\u5bbf\u4e3b\u673a\u7c7b\u578b\u4e3a\u4e13\u6709\u5bbf\u4e3b\u673a\u3002", - "type": "文本", - "example": "default" - } - }, - "desc": "\u4e13\u6709\u5bbf\u4e3b\u673a\u5b9e\u4f8b\u7684\u5c5e\u6027\u3002" - }, - { - "name": "CpuOptions", - "type": "json", - "example": { - "Numa": { - "description": "\u5206\u914d\u7684\u7ebf\u7a0b\u6570\u3002\u53ef\u80fd\u503c\u4e3a2\u3002", - "type": "文本", - "example": "2" - }, - "CoreCount": { - "description": "\u7269\u7406CPU\u6838\u5fc3\u6570\u3002", - "type": "整数", - "format": "int32", - "example": "2" - }, - "ThreadsPerCore": { - "description": "CPU\u7ebf\u7a0b\u6570\u3002", - "type": "整数", - "format": "int32", - "example": "4" - } - }, - "desc": "CPU\u914d\u7f6e\u8be6\u60c5\u3002" - }, - { - "name": "MetadataOptions", - "type": "json", - "example": { - "HttpEndpoint": { - "description": "\u662f\u5426\u542f\u7528\u5b9e\u4f8b\u5143\u6570\u636e\u7684\u8bbf\u95ee\u901a\u9053\u3002\u53ef\u80fd\u503c\uff1a\n- enabled\uff1a\u542f\u7528\u3002\n- disabled\uff1a\u7981\u7528\u3002", - "type": "文本", - "example": "enabled" - }, - "HttpPutResponseHopLimit": { - "description": "> \u8be5\u53c2\u6570\u6682\u672a\u5f00\u653e\u4f7f\u7528\u3002", - "type": "整数", - "format": "int32", - "example": "0" - }, - "HttpTokens": { - "description": "\u8bbf\u95ee\u5b9e\u4f8b\u5143\u6570\u636e\u65f6\u662f\u5426\u5f3a\u5236\u4f7f\u7528\u52a0\u56fa\u6a21\u5f0f\uff08IMDSv2\uff09\u3002\u53ef\u80fd\u503c\uff1a\n- optional\uff1a\u4e0d\u5f3a\u5236\u4f7f\u7528\u3002\n- required\uff1a\u5f3a\u5236\u4f7f\u7528\u3002", - "type": "文本", - "example": "optional" - } - }, - "desc": "\u5143\u6570\u636e\u9009\u9879\u96c6\u5408\u3002" - }, - { - "name": "ImageOptions", - "type": "json", - "example": { - "LoginAsNonRoot": { - "description": "\u4f7f\u7528\u8be5\u955c\u50cf\u7684\u5b9e\u4f8b\u662f\u5426\u652f\u6301\u4f7f\u7528ecs-user\u7528\u6237\u767b\u5f55\u3002\u53ef\u80fd\u503c\uff1a\n\n- true\uff1a\u662f\n\n- false\uff1a\u5426", - "type": "boolean", - "example": "false" - } - }, - "desc": "\u955c\u50cf\u76f8\u5173\u5c5e\u6027\u4fe1\u606f\u3002" - } +[ + { + "name": "CreationTime", + "type": "string", + "desc": "实例创建时间。以ISO 8601为标准,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mmZ。更多信息,请参见[ISO 8601](~~25696~~)。", + "example": "2017-12-10T04:04Z" + }, + { + "name": "SerialNumber", + "type": "string", + "desc": "实例序列号。", + "example": "51d1353b-22bf-4567-a176-8b3e12e4****" + }, + { + "name": "Status", + "type": "string", + "desc": "实例状态。", + "example": "Running" + }, + { + "name": "DeploymentSetId", + "type": "string", + "desc": "部署集ID。", + "example": "ds-bp67acfmxazb4p****" + }, + { + "name": "KeyPairName", + "type": "string", + "desc": "密钥对名称。", + "example": "testKeyPairName" + }, + { + "name": "SaleCycle", + "type": "string", + "desc": "> 该参数已弃用,不再返回有意义的数据。", + "example": "month" + }, + { + "name": "SpotStrategy", + "type": "string", + "desc": "按量实例的竞价策略。可能值:\n\n- NoSpot:正常按量付费实例。\n- SpotWithPriceLimit:设置上限价格的抢占式实例。\n- SpotAsPriceGo:系统自动出价,最高按量付费价格的抢占式实例。", + "example": "NoSpot" + }, + { + "name": "DeviceAvailable", + "type": "boolean", + "desc": "实例是否可以挂载数据盘。\n\n- true:可以挂载数据盘。\n- false:不可以挂载数据盘。", + "example": "true" + }, + { + "name": "LocalStorageCapacity", + "type": "integer", + "desc": "实例挂载的本地存储容量。单位:GiB。", + "example": "1000" + }, + { + "name": "Description", + "type": "string", + "desc": "实例描述。", + "example": "testDescription" + }, + { + "name": "SpotDuration", + "type": "integer", + "desc": "抢占式实例的保留时长,单位为小时。可能值:\n\n- 1:创建后阿里云会保证实例运行1小时不会被自动释放;超过1小时后,系统会自动比较出价与市场价格、检查资源库存,来决定实例的持有和回收。\n- 0:创建后,阿里云不保证实例运行1小时,系统会自动比较出价与市场价格、检查资源库存,来决定实例的持有和回收。\n\n实例回收前5分钟阿里云会通过ECS系统事件向您发送通知。抢占式实例按秒计费,建议您结合具体任务执行耗时来选择合适的保留时长。\n\n>当SpotStrategy值为SpotWithPriceLimit或SpotAsPriceGo时返回该参数。", + "example": "1" + }, + { + "name": "InstanceNetworkType", + "type": "string", + "desc": "实例网络类型。可能值:\n\n- classic:经典网络。\n- vpc:专有网络VPC。", + "example": "vpc" + }, + { + "name": "InstanceName", + "type": "string", + "desc": "实例名称。", + "example": "InstanceNameTest" + }, + { + "name": "OSNameEn", + "type": "string", + "desc": "实例操作系统的英文名称。", + "example": "CentOS 7.4 64 bit" + }, + { + "name": "HpcClusterId", + "type": "string", + "desc": "实例所属的HPC集群ID。", + "example": "hpc-bp67acfmxazb4p****" + }, + { + "name": "SpotPriceLimit", + "type": "number", + "desc": "实例的每小时最高价格。支持最大3位小数,参数SpotStrategy=SpotWithPriceLimit时,该参数生效。", + "example": "0.98" + }, + { + "name": "Memory", + "type": "integer", + "desc": "内存大小,单位为MiB。", + "example": "16384" + }, + { + "name": "OSName", + "type": "string", + "desc": "实例的操作系统名称。", + "example": "CentOS 7.4 64 位" + }, + { + "name": "DeploymentSetGroupNo", + "type": "integer", + "desc": "ECS实例绑定部署集分散部署时,实例在部署集中的分组位置。", + "example": "1" + }, + { + "name": "ImageId", + "type": "string", + "desc": "实例运行的镜像ID。", + "example": "m-bp67acfmxazb4p****" + }, + { + "name": "VlanId", + "type": "string", + "desc": "实例的VLAN ID。\n\n>该参数即将被弃用,为提高兼容性,请尽量使用其他参数。", + "example": "10" + }, + { + "name": "ClusterId", + "type": "string", + "desc": "实例所在的集群ID。\n\n>该参数即将被弃用,为提高兼容性,请尽量使用其他参数。", + "example": "c-bp67acfmxazb4p****" + }, + { + "name": "GPUSpec", + "type": "string", + "desc": "实例规格附带的GPU类型。", + "example": "NVIDIA V100" + }, + { + "name": "AutoReleaseTime", + "type": "string", + "desc": "按量付费实例的自动释放时间。", + "example": "2017-12-10T04:04Z" + }, + { + "name": "DeletionProtection", + "type": "boolean", + "desc": "实例释放保护属性,指定是否支持通过控制台或API(DeleteInstance)释放实例。\n\n- true:已开启实例释放保护。\n- false:未开启实例释放保护。\n\n> 该属性仅适用于按量付费实例,且只能限制手动释放操作,对系统释放操作不生效。", + "example": "false" + }, + { + "name": "StoppedMode", + "type": "string", + "desc": "实例停机后是否继续收费。可能值:\n\n- KeepCharging:停机后继续收费,为您继续保留库存资源。\n- StopCharging:停机后不收费。停机后,我们释放实例对应的资源,例如vCPU、内存和公网IP等资源。重启是否成功依赖于当前地域中是否仍有资源库存。\n- Not-applicable:本实例不支持停机不收费功能。", + "example": "KeepCharging" + }, + { + "name": "GPUAmount", + "type": "integer", + "desc": "实例规格附带的GPU数量。", + "example": "4" + }, + { + "name": "HostName", + "type": "string", + "desc": "实例主机名。", + "example": "testHostName" + }, + { + "name": "InstanceId", + "type": "string", + "desc": "实例ID。", + "example": "i-bp67acfmxazb4p****" + }, + { + "name": "InternetMaxBandwidthOut", + "type": "integer", + "desc": "公网出带宽最大值,单位:Mbit/s。", + "example": "5" + }, + { + "name": "InternetMaxBandwidthIn", + "type": "integer", + "desc": "公网入带宽最大值,单位:Mbit/s。", + "example": "50" + }, + { + "name": "InstanceType", + "type": "string", + "desc": "实例规格。", + "example": "ecs.g5.large" + }, + { + "name": "InstanceChargeType", + "type": "string", + "desc": "实例的计费方式。可能值:\n\n- PrePaid:包年包月。\n- PostPaid:按量付费。", + "example": "PostPaid" + }, + { + "name": "RegionId", + "type": "string", + "desc": "实例所属地域ID。", + "example": "cn-hangzhou" + }, + { + "name": "IoOptimized", + "type": "boolean", + "desc": "是否为I/O优化型实例。\n\n- true:是。\n- false:否。", + "example": "true" + }, + { + "name": "StartTime", + "type": "string", + "desc": "实例最近一次的启动时间。以ISO 8601为标准,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mmZ。更多信息,请参见[ISO 8601](~~25696~~)。", + "example": "2017-12-10T04:04Z" + }, + { + "name": "Cpu", + "type": "integer", + "desc": "vCPU数。", + "example": "8" + }, + { + "name": "LocalStorageAmount", + "type": "integer", + "desc": "实例挂载的本地存储数量。", + "example": "2" + }, + { + "name": "ExpiredTime", + "type": "string", + "desc": "过期时间。以ISO 8601为标准,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mmZ。更多信息,请参见[ISO 8601](~~25696~~)。", + "example": "2017-12-10T04:04Z" + }, + { + "name": "ResourceGroupId", + "type": "string", + "desc": "实例所属的企业资源组ID。", + "example": "rg-bp67acfmxazb4p****" + }, + { + "name": "InternetChargeType", + "type": "string", + "desc": "网络计费类型。可能值:\n\n- PayByBandwidth:按固定带宽计费。\n- PayByTraffic:按使用流量计费。", + "example": "PayByTraffic" + }, + { + "name": "ZoneId", + "type": "string", + "desc": "实例所属可用区。", + "example": "cn-hangzhou-g" + }, + { + "name": "Recyclable", + "type": "boolean", + "desc": "实例是否可以回收。", + "example": "false" + }, + { + "name": "ISP", + "type": "string", + "desc": "> 该参数正在邀测中,暂未开放使用。", + "example": "null" + }, + { + "name": "CreditSpecification", + "type": "string", + "desc": "突发性能实例的运行模式。可能值:\n\n- Standard:标准模式。有关实例性能的更多信息,请参见[什么是突发性能实例](~~59977~~)中的性能约束模式章节。\n- Unlimited:无性能约束模式,有关实例性能的更多信息,请参见[什么是突发性能实例](~~59977~~)中的无性能约束模式章节。", + "example": "Standard" + }, + { + "name": "InstanceTypeFamily", + "type": "string", + "desc": "实例规格族。", + "example": "ecs.g5" + }, + { + "name": "OSType", + "type": "string", + "desc": "实例的操作系统类型,分为Windows Server和Linux两种。可能值:\n\n- windows。\n- linux。", + "example": "linux" + }, + { + "name": "NetworkInterfaces", + "type": "array", + "desc": "实例包含的弹性网卡集合。", + "example": "" + }, + { + "name": "OperationLocks", + "type": "array", + "desc": "实例的锁定原因。", + "example": "" + }, + { + "name": "Tags", + "type": "array", + "desc": "实例的标签集合。", + "example": "" + }, + { + "name": "RdmaIpAddress", + "type": "array", + "desc": "HPC实例的RDMA网络IP列表。", + "example": "" + }, + { + "name": "SecurityGroupIds", + "type": "array", + "desc": "实例所属安全组ID列表。", + "example": "" + }, + { + "name": "PublicIpAddress", + "type": "array", + "desc": "实例公网IP地址列表。", + "example": "" + }, + { + "name": "InnerIpAddress", + "type": "array", + "desc": "经典网络类型实例的内网IP地址列表。", + "example": "" + }, + { + "name": "VpcAttributes", + "type": "object", + "desc": "专有网络VPC属性。", + "example": "" + }, + { + "name": "EipAddress", + "type": "object", + "desc": "弹性公网IP绑定信息。", + "example": "" + }, + { + "name": "HibernationOptions", + "type": "object", + "desc": "> 该参数正在邀测中,暂未开放使用。", + "example": "" + }, + { + "name": "DedicatedHostAttribute", + "type": "object", + "desc": "由专有宿主机集群ID(DedicatedHostClusterId)、专有宿主机ID(DedicatedHostId)和名称(DedicatedHostName)组成的宿主机属性数组。", + "example": "" + }, + { + "name": "EcsCapacityReservationAttr", + "type": "object", + "desc": "云服务器ECS的容量预留相关参数。", + "example": "" + }, + { + "name": "DedicatedInstanceAttribute", + "type": "object", + "desc": "专有宿主机实例的属性。", + "example": "" + }, + { + "name": "CpuOptions", + "type": "object", + "desc": "CPU配置详情。", + "example": "" + }, + { + "name": "MetadataOptions", + "type": "object", + "desc": "元数据选项集合。", + "example": "" + }, + { + "name": "ImageOptions", + "type": "object", + "desc": "镜像相关属性信息。", + "example": "" + }, + { + "name": "SpotInterruptionBehavior", + "type": "string", + "desc": "平台发起抢占式实例中断时,抢占式实例的中断模式。可能值:\n\n- Terminate:释放。\n\n- Stop:节省停机。", + "example": "Terminate" + } ] \ No newline at end of file diff --git a/cmdb-api/api/lib/cmdb/auto_discovery/templates/aws_ec2.json b/cmdb-api/api/lib/cmdb/auto_discovery/templates/aws_ec2.json index 90fbf94..a4ba9a7 100644 --- a/cmdb-api/api/lib/cmdb/auto_discovery/templates/aws_ec2.json +++ b/cmdb-api/api/lib/cmdb/auto_discovery/templates/aws_ec2.json @@ -1,427 +1,344 @@ -[ - { - "name": "amiLaunchIndex", - "type": "整数", - "desc": "The AMI launch index, which can be used to find this instance in the launch group.", - "example": "0" - }, - { - "name": "architecture", - "type": "文本", - "desc": "The architecture of the image.", - "example": "x86_64" - }, - { - "name": "blockDeviceMapping", - "type": "json", - "desc": "Any block device mapping entries for the instance.", - "example": { - "item": { - "deviceName": "/dev/xvda", - "ebs": { - "volumeId": "vol-1234567890abcdef0", - "status": "attached", - "attachTime": "2015-12-22T10:44:09.000Z", - "deleteOnTermination": "true" - } - } - } - }, - { - "name": "bootMode", - "type": "文本", - "desc": "The boot mode that was specified by the AMI. If the value is uefi-preferred, the AMI supports both UEFI and Legacy BIOS. The currentInstanceBootMode parameter is the boot mode that is used to boot the instance at launch or start.", - "example": null - }, - { - "name": "capacityReservationId", - "type": "文本", - "desc": "The ID of the Capacity Reservation.", - "example": null - }, - { - "name": "capacityReservationSpecification", - "type": "json", - "desc": "Information about the Capacity Reservation targeting option.", - "example": null - }, - { - "name": "clientToken", - "type": "文本", - "desc": "The idempotency token you provided when you launched the instance, if applicable.", - "example": "xMcwG14507example" - }, - { - "name": "cpuOptions", - "type": "json", - "desc": "The CPU options for the instance.", - "example": { - "coreCount": "1", - "threadsPerCore": "1" - } - }, - { - "name": "currentInstanceBootMode", - "type": "文本", - "desc": "The boot mode that is used to boot the instance at launch or start. For more information, see Boot modes in the Amazon EC2 User Guide.", - "example": null - }, - { - "name": "dnsName", - "type": "文本", - "desc": "[IPv4 only] The public DNS name assigned to the instance. This name is not available until the instance enters the running state. This name is only available if you've enabled DNS hostnames for your VPC.", - "example": "ec2-54-194-252-215.eu-west-1.compute.amazonaws.com" - }, - { - "name": "ebsOptimized", - "type": "Boolean", - "desc": "Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.", - "example": "false" - }, - { - "name": "elasticGpuAssociationSet", - "type": "json", - "desc": "The Elastic GPU associated with the instance.", - "example": null - }, - { - "name": "elasticInferenceAcceleratorAssociationSet", - "type": "json", - "desc": "The elastic inference accelerator associated with the instance.", - "example": null - }, - { - "name": "enaSupport", - "type": "Boolean", - "desc": "Specifies whether enhanced networking with ENA is enabled.", - "example": null - }, - { - "name": "enclaveOptions", - "type": "json", - "desc": "Indicates whether the instance is enabled for AWS Nitro Enclaves.", - "example": null - }, - { - "name": "groupSet", - "type": "json", - "desc": "The security groups for the instance.", - "example": { - "item": { - "groupId": "sg-e4076980", - "groupName": "SecurityGroup1" - } - } - }, - { - "name": "hibernationOptions", - "type": "json", - "desc": "Indicates whether the instance is enabled for hibernation.", - "example": null - }, - { - "name": "hypervisor", - "type": "文本", - "desc": "The hypervisor type of the instance. The value xen is used for both Xen and Nitro hypervisors.", - "example": "xen" - }, - { - "name": "iamInstanceProfile", - "type": "json", - "desc": "The IAM instance profile associated with the instance, if applicable.", - "example": { - "arn": "arn:aws:iam::123456789012:instance-profile/AdminRole", - "id": "ABCAJEDNCAA64SSD123AB" - } - }, - { - "name": "imageId", - "type": "文本", - "desc": "The ID of the AMI used to launch the instance.", - "example": "ami-bff32ccc" - }, - { - "name": "instanceId", - "type": "文本", - "desc": "The ID of the instance.", - "example": "i-1234567890abcdef0" - }, - { - "name": "instanceLifecycle", - "type": "文本", - "desc": "Indicates whether this is a Spot Instance or a Scheduled Instance.", - "example": null - }, - { - "name": "instanceState", - "type": "json", - "desc": "The current state of the instance.", - "example": { - "code": "16", - "name": "running" - } - }, - { - "name": "instanceType", - "type": "文本", - "desc": "The instance type.", - "example": "t2.micro" - }, - { - "name": "ipAddress", - "type": "文本", - "desc": "The public IPv4 address, or the Carrier IP address assigned to the instance, if applicable.", - "example": "54.194.252.215" - }, - { - "name": "ipv6Address", - "type": "文本", - "desc": "The IPv6 address assigned to the instance.", - "example": null - }, - { - "name": "kernelId", - "type": "文本", - "desc": "The kernel associated with this instance, if applicable.", - "example": null - }, - { - "name": "keyName", - "type": "文本", - "desc": "The name of the key pair, if this instance was launched with an associated key pair.", - "example": "my_keypair" - }, - { - "name": "launchTime", - "type": "Time", - "desc": "The time the instance was launched.", - "example": "2018-05-08T16:46:19.000Z" - }, - { - "name": "licenseSet", - "type": "json", - "desc": "The license configurations for the instance.", - "example": null - }, - { - "name": "maintenanceOptions", - "type": "json", - "desc": "Provides information on the recovery and maintenance options of your instance.", - "example": null - }, - { - "name": "metadataOptions", - "type": "json", - "desc": "The metadata options for the instance.", - "example": null - }, - { - "name": "monitoring", - "type": "json", - "desc": "The monitoring for the instance.", - "example": { - "state": "disabled" - } - }, - { - "name": "networkInterfaceSet", - "type": "json", - "desc": "The network interfaces for the instance.", - "example": { - "item": { - "networkInterfaceId": "eni-551ba033", - "subnetId": "subnet-56f5f633", - "vpcId": "vpc-11112222", - "description": "Primary network interface", - "ownerId": "123456789012", - "status": "in-use", - "macAddress": "02:dd:2c:5e:01:69", - "privateIpAddress": "192.168.1.88", - "privateDnsName": "ip-192-168-1-88.eu-west-1.compute.internal", - "sourceDestCheck": "true", - "groupSet": { - "item": { - "groupId": "sg-e4076980", - "groupName": "SecurityGroup1" - } - }, - "attachment": { - "attachmentId": "eni-attach-39697adc", - "deviceIndex": "0", - "status": "attached", - "attachTime": "2018-05-08T16:46:19.000Z", - "deleteOnTermination": "true" - }, - "association": { - "publicIp": "54.194.252.215", - "publicDnsName": "ec2-54-194-252-215.eu-west-1.compute.amazonaws.com", - "ipOwnerId": "amazon" - }, - "privateIpAddressesSet": { - "item": { - "privateIpAddress": "192.168.1.88", - "privateDnsName": "ip-192-168-1-88.eu-west-1.compute.internal", - "primary": "true", - "association": { - "publicIp": "54.194.252.215", - "publicDnsName": "ec2-54-194-252-215.eu-west-1.compute.amazonaws.com", - "ipOwnerId": "amazon" - } - } - }, - "ipv6AddressesSet": { - "item": { - "ipv6Address": "2001:db8:1234:1a2b::123" - } - } - } - } - }, - { - "name": "outpostArn", - "type": "文本", - "desc": "The Amazon Resource Name (ARN) of the Outpost.", - "example": null - }, - { - "name": "placement", - "type": "json", - "desc": "The location where the instance launched, if applicable.", - "example": { - "availabilityZone": "eu-west-1c", - "groupName": null, - "tenancy": "default" - } - }, - { - "name": "platform", - "type": "文本", - "desc": "The value is Windows for Windows instances; otherwise blank.", - "example": null - }, - { - "name": "platformDetails", - "type": "文本", - "desc": "The platform details value for the instance. For more information, see AMI billing information fields in the Amazon EC2 User Guide.", - "example": null - }, - { - "name": "privateDnsName", - "type": "文本", - "desc": "[IPv4 only] The private DNS hostname name assigned to the instance. This DNS hostname can only be used inside the Amazon EC2 network. This name is not available until the instance enters the running state.", - "example": "ip-192-168-1-88.eu-west-1.compute.internal" - }, - { - "name": "privateDnsNameOptions", - "type": "json", - "desc": "The options for the instance hostname.", - "example": null - }, - { - "name": "privateIpAddress", - "type": "文本", - "desc": "The private IPv4 address assigned to the instance.", - "example": "192.168.1.88" - }, - { - "name": "productCodes", - "type": "json", - "desc": "The product codes attached to this instance, if applicable.", - "example": null - }, - { - "name": "ramdiskId", - "type": "文本", - "desc": "The RAM disk associated with this instance, if applicable.", - "example": null - }, - { - "name": "reason", - "type": "文本", - "desc": "The reason for the most recent state transition. This might be an empty string.", - "example": null - }, - { - "name": "rootDeviceName", - "type": "文本", - "desc": "The device name of the root device volume (for example, /dev/sda1).", - "example": "/dev/xvda" - }, - { - "name": "rootDeviceType", - "type": "文本", - "desc": "The root device type used by the AMI. The AMI can use an EBS volume or an instance store volume.", - "example": "ebs" - }, - { - "name": "sourceDestCheck", - "type": "Boolean", - "desc": "Indicates whether source/destination checking is enabled.", - "example": "true" - }, - { - "name": "spotInstanceRequestId", - "type": "文本", - "desc": "If the request is a Spot Instance request, the ID of the request.", - "example": null - }, - { - "name": "sriovNetSupport", - "type": "文本", - "desc": "Specifies whether enhanced networking with the Intel 82599 Virtual Function interface is enabled.", - "example": null - }, - { - "name": "stateReason", - "type": "json", - "desc": "The reason for the most recent state transition.", - "example": null - }, - { - "name": "subnetId", - "type": "文本", - "desc": "The ID of the subnet in which the instance is running.", - "example": "subnet-56f5f633" - }, - { - "name": "tagSet", - "type": "json", - "desc": "Any tags assigned to the instance.", - "example": { - "item": { - "key": "Name", - "value": "Server_1" - } - } - }, - { - "name": "tpmSupport", - "type": "文本", - "desc": "If the instance is configured for NitroTPM support, the value is v2.0. For more information, see NitroTPM in the Amazon EC2 User Guide.", - "example": null - }, - { - "name": "usageOperation", - "type": "文本", - "desc": "The usage operation value for the instance. For more information, see AMI billing information fields in the Amazon EC2 User Guide.", - "example": null - }, - { - "name": "usageOperationUpdateTime", - "type": "Time", - "desc": "The time that the usage operation was last updated.", - "example": null - }, - { - "name": "virtualizationType", - "type": "文本", - "desc": "The virtualization type of the instance.", - "example": "hvm" - }, - { - "name": "vpcId", - "type": "文本", - "desc": "The ID of the VPC in which the instance is running.", - "example": "vpc-11112222" - } +[ + { + "name": "amiLaunchIndex", + "type": "Integer", + "desc": "The AMI launch index, which can be used to find this instance in the launch group.", + "example": "" + }, + { + "name": "architecture", + "type": "String", + "desc": "The architecture of the image.", + "example": "i386" + }, + { + "name": "blockDeviceMapping", + "type": "Array of InstanceBlockDeviceMapping objects", + "desc": "Any block device mapping entries for the instance.", + "example": "" + }, + { + "name": "bootMode", + "type": "String", + "desc": "The boot mode that was specified by the AMI. If the value is uefi-preferred, the AMI supports both UEFI and Legacy BIOS. The currentInstanceBootMode parameter is the boot mode that is used to boot the instance at launch or start. For more information, see Boot modes in the Amazon EC2 User Guide.", + "example": "legacy-bios" + }, + { + "name": "capacityReservationId", + "type": "String", + "desc": "The ID of the Capacity Reservation.", + "example": "" + }, + { + "name": "capacityReservationSpecification", + "type": "CapacityReservationSpecificationResponse object", + "desc": "Information about the Capacity Reservation targeting option.", + "example": "" + }, + { + "name": "clientToken", + "type": "String", + "desc": "The idempotency token you provided when you launched the instance, if applicable.", + "example": "" + }, + { + "name": "cpuOptions", + "type": "CpuOptions object", + "desc": "The CPU options for the instance.", + "example": "" + }, + { + "name": "currentInstanceBootMode", + "type": "String", + "desc": "The boot mode that is used to boot the instance at launch or start. For more information, see Boot modes in the Amazon EC2 User Guide.", + "example": "legacy-bios" + }, + { + "name": "dnsName", + "type": "String", + "desc": "[IPv4 only] The public DNS name assigned to the instance. This name is not available until the instance enters the running state. This name is only available if you've enabled DNS hostnames for your VPC.", + "example": "" + }, + { + "name": "ebsOptimized", + "type": "Boolean", + "desc": "Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.", + "example": "" + }, + { + "name": "elasticGpuAssociationSet", + "type": "Array of ElasticGpuAssociation objects", + "desc": "The Elastic GPU associated with the instance.", + "example": "" + }, + { + "name": "elasticInferenceAcceleratorAssociationSet", + "type": "Array of ElasticInferenceAcceleratorAssociation objects", + "desc": "The elastic inference accelerator associated with the instance.", + "example": "" + }, + { + "name": "enaSupport", + "type": "Boolean", + "desc": "Specifies whether enhanced networking with ENA is enabled.", + "example": "" + }, + { + "name": "enclaveOptions", + "type": "EnclaveOptions object", + "desc": "Indicates whether the instance is enabled for AWS Nitro Enclaves.", + "example": "" + }, + { + "name": "groupSet", + "type": "Array of GroupIdentifier objects", + "desc": "The security groups for the instance.", + "example": "" + }, + { + "name": "hibernationOptions", + "type": "HibernationOptions object", + "desc": "Indicates whether the instance is enabled for hibernation.", + "example": "" + }, + { + "name": "hypervisor", + "type": "String", + "desc": "The hypervisor type of the instance. The value xen is used for both Xen and Nitro hypervisors.", + "example": "ovm" + }, + { + "name": "iamInstanceProfile", + "type": "IamInstanceProfile object", + "desc": "The IAM instance profile associated with the instance, if applicable.", + "example": "" + }, + { + "name": "imageId", + "type": "String", + "desc": "The ID of the AMI used to launch the instance.", + "example": "" + }, + { + "name": "instanceId", + "type": "String", + "desc": "The ID of the instance.", + "example": "" + }, + { + "name": "instanceLifecycle", + "type": "String", + "desc": "Indicates whether this is a Spot Instance or a Scheduled Instance.", + "example": "spot" + }, + { + "name": "instanceState", + "type": "InstanceState object", + "desc": "The current state of the instance.", + "example": "" + }, + { + "name": "instanceType", + "type": "String", + "desc": "The instance type.", + "example": "a1.medium" + }, + { + "name": "ipAddress", + "type": "String", + "desc": "The public IPv4 address, or the Carrier IP address assigned to the instance, if applicable. A Carrier IP address only applies to an instance launched in a subnet associated with a Wavelength Zone.", + "example": "Required: No" + }, + { + "name": "ipv6Address", + "type": "String", + "desc": "The IPv6 address assigned to the instance.", + "example": "" + }, + { + "name": "kernelId", + "type": "String", + "desc": "The kernel associated with this instance, if applicable.", + "example": "" + }, + { + "name": "keyName", + "type": "String", + "desc": "The name of the key pair, if this instance was launched with an associated key pair.", + "example": "" + }, + { + "name": "launchTime", + "type": "Timestamp", + "desc": "The time the instance was launched.", + "example": "" + }, + { + "name": "licenseSet", + "type": "Array of LicenseConfiguration objects", + "desc": "The license configurations for the instance.", + "example": "" + }, + { + "name": "maintenanceOptions", + "type": "InstanceMaintenanceOptions object", + "desc": "Provides information on the recovery and maintenance options of your instance.", + "example": "" + }, + { + "name": "metadataOptions", + "type": "InstanceMetadataOptionsResponse object", + "desc": "The metadata options for the instance.", + "example": "" + }, + { + "name": "monitoring", + "type": "Monitoring object", + "desc": "The monitoring for the instance.", + "example": "" + }, + { + "name": "networkInterfaceSet", + "type": "Array of InstanceNetworkInterface objects", + "desc": "The network interfaces for the instance.", + "example": "" + }, + { + "name": "outpostArn", + "type": "String", + "desc": "The Amazon Resource Name (ARN) of the Outpost.", + "example": "" + }, + { + "name": "placement", + "type": "Placement object", + "desc": "The location where the instance launched, if applicable.", + "example": "" + }, + { + "name": "platform", + "type": "String", + "desc": "The platform. This value is windows for Windows instances; otherwise, it is empty.", + "example": "windows" + }, + { + "name": "platformDetails", + "type": "String", + "desc": "The platform details value for the instance. For more information, see AMI billing information fields in the Amazon EC2 User Guide.", + "example": "" + }, + { + "name": "privateDnsName", + "type": "String", + "desc": "[IPv4 only] The private DNS hostname name assigned to the instance. This DNS hostname can only be used inside the Amazon EC2 network. This name is not available until the instance enters the running state. The Amazon-provided DNS server resolves Amazon-provided private DNS hostnames if you've enabled DNS resolution and DNS hostnames in your VPC. If you are not using the Amazon-provided DNS server in your VPC, your custom domain name servers must resolve the hostname as appropriate.", + "example": "Required: No" + }, + { + "name": "privateDnsNameOptions", + "type": "PrivateDnsNameOptionsResponse object", + "desc": "The options for the instance hostname.", + "example": "" + }, + { + "name": "privateIpAddress", + "type": "String", + "desc": "The private IPv4 address assigned to the instance.", + "example": "" + }, + { + "name": "productCodes", + "type": "Array of ProductCode objects", + "desc": "The product codes attached to this instance, if applicable.", + "example": "" + }, + { + "name": "ramdiskId", + "type": "String", + "desc": "The RAM disk associated with this instance, if applicable.", + "example": "" + }, + { + "name": "reason", + "type": "String", + "desc": "The reason for the most recent state transition. This might be an empty string.", + "example": "" + }, + { + "name": "rootDeviceName", + "type": "String", + "desc": "The device name of the root device volume (for example, /dev/sda1).", + "example": "" + }, + { + "name": "rootDeviceType", + "type": "String", + "desc": "The root device type used by the AMI. The AMI can use an EBS volume or an instance store volume.", + "example": "ebs" + }, + { + "name": "sourceDestCheck", + "type": "Boolean", + "desc": "Indicates whether source/destination checking is enabled.", + "example": "" + }, + { + "name": "spotInstanceRequestId", + "type": "String", + "desc": "If the request is a Spot Instance request, the ID of the request.", + "example": "" + }, + { + "name": "sriovNetSupport", + "type": "String", + "desc": "Specifies whether enhanced networking with the Intel 82599 Virtual Function interface is enabled.", + "example": "" + }, + { + "name": "stateReason", + "type": "StateReason object", + "desc": "The reason for the most recent state transition.", + "example": "" + }, + { + "name": "subnetId", + "type": "String", + "desc": "The ID of the subnet in which the instance is running.", + "example": "" + }, + { + "name": "tagSet", + "type": "Array of Tag objects", + "desc": "Any tags assigned to the instance.", + "example": "" + }, + { + "name": "tpmSupport", + "type": "String", + "desc": "If the instance is configured for NitroTPM support, the value is v2.0. For more information, see NitroTPM in the Amazon EC2 User Guide.", + "example": "" + }, + { + "name": "usageOperation", + "type": "String", + "desc": "The usage operation value for the instance. For more information, see AMI billing information fields in the Amazon EC2 User Guide.", + "example": "" + }, + { + "name": "usageOperationUpdateTime", + "type": "Timestamp", + "desc": "The time that the usage operation was last updated.", + "example": "" + }, + { + "name": "virtualizationType", + "type": "String", + "desc": "The virtualization type of the instance.", + "example": "hvm" + }, + { + "name": "vpcId", + "type": "String", + "desc": "The ID of the VPC in which the instance is running.", + "example": "" + } ] \ No newline at end of file diff --git a/cmdb-api/api/lib/cmdb/auto_discovery/templates/huaweicloud_ecs.json b/cmdb-api/api/lib/cmdb/auto_discovery/templates/huaweicloud_ecs.json index af68387..854ed13 100644 --- a/cmdb-api/api/lib/cmdb/auto_discovery/templates/huaweicloud_ecs.json +++ b/cmdb-api/api/lib/cmdb/auto_discovery/templates/huaweicloud_ecs.json @@ -1,292 +1,284 @@ -[ - { - "name": "status", - "type": "文本", - "example": "ACTIVE", - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u72b6\u6001\u3002\n\n\u53d6\u503c\u8303\u56f4:\n\nACTIVE\u3001BUILD\u3001DELETED\u3001ERROR\u3001HARD_REBOOT\u3001MIGRATING\u3001PAUSED\u3001REBOOT\u3001REBUILD\u3001RESIZE\u3001REVERT_RESIZE\u3001SHUTOFF\u3001SHELVED\u3001SHELVED_OFFLOADED\u3001SOFT_DELETED\u3001SUSPENDED\u3001VERIFY_RESIZE\n\n\u5f39\u6027\u4e91\u670d\u52a1\u5668\u72b6\u6001\u8bf4\u660e\u8bf7\u53c2\u8003[\u4e91\u670d\u52a1\u5668\u72b6\u6001](https://support.huaweicloud.com/api-ecs/ecs_08_0002.html)" - }, - { - "name": "updated", - "type": "文本", - "example": "2019-05-22T03:30:52Z", - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u66f4\u65b0\u65f6\u95f4\u3002\n\n\u65f6\u95f4\u683c\u5f0f\u4f8b\u5982:2019-05-22T03:30:52Z" - }, - { - "name": "auto_terminate_time", - "type": "文本", - "example": "2020-01-19T03:30:52Z", - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u81ea\u52a8\u91ca\u653e\u65f6\u95f4\u3002\n\n\u65f6\u95f4\u683c\u5f0f\u4f8b\u5982:2020-01-19T03:30:52Z" - }, - { - "name": "hostId", - "type": "文本", - "example": "c7145889b2e3202cd295ceddb1742ff8941b827b586861fd0acedf64", - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u6240\u5728\u4e3b\u673a\u7684\u4e3b\u673aID\u3002" - }, - { - "name": "OS-EXT-SRV-ATTR:host", - "type": "文本", - "example": "pod01.cn-north-1c", - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u6240\u5728\u4e3b\u673a\u7684\u4e3b\u673a\u540d\u79f0\u3002" - }, - { - "name": "addresses", - "type": "json", - "example": null, - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u7684\u7f51\u7edc\u5c5e\u6027\u3002" - }, - { - "name": "key_name", - "type": "文本", - "example": "KeyPair-test", - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u4f7f\u7528\u7684\u5bc6\u94a5\u5bf9\u540d\u79f0\u3002" - }, - { - "name": "image", - "type": "json", - "example": null, - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u955c\u50cf\u4fe1\u606f\u3002" - }, - { - "name": "OS-EXT-STS:task_state", - "type": "文本", - "example": "rebooting", - "desc": "\u6269\u5c55\u5c5e\u6027,\u5f39\u6027\u4e91\u670d\u52a1\u5668\u5f53\u524d\u4efb\u52a1\u7684\u72b6\u6001\u3002\n\n\u53d6\u503c\u8303\u56f4\u8bf7\u53c2\u8003[\u4e91\u670d\u52a1\u5668\u72b6\u6001](https://support.huaweicloud.com/api-ecs/ecs_08_0002.html)\u88683\u3002" - }, - { - "name": "OS-EXT-STS:vm_state", - "type": "文本", - "example": "active", - "desc": "\u6269\u5c55\u5c5e\u6027,\u5f39\u6027\u4e91\u670d\u52a1\u5668\u5f53\u524d\u72b6\u6001\u3002\n\n\u4e91\u670d\u52a1\u5668\u72b6\u6001\u8bf4\u660e\u8bf7\u53c2\u8003[\u4e91\u670d\u52a1\u5668\u72b6\u6001](https://support.huaweicloud.com/api-ecs/ecs_08_0002.html)\u3002" - }, - { - "name": "OS-EXT-SRV-ATTR:instance_name", - "type": "文本", - "example": "instance-0048a91b", - "desc": "\u6269\u5c55\u5c5e\u6027,\u5f39\u6027\u4e91\u670d\u52a1\u5668\u522b\u540d\u3002" - }, - { - "name": "OS-EXT-SRV-ATTR:hypervisor_hostname", - "type": "文本", - "example": "nova022@36", - "desc": "\u6269\u5c55\u5c5e\u6027,\u5f39\u6027\u4e91\u670d\u52a1\u5668\u6240\u5728\u865a\u62df\u5316\u4e3b\u673a\u540d\u3002" - }, - { - "name": "flavor", - "type": "json", - "example": null, - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u89c4\u683c\u4fe1\u606f\u3002" - }, - { - "name": "id", - "type": "文本", - "example": "4f4b3dfa-eb70-47cf-a60a-998a53bd6666", - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668ID,\u683c\u5f0f\u4e3aUUID\u3002" - }, - { - "name": "security_groups", - "type": "json", - "example": { - "$ref": "#/definitions/ServerSecurityGroup" - }, - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u6240\u5c5e\u5b89\u5168\u7ec4\u5217\u8868\u3002" - }, - { - "name": "OS-EXT-AZ:availability_zone", - "type": "文本", - "example": "cn-north-1c", - "desc": "\u6269\u5c55\u5c5e\u6027,\u5f39\u6027\u4e91\u670d\u52a1\u5668\u6240\u5728\u53ef\u7528\u533a\u540d\u79f0\u3002" - }, - { - "name": "user_id", - "type": "文本", - "example": "05498fe56b8010d41f7fc01e280b6666", - "desc": "\u521b\u5efa\u5f39\u6027\u4e91\u670d\u52a1\u5668\u7684\u7528\u6237ID,\u683c\u5f0f\u4e3aUUID\u3002" - }, - { - "name": "name", - "type": "文本", - "example": "ecs-test-server", - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u540d\u79f0\u3002" - }, - { - "name": "created", - "type": "文本", - "example": "2017-07-15T11:30:52Z", - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u521b\u5efa\u65f6\u95f4\u3002\n\n\u65f6\u95f4\u683c\u5f0f\u4f8b\u5982:2019-05-22T03:19:19Z" - }, - { - "name": "tenant_id", - "type": "文本", - "example": "743b4c0428d94531b9f2add666646666", - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u6240\u5c5e\u79df\u6237ID,\u5373\u9879\u76eeid,\u548cproject_id\u8868\u793a\u76f8\u540c\u7684\u6982\u5ff5,\u683c\u5f0f\u4e3aUUID\u3002" - }, - { - "name": "OS-DCF:diskConfig", - "type": "文本", - "example": "AUTO", - "desc": "\u6269\u5c55\u5c5e\u6027, diskConfig\u7684\u7c7b\u578b\u3002\n\n- MANUAL,\u955c\u50cf\u7a7a\u95f4\u4e0d\u4f1a\u6269\u5c55\u3002\n- AUTO,\u7cfb\u7edf\u76d8\u955c\u50cf\u7a7a\u95f4\u4f1a\u81ea\u52a8\u6269\u5c55\u4e3a\u4e0eflavor\u5927\u5c0f\u4e00\u81f4\u3002" - }, - { - "name": "accessIPv4", - "type": "文本", - "example": null, - "desc": "\u9884\u7559\u5c5e\u6027\u3002" - }, - { - "name": "accessIPv6", - "type": "文本", - "example": null, - "desc": "\u9884\u7559\u5c5e\u6027\u3002" - }, - { - "name": "fault", - "type": "文本", - "example": null, - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u6545\u969c\u4fe1\u606f\u3002\n\n\u53ef\u9009\u53c2\u6570,\u5728\u5f39\u6027\u4e91\u670d\u52a1\u5668\u72b6\u6001\u4e3aERROR\u4e14\u5b58\u5728\u5f02\u5e38\u7684\u60c5\u51b5\u4e0b\u8fd4\u56de\u3002" - }, - { - "name": "progress", - "type": "整数", - "example": null, - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u8fdb\u5ea6\u3002" - }, - { - "name": "OS-EXT-STS:power_state", - "type": "整数", - "example": 4, - "desc": "\u6269\u5c55\u5c5e\u6027,\u5f39\u6027\u4e91\u670d\u52a1\u5668\u7535\u6e90\u72b6\u6001\u3002" - }, - { - "name": "config_drive", - "type": "文本", - "example": null, - "desc": "config drive\u4fe1\u606f\u3002" - }, - { - "name": "metadata", - "type": "json", - "example": null, - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u5143\u6570\u636e\u3002\n\n> \u8bf4\u660e:\n> \n> \u5143\u6570\u636e\u5305\u542b\u7cfb\u7edf\u9ed8\u8ba4\u6dfb\u52a0\u5b57\u6bb5\u548c\u7528\u6237\u8bbe\u7f6e\u7684\u5b57\u6bb5\u3002\n\n\u7cfb\u7edf\u9ed8\u8ba4\u6dfb\u52a0\u5b57\u6bb5\n\n1. charging_mode\n\u4e91\u670d\u52a1\u5668\u7684\u8ba1\u8d39\u7c7b\u578b\u3002\n\n- \u201c0\u201d:\u6309\u9700\u8ba1\u8d39(\u5373postPaid-\u540e\u4ed8\u8d39\u65b9\u5f0f)\u3002\n- \u201c1\u201d:\u6309\u5305\u5e74\u5305\u6708\u8ba1\u8d39(\u5373prePaid-\u9884\u4ed8\u8d39\u65b9\u5f0f)\u3002\"2\":\u7ade\u4ef7\u5b9e\u4f8b\u8ba1\u8d39\n\n2. metering.order_id\n\u6309\u201c\u5305\u5e74/\u5305\u6708\u201d\u8ba1\u8d39\u7684\u4e91\u670d\u52a1\u5668\u5bf9\u5e94\u7684\u8ba2\u5355ID\u3002\n\n3. metering.product_id\n\u6309\u201c\u5305\u5e74/\u5305\u6708\u201d\u8ba1\u8d39\u7684\u4e91\u670d\u52a1\u5668\u5bf9\u5e94\u7684\u4ea7\u54c1ID\u3002\n\n4. vpc_id\n\u4e91\u670d\u52a1\u5668\u6240\u5c5e\u7684\u865a\u62df\u79c1\u6709\u4e91ID\u3002\n\n5. EcmResStatus\n\u4e91\u670d\u52a1\u5668\u7684\u51bb\u7ed3\u72b6\u6001\u3002\n\n- normal:\u4e91\u670d\u52a1\u5668\u6b63\u5e38\u72b6\u6001(\u672a\u88ab\u51bb\u7ed3)\u3002\n- freeze:\u4e91\u670d\u52a1\u5668\u88ab\u51bb\u7ed3\u3002\n\n> \u5f53\u4e91\u670d\u52a1\u5668\u88ab\u51bb\u7ed3\u6216\u8005\u89e3\u51bb\u540e,\u7cfb\u7edf\u9ed8\u8ba4\u6dfb\u52a0\u8be5\u5b57\u6bb5,\u4e14\u8be5\u5b57\u6bb5\u5fc5\u9009\u3002\n\n6. metering.image_id\n\u4e91\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf\u5bf9\u5e94\u7684\u955c\u50cfID\n\n7. metering.imagetype\n\u955c\u50cf\u7c7b\u578b,\u76ee\u524d\u652f\u6301:\n\n- \u516c\u5171\u955c\u50cf(gold)\n- \u79c1\u6709\u955c\u50cf(private)\n- \u5171\u4eab\u955c\u50cf(shared)\n\n8. metering.resourcespeccode\n\u4e91\u670d\u52a1\u5668\u5bf9\u5e94\u7684\u8d44\u6e90\u89c4\u683c\u3002\n\n9. image_name\n\u4e91\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf\u5bf9\u5e94\u7684\u955c\u50cf\u540d\u79f0\u3002\n\n10. os_bit\n\u64cd\u4f5c\u7cfb\u7edf\u4f4d\u6570,\u4e00\u822c\u53d6\u503c\u4e3a\u201c32\u201d\u6216\u8005\u201c64\u201d\u3002\n\n11. lockCheckEndpoint\n\u56de\u8c03URL,\u7528\u4e8e\u68c0\u67e5\u5f39\u6027\u4e91\u670d\u52a1\u5668\u7684\u52a0\u9501\u662f\u5426\u6709\u6548\u3002\n\n- \u5982\u679c\u6709\u6548,\u5219\u4e91\u670d\u52a1\u5668\u4fdd\u6301\u9501\u5b9a\u72b6\u6001\u3002\n- \u5982\u679c\u65e0\u6548,\u89e3\u9664\u9501\u5b9a\u72b6\u6001,\u5220\u9664\u5931\u6548\u7684\u9501\u3002\n\n12. lockSource\n\u5f39\u6027\u4e91\u670d\u52a1\u5668\u6765\u81ea\u54ea\u4e2a\u670d\u52a1\u3002\u8ba2\u5355\u52a0\u9501(ORDER)\n\n13. lockSourceId\n\u5f39\u6027\u4e91\u670d\u52a1\u5668\u7684\u52a0\u9501\u6765\u81ea\u54ea\u4e2aID\u3002lockSource\u4e3a\u201cORDER\u201d\u65f6,lockSourceId\u4e3a\u8ba2\u5355ID\u3002\n\n14. lockScene\n\u5f39\u6027\u4e91\u670d\u52a1\u5668\u7684\u52a0\u9501\u7c7b\u578b\u3002\n\n- \u6309\u9700\u8f6c\u5305\u5468\u671f(TO_PERIOD_LOCK)\n\n15. virtual_env_type\n\n- IOS\u955c\u50cf\u521b\u5efa\u865a\u62df\u673a,\"virtual_env_type\": \"IsoImage\" \u5c5e\u6027;\n- \u975eIOS\u955c\u50cf\u521b\u5efa\u865a\u62df\u673a,\u572819.5.0\u7248\u672c\u4ee5\u540e\u521b\u5efa\u7684\u865a\u62df\u673a\u5c06\u4e0d\u4f1a\u6dfb\u52a0virtual_env_type \u5c5e\u6027,\u800c\u5728\u6b64\u4e4b\u524d\u7684\u7248\u672c\u521b\u5efa\u7684\u865a\u62df\u673a\u53ef\u80fd\u4f1a\u8fd4\u56de\"virtual_env_type\": \"FusionCompute\"\u5c5e\u6027 \u3002\n\n> virtual_env_type\u5c5e\u6027\u4e0d\u5141\u8bb8\u7528\u6237\u589e\u52a0\u3001\u5220\u9664\u548c\u4fee\u6539\u3002\n\n16. metering.resourcetype\n\u4e91\u670d\u52a1\u5668\u5bf9\u5e94\u7684\u8d44\u6e90\u7c7b\u578b\u3002\n\n17. os_type\n\u64cd\u4f5c\u7cfb\u7edf\u7c7b\u578b,\u53d6\u503c\u4e3a:Linux\u3001Windows\u3002\n\n18. cascaded.instance_extrainfo\n\u7cfb\u7edf\u5185\u90e8\u865a\u62df\u673a\u6269\u5c55\u4fe1\u606f\u3002\n\n19. __support_agent_list\n\u4e91\u670d\u52a1\u5668\u662f\u5426\u652f\u6301\u4f01\u4e1a\u4e3b\u673a\u5b89\u5168\u3001\u4e3b\u673a\u76d1\u63a7\u3002\n\n- \u201chss\u201d:\u4f01\u4e1a\u4e3b\u673a\u5b89\u5168\n- \u201cces\u201d:\u4e3b\u673a\u76d1\u63a7\n\n20. agency_name\n\u59d4\u6258\u7684\u540d\u79f0\u3002\n\n\u59d4\u6258\u662f\u7531\u79df\u6237\u7ba1\u7406\u5458\u5728\u7edf\u4e00\u8eab\u4efd\u8ba4\u8bc1\u670d\u52a1(Identity and Access Management,IAM)\u4e0a\u521b\u5efa\u7684,\u53ef\u4ee5\u4e3a\u5f39\u6027\u4e91\u670d\u52a1\u5668\u63d0\u4f9b\u8bbf\u95ee\u4e91\u670d\u52a1\u7684\u4e34\u65f6\u51ed\u8bc1\u3002" - }, - { - "name": "OS-SRV-USG:launched_at", - "type": "文本", - "example": "2018-08-15T14:21:22.000000", - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u542f\u52a8\u65f6\u95f4\u3002\u65f6\u95f4\u683c\u5f0f\u4f8b\u5982:2019-05-22T03:23:59.000000" - }, - { - "name": "OS-SRV-USG:terminated_at", - "type": "文本", - "example": "2019-05-22T03:23:59.000000", - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u5220\u9664\u65f6\u95f4\u3002\n\n\u65f6\u95f4\u683c\u5f0f\u4f8b\u5982:2019-05-22T03:23:59.000000" - }, - { - "name": "os-extended-volumes:volumes_attached", - "type": "json", - "example": { - "$ref": "#/definitions/ServerExtendVolumeAttachment" - }, - "desc": "\u6302\u8f7d\u5230\u5f39\u6027\u4e91\u670d\u52a1\u5668\u4e0a\u7684\u78c1\u76d8\u3002" - }, - { - "name": "description", - "type": "文本", - "example": "ecs description", - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u7684\u63cf\u8ff0\u4fe1\u606f\u3002" - }, - { - "name": "host_status", - "type": "文本", - "example": "UP", - "desc": "nova-compute\u72b6\u6001\u3002\n\n- UP:\u670d\u52a1\u6b63\u5e38\n- UNKNOWN:\u72b6\u6001\u672a\u77e5\n- DOWN:\u670d\u52a1\u5f02\u5e38\n- MAINTENANCE:\u7ef4\u62a4\u72b6\u6001\n- \u7a7a\u5b57\u7b26\u4e32:\u5f39\u6027\u4e91\u670d\u52a1\u5668\u65e0\u4e3b\u673a\u4fe1\u606f" - }, - { - "name": "OS-EXT-SRV-ATTR:hostname", - "type": "文本", - "example": null, - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u7684\u4e3b\u673a\u540d\u3002" - }, - { - "name": "OS-EXT-SRV-ATTR:reservation_id", - "type": "文本", - "example": "r-f06p3js8", - "desc": "\u6279\u91cf\u521b\u5efa\u573a\u666f,\u5f39\u6027\u4e91\u670d\u52a1\u5668\u7684\u9884\u7559ID\u3002" - }, - { - "name": "OS-EXT-SRV-ATTR:launch_index", - "type": "整数", - "example": null, - "desc": "\u6279\u91cf\u521b\u5efa\u573a\u666f,\u5f39\u6027\u4e91\u670d\u52a1\u5668\u7684\u542f\u52a8\u987a\u5e8f\u3002" - }, - { - "name": "OS-EXT-SRV-ATTR:kernel_id", - "type": "文本", - "example": null, - "desc": "\u82e5\u4f7f\u7528AMI\u683c\u5f0f\u7684\u955c\u50cf,\u5219\u8868\u793akernel image\u7684UUID;\u5426\u5219,\u7559\u7a7a\u3002" - }, - { - "name": "OS-EXT-SRV-ATTR:ramdisk_id", - "type": "文本", - "example": null, - "desc": "\u82e5\u4f7f\u7528AMI\u683c\u5f0f\u955c\u50cf,\u5219\u8868\u793aramdisk image\u7684UUID;\u5426\u5219,\u7559\u7a7a\u3002" - }, - { - "name": "OS-EXT-SRV-ATTR:root_device_name", - "type": "文本", - "example": "/dev/vda", - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u7cfb\u7edf\u76d8\u7684\u8bbe\u5907\u540d\u79f0\u3002" - }, - { - "name": "OS-EXT-SRV-ATTR:user_data", - "type": "文本", - "example": "IyEvYmluL2Jhc2gKZWNobyAncm9vdDokNiRjcGRkSjckWm5WZHNiR253Z0l0SGlxUjZxbWtLTlJaeU9lZUtKd3dPbG9XSFdUeGFzWjA1STYwdnJYRTdTUTZGbEpFbWlXZ21WNGNmZ1pac1laN1BkMTBLRndyeC8nIHwgY2hwYXNzd2Q6666", - "desc": "\u521b\u5efa\u5f39\u6027\u4e91\u670d\u52a1\u5668\u65f6\u6307\u5b9a\u7684user_data\u3002" - }, - { - "name": "locked", - "type": "boolean", - "example": null, - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u662f\u5426\u4e3a\u9501\u5b9a\u72b6\u6001\u3002\n\n- true:\u9501\u5b9a\n- false:\u672a\u9501\u5b9a" - }, - { - "name": "tags", - "type": "文本、多值", - "example": { - "type": "文本" - }, - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u6807\u7b7e\u3002" - }, - { - "name": "os:scheduler_hints", - "type": "json", - "example": null, - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u8c03\u5ea6\u4fe1\u606f" - }, - { - "name": "enterprise_project_id", - "type": "文本", - "example": "0", - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u6240\u5c5e\u7684\u4f01\u4e1a\u9879\u76eeID\u3002" - }, - { - "name": "sys_tags", - "type": "文本、多值", - "example": { - "$ref": "#/definitions/ServerSystemTag" - }, - "desc": "\u5f39\u6027\u4e91\u670d\u52a1\u5668\u7cfb\u7edf\u6807\u7b7e\u3002" - }, - { - "name": "cpu_options", - "type": "json", - "example": null, - "desc": "\u81ea\u5b9a\u4e49CPU\u9009\u9879\u3002" - }, - { - "name": "hypervisor", - "type": "文本", - "example": null, - "desc": "hypervisor\u4fe1\u606f\u3002" - } +[ + { + "name": "status", + "type": "string", + "desc": "弹性云服务器状态。\n\n取值范围:\n\nACTIVE、BUILD、DELETED、ERROR、HARD_REBOOT、MIGRATING、PAUSED、REBOOT、REBUILD、RESIZE、REVERT_RESIZE、SHUTOFF、SHELVED、SHELVED_OFFLOADED、SOFT_DELETED、SUSPENDED、VERIFY_RESIZE\n\n弹性云服务器状态说明请参考[云服务器状态](https://support.huaweicloud.com/api-ecs/ecs_08_0002.html)", + "example": "ACTIVE" + }, + { + "name": "updated", + "type": "string", + "desc": "弹性云服务器更新时间。\n\n时间格式例如:2019-05-22T03:30:52Z", + "example": "2019-05-22T03:30:52Z" + }, + { + "name": "auto_terminate_time", + "type": "string", + "desc": "弹性云服务器定时删除时间。\n\n时间格式例如:2020-01-19T03:30:52Z", + "example": "2020-01-19T03:30:52Z" + }, + { + "name": "hostId", + "type": "string", + "desc": "弹性云服务器所在主机的主机ID。", + "example": "c7145889b2e3202cd295ceddb1742ff8941b827b586861fd0acedf64" + }, + { + "name": "OS-EXT-SRV-ATTR:host", + "type": "string", + "desc": "弹性云服务器所在主机的主机名称。", + "example": "pod01.cn-north-1c" + }, + { + "name": "addresses", + "type": "object", + "desc": "弹性云服务器的网络属性。", + "example": "" + }, + { + "name": "key_name", + "type": "string", + "desc": "弹性云服务器使用的密钥对名称。", + "example": "KeyPair-test" + }, + { + "name": "image", + "type": "", + "desc": "弹性云服务器镜像信息。", + "example": "" + }, + { + "name": "OS-EXT-STS:task_state", + "type": "string", + "desc": "扩展属性,弹性云服务器当前任务的状态。\n\n取值范围请参考[云服务器状态](https://support.huaweicloud.com/api-ecs/ecs_08_0002.html)表3。", + "example": "rebooting" + }, + { + "name": "OS-EXT-STS:vm_state", + "type": "string", + "desc": "扩展属性,弹性云服务器当前状态。\n\n云服务器状态说明请参考[云服务器状态](https://support.huaweicloud.com/api-ecs/ecs_08_0002.html)。", + "example": "active" + }, + { + "name": "OS-EXT-SRV-ATTR:instance_name", + "type": "string", + "desc": "扩展属性,弹性云服务器别名。", + "example": "instance-0048a91b" + }, + { + "name": "OS-EXT-SRV-ATTR:hypervisor_hostname", + "type": "string", + "desc": "扩展属性,弹性云服务器所在虚拟化主机名。", + "example": "nova022@36" + }, + { + "name": "flavor", + "type": "", + "desc": "弹性云服务器规格信息。", + "example": "" + }, + { + "name": "id", + "type": "string", + "desc": "弹性云服务器ID,格式为UUID。", + "example": "4f4b3dfa-eb70-47cf-a60a-998a53bd6666" + }, + { + "name": "security_groups", + "type": "array", + "desc": "弹性云服务器所属安全组列表。", + "example": "" + }, + { + "name": "OS-EXT-AZ:availability_zone", + "type": "string", + "desc": "扩展属性,弹性云服务器所在可用区名称。", + "example": "cn-north-1c" + }, + { + "name": "user_id", + "type": "string", + "desc": "创建弹性云服务器的用户ID,格式为UUID。", + "example": "05498fe56b8010d41f7fc01e280b6666" + }, + { + "name": "name", + "type": "string", + "desc": "弹性云服务器名称。", + "example": "ecs-test-server" + }, + { + "name": "created", + "type": "string", + "desc": "弹性云服务器创建时间。\n\n时间格式例如:2019-05-22T03:19:19Z", + "example": "2017-07-15T11:30:52Z" + }, + { + "name": "tenant_id", + "type": "string", + "desc": "弹性云服务器所属租户ID,即项目id,和project_id表示相同的概念,格式为UUID。", + "example": "743b4c0428d94531b9f2add666646666" + }, + { + "name": "OS-DCF:diskConfig", + "type": "string", + "desc": "扩展属性, diskConfig的类型。\n\n- MANUAL,镜像空间不会扩展。\n- AUTO,系统盘镜像空间会自动扩展为与flavor大小一致。", + "example": "AUTO" + }, + { + "name": "accessIPv4", + "type": "string", + "desc": "预留属性。", + "example": "" + }, + { + "name": "accessIPv6", + "type": "string", + "desc": "预留属性。", + "example": "" + }, + { + "name": "fault", + "type": "", + "desc": "弹性云服务器故障信息。\n\n可选参数,在弹性云服务器状态为ERROR且存在异常的情况下返回。", + "example": "" + }, + { + "name": "progress", + "type": "integer", + "desc": "弹性云服务器进度。", + "example": 0 + }, + { + "name": "OS-EXT-STS:power_state", + "type": "integer", + "desc": "扩展属性,弹性云服务器电源状态。", + "example": 4 + }, + { + "name": "config_drive", + "type": "string", + "desc": "config drive信息。", + "example": "" + }, + { + "name": "metadata", + "type": "object", + "desc": "弹性云服务器元数据。\n\n> 说明:\n> \n> 元数据包含系统默认添加字段和用户设置的字段。\n\n系统默认添加字段\n\n1. charging_mode\n云服务器的计费类型。\n\n- “0”:按需计费(即postPaid-后付费方式)。\n- “1”:按包年包月计费(即prePaid-预付费方式)。\"2\":竞价实例计费\n\n2. metering.order_id\n按“包年/包月”计费的云服务器对应的订单ID。\n\n3. metering.product_id\n按“包年/包月”计费的云服务器对应的产品ID。\n\n4. vpc_id\n云服务器所属的虚拟私有云ID。\n\n5. EcmResStatus\n云服务器的冻结状态。\n\n- normal:云服务器正常状态(未被冻结)。\n- freeze:云服务器被冻结。\n\n> 当云服务器被冻结或者解冻后,系统默认添加该字段,且该字段必选。\n\n6. metering.image_id\n云服务器操作系统对应的镜像ID\n\n7. metering.imagetype\n镜像类型,目前支持:\n\n- 公共镜像(gold)\n- 私有镜像(private)\n- 共享镜像(shared)\n\n8. metering.resourcespeccode\n云服务器对应的资源规格。\n\n9. image_name\n云服务器操作系统对应的镜像名称。\n\n10. os_bit\n操作系统位数,一般取值为“32”或者“64”。\n\n11. lockCheckEndpoint\n回调URL,用于检查弹性云服务器的加锁是否有效。\n\n- 如果有效,则云服务器保持锁定状态。\n- 如果无效,解除锁定状态,删除失效的锁。\n\n12. lockSource\n弹性云服务器来自哪个服务。订单加锁(ORDER)\n\n13. lockSourceId\n弹性云服务器的加锁来自哪个ID。lockSource为“ORDER”时,lockSourceId为订单ID。\n\n14. lockScene\n弹性云服务器的加锁类型。\n\n- 按需转包周期(TO_PERIOD_LOCK)\n\n15. virtual_env_type\n\n- IOS镜像创建虚拟机,\"virtual_env_type\": \"IsoImage\" 属性;\n- 非IOS镜像创建虚拟机,在19.5.0版本以后创建的虚拟机将不会添加virtual_env_type 属性,而在此之前的版本创建的虚拟机可能会返回\"virtual_env_type\": \"FusionCompute\"属性 。\n\n> virtual_env_type属性不允许用户增加、删除和修改。\n\n16. metering.resourcetype\n云服务器对应的资源类型。\n\n17. os_type\n操作系统类型,取值为:Linux、Windows。\n\n18. cascaded.instance_extrainfo\n系统内部虚拟机扩展信息。\n\n19. __support_agent_list\n云服务器是否支持企业主机安全、主机监控。\n\n- “hss”:企业主机安全\n- “ces”:主机监控\n\n20. agency_name\n委托的名称。\n\n委托是由租户管理员在统一身份认证服务(Identity and Access Management,IAM)上创建的,可以为弹性云服务器提供访问云服务的临时凭证。", + "example": "" + }, + { + "name": "OS-SRV-USG:launched_at", + "type": "string", + "desc": "弹性云服务器启动时间。时间格式例如:2019-05-22T03:23:59.000000", + "example": "2018-08-15T14:21:22.000000" + }, + { + "name": "OS-SRV-USG:terminated_at", + "type": "string", + "desc": "弹性云服务器删除时间。\n\n时间格式例如:2019-05-22T03:23:59.000000", + "example": "2019-05-22T03:23:59.000000" + }, + { + "name": "os-extended-volumes:volumes_attached", + "type": "array", + "desc": "挂载到弹性云服务器上的磁盘。", + "example": "" + }, + { + "name": "description", + "type": "string", + "desc": "弹性云服务器的描述信息。", + "example": "ecs description" + }, + { + "name": "host_status", + "type": "string", + "desc": "nova-compute状态。\n\n- UP:服务正常\n- UNKNOWN:状态未知\n- DOWN:服务异常\n- MAINTENANCE:维护状态\n- 空字符串:弹性云服务器无主机信息", + "example": "UP" + }, + { + "name": "OS-EXT-SRV-ATTR:hostname", + "type": "string", + "desc": "弹性云服务器的主机名。", + "example": "" + }, + { + "name": "OS-EXT-SRV-ATTR:reservation_id", + "type": "string", + "desc": "批量创建场景,弹性云服务器的预留ID。", + "example": "r-f06p3js8" + }, + { + "name": "OS-EXT-SRV-ATTR:launch_index", + "type": "integer", + "desc": "批量创建场景,弹性云服务器的启动顺序。", + "example": 0 + }, + { + "name": "OS-EXT-SRV-ATTR:kernel_id", + "type": "string", + "desc": "若使用AMI格式的镜像,则表示kernel image的UUID;否则,留空。", + "example": "" + }, + { + "name": "OS-EXT-SRV-ATTR:ramdisk_id", + "type": "string", + "desc": "若使用AMI格式镜像,则表示ramdisk image的UUID;否则,留空。", + "example": "" + }, + { + "name": "OS-EXT-SRV-ATTR:root_device_name", + "type": "string", + "desc": "弹性云服务器系统盘的设备名称。", + "example": "/dev/vda" + }, + { + "name": "OS-EXT-SRV-ATTR:user_data", + "type": "string", + "desc": "创建弹性云服务器时指定的user_data。", + "example": "IyEvYmluL2Jhc2gKZWNobyAncm9vdDokNiRjcGRkSjckWm5WZHNiR253Z0l0SGlxUjZxbWtLTlJaeU9lZUtKd3dPbG9XSFdUeGFzWjA1STYwdnJYRTdTUTZGbEpFbWlXZ21WNGNmZ1pac1laN1BkMTBLRndyeC8nIHwgY2hwYXNzd2Q6666" + }, + { + "name": "locked", + "type": "boolean", + "desc": "弹性云服务器是否为锁定状态。\n\n- true:锁定\n- false:未锁定", + "example": false + }, + { + "name": "tags", + "type": "array", + "desc": "弹性云服务器标签。", + "example": "" + }, + { + "name": "os:scheduler_hints", + "type": "", + "desc": "弹性云服务器调度信息", + "example": "" + }, + { + "name": "enterprise_project_id", + "type": "string", + "desc": "弹性云服务器所属的企业项目ID。", + "example": "0" + }, + { + "name": "sys_tags", + "type": "array", + "desc": "弹性云服务器系统标签。", + "example": "" + }, + { + "name": "cpu_options", + "type": "", + "desc": "自定义CPU选项。", + "example": "" + }, + { + "name": "hypervisor", + "type": "", + "desc": "hypervisor信息。", + "example": "" + } ] \ No newline at end of file diff --git a/cmdb-api/api/lib/cmdb/auto_discovery/templates/tencent_cvm.json b/cmdb-api/api/lib/cmdb/auto_discovery/templates/tencent_cvm.json index 9d5f461..1f7c3f9 100644 --- a/cmdb-api/api/lib/cmdb/auto_discovery/templates/tencent_cvm.json +++ b/cmdb-api/api/lib/cmdb/auto_discovery/templates/tencent_cvm.json @@ -1,297 +1,248 @@ -[ - { - "name": "Placement", - "type": "json", - "desc": "实例所在的位置。", - "example": { - "HostId": "host-h3m57oik", - "ProjectId": 1174660, - "HostIds": [], - "Zone": "ap-guangzhou-1", - "HostIps": [] - } - }, - { - "name": "InstanceId", - "type": "文本", - "desc": "实例ID。", - "example": "ins-xlsyru2j" - }, - { - "name": "InstanceType", - "type": "文本", - "desc": "实例机型。", - "example": "S2.SMALL2" - }, - { - "name": "CPU", - "type": "整数", - "desc": "实例的CPU核数,单位:核。", - "example": 1 - }, - { - "name": "Memory", - "type": "整数", - "desc": "实例内存容量,单位:GB。", - "example": 1 - }, - { - "name": "RestrictState", - "type": "文本", - "desc": "实例业务状态。取值范围: NORMAL:表示正常状态的实例 EXPIRED:表示过期的实例 PROTECTIVELY_ISOLATED:表示被安全隔离的实例。", - "example": "PROTECTIVELY_ISOLATED" - }, - { - "name": "InstanceName", - "type": "文本", - "desc": "实例名称。", - "example": "test" - }, - { - "name": "InstanceChargeType", - "type": "文本", - "desc": "实例计费模式。取值范围: PREPAID:表示预付费,即包年包月 POSTPAID_BY_HOUR:表示后付费,即按量计费 CDHPAID:专用宿主机付费,即只对专用宿主机计费,不对专用宿主机上的实例计费。 SPOTPAID:表示竞价实例付费。", - "example": "POSTPAID_BY_HOUR" - }, - { - "name": "SystemDisk", - "type": "json", - "desc": "实例系统盘信息。", - "example": { - "DiskSize": 50, - "CdcId": null, - "DiskId": "disk-czsodtl1", - "DiskType": "CLOUD_SSD" - } - }, - { - "name": "DataDisks", - "type": "json", - "desc": "实例数据盘信息。", - "example": [ - { - "DeleteWithInstance": true, - "Encrypt": true, - "CdcId": null, - "DiskType": "CLOUD_SSD", - "ThroughputPerformance": 0, - "KmsKeyId": null, - "DiskSize": 50, - "SnapshotId": null, - "DiskId": "disk-bzsodtn1" - } - ] - }, - { - "name": "PrivateIpAddresses", - "type": "文本、多值", - "desc": "实例主网卡的内网IP列表。", - "example": [ - "172.16.32.78" - ] - }, - { - "name": "PublicIpAddresses", - "type": "文本、多值", - "desc": "实例主网卡的公网IP列表。 注意:此字段可能返回 null,表示取不到有效值。", - "example": [ - "123.207.11.190" - ] - }, - { - "name": "InternetAccessible", - "type": "json", - "desc": "实例带宽信息。", - "example": { - "PublicIpAssigned": true, - "InternetChargeType": "TRAFFIC_POSTPAID_BY_HOUR", - "BandwidthPackageId": null, - "InternetMaxBandwidthOut": 1 - } - }, - { - "name": "VirtualPrivateCloud", - "type": "json", - "desc": "实例所属虚拟私有网络信息。", - "example": { - "SubnetId": "subnet-mv4sn55k", - "AsVpcGateway": false, - "Ipv6AddressCount": 1, - "VpcId": "vpc-m0cnatxj", - "PrivateIpAddresses": [ - "172.16.3.59" - ] - } - }, - { - "name": "ImageId", - "type": "文本", - "desc": "生产实例所使用的镜像ID。", - "example": "img-8toqc6s3" - }, - { - "name": "RenewFlag", - "type": "文本", - "desc": "自动续费标识。取值范围: NOTIFY_AND_MANUAL_RENEW:表示通知即将过期,但不自动续费 NOTIFY_AND_AUTO_RENEW:表示通知即将过期,而且自动续费 DISABLE_NOTIFY_AND_MANUAL_RENEW:表示不通知即将过期,也不自动续费。 注意:后付费模式本项为null", - "example": "NOTIFY_AND_MANUAL_RENEW" - }, - { - "name": "CreatedTime", - "type": "json", - "desc": "创建时间。按照ISO8601标准表示,并且使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ。", - "example": "2020-09-22T00:00:00+00:00" - }, - { - "name": "ExpiredTime", - "type": "json", - "desc": "到期时间。按照ISO8601标准表示,并且使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ。注意:后付费模式本项为null", - "example": "2020-09-22T00:00:00+00:00" - }, - { - "name": "OsName", - "type": "文本", - "desc": "操作系统名称。", - "example": "CentOS 7.4 64bit" - }, - { - "name": "SecurityGroupIds", - "type": "文本、多值", - "desc": "实例所属安全组。该参数可以通过调用 DescribeSecurityGroups 的返回值中的sgId字段来获取。", - "example": [ - "sg-p1ezv4wz" - ] - }, - { - "name": "LoginSettings", - "type": "json", - "desc": "实例登录设置。目前只返回实例所关联的密钥。", - "example": { - "Password": "123qwe!@#QWE", - "KeepImageLogin": "False", - "KeyIds": [ - "skey-b4vakk62" - ] - } - }, - { - "name": "InstanceState", - "type": "文本", - "desc": "实例状态。取值范围: PENDING:表示创建中 LAUNCH_FAILED:表示创建失败 RUNNING:表示运行中 STOPPED:表示关机 STARTING:表示开机中 STOPPING:表示关机中 REBOOTING:表示重启中 SHUTDOWN:表示停止待销毁 TERMINATING:表示销毁中。", - "example": "RUNNING" - }, - { - "name": "Tags", - "type": "json", - "desc": "实例关联的标签列表。", - "example": [ - { - "Value": "test", - "Key": "test" - } - ] - }, - { - "name": "StopChargingMode", - "type": "文本", - "desc": "实例的关机计费模式。 取值范围: KEEP_CHARGING:关机继续收费 STOP_CHARGING:关机停止收费NOT_APPLICABLE:实例处于非关机状态或者不适用关机停止计费的条件", - "example": "NOT_APPLICABLE" - }, - { - "name": "Uuid", - "type": "文本", - "desc": "实例全局唯一ID", - "example": "e85f1388-0422-410d-8e50-bef540e78c18" - }, - { - "name": "LatestOperation", - "type": "文本", - "desc": "实例的最新操作。例:StopInstances、ResetInstance。 注意:此字段可能返回 null,表示取不到有效值。", - "example": "ResetInstancesType" - }, - { - "name": "LatestOperationState", - "type": "文本", - "desc": "实例的最新操作状态。取值范围: SUCCESS:表示操作成功 OPERATING:表示操作执行中 FAILED:表示操作失败 注意:此字段可能返回 null,表示取不到有效值。", - "example": "SUCCESS" - }, - { - "name": "LatestOperationRequestId", - "type": "文本", - "desc": "实例最新操作的唯一请求 ID。 注意:此字段可能返回 null,表示取不到有效值。", - "example": "c7de1287-061d-4ace-8caf-6ad8e5a2f29a" - }, - { - "name": "DisasterRecoverGroupId", - "type": "文本", - "desc": "分散置放群组ID。 注意:此字段可能返回 null,表示取不到有效值。", - "example": "" - }, - { - "name": "IPv6Addresses", - "type": "文本、多值", - "desc": "实例的IPv6地址。 注意:此字段可能返回 null,表示取不到有效值。", - "example": [ - "2001:0db8:86a3:08d3:1319:8a2e:0370:7344" - ] - }, - { - "name": "CamRoleName", - "type": "文本", - "desc": "CAM角色名。 注意:此字段可能返回 null,表示取不到有效值。", - "example": "" - }, - { - "name": "HpcClusterId", - "type": "文本", - "desc": "高性能计算集群ID。 注意:此字段可能返回 null,表示取不到有效值。", - "example": "" - }, - { - "name": "RdmaIpAddresses", - "type": "文本、多值", - "desc": "高性能计算集群IP列表。 注意:此字段可能返回 null,表示取不到有效值。", - "example": [] - }, - { - "name": "IsolatedSource", - "type": "文本", - "desc": "实例隔离类型。取值范围: ARREAR:表示欠费隔离 EXPIRE:表示到期隔离 MANMADE:表示主动退还隔离 NOTISOLATED:表示未隔离 注意:此字段可能返回 null,表示取不到有效值。", - "example": "NOTISOLATED" - }, - { - "name": "GPUInfo", - "type": "json", - "desc": "GPU信息。如果是gpu类型子机,该值会返回GPU信息,如果是其他类型子机则不返回。 注意:此字段可能返回 null,表示取不到有效值。", - "example": null - }, - { - "name": "LicenseType", - "type": "文本", - "desc": "实例的操作系统许可类型,默认为TencentCloud", - "example": null - }, - { - "name": "DisableApiTermination", - "type": "Boolean", - "desc": "实例销毁保护标志,表示是否允许通过api接口删除实例。取值范围: TRUE:表示开启实例保护,不允许通过api接口删除实例 FALSE:表示关闭实例保护,允许通过api接口删除实例 默认取值:FALSE。", - "example": null - }, - { - "name": "DefaultLoginUser", - "type": "文本", - "desc": "默认登录用户。", - "example": null - }, - { - "name": "DefaultLoginPort", - "type": "整数", - "desc": "默认登录端口。", - "example": null - }, - { - "name": "LatestOperationErrorMsg", - "type": "文本", - "desc": "实例的最新操作错误信息。 注意:此字段可能返回 null,表示取不到有效值。", - "example": null - } +[ + { + "name": "Placement", + "type": "Placement", + "desc": "实例所在的位置。", + "example": "" + }, + { + "name": "InstanceId", + "type": "String", + "desc": "实例ID。", + "example": "ins-9bxebleo" + }, + { + "name": "InstanceType", + "type": "String", + "desc": "实例机型。", + "example": "S1.SMALL1" + }, + { + "name": "CPU", + "type": "Integer", + "desc": "实例的CPU核数,单位:核。", + "example": "1" + }, + { + "name": "Memory", + "type": "Integer", + "desc": "实例内存容量,单位:GB。", + "example": "1" + }, + { + "name": "RestrictState", + "type": "String", + "desc": "NORMAL:表示正常状态的实例\nEXPIRED:表示过期的实例\nPROTECTIVELY_ISOLATED:表示被安全隔离的实例。", + "example": "NORMAL" + }, + { + "name": "InstanceName", + "type": "String", + "desc": "实例名称。", + "example": "测试实例" + }, + { + "name": "InstanceChargeType", + "type": "String", + "desc": "PREPAID:表示预付费,即包年包月\nPOSTPAID_BY_HOUR:表示后付费,即按量计费\nCDHPAID:专用宿主机付费,即只对专用宿主机计费,不对专用宿主机上的实例计费。\nSPOTPAID:表示竞价实例付费。", + "example": "PREPAID" + }, + { + "name": "SystemDisk", + "type": "SystemDisk", + "desc": "实例系统盘信息。", + "example": "" + }, + { + "name": "DataDisks", + "type": "Array of DataDisk", + "desc": "实例数据盘信息。", + "example": "" + }, + { + "name": "PrivateIpAddresses", + "type": "Array of String", + "desc": "实例主网卡的内网IP列表。", + "example": "[\"172.16.32.78\"]" + }, + { + "name": "PublicIpAddresses", + "type": "Array of String", + "desc": "实例主网卡的公网IP列表。注意:此字段可能返回 null,表示取不到有效值。", + "example": "[\"123.207.11.190\"]" + }, + { + "name": "InternetAccessible", + "type": "InternetAccessible", + "desc": "实例带宽信息。", + "example": "" + }, + { + "name": "VirtualPrivateCloud", + "type": "VirtualPrivateCloud", + "desc": "实例所属虚拟私有网络信息。", + "example": "" + }, + { + "name": "ImageId", + "type": "String", + "desc": "生产实例所使用的镜像ID。", + "example": "img-9qabwvbn" + }, + { + "name": "RenewFlag", + "type": "String", + "desc": "NOTIFY_AND_MANUAL_RENEW:表示通知即将过期,但不自动续费\nNOTIFY_AND_AUTO_RENEW:表示通知即将过期,而且自动续费\nDISABLE_NOTIFY_AND_MANUAL_RENEW:表示不通知即将过期,也不自动续费。\n注意:后付费模式本项为null", + "example": "NOTIFY_AND_MANUAL_RENEW" + }, + { + "name": "CreatedTime", + "type": "Timestamp ISO8601", + "desc": "创建时间。按照ISO8601标准表示,并且使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ。", + "example": "2020-03-10T02:43:51Z" + }, + { + "name": "ExpiredTime", + "type": "Timestamp ISO8601", + "desc": "到期时间。按照ISO8601标准表示,并且使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ。注意:后付费模式本项为null", + "example": "2020-04-10T02:47:36Z" + }, + { + "name": "OsName", + "type": "String", + "desc": "操作系统名称。", + "example": "CentOS 7.6 64bit" + }, + { + "name": "SecurityGroupIds", + "type": "Array of String", + "desc": "实例所属安全组。该参数可以通过调用 DescribeSecurityGroups 的返回值中的sgId字段来获取。", + "example": "[\"sg-p1ezv4wz\"]" + }, + { + "name": "LoginSettings", + "type": "LoginSettings", + "desc": "实例登录设置。目前只返回实例所关联的密钥。", + "example": "" + }, + { + "name": "InstanceState", + "type": "String", + "desc": "PENDING:表示创建中\nLAUNCH_FAILED:表示创建失败\nRUNNING:表示运行中\nSTOPPED:表示关机\nSTARTING:表示开机中\nSTOPPING:表示关机中\nREBOOTING:表示重启中\nSHUTDOWN:表示停止待销毁\nTERMINATING:表示销毁中。", + "example": "" + }, + { + "name": "Tags", + "type": "Array of Tag", + "desc": "实例关联的标签列表。", + "example": "" + }, + { + "name": "StopChargingMode", + "type": "String", + "desc": "KEEP_CHARGING:关机继续收费\nSTOP_CHARGING:关机停止收费\nNOT_APPLICABLE:实例处于非关机状态或者不适用关机停止计费的条件", + "example": "NOT_APPLICABLE" + }, + { + "name": "Uuid", + "type": "String", + "desc": "实例全局唯一ID", + "example": "68b510db-b4c1-4630-a62b-73d0c7c970f9" + }, + { + "name": "LatestOperation", + "type": "String", + "desc": "实例的最新操作。例:StopInstances、ResetInstance。注意:此字段可能返回 null,表示取不到有效值。", + "example": "RenewInstances" + }, + { + "name": "LatestOperationState", + "type": "String", + "desc": "SUCCESS:表示操作成功\nOPERATING:表示操作执行中\nFAILED:表示操作失败注意:此字段可能返回 null,表示取不到有效值。", + "example": "SUCCESS" + }, + { + "name": "LatestOperationRequestId", + "type": "String", + "desc": "实例最新操作的唯一请求 ID。注意:此字段可能返回 null,表示取不到有效值。", + "example": "3554eb5b-1cfa-471a-ae76-dc436c9d43e8" + }, + { + "name": "DisasterRecoverGroupId", + "type": "String", + "desc": "分散置放群组ID。注意:此字段可能返回 null,表示取不到有效值。", + "example": "null" + }, + { + "name": "IPv6Addresses", + "type": "Array of String", + "desc": "实例的IPv6地址。注意:此字段可能返回 null,表示取不到有效值。", + "example": "null" + }, + { + "name": "CamRoleName", + "type": "String", + "desc": "CAM角色名。注意:此字段可能返回 null,表示取不到有效值。", + "example": "null" + }, + { + "name": "HpcClusterId", + "type": "String", + "desc": "高性能计算集群ID。注意:此字段可能返回 null,表示取不到有效值。", + "example": "null" + }, + { + "name": "RdmaIpAddresses", + "type": "Array of String", + "desc": "高性能计算集群IP列表。注意:此字段可能返回 null,表示取不到有效值。", + "example": "null" + }, + { + "name": "DedicatedClusterId", + "type": "String", + "desc": "实例所在的专用集群ID。注意:此字段可能返回 null,表示取不到有效值。", + "example": "cluster-du3jken" + }, + { + "name": "IsolatedSource", + "type": "String", + "desc": "ARREAR:表示欠费隔离\nEXPIRE:表示到期隔离\nMANMADE:表示主动退还隔离\nNOTISOLATED:表示未隔离", + "example": "" + }, + { + "name": "GPUInfo", + "type": "GPUInfo", + "desc": "GPU信息。如果是gpu类型子机,该值会返回GPU信息,如果是其他类型子机则不返回。注意:此字段可能返回 null,表示取不到有效值。", + "example": "" + }, + { + "name": "LicenseType", + "type": "String", + "desc": "实例的操作系统许可类型,默认为TencentCloud", + "example": "TencentCloud" + }, + { + "name": "DisableApiTermination", + "type": "Boolean", + "desc": "TRUE:表示开启实例保护,不允许通过api接口删除实例\nFALSE:表示关闭实例保护,允许通过api接口删除实例默认取值:FALSE。", + "example": "false" + }, + { + "name": "DefaultLoginUser", + "type": "String", + "desc": "默认登录用户。", + "example": "root" + }, + { + "name": "DefaultLoginPort", + "type": "Integer", + "desc": "默认登录端口。", + "example": "22" + }, + { + "name": "LatestOperationErrorMsg", + "type": "String", + "desc": "实例的最新操作错误信息。注意:此字段可能返回 null,表示取不到有效值。", + "example": "None" + } ] \ No newline at end of file diff --git a/cmdb-api/api/lib/cmdb/value.py b/cmdb-api/api/lib/cmdb/value.py index 7a2e6f4..34cebc4 100644 --- a/cmdb-api/api/lib/cmdb/value.py +++ b/cmdb-api/api/lib/cmdb/value.py @@ -94,8 +94,13 @@ class AttributeValueManager(object): @staticmethod def _check_is_choice(attr, value_type, value): choice_values = AttributeManager.get_choice_values(attr.id, value_type, attr.choice_web_hook, attr.choice_other) - if str(value) not in list(map(str, [i[0] for i in choice_values])): - return abort(400, ErrFormat.not_in_choice_values.format(value)) + if value_type == ValueTypeEnum.FLOAT: + if float(value) not in list(map(float, [i[0] for i in choice_values])): + return abort(400, ErrFormat.not_in_choice_values.format(value)) + + else: + if str(value) not in list(map(str, [i[0] for i in choice_values])): + return abort(400, ErrFormat.not_in_choice_values.format(value)) @staticmethod def _check_is_unique(value_table, attr, ci_id, type_id, value):