本文为您介绍阿里云的资源模型。
资源模型(Resource Schema)是一种描述资源的模式,包括资源的属性、类型、关系和行为等信息。它定义了如何组织和表示资源的数据,使得不同的应用程序和系统可以共享和解释这些资源。
云控制API都是基于资源模型的操作,因此理解阿里云的资源模型十分重要。用户可通过ListResourceTypes - 列举资源类型和GetResourceType - 查询资源类型的详情来获取对应资源的元数据。
阿里云资源模型共分为三部分:资源基本信息、资源属性、拓展信息。
资源基本信息:主要包括资源名称、描述、部署级别、付费类型等字段
资源属性:描述了具体的资源属性,包括系统属性(地域、可用区、付费类型、创建时间、资源组、Tag等)和自定义的资源属性,用户可根据属性描述来组织Cloud Control API入参。
拓展信息:主要包括鉴权信息(资源操作授权策略)和资源容量等信息(流控&配额)。
资源模型的详细结构和示例如下。
资源模型结构
字段名 | 字段类型 | 描述 |
product | string | 产品Code。 |
resourceType | string | 资源类型。 |
info | 资源类型基本信息 | |
properties | Map<String,Property> | 资源属性定义,key是属性名,value为属性详细信息。 |
primaryIdentifier | string | 资源ID。 |
required | array | 资源创建必填参数集合。 |
string | 资源创建必填参数。 | |
publicProperties | array | 公共的属性集合,为资源基本属性。非操作私有参数。 |
string | 公共属性。 | |
readOnlyProperties | array | 只读参数集合,只在list或者get操作中返回,创建及变更时不作为入参。 |
string | 只读参数。 | |
filterProperties | array | list操作时可以作为filter参数的属性集合。 |
string | filter参数。 | |
updateTypeProperties | array | 可以修改的属性集合。 |
string | 可改属性。 | |
sensitiveInfoProperties | array | 敏感属性集合,例如密码等。 |
string | 敏感属性。 | |
createOnlyProperties | array | 创建操作私有参数集合。资源查询操作中不会返回的属性,但是创建操作中需要传入的参数。 |
string | 创建操作私有参数。 | |
updateOnlyProperties | array | 更新操作私有参数集合。资源查询操作中不会返回的属性,但是更新操作中需要传入的参数。 |
string | 更新操作私有参数。 | |
getOnlyProperties | array | 查询操作私有参数集合。资源查询操作中不会返回的属性,但是查询操作中需要传入的参数。 |
string | 查询操作私有参数。 | |
listOnlyProperties | array | 列举操作私有参数集合。资源查询操作中不会返回的属性,但是列举操作中需要传入的参数。 |
string | 列举操作私有参数。 | |
deleteOnlyProperties | array | 删除操作私有参数集合。资源查询操作中不会返回的属性,但是删除操作中需要传入的参数。 |
string | 删除操作私有参数。 | |
getResponseProperties | array | 查询返回的属性集合。 |
string | 查询返回的属性。 | |
listResponseProperties | array | 列举返回的属性集合。 |
string | 列举返回的属性。 | |
handlers | 支持的资源操作信息(包括RAM权限)。 |
Info
字段名 | 字段类型 | 描述 |
title | String | 资源类型名称 |
description | String | 资源类型描述 |
chargeType | String | 付费形式 枚举:
|
deliveryScope | String | 交付级别,枚举:
|
Property
字段名 | 字段类型 | 描述 |
title | String | 标题 |
description | String | 描述 |
$ref | String | 引用 引用的格式为 #/products/{product}/resourceTypes/{resourceType}/properties/{PropertyName} |
refType | String | 引用类型,枚举:dependency(依赖关系)/childParent(子父关系) |
type | String | 类型 string integer number object array boolean map |
format | String | 格式,用于辅助描述type type=string时 format可选,可选值为byte/binary 不选format,则表示常规的字符串 byte用于表示该字符串为经过base64编码的字节流 binary用于表示该字符串为字节流 type=integer时 format必选,可选值为 int32/int64 int32用于表示整型数字 int64用于表示长整型数字 type=number时 format必选,可选值为 float/double float用于表示单精度浮点数 double用于表示双精度浮点数 |
properties | Map<String, Property> | 对于对象类型,属性描述 |
items | 对于数组类型,子元素描述 | |
additionalProperties | 用于描述map的value是什么类型。(在json中,map的key一定为string,所以无需描述) | |
required | Boolean | 资源创建时是否必填 |
numRange | List<NumRange> | 数字类型的取值范围 |
default | String | 默认值 |
enum | List<String> | 枚举值 |
pattern | String | 对于字符类型,正则校验规则 |
readOnly | Boolean | 是否只读 |
updateType | Boolean | 是否只写 |
sensitive | Boolean | 是否敏感 |
extMonitorInfo | Boolean | 是否监控信息 |
operatePrivateType | array | 操作私有参数对应的操作列表。 |
string | 操作类型,枚举值为:
|
NumRange
字段名 | 字段类型 | 描述 |
maximum | String | 对于数字类型,最大值 |
exclusiveMaximum | Boolean | 排除最大值边界 |
minimum | String | 对于数字类型,最小值 |
exclusiveMinimum | Boolean | 排除最小值边界 |
Handler
字段名 | 字段类型 | 描述 |
create | 创建操作关联信息 | |
read | 读取操作关联信息 | |
update | 更新操作关联信息 | |
delete | 删除操作关联信息 | |
list | 列举操作关联信息 |
OperationInfo
字段名 | 字段类型 | 描述 |
permissions | array | 所需RAM授权信息列表 |
String | RAM授权信息 |
JSON Schema
{
"product": "string",
"resourceType": "string",
"info": {
"title": "string",
"description": "string",
"deliveryScope": "string",
"chargeType": "string"
},
"properties": {
"PropertyName": {
"title": "string",
"description": "string",
"type": "string"
},
"CreateTime": {
"title": "string",
"description": "string",
"type": "string"
},
"Password": {
"title": "string",
"description": "string",
"type": "string"
}
},
"required": [
"PropertyName"
],
"publicProperties": [
"PropertyName"
],
"readOnlyProperties": [
"CreateTime"
],
"updateTypeProperties": [
"PropertyName"
],
"filterProperties": [
"PropertyName"
],
"sensitiveInfoProperties": [
"Password"
],
"createOnlyProperties": [],
"updateOnlyProperties": [],
"getOnlyProperties": [],
"listOnlyProperties": [],
"deleteOnlyProperties": [],
"handlers": {
"create": {
"permissions": []
},
"update": {
"permissions": []
},
"get": {
"permissions": []
},
"list": {
"permissions": []
},
"delete": {
"permissions": []
}
}
}
JSON示例
{
"product": "VPC",
"resourceType": "VPC",
"info": {
"title": "专有网络",
"description": "一个VPC实例代表您创建了一个专有网络。您可以完全掌控自己的专有网络,例如选择IP地址范围、配置路由表和网关等,您可以在自己定义的专有网络中使用阿里云资源如云服务器、云数据库RDS版和负载均衡等。\t",
"deliveryScope": "region",
"chargeType": "free"
},
"primaryIdentifier": "/properties/VpcId",
"properties": {
"Status": {
"title": "VPC的状态。",
"description": "{\n \"zh_CH\" : \"VPC的状态。\",\n \"en_US\" : \"The status of the VPC. Valid values: Pending: The VPC is being configured. Available: The VPC is available.\"\n}",
"type": "string",
"deprecated": false,
"isRequired": false,
"pattern": "",
"readOnly": true,
"sensitive": false,
"extMonitorInfo": false,
"updateType": false,
"default": "",
"enum": [
"Available",
"Pending"
]
},
"IsDefault": {
"title": "是否是默认VPC。",
"description": "{\n \"zh_CH\" : \"是否是默认VPC。\",\n \"en_US\" : \"ndicates whether to query the default VPC in the specified region. Valid values: true (default): All VPCs in the specified region are queried. false: The default VPC is not queried.\"\n}",
"type": "boolean",
"deprecated": false,
"isRequired": false,
"readOnly": false,
"sensitive": false,
"extMonitorInfo": false,
"updateType": false,
"default": ""
},
"Ipv6Isp": {
"title": "VPC的IPv6地址段类型。取值:\n\n- **BGP**(默认值):阿里云BGP IPv6。\n- **ChinaMobile**:中国移动(单线)。\n- **ChinaUnicom**:中国联通(单线)。\n- **ChinaTelecom**:中国电信(单线)。\n\n> 如果是开通了单线带宽白名单的用户,该字段可以设置为**ChinaTelecom**(中国电信)、**ChinaUnicom**(中国联通)或**ChinaMobile**(中国移动)。",
"description": "{\n \"zh_CH\" : \"VPC的IPv6地址段类型。取值:\\n\\n- **BGP**(默认值):阿里云BGP IPv6。\\n- **ChinaMobile**:中国移动(单线)。\\n- **ChinaUnicom**:中国联通(单线)。\\n- **ChinaTelecom**:中国电信(单线)。\\n\\n> 如果是开通了单线带宽白名单的用户,该字段可以设置为**ChinaTelecom**(中国电信)、**ChinaUnicom**(中国联通)或**ChinaMobile**(中国移动)。\",\n \"en_US\" : \"The IPv6 address segment type of the VPC. Value:\\n\\n-**BGP** (default): Alibaba Cloud BGP IPv6.\\n-**ChinaMobile**: China Mobile (single line).\\n-**ChinaUnicom**: China Unicom (single line).\\n-**ChinaTelecom**: China Telecom (single line).\\n\\n> If a single-line bandwidth whitelist is enabled, this field can be set to **ChinaTelecom** (China Telecom), **ChinaUnicom** (China Unicom), or **ChinaMobile** (China Mobile).\"\n}",
"type": "string",
"deprecated": false,
"isRequired": false,
"pattern": "",
"readOnly": false,
"sensitive": false,
"extMonitorInfo": false,
"operatePrivateType": [
"create"
],
"updateType": false,
"default": ""
},
"Description": {
"title": "VPC的描述。",
"description": "{\n \"zh_CH\" : \"VPC的描述。\",\n \"en_US\" : \"The description of the VPC.\"\n}",
"type": "string",
"isRequired": false,
"readOnly": false,
"sensitive": false,
"extMonitorInfo": false,
"updateType": true
},
"ResourceGroupId": {
"title": "资源组ID。",
"description": "{\n \"zh_CH\" : \"资源组ID。\",\n \"en_US\" : \"The ID of the resource group to which the VPC belongs.\"\n}",
"type": "string",
"isRequired": false,
"readOnly": false,
"sensitive": false,
"extMonitorInfo": false,
"updateType": true
},
"ClassicLinkEnabled": {
"title": "ClassicLink功能开启状态",
"description": "{\n \"zh_CH\" : \"ClassicLink功能开启状态\",\n \"en_US\" : \"status of vpc ClassicLink..\"\n}",
"type": "boolean",
"deprecated": false,
"isRequired": false,
"readOnly": false,
"sensitive": false,
"extMonitorInfo": false,
"updateType": true,
"default": ""
},
"SecondaryCidrBlocks": {
"title": "附加网段信息。",
"description": "{\n \"zh_CH\" : \"附加网段信息。\",\n \"en_US\" : \"Additional network segment information.\"\n}",
"type": "array",
"items": {
"title": "VPC的附加网段。",
"description": "{\n \"zh_CH\" : \"VPC的附加网段。\",\n \"en_US\" : \"The additional network segment of the VPC.\"\n}",
"type": "string",
"updateType": true
},
"isRequired": false,
"readOnly": false,
"sensitive": false,
"extMonitorInfo": false,
"updateType": true
},
"VSwitchIds": {
"title": "VPC下的交换机列表。",
"description": "{\n \"zh_CH\" : \"VPC下的交换机列表。\",\n \"en_US\" : \"A list of VSwitches in the VPC.\"\n}",
"type": "array",
"items": {
"title": "VPC下的交换机列表。",
"description": "{\n \"zh_CH\" : \"VPC下的交换机列表。\",\n \"en_US\" : \"element\"\n}",
"type": "string",
"deprecated": false,
"pattern": "",
"readOnly": true,
"sensitive": false,
"extMonitorInfo": false,
"updateType": false,
"default": ""
},
"deprecated": false,
"isRequired": false,
"readOnly": true,
"sensitive": false,
"extMonitorInfo": false,
"updateType": false
},
"CreateTime": {
"title": "VPC的创建时间。",
"description": "{\n \"zh_CH\" : \"VPC的创建时间。\",\n \"en_US\" : \"The time at which the VPC was created.\"\n}",
"type": "string",
"deprecated": false,
"isRequired": false,
"pattern": "",
"readOnly": true,
"sensitive": false,
"extMonitorInfo": false,
"updateType": false,
"default": ""
},
"DryRun": {
"title": "是否只预检此次请求。取值:\n- **true**:发送检查请求,不会创建VPC。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。\n- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接创建VPC。",
"description": "{\n \"zh_CH\" : \"是否只预检此次请求。取值:\\n- **true**:发送检查请求,不会创建VPC。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码`DryRunOperation`。\\n- **false**(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接创建VPC。\",\n \"en_US\" : \"Whether to PreCheck this request only. Value:\\n-**true**: sends a check request and does not create a VPC. Check items include whether required parameters, request format, and business restrictions have been filled in. If the check fails, the corresponding error is returned. If the check passes, the error code 'DryRunOperation' is returned '.\\n-**false** (default): Sends a normal request, returns the HTTP 2xx status code after the check, and directly creates a VPC.\"\n}",
"type": "boolean",
"deprecated": false,
"isRequired": false,
"readOnly": false,
"sensitive": false,
"extMonitorInfo": false,
"operatePrivateType": [
"create",
"list",
"get"
],
"updateType": false,
"default": ""
},
"RouterId": {
"title": "VPC的路由器ID。",
"description": "{\n \"zh_CH\" : \"VPC的路由器ID。\",\n \"en_US\" : \"The ID of the VRouter.\"\n}",
"type": "string",
"deprecated": false,
"isRequired": false,
"pattern": "",
"readOnly": true,
"sensitive": false,
"extMonitorInfo": false,
"updateType": false,
"default": ""
},
"CidrBlock": {
"title": "VPC的私网网段。",
"description": "{\n \"zh_CH\" : \"VPC的私网网段。\",\n \"en_US\" : \"The IPv4 CIDR block of the VPC.\"\n}",
"type": "string",
"isRequired": false,
"readOnly": false,
"sensitive": false,
"extMonitorInfo": false,
"updateType": true
},
"UserCidrs": {
"title": "用户侧网络的网段,如需定义多个网段请使用半角逗号隔开,最多支持3个网段。",
"description": "{\n \"zh_CH\" : \"用户侧网络的网段,如需定义多个网段请使用半角逗号隔开,最多支持3个网段。\",\n \"en_US\" : \"A list of user CIDRs.\"\n}",
"type": "array",
"items": {
"title": "用户侧网络的网段,如需定义多个网段请使用半角逗号隔开,最多支持3个网段。",
"description": "{\n \"zh_CH\" : \"用户侧网络的网段,如需定义多个网段请使用半角逗号隔开,最多支持3个网段。\",\n \"en_US\" : \"element\"\n}",
"type": "string",
"deprecated": false,
"isRequired": false,
"pattern": "",
"sensitive": false,
"extMonitorInfo": false,
"updateType": false,
"default": ""
},
"isRequired": false,
"readOnly": false,
"sensitive": false,
"extMonitorInfo": false,
"updateType": false
},
"EnableIpv6": {
"title": "是否开启IPv6网段。取值:\n\n- **false**(默认值):不开启。\n- **true**:开启。",
"description": "{\n \"zh_CH\" : \"是否开启IPv6网段。取值:\\n\\n- **false**(默认值):不开启。\\n- **true**:开启。\",\n \"en_US\" : \"Whether to enable the IPv6 network segment. Value:\\n\\n-**false** (default): not enabled.\\n-**true**: on.\"\n}",
"type": "boolean",
"deprecated": false,
"isRequired": false,
"readOnly": false,
"sensitive": false,
"extMonitorInfo": false,
"operatePrivateType": [
"create"
],
"updateType": false,
"default": ""
},
"DhcpOptionsSetId": {
"title": "DHCP选项集的ID。",
"description": "{\n \"zh_CH\" : \"DHCP选项集的ID。\",\n \"en_US\" : \"The ID of the DHCP option set.\"\n}",
"type": "string",
"isRequired": false,
"readOnly": false,
"sensitive": false,
"extMonitorInfo": false,
"updateType": false
},
"VpcId": {
"title": "VPC的ID。",
"description": "{\n \"zh_CH\" : \"VPC的ID。\",\n \"en_US\" : \"The ID of the VPC.\"\n}",
"type": "string",
"isRequired": false,
"readOnly": false,
"sensitive": false,
"extMonitorInfo": false,
"updateType": false
},
"VpcName": {
"title": "VPC的名称。",
"description": "{\n \"zh_CH\" : \"VPC的名称。\",\n \"en_US\" : \"The name of the VPC.\"\n}",
"type": "string",
"isRequired": false,
"readOnly": false,
"sensitive": false,
"extMonitorInfo": false,
"updateType": true
},
"RegionId": {
"title": "VPC所在的地域。",
"description": "{\n \"zh_CH\" : \"VPC所在的地域。\",\n \"en_US\" : \"The ID of the region to which the VPC belongs.\"\n}",
"type": "string",
"isRequired": true,
"readOnly": false,
"sensitive": false,
"extMonitorInfo": false,
"updateType": false
},
"Ipv6CidrBlocks": {
"title": "VPC的IPv6网段信息。",
"description": "{\n \"zh_CH\" : \"VPC的IPv6网段信息。\",\n \"en_US\" : \"The IPv6 network segment of the VPC.\"\n}",
"type": "array",
"items": {
"title": "VPC的IPv6网段信息。",
"description": "{\n \"zh_CH\" : \"VPC的IPv6网段信息。\",\n \"en_US\" : \"The IPv6 network segment of the VPC.\"\n}",
"type": "object",
"properties": {
"Ipv6Isp": {
"title": "VPC的IPv6地址段类型,取值:\n\n- **BGP**:阿里云BGP IPv6。\n- **ChinaMobile**:中国移动(单线)。\n- **ChinaUnicom**:中国联通(单线)。\n- **ChinaTelecom**:中国电信(单线)。\n\n> 如果是开通了单线带宽白名单的用户,该字段可以设置为**ChinaTelecom**(中国电信)、**ChinaUnicom**(中国联通)和**ChinaMobile**(中国移动)。",
"description": "{\n \"zh_CH\" : \"VPC的IPv6地址段类型,取值:\\n\\n- **BGP**:阿里云BGP IPv6。\\n- **ChinaMobile**:中国移动(单线)。\\n- **ChinaUnicom**:中国联通(单线)。\\n- **ChinaTelecom**:中国电信(单线)。\\n\\n> 如果是开通了单线带宽白名单的用户,该字段可以设置为**ChinaTelecom**(中国电信)、**ChinaUnicom**(中国联通)和**ChinaMobile**(中国移动)。\",\n \"en_US\" : \"The IPv6 address segment type of the VPC. Value:\\n\\n-**BGP**: Alibaba Cloud BGP IPv6.\\n-**ChinaMobile**: China Mobile (single line).\\n-**ChinaUnicom**: China Unicom (single line).\\n-**ChinaTelecom**: China Telecom (single line).\\n\\n> If a single-line bandwidth whitelist is enabled, this field can be set to **ChinaTelecom** (China Telecom), **ChinaUnicom** (China Unicom), and **ChinaMobile** (China Mobile).\"\n}",
"type": "string",
"deprecated": false,
"isRequired": false,
"pattern": "",
"readOnly": true,
"sensitive": false,
"extMonitorInfo": false,
"updateType": false,
"default": ""
},
"Ipv6CidrBlock": {
"title": "VPC的IPv6网段。",
"description": "{\n \"zh_CH\" : \"VPC的IPv6网段。\",\n \"en_US\" : \"The IPv6 network segment of the VPC.\"\n}",
"type": "string",
"deprecated": false,
"isRequired": false,
"pattern": "",
"readOnly": true,
"sensitive": false,
"extMonitorInfo": false,
"updateType": false,
"default": ""
}
},
"deprecated": false,
"readOnly": true,
"sensitive": false,
"extMonitorInfo": false,
"updateType": false
},
"deprecated": false,
"isRequired": false,
"readOnly": true,
"sensitive": false,
"extMonitorInfo": false,
"updateType": false
},
"Ipv6CidrBlock": {
"title": "IPv6地址",
"description": "{\n \"zh_CH\" : \"IPv6地址\",\n \"en_US\" : \"The ipv6 cidr block of vpc.\"\n}",
"type": "string",
"isRequired": false,
"readOnly": false,
"sensitive": false,
"extMonitorInfo": false,
"updateType": true
},
"Tags": {
"title": "VPC的标签",
"description": "{\n \"zh_CH\" : \"VPC的标签\",\n \"en_US\" : \"The tags of Vpc.\"\n}",
"type": "array",
"items": {
"title": "VPC的标签",
"description": "{\n \"zh_CH\" : \"VPC的标签\",\n \"en_US\" : \"The tags of Vpc.\"\n}",
"type": "object",
"properties": {
"TagKey": {
"title": "标签的键",
"description": "{\n \"zh_CH\" : \"标签的键\",\n \"en_US\" : \"The key of tag.\"\n}",
"type": "string",
"isRequired": false,
"readOnly": false,
"sensitive": false,
"extMonitorInfo": false,
"updateType": true
},
"TagValue": {
"title": "标签的值",
"description": "{\n \"zh_CH\" : \"标签的值\",\n \"en_US\" : \"The value of tag\"\n}",
"type": "string",
"isRequired": false,
"readOnly": false,
"sensitive": false,
"extMonitorInfo": false,
"updateType": true
}
},
"deprecated": false,
"sensitive": false,
"extMonitorInfo": false,
"updateType": false
},
"isRequired": false,
"readOnly": false,
"sensitive": false,
"extMonitorInfo": false,
"updateType": true
}
},
"required": [
"RegionId"
],
"publicProperties": [
"/properties/RouterId",
"/properties/VpcId",
"/properties/DhcpOptionsSetId",
"/properties/ResourceGroupId",
"/properties/UserCidrs",
"/properties/UserCidrs/items",
"/properties/VSwitchIds",
"/properties/RegionId",
"/properties/Ipv6CidrBlocks",
"/properties/VSwitchIds/items",
"/properties/Tags",
"/properties/Tags/items",
"/properties/Ipv6CidrBlocks/items",
"/properties/CidrBlock",
"/properties/Ipv6CidrBlocks/items/properties/Ipv6Isp",
"/properties/Tags/items/properties/TagKey",
"/properties/Ipv6CidrBlocks/items/properties/Ipv6CidrBlock",
"/properties/Status",
"/properties/Tags/items/properties/TagValue",
"/properties/CreateTime",
"/properties/Ipv6CidrBlock",
"/properties/Description",
"/properties/VpcName",
"/properties/ClassicLinkEnabled",
"/properties/IsDefault",
"/properties/SecondaryCidrBlocks",
"/properties/SecondaryCidrBlocks/items"
],
"readOnlyProperties": [
"/properties/Ipv6CidrBlocks/items/properties/Ipv6Isp",
"/properties/CreateTime",
"/properties/RouterId",
"/properties/Ipv6CidrBlocks",
"/properties/Status",
"/properties/VSwitchIds",
"/properties/Ipv6CidrBlocks/items",
"/properties/Ipv6CidrBlocks/items/properties/Ipv6CidrBlock",
"/properties/VSwitchIds/items"
],
"updateTypeProperties": [
"/properties/ResourceGroupId",
"/properties/Tags",
"/properties/CidrBlock",
"/properties/Tags/items/properties/TagKey",
"/properties/Tags/items/properties/TagValue",
"/properties/Ipv6CidrBlock",
"/properties/Description",
"/properties/VpcName",
"/properties/ClassicLinkEnabled",
"/properties/SecondaryCidrBlocks",
"/properties/SecondaryCidrBlocks/items"
],
"filterProperties": [
"/properties/DhcpOptionsSetId",
"/properties/ResourceGroupId",
"/properties/VpcId",
"/properties/VpcName",
"/properties/IsDefault"
],
"sensitiveInfoProperties": [],
"createOnlyProperties": [
"/properties/DryRun",
"/properties/Ipv6Isp",
"/properties/EnableIpv6"
],
"updateOnlyProperties": [],
"getOnlyProperties": [
"/properties/DryRun"
],
"listOnlyProperties": [
"/properties/DryRun"
],
"deleteOnlyProperties": [],
"getResponseProperties": [
"/properties/Ipv6CidrBlocks/items/properties/Ipv6Isp",
"/properties/RegionId",
"/properties/VpcName",
"/properties/ResourceType",
"/properties/DhcpOptionsSetId",
"/properties/CreateTime",
"/properties/Tags/items/properties/TagKey",
"/properties/SecondaryCidrBlocks/items",
"/properties/Tags",
"/properties/IsDefault",
"/properties/UserCidrs/items",
"/properties/ResourceGroupId",
"/properties/CidrBlock",
"/properties/RouterId",
"/properties/Tags/items",
"/properties/Description",
"/properties/Ipv6CidrBlocks",
"/properties/SecondaryCidrBlocks",
"/properties/Status",
"/properties/VSwitchIds",
"/properties/Tags/items/properties/TagValue",
"/properties/Ipv6CidrBlocks/items",
"/properties/Ipv6CidrBlocks/items/properties/Ipv6CidrBlock",
"/properties/Ipv6CidrBlock",
"/properties/ClassicLinkEnabled",
"/properties/UserCidrs",
"/properties/VSwitchIds/items",
"/properties/VpcId"
],
"listResponseProperties": [
"/properties/Ipv6CidrBlocks/items/properties/Ipv6Isp",
"/properties/RegionId",
"/properties/VpcName",
"/properties/DhcpOptionsSetId",
"/properties/CreateTime",
"/properties/Tags/items/properties/TagKey",
"/properties/SecondaryCidrBlocks/items",
"/properties/Tags",
"/properties/IsDefault",
"/properties/UserCidrs/items",
"/properties/ResourceGroupId",
"/properties/CidrBlock",
"/properties/RouterId",
"/properties/Tags/items",
"/properties/Description",
"/properties/Ipv6CidrBlocks",
"/properties/SecondaryCidrBlocks",
"/properties/Status",
"/properties/VSwitchIds",
"/properties/Tags/items/properties/TagValue",
"/properties/Ipv6CidrBlocks/items",
"/properties/Ipv6CidrBlocks/items/properties/Ipv6CidrBlock",
"/properties/Ipv6CidrBlock",
"/properties/UserCidrs",
"/properties/VSwitchIds/items",
"/properties/VpcId"
],
"handlers": {
"create": {
"permissions": [
"vpc:CreateVpc"
]
},
"update": {
"permissions": [
"vpc:TagResources",
"vpc:AssociateVpcCidrBlock",
"vpc:MoveResourceGroup",
"vpc:ModifyVpcAttribute",
"vpc:UnTagResources",
"vpc:UnassociateVpcCidrBlock",
"vpc:EnableVpcClassicLink",
"vpc:DisableVpcClassicLink"
]
},
"get": {
"permissions": [
"vpc:ListTagResources",
"vpc:DescribeVpcAttribute",
"vpc:DescribeVpcs"
]
},
"list": {
"permissions": [
"vpc:DescribeVpcs"
]
},
"delete": {
"permissions": [
"vpc:DeleteVpc"
]
}
}
}