Description | : Split operation to convert clone volume to an independent volume. |
Reference | : Link ¶ |
⚶ Changes
{ "#id": "Volumes_SplitCloneFromParent", "$responses": { "@added_ca0fd997eac64b5db2d8cb2aba5bb8c6": { "200": { "Description": "Volume resource", "Type": "object", "$properties": [ { "#name": "etag", "Description": "A unique read-only string that changes whenever the resource is updated.", "Required": false, "Type": "string" }, { "#name": "zones", "Description": "Availability Zone", "Required": false, "Type": "array", "$items": { "Type": "string" } }, { "#name": "properties", "Description": "Volume properties", "Required": true, "Type": "object", "$properties": [ { "#name": "fileSystemId", "Description": "Unique FileSystem Identifier.", "Required": false, "Type": "string" }, { "#name": "creationToken", "Description": "A unique file path for the volume. Used when creating mount targets", "Required": true, "Type": "string" }, { "#name": "serviceLevel", "Description": "The service level of the file system", "Enum": [ [ "Standard", "Standard service level" ], [ "Premium", "Premium service level" ], [ "Ultra", "Ultra service level" ], [ "StandardZRS", "Zone redundant storage service level. This will be deprecated soon." ], [ "Flexible", "Flexible service level" ] ], "Required": false, "Type": "string" }, { "#name": "usageThreshold", "Description": "Maximum storage quota allowed for a file system in bytes. This is a soft quota used for alerting only. For regular volumes, valid values are in the range 50GiB to 100TiB. For large volumes, valid values are in the range 100TiB to 500TiB, and on an exceptional basis, from to 2400GiB to 2400TiB. Values expressed in bytes as multiples of 1 GiB.", "Format": "int64", "Required": true, "Type": "integer" }, { "#name": "exportPolicy", "Description": "Set of export policy rules", "Required": false, "Type": "object", "$properties": [ { "#name": "rules", "Description": "Export policy rule", "Required": false, "Type": "array", "$items": { "Description": "Volume Export Policy Rule", "Type": "object", "$properties": [ { "#name": "ruleIndex", "Description": "Order index", "Format": "int32", "Required": false, "Type": "integer" }, { "#name": "unixReadOnly", "Description": "Read only access", "Required": false, "Type": "boolean" }, { "#name": "unixReadWrite", "Description": "Read and write access", "Required": false, "Type": "boolean" }, { "#name": "kerberos5ReadOnly", "Description": "Kerberos5 Read only access. To be use with swagger version 2020-05-01 or later", "Required": false, "Type": "boolean" }, { "#name": "kerberos5ReadWrite", "Description": "Kerberos5 Read and write access. To be use with swagger version 2020-05-01 or later", "Required": false, "Type": "boolean" }, { "#name": "kerberos5iReadOnly", "Description": "Kerberos5i Read only access. To be use with swagger version 2020-05-01 or later", "Required": false, "Type": "boolean" }, { "#name": "kerberos5iReadWrite", "Description": "Kerberos5i Read and write access. To be use with swagger version 2020-05-01 or later", "Required": false, "Type": "boolean" }, { "#name": "kerberos5pReadOnly", "Description": "Kerberos5p Read only access. To be use with swagger version 2020-05-01 or later", "Required": false, "Type": "boolean" }, { "#name": "kerberos5pReadWrite", "Description": "Kerberos5p Read and write access. To be use with swagger version 2020-05-01 or later", "Required": false, "Type": "boolean" }, { "#name": "cifs", "Description": "Allows CIFS protocol", "Required": false, "Type": "boolean" }, { "#name": "nfsv3", "Description": "Allows NFSv3 protocol. Enable only for NFSv3 type volumes", "Required": false, "Type": "boolean" }, { "#name": "nfsv41", "Description": "Allows NFSv4.1 protocol. Enable only for NFSv4.1 type volumes", "Required": false, "Type": "boolean" }, { "#name": "allowedClients", "Description": "Client ingress specification as comma separated string with IPv4 CIDRs, IPv4 host addresses and host names", "Required": false, "Type": "string" }, { "#name": "hasRootAccess", "Description": "Has root access to volume", "Required": false, "Type": "boolean" }, { "#name": "chownMode", "Description": "This parameter specifies who is authorized to change the ownership of a file. restricted - Only root user can change the ownership of the file. unrestricted - Non-root users can change ownership of files that they own.", "Enum": [ [ "Restricted", "" ], [ "Unrestricted", "" ] ], "Required": false, "Type": "string" } ] } } ] }, { "#name": "protocolTypes", "Description": "Set of protocol types, default NFSv3, CIFS for SMB protocol", "Required": false, "Type": "array", "$items": { "Type": "string" } }, { "#name": "provisioningState", "Description": "Azure lifecycle management", "Required": false, "Type": "string" }, { "#name": "snapshotId", "Description": "Resource identifier used to identify the Snapshot.", "Format": "arm-id", "Required": false, "Type": "string" }, { "#name": "deleteBaseSnapshot", "Description": "If enabled (true) the snapshot the volume was created from will be automatically deleted after the volume create operation has finished. Defaults to false", "Required": false, "Type": "boolean" }, { "#name": "backupId", "Description": "Resource identifier used to identify the Backup.", "Format": "arm-id", "Required": false, "Type": "string" }, { "#name": "baremetalTenantId", "Description": "Unique Baremetal Tenant Identifier.", "Required": false, "Type": "string" }, { "#name": "subnetId", "Description": "The Azure Resource URI for a delegated subnet. Must have the delegation Microsoft.NetApp/volumes", "Required": true, "Type": "string" }, { "#name": "networkFeatures", "Description": "The original value of the network features type available to the volume at the time it was created.", "Enum": [ [ "Basic", "Basic network features." ], [ "Standard", "Standard network features." ], [ "Basic_Standard", "Updating from Basic to Standard network features." ], [ "Standard_Basic", "Updating from Standard to Basic network features." ] ], "Required": false, "Type": "string" }, { "#name": "effectiveNetworkFeatures", "Description": "The effective value of the network features type available to the volume, or current effective state of update.", "Enum": [ [ "Basic", "Basic network features." ], [ "Standard", "Standard network features." ], [ "Basic_Standard", "Updating from Basic to Standard network features." ], [ "Standard_Basic", "Updating from Standard to Basic network features." ] ], "Required": false, "Type": "string" }, { "#name": "networkSiblingSetId", "Description": "Network Sibling Set ID for the the group of volumes sharing networking resources.", "Required": false, "Type": "string" }, { "#name": "storageToNetworkProximity", "Description": "Provides storage to network proximity information for the volume.", "Enum": [ [ "Default", "Basic storage to network connectivity." ], [ "T1", "Standard T1 storage to network connectivity." ], [ "T2", "Standard T2 storage to network connectivity." ], [ "AcrossT2", "Standard AcrossT2 storage to network connectivity." ] ], "Required": false, "Type": "string" }, { "#name": "mountTargets", "Description": "List of mount targets", "Required": false, "Type": "array", "$items": { "Description": "Mount target properties", "Type": "object", "$properties": [ { "#name": "mountTargetId", "Description": "UUID v4 used to identify the MountTarget", "Required": false, "Type": "string" }, { "#name": "fileSystemId", "Description": "UUID v4 used to identify the MountTarget", "Required": true, "Type": "string" }, { "#name": "ipAddress", "Description": "The mount target's IPv4 address", "Required": false, "Type": "string" }, { "#name": "smbServerFqdn", "Description": "The SMB server's Fully Qualified Domain Name, FQDN", "Required": false, "Type": "string" } ] } }, { "#name": "volumeType", "Description": "What type of volume is this. For destination volumes in Cross Region Replication, set type to DataProtection", "Required": false, "Type": "string" }, { "#name": "dataProtection", "Description": "DataProtection type volumes include an object containing details of the replication", "Required": false, "Type": "object", "$properties": [ { "#name": "backup", "Description": "Backup Properties", "Required": false, "Type": "object", "$properties": [ { "#name": "backupPolicyId", "Description": "Backup Policy Resource ID", "Format": "arm-id", "Required": false, "Type": "string" }, { "#name": "policyEnforced", "Description": "Policy Enforced", "Required": false, "Type": "boolean" }, { "#name": "backupVaultId", "Description": "Backup Vault Resource ID", "Format": "arm-id", "Required": false, "Type": "string" } ] }, { "#name": "replication", "Description": "Replication properties", "Required": false, "Type": "object", "$properties": [ { "#name": "replicationId", "Description": "Id", "Required": false, "Type": "string" }, { "#name": "endpointType", "Description": "Indicates whether the local volume is the source or destination for the Volume Replication", "Enum": [ [ "src", "" ], [ "dst", "" ] ], "Required": false, "Type": "string" }, { "#name": "replicationSchedule", "Description": "Schedule", "Enum": [ [ "_10minutely", "" ], [ "hourly", "" ], [ "daily", "" ] ], "Required": false, "Type": "string" }, { "#name": "remoteVolumeResourceId", "Description": "The resource ID of the remote volume. Required for cross region and cross zone replication", "Required": false, "Type": "string" }, { "#name": "remotePath", "Description": "The full path to a volume that is to be migrated into ANF. Required for Migration volumes", "Required": false, "Type": "object", "$properties": [ { "#name": "externalHostName", "Description": "The Path to a ONTAP Host", "Required": true, "Type": "string" }, { "#name": "serverName", "Description": "The name of a server on the ONTAP Host", "Required": true, "Type": "string" }, { "#name": "volumeName", "Description": "The name of a volume on the server", "Required": true, "Type": "string" } ] }, { "#name": "remoteVolumeRegion", "Description": "The remote region for the other end of the Volume Replication.", "Required": false, "Type": "string" }, { "#name": "destinationReplications", "Description": "A list of destination replications", "Required": false, "Type": "array", "$items": { "Description": "Destination replication properties", "Type": "object", "$properties": [ { "#name": "resourceId", "Description": "The resource ID of the remote volume", "Format": "arm-id", "Required": false, "Type": "string" }, { "#name": "replicationType", "Description": "Indicates whether the replication is cross zone or cross region.", "Enum": [ [ "CrossRegionReplication", "Cross region replication" ], [ "CrossZoneReplication", "Cross zone replication" ] ], "Required": false, "Type": "string" }, { "#name": "region", "Description": "The remote region for the destination volume.", "Required": false, "Type": "string" }, { "#name": "zone", "Description": "The remote zone for the destination volume.", "Required": false, "Type": "string" } ] } } ] }, { "#name": "snapshot", "Description": "Snapshot properties.", "Required": false, "Type": "object", "$properties": [ { "#name": "snapshotPolicyId", "Description": "Snapshot Policy ResourceId", "Required": false, "Type": "string" } ] }, { "#name": "volumeRelocation", "Description": "VolumeRelocation properties", "Required": false, "Type": "object", "$properties": [ { "#name": "relocationRequested", "Description": "Has relocation been requested for this volume", "Required": false, "Type": "boolean" }, { "#name": "readyToBeFinalized", "Description": "Has relocation finished and is ready to be cleaned up", "Required": false, "Type": "boolean" } ] } ] }, { "#name": "acceptGrowCapacityPoolForShortTermCloneSplit", "Description": "While auto splitting the short term clone volume, if the parent pool does not have enough space to accommodate the volume after split, it will be automatically resized, which will lead to increased billing. To accept capacity pool size auto grow and create a short term clone volume, set the property as accepted.", "Enum": [ [ "Accepted", "Auto grow capacity pool for short term clone split is accepted." ], [ "Declined", "Auto grow capacity pool for short term clone split is declined. Short term clone volume creation will not be allowed, to create short term clone volume accept auto grow capacity pool." ] ], "Required": false, "Type": "string" }, { "#name": "isRestoring", "Description": "Restoring", "Required": false, "Type": "boolean" }, { "#name": "snapshotDirectoryVisible", "Description": "If enabled (true) the volume will contain a read-only snapshot directory which provides access to each of the volume's snapshots (defaults to true).", "Required": false, "Type": "boolean" }, { "#name": "kerberosEnabled", "Description": "Describe if a volume is KerberosEnabled. To be use with swagger version 2020-05-01 or later", "Required": false, "Type": "boolean" }, { "#name": "securityStyle", "Description": "The security style of volume, default unix, defaults to ntfs for dual protocol or CIFS protocol", "Enum": [ [ "ntfs", "" ], [ "unix", "" ] ], "Required": false, "Type": "string" }, { "#name": "smbEncryption", "Description": "Enables encryption for in-flight smb3 data. Only applicable for SMB/DualProtocol volume. To be used with swagger version 2020-08-01 or later", "Required": false, "Type": "boolean" }, { "#name": "smbAccessBasedEnumeration", "Description": "Enables access-based enumeration share property for SMB Shares. Only applicable for SMB/DualProtocol volume", "Enum": [ [ "Disabled", "smbAccessBasedEnumeration share setting is disabled" ], [ "Enabled", "smbAccessBasedEnumeration share setting is enabled" ] ], "Required": false, "Type": "string" }, { "#name": "smbNonBrowsable", "Description": "Enables non-browsable property for SMB Shares. Only applicable for SMB/DualProtocol volume", "Enum": [ [ "Disabled", "smbNonBrowsable share setting is disabled" ], [ "Enabled", "smbNonBrowsable share setting is enabled" ] ], "Required": false, "Type": "string" }, { "#name": "smbContinuouslyAvailable", "Description": "Enables continuously available share property for smb volume. Only applicable for SMB volume", "Required": false, "Type": "boolean" }, { "#name": "throughputMibps", "Required": false, "Type": "number" }, { "#name": "actualThroughputMibps", "Description": "Actual throughput in MiB/s for auto qosType volumes calculated based on size and serviceLevel", "Required": false, "Type": "number" }, { "#name": "encryptionKeySource", "Description": "Source of key used to encrypt data in volume. Applicable if NetApp account has encryption.keySource = 'Microsoft.KeyVault'. Possible values (case-insensitive) are: 'Microsoft.NetApp, Microsoft.KeyVault'", "Enum": [ [ "Microsoft.NetApp", "Microsoft-managed key encryption" ], [ "Microsoft.KeyVault", "Customer-managed key encryption" ] ], "Required": false, "Type": "string" }, { "#name": "keyVaultPrivateEndpointResourceId", "Description": "The resource ID of private endpoint for KeyVault. It must reside in the same VNET as the volume. Only applicable if encryptionKeySource = 'Microsoft.KeyVault'.", "Required": false, "Type": "string" }, { "#name": "ldapEnabled", "Description": "Specifies whether LDAP is enabled or not for a given NFS volume.", "Required": false, "Type": "boolean" }, { "#name": "coolAccess", "Description": "Specifies whether Cool Access(tiering) is enabled for the volume.", "Required": false, "Type": "boolean" }, { "#name": "coolnessPeriod", "Description": "Specifies the number of days after which data that is not accessed by clients will be tiered.", "Format": "int32", "Required": false, "Type": "integer" }, { "#name": "coolAccessRetrievalPolicy", "Description": "coolAccessRetrievalPolicy determines the data retrieval behavior from the cool tier to standard storage based on the read pattern for cool access enabled volumes. The possible values for this field are: \n Default - Data will be pulled from cool tier to standard storage on random reads. This policy is the default.\n OnRead - All client-driven data read is pulled from cool tier to standard storage on both sequential and random reads.\n Never - No client-driven data is pulled from cool tier to standard storage.", "Enum": [ [ "Default", "" ], [ "OnRead", "" ], [ "Never", "" ] ], "Required": false, "Type": "string" }, { "#name": "coolAccessTieringPolicy", "Description": "coolAccessTieringPolicy determines which cold data blocks are moved to cool tier. The possible values for this field are: Auto - Moves cold user data blocks in both the Snapshot copies and the active file system to the cool tier tier. This policy is the default. SnapshotOnly - Moves user data blocks of the Volume Snapshot copies that are not associated with the active file system to the cool tier.", "Enum": [ [ "Auto", "" ], [ "SnapshotOnly", "" ] ], "Required": false, "Type": "string" }, { "#name": "unixPermissions", "Description": "UNIX permissions for NFS volume accepted in octal 4 digit format. First digit selects the set user ID(4), set group ID (2) and sticky (1) attributes. Second digit selects permission for the owner of the file: read (4), write (2) and execute (1). Third selects permissions for other users in the same group. the fourth for other users not in the group. 0755 - gives read/write/execute permissions to owner and read/execute to group and other users.", "Required": false, "Type": "string" }, { "#name": "cloneProgress", "Description": "When a volume is being restored from another volume's snapshot, will show the percentage completion of this cloning process. When this value is empty/null there is no cloning process currently happening on this volume. This value will update every 5 minutes during cloning.", "Format": "int32", "Required": false, "Type": "integer" }, { "#name": "fileAccessLogs", "Description": "Flag indicating whether file access logs are enabled for the volume, based on active diagnostic settings present on the volume.", "Enum": [ [ "Enabled", "fileAccessLogs are enabled" ], [ "Disabled", "fileAccessLogs are not enabled" ] ], "Required": false, "Type": "string" }, { "#name": "avsDataStore", "Description": "Specifies whether the volume is enabled for Azure VMware Solution (AVS) datastore purpose", "Enum": [ [ "Enabled", "avsDataStore is enabled" ], [ "Disabled", "avsDataStore is disabled" ] ], "Required": false, "Type": "string" }, { "#name": "dataStoreResourceId", "Description": "Data store resource unique identifier", "Required": false, "Type": "array", "$items": { "Type": "string" } }, { "#name": "isDefaultQuotaEnabled", "Description": "Specifies if default quota is enabled for the volume.", "Required": false, "Type": "boolean" }, { "#name": "defaultUserQuotaInKiBs", "Description": "Default user quota for volume in KiBs. If isDefaultQuotaEnabled is set, the minimum value of 4 KiBs applies .", "Format": "int64", "Required": false, "Type": "integer" }, { "#name": "defaultGroupQuotaInKiBs", "Description": "Default group quota for volume in KiBs. If isDefaultQuotaEnabled is set, the minimum value of 4 KiBs applies.", "Format": "int64", "Required": false, "Type": "integer" }, { "#name": "maximumNumberOfFiles", "Description": "Maximum number of files allowed. Needs a service request in order to be changed. Only allowed to be changed if volume quota is more than 4TiB.", "Format": "int64", "Required": false, "Type": "integer" }, { "#name": "volumeGroupName", "Description": "Volume Group Name", "Required": false, "Type": "string" }, { "#name": "capacityPoolResourceId", "Description": "Pool Resource Id used in case of creating a volume through volume group", "Required": false, "Type": "string" }, { "#name": "proximityPlacementGroup", "Description": "Proximity placement group associated with the volume", "Required": false, "Type": "string" }, { "#name": "t2Network", "Description": "T2 network information", "Required": false, "Type": "string" }, { "#name": "volumeSpecName", "Description": "Volume spec name is the application specific designation or identifier for the particular volume in a volume group for e.g. data, log", "Required": false, "Type": "string" }, { "#name": "encrypted", "Description": "Specifies if the volume is encrypted or not. Only available on volumes created or updated after 2022-01-01.", "Required": false, "Type": "boolean" }, { "#name": "placementRules", "Description": "Application specific placement rules for the particular volume", "Required": false, "Type": "array", "$items": { "Description": "Application specific parameters for the placement of volumes in the volume group", "Type": "object", "$properties": [ { "#name": "key", "Description": "Key for an application specific parameter for the placement of volumes in the volume group", "Required": true, "Type": "string" }, { "#name": "value", "Description": "Value for an application specific parameter for the placement of volumes in the volume group", "Required": true, "Type": "string" } ] } }, { "#name": "enableSubvolumes", "Description": "Flag indicating whether subvolume operations are enabled on the volume", "Enum": [ [ "Enabled", "subvolumes are enabled" ], [ "Disabled", "subvolumes are not enabled" ] ], "Required": false, "Type": "string" }, { "#name": "provisionedAvailabilityZone", "Description": "The availability zone where the volume is provisioned. This refers to the logical availability zone where the volume resides.", "Required": false, "Type": "string" }, { "#name": "isLargeVolume", "Description": "Specifies whether volume is a Large Volume or Regular Volume.", "Required": false, "Type": "boolean" }, { "#name": "originatingResourceId", "Description": "Id of the snapshot or backup that the volume is restored from.", "Required": false, "Type": "string" }, { "#name": "inheritedSizeInBytes", "Description": "Space shared by short term clone volume with parent volume in bytes.", "Format": "int64", "Required": false, "Type": "integer" } ] } ] } }, "@removed_26740b61d31849b39744db1c64ef0507": { "#status": "204" } } }
⚼ Request
POST:
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/splitCloneFromParent
{
subscriptionId:
string
,
resourceGroupName:
string
,
accountName:
string
,
poolName:
string
,
volumeName:
string
,
api-version:
string
,
}
⚐ Response (200)
{
etag:
string
,
zones:
[
,
string
,
]
properties:
}
{
,
fileSystemId:
string
,
creationToken:
string
,
serviceLevel:
enum
,
usageThreshold:
integer
,
exportPolicy:
{
,
rules:
}
[
]
,
{
,
ruleIndex:
integer
,
unixReadOnly:
boolean
,
unixReadWrite:
boolean
,
kerberos5ReadOnly:
boolean
,
kerberos5ReadWrite:
boolean
,
kerberos5iReadOnly:
boolean
,
kerberos5iReadWrite:
boolean
,
kerberos5pReadOnly:
boolean
,
kerberos5pReadWrite:
boolean
,
cifs:
boolean
,
nfsv3:
boolean
,
nfsv41:
boolean
,
allowedClients:
string
,
hasRootAccess:
boolean
,
chownMode:
enum
,
}
protocolTypes:
[
,
string
,
]
provisioningState:
string
,
snapshotId:
string
,
deleteBaseSnapshot:
boolean
,
backupId:
string
,
baremetalTenantId:
string
,
subnetId:
string
,
networkFeatures:
enum
,
effectiveNetworkFeatures:
enum
,
networkSiblingSetId:
string
,
storageToNetworkProximity:
enum
,
mountTargets:
[
]
,
{
,
mountTargetId:
string
,
fileSystemId:
string
,
ipAddress:
string
,
smbServerFqdn:
string
,
}
volumeType:
string
,
dataProtection:
{
,
backup:
{
,
backupPolicyId:
string
,
policyEnforced:
boolean
,
backupVaultId:
string
,
}
replication:
{
,
replicationId:
string
,
endpointType:
enum
,
replicationSchedule:
enum
,
remoteVolumeResourceId:
string
,
remotePath:
{
,
externalHostName:
string
,
serverName:
string
,
volumeName:
string
,
}
remoteVolumeRegion:
string
,
destinationReplications:
}
[
]
,
{
,
resourceId:
string
,
replicationType:
enum
,
region:
string
,
zone:
string
,
}
snapshot:
{
,
snapshotPolicyId:
string
,
}
volumeRelocation:
}
{
,
relocationRequested:
boolean
,
readyToBeFinalized:
boolean
,
}
acceptGrowCapacityPoolForShortTermCloneSplit:
enum
,
isRestoring:
boolean
,
snapshotDirectoryVisible:
boolean
,
kerberosEnabled:
boolean
,
securityStyle:
enum
,
smbEncryption:
boolean
,
smbAccessBasedEnumeration:
enum
,
smbNonBrowsable:
enum
,
smbContinuouslyAvailable:
boolean
,
throughputMibps:
number
,
actualThroughputMibps:
number
,
encryptionKeySource:
enum
,
keyVaultPrivateEndpointResourceId:
string
,
ldapEnabled:
boolean
,
coolAccess:
boolean
,
coolnessPeriod:
integer
,
coolAccessRetrievalPolicy:
enum
,
coolAccessTieringPolicy:
enum
,
unixPermissions:
string
,
cloneProgress:
integer
,
fileAccessLogs:
enum
,
avsDataStore:
enum
,
dataStoreResourceId:
[
,
string
,
]
isDefaultQuotaEnabled:
boolean
,
defaultUserQuotaInKiBs:
integer
,
defaultGroupQuotaInKiBs:
integer
,
maximumNumberOfFiles:
integer
,
volumeGroupName:
string
,
capacityPoolResourceId:
string
,
proximityPlacementGroup:
string
,
t2Network:
string
,
volumeSpecName:
string
,
encrypted:
boolean
,
placementRules:
[
]
,
{
,
key:
string
,
value:
string
,
}
enableSubvolumes:
enum
,
provisionedAvailabilityZone:
string
,
isLargeVolume:
boolean
,
originatingResourceId:
string
,
inheritedSizeInBytes:
integer
,
}
⚐ Response (202)
{
location:
string
,
}
⚐ Response (default)
{
error:
}
{
,
code:
string
,
message:
string
,
target:
string
,
details:
[
,
string
,
]
additionalInfo:
}
[
]
,
{
,
type:
string
,
info:
object
,
}