OCUMAPI - Contains the definitions and description of API Bindings for OnCommand Unified Manager server 6.0 or later
my $s = NaServer->new($server, 1, 0); # create NaServer (server context)
$s->set_admin_user('admin', 'password'); # provide username and password
$s->set_server_type('OCUM'); # set the server type to OCUM for OnCommand Unified Manager 6.0 or later
eval{
my $output = $s->system_about(); # use binding for system-about API
print "OCUM server version is: $output->{version}\n"; # extract the required parameter from output
};
if($@) { # check for any exception
my ($error_reason, $error_code) = $@ =~ /(.+)\s\((\d+)\)/; # parse out error reason and error code
print "Error Reason: $error_reason Code: $error_code\n"
}
NetApp Manageability SDK 5.3.1 provides support for Perl API bindings for both Data ONTAP APIs and OnCommand Unified Manager APIs.
The Perl API bindings libraries contain interfaces to establish a connection with either the Data ONTAP server or the OnCommand Unified Manager server.
By using these libraries, you can create Perl applications to access and manage the Data ONTAP server or OnCommand Unified Manager server.
NetApp Manageability SDK 5.3.1 Perl API bindings provide a runtime library NaServer.pm, which is available at <installation_folder>/lib/perl/NetApp.
This library file enables you to establish a server connection, send requests and receive responses, and interpret error messages.
Each binding can be called as a subroutine of NaServer module which in turn invokes the corresponding Data ONTAP or OnCommand Unified Manager API.
Iterate over existing aggregates.Inputs
- max-records => integer, optional
The maximum number of records per return batch the caller wants to receive. The server may return smaller batch sizes based on performance constraints. If this field is not provided, then the server will return default number of records based on server performance.
- resource-filter => resource-key, optional
Resource by which to filter the result set. Any resource-filters specified in the first call must be included in subsequent calls. The allowed object types for this argument are: - cluster
- cluster node
- aggregate
If resource-filter identifies a aggregate, that single aggregate will be returned. If resource-filter resolves to more than one aggregate, all of them will be returned. If no resource-filter is provided, all aggregates will be listed.
- tag => string, optional
Specify the tag from the last call. It is not specified for the first call. For subsequent calls, copy values from the 'next-tag' obtained from the previous call. Any resource-filters specified in the first call must be included in subsequent calls.
Outputs
Iterate over clusters.Inputs
- max-records => integer, optional
The maximum number of records per return batch the caller wants to receive. The server may return smaller batch sizes based on performance constraints. If this field is not provided, then the server will return default number of records based on server performance.
- resource-filter => resource-key, optional
Resource by which to filter the result set. Any resource-filters specified in the first call must be included in subsequent calls. The allowed object types for this argument are: If resource-filter identifies a cluster, that single cluster will be returned. If resource-filter resolves to more than one cluster, all of them will be returned. If no resource-filter is provided, all clusters will be listed.
- tag => string, optional
Specify the tag from the last call. It is not specified for the first call. For subsequent calls, copy values from the 'next-tag' obtained from the previous call. Any resource-filters specified in the first call must be included in subsequent calls.
Outputs
- next-tag => string, optional
Tag for the next call. Not present when there are no more objects to return.
- num-records => integer
The number of records returned in this call.
Iterate over cluster nodes.Inputs
- max-records => integer, optional
The maximum number of records per return batch the caller wants to receive. The server may return smaller batch sizes based on performance constraints. If this field is not provided, then the server will return default number of records based on server performance.
- resource-filter => resource-key, optional
Resource by which to filter the result set. Any resource-filters specified in the first call must be included in subsequent calls. The allowed object types for this argument are: If resource-filter identifies a cluster node, that single cluster node will be returned. If resource-filter resolves to more than one cluster node, all of them will be returned. If no resource-filter is provided, all cluster nodes will be listed.
- tag => string, optional
Specify the tag from the last call. It is not specified for the first call. For subsequent calls, copy values from the 'next-tag' obtained from the previous call. Any resource-filters specified in the first call must be included in subsequent calls.
Outputs
- next-tag => string, optional
Tag for the next call. Not present when there are no more objects to return.
- num-records => integer
The number of records returned in this call.
Lists data protection relationships. For example, SnapVault or SnapMirror relationships. List relationships for a single storage service connection or for a particular source or destination name or id.Inputs
- is-managed => boolean, optional
If true, only list relationships which are managed by a storage-service. If false, only list relationships which are not in a storage service. If unspecified, list all relationships.
- max-records => integer, optional
The maximum number of records per return batch the caller wants to receive. The server may return smaller batch sizes based on performance constraints. If this field is not provided, then the server will return default number of records based on server performance.
- source-or-destination-resource-key => resource-key, optional
Resource key of either a source or a destination object. If empty, all relationships are listed. The source or destination object must be either a Volume or Vserver. If Vserver is specified, relationships for all volumes in that Vserver are listed.
- tag => string, optional
Specify the tag from the last call. It is not specified for the first call. For subsequent calls, copy values from the 'next-tag' obtained from the previous call. Any resource-filters specified in the first call must be included in subsequent calls.
Outputs
- next-tag => string, optional
Tag for the next call. Not present when there are no more objects to return.
- num-records => integer
The number of records returned in this call.
Starts a restore/retrieval operation on part of a storage object. This API copies storage objects (files, LUNS, directories, qtrees, and volumes) from a given Snapshot copy to a specified location. Users can run one of the following APIs to obtain the source snapshot resource key.
- resource-lookup
- snapshot-get-location
This API returns the job-id of the job created for the restore operation. The job ID can be used to lookup detailed information on the progress of the restore operation.
Inputs
Outputs
- job-id => job-id
The identification of the job created by this API request. The job is a manifest that expresses the set of different tasks and the sequence in which they are executed in order to accomplish a high level work-flow.
Iterate over disks.Inputs
- max-records => integer, optional
The maximum number of records per return batch the caller wants to receive. The server may return smaller batch sizes based on performance constraints. If this field is not provided, then the server will return default number of records based on server performance.
- resource-filter => resource-key, optional
Resource by which to filter the result set. Any resource-filters specified in the first call must be included in subsequent calls. The allowed object types for this argument are: - cluster
- cluster node
- aggregate
- disk
If resource-filter identifies a disk, that single disk will be returned. If resource-filter resolves to more than one disk, all of them will be returned. If no resource-filter is provided, all disks will be listed.
- tag => string, optional
Specify the tag from the last call. It is not specified for the first call. For subsequent calls, copy values from the 'next-tag' obtained from the previous call. Any resource-filters specified in the first call must be included in subsequent calls.
Outputs
- next-tag => string, optional
Tag for the next call. Not present when there are no more objects to return.
- num-records => integer
The number of records returned in this call.
Retrieve data, parity, spare, and total space usage (by number of disks and bytes) for the specified aggregate, cluster, or cluster node. For a V-Series storage system, data LUNs, spare LUNs and total LUNs are also reported, if array LUNs exist. For an aggregate, spares and spare space is not reported.
Error Conditions: - EINVALIDINPUT - When invalid input specified.
- EOBJECTNOTFOUND - When the object-name-or-id does not correspond to an appropriate object.
- ENODISKSFOUND - When no disk information has been retrieved yet for the object-name-or-id.
Inputs
- resource-filter => resource-key
Resource key of an object to list the physical summary for. The allowed object types for this argument are: - cluster
- cluster node
- aggregate
Outputs
Acknowledge events. This terminates repeated notifications due to that event.Inputs
Outputs
Assign the events to the specified user.Inputs
- event-id-list => event-id-type[]
The event identifiers to be assigned.
Outputs
Iterate over events ordered by event-id.Inputs
- include-notes => boolean, optional
If true, specifies that events should be returned with their related notes. The default is false, meaning that events are returned without notes.
- max-records => integer, optional
The maximum number of records per return batch the caller wants to receive. The server may return smaller batch sizes based on performance constraints. If this field is not provided, then the server will return default number of records based on server performance.
- source => resource-key, optional
Lists events against the specified source. If the provided resource key specifies a group, lists events against all members in that group.
- tag => string, optional
Specify the tag from the last call. It is not specified for the first call. For subsequent calls, copy values from the 'next-tag' obtained from the previous call. Any resource-filters specified in the first call must be included in subsequent calls.
- timeout => integer, optional
Number of seconds after which the API should terminate, if no events are received matching the input criteria. If the value is 0, or not specified, the API will terminate immediately (acting as an instantaneous poll for events). If the timeout expires with no matching events, the API returns successfully with an empty list of events.
If a specific event-id is specified, then the timeout value is ignored.
If time-range is set, timeout is also ignored.
Outputs
- next-tag => string, optional
Tag for the next call. Not present when there are no more objects to return.
- num-records => integer
The number of records returned in this call.
Purges the events that are older than the specified interval.Inputs
- interval => integer
The time interval in seconds. All non-current events with timestamp prior to the given interval will be purged.
Outputs
Resolve events. Terminates repeated notifications due to the event.Inputs
- event-id-list => event-id-type[]
The event identifiers to be resolved.
Outputs
event-status-change-list-iter-end is used to indicate that the temporary store used to support the event-status-change-list-iter-next API for the particular tag is no longer necessary.Inputs
Outputs
The event-status-change-list-iter-next API is used to iterate over the list of events stored in the temporary store created by the event-status-change-list-iter-start API. A cursor is maintained pointing to the last record returned. Subsequent calls to this API will return the records after the cursor up to the specified "maximum" or number of actual records left.
Inputs
- tag => string
An opaque handle used to identify the temporary store created by event-status-change-list-iter-start.
Outputs
List events that had status changes (acknowledged or resolved) within the specified time range. The event-status-change-list-iter-* set of APIs are used to retrieve the list of events that had status changes.
The event-status-change-list-iter-start API is used to load the list of events into a temporary store. The API returns a tag to temporary store so that subsequent APIs can be used to iterate over the list in the temporary store.
The returned list of events will be sorted according to when they had their status changed (either eventAcked timestamp or eventresolved timestamp). An event that's both acked and resolved within the requested timeframe would appear twice in the returned list of events, because those would count as 2 status changes, and appear in the returned list based on acked timestamp and resolved timestamp respectively.
Note that, depending on the input parameters, this API may take up to "timeout" seconds to return. Subsequent calls to event-status-change-list-iter-next() will return immediately.
Inputs
- max-events => integer, optional
If specified, this is the maximum number of events that the client wishes to receive at once. If set to zero, return all events. The default value of this parameter is 50,000.
- time-range => event-timestamp-range
Lists all events which were generated in the range specified. If the end-time of the time-range is not sometime in the future, time-out will be ignored.
- timeout => integer, optional
Number of seconds after which the API should terminate, if no events are received matching the input criteria. If the value is 0, or not specified, the API will terminate immediately (acting as an instantaneous poll for events). If the timeout expires with no matching events, the API returns successfully with an empty list of events.
Outputs
- records => integer
The number of events matching the specified input criteria. This is the number of records that will be returned by subsequent calls to event-status-change-list-iter-next().
- tag => string
An opaque handle you must pass to event-status-change-list-iter-next() and event-status-change-list-iter-end() to refer to this list of events.
Unassign the owner of an event or a set of events.Inputs
- event-id-list => event-id-type[]
Identifiers of the events whose owner has to be unassigned.
Outputs
Iterate over initiator groups.Inputs
- max-records => integer, optional
The maximum number of records per return batch the caller wants to receive. The server may return smaller batch sizes based on performance constraints. If this field is not provided, then the server will return default number of records based on server performance.
- resource-filter => resource-key, optional
Resource by which to filter the result set. Any resource-filters specified in the first call must be included in subsequent calls. The allowed object types for this argument are: - cluster
- vserver
- lun
- igroup
If resource-filter identifies a igroup, that single igroup will be returned. If resource-filter resolves to more than one igroup, all of them will be returned. If no resource-filter is provided, all igroups will be listed.
- tag => string, optional
Specify the tag from the last call. It is not specified for the first call. For subsequent calls, copy values from the 'next-tag' obtained from the previous call. Any resource-filters specified in the first call must be included in subsequent calls.
Outputs
- next-tag => string, optional
Tag for the next call. Not present when there are no more objects to return.
- num-records => integer
The number of records returned in this call.
Abort a running management job.Inputs
- job-id => job-id
Identifier for a management job.
Outputs
Delete the results of a completed job.Inputs
- job-id => job-id
Identifier for a management job.
Outputs
Retrieve information about management jobs. - More than one job may be returned.
- If job-id or task-id is specified, it should be the only query criterion. If other inputs are specified as multiple criteria, they are ANDed. In other words, the intersection of the jobs specified by the matching criteria is returned.
Inputs
- job-id => job-id, optional
Specify the job identity matching criteria. If other inputs are specified with job-id, EINVALIDINPUT error is returned.
- max-records => integer, optional
The maximum number of records per return batch the caller wants to receive. The server may return smaller batch sizes based on performance constraints. If this field is not provided, then the server will return default number of records based on server performance.
- tag => string, optional
Specify the tag from the last call. It is not specified for the first call. For subsequent calls, copy values from the 'next-tag' obtained from the previous call. Any resource-filters specified in the first call must be included in subsequent calls.
Outputs
- next-tag => string, optional
Tag for the next call. Not present when there are no more objects to return.
- num-records => integer
The number of records returned in this call.
Starts iteration to list tasks and their status. - More than one tasks may be returned.
- The criteria are ANDed. That is: we return the intersection of the tasks specified by the matching criteria if input is specified other than task-id. No other input is allowed with Task-id input, in case other input is specified with task-id then EINVALIDINPUT error is returned. If specified job-id is not found then EJOBDOESNOTEXIST error is returned.
Inputs
- job-id => job-id, optional
Job identity matching criteria.
- max-records => integer, optional
The maximum number of records per return batch the caller wants to receive. The server may return smaller batch sizes based on performance constraints. If this field is not provided, then the server will return default number of records based on server performance.
- tag => string, optional
Specify the tag from the last call. It is not specified for the first call. For subsequent calls, copy values from the 'next-tag' obtained from the previous call. Any resource-filters specified in the first call must be included in subsequent calls.
- task-id => job-task-id, optional
Task identity matching criteria.
Outputs
- next-tag => string, optional
Tag for the next call. Not present when there are no more objects to return.
- num-records => integer
The number of records returned in this call.
Blocks until a specified timeout period elapses or until a job state is reached by at least one job.Inputs
- job-list => job-id[]
List of job-ids to wait for to reach the specified state. If a listed job-id is not found, then EJOBDOESNOTEXIST is returned along with the first invalid/missing job-id. The API blocks until at least one of jobs reaches the specified state.
- state => job-state, optional
Specify the job state to wait for. If state specified is other than 'completed' then E_FILTER_ARGUMENT_NOT_IMPLEMENTED error will be returned. Default is 'completed'. The 'completed' state implies all terminal job states viz. 'completed' and 'aborted'.
Outputs
- job-list => job-id[]
List of job-ids corresponding to the job(s) matching the specified state.
Iterate over a list of lun objects.Inputs
- max-records => integer, optional
The maximum number of records per return batch the caller wants to receive. The server may return smaller batch sizes based on performance constraints. If this field is not provided, then the server will return default number of records based on server performance.
- resource-filter => resource-key, optional
Resource by which to filter the result set. Any resource-filters specified in the first call must be included in subsequent calls. The allowed object types for this argument are: - resource-group
- cluster
- vserver
- aggregate
- volume
- qtree
- lun
If resource-filter identifies a lun, that single lun will be returned. If resource-filter resolves to more than one lun, all of them will be returned. If no resource-filter is provided, all luns will be listed.
- tag => string, optional
Specify the tag from the last call. It is not specified for the first call. For subsequent calls, copy values from the 'next-tag' obtained from the previous call. Any resource-filters specified in the first call must be included in subsequent calls.
Outputs
- next-tag => string, optional
Tag for the next call. Not present when there are no more objects to return.
- num-records => integer
The number of records returned in this call.
Iterate over logical interfaces. This API lists ethernet interfaces only. It does not list FCP interfaces.Inputs
- is-cluster-interface-only => boolean, optional
If this flag is set, only the ethernet interfaces owned by the cluster are returned. Interfaces owned by a vserver or cluster node will not be returned. This input can only be provided with a resource-filter value for a cluster.
- max-records => integer, optional
The maximum number of records per return batch the caller wants to receive. The server may return smaller batch sizes based on performance constraints. If this field is not provided, then the server will return default number of records based on server performance.
- resource-filter => resource-key, optional
Resource by which to filter the result set. Any resource-filters specified in the first call must be included in subsequent calls. The allowed object types for this argument are: - cluster
- vserver
- cluster_node
- network_lif
If resource-filter identifies a network_lif, that single network_lif will be returned. If resource-filter resolves to more than one network_lif, all of them will be returned. If no resource-filter is provided, all network_lifs will be listed.
- tag => string, optional
Specify the tag from the last call. It is not specified for the first call. For subsequent calls, copy values from the 'next-tag' obtained from the previous call. Any resource-filters specified in the first call must be included in subsequent calls.
Outputs
- next-tag => string, optional
Tag for the next call. Not present when there are no more objects to return.
- num-records => integer
The number of records returned in this call.
Iterate over portsets.Inputs
- max-records => integer, optional
The maximum number of records per return batch the caller wants to receive. The server may return smaller batch sizes based on performance constraints. If this field is not provided, then the server will return default number of records based on server performance.
- resource-filter => resource-key, optional
Resource by which to filter the result set. Any resource-filters specified in the first call must be included in subsequent calls. The allowed object types for this argument are: - resource group
- cluster
- vserver
- portset
- initiator group
If resource-filter identifies a portset, that single portset will be returned. If resource-filter resolves to more than one portset, all of them will be returned. If no resource-filter is provided, all portsets will be listed.
- tag => string, optional
Specify the tag from the last call. It is not specified for the first call. For subsequent calls, copy values from the 'next-tag' obtained from the previous call. Any resource-filters specified in the first call must be included in subsequent calls.
Outputs
- next-tag => string, optional
Tag for the next call. Not present when there are no more objects to return.
- num-records => integer
The number of records returned in this call.
Lookup a managed resource by its fully qualified name. Returns the resource key for the managed resource.Inputs
- qualified-name => string
The fully qualified name of the managed resource. The format of the qualified name for each resource type is defined as follows ({placeholders} that should be substituted with actual values): Data ONTAP resource types: - aggregate: {cluster-node-name}:{aggregate-name}
- cluster: {cluster-name}
- cluster_node: {cluster-node-name}
- disk: {disk-name}
- export_policy: {vserver-name}:{export-policy-name}
- lun: {vserver-name}:/{volume-name}/{lun-name} or {vserver-name}:/{volume-name}/{qtree-name}/{lun-name}
- network_lif: {owner-name}:{lif-name} where {owner-name} can be any of: {cluster-name} or {cluster-node-name} or {vserver-name}
- network_port: {cluster-node-name}:{network-port-name}
- qtree: {vserver-name}:/{volume-name}/{qtree-name}
- snap_mirror: {source-vserver-name}:{source-volume-name} ->{dest-vserver-name}:{dest-volume-name}
- snapshot: {vserver-name}:/{volume-name}:{snapshot-name}
- storage_class: {vserver-name}:{storage-class-name}
- storage_shelf: {cluster-node-name}:{channel-name}:{shelf-identifier}
- volume: {vserver-name}:/{volume-name}
- vserver: {vserver-name}
OnCommand resource types: - resource_pool: {resource-pool-name}
- service_workflow: {service-workflow-name}
- storage_service: {storage-service-name}
- storage_service_node: {storage-service-name}:{storage-service-node-name}
- storage_service_connection: {storage-service-name}:{source-node-name} ->{storage-service-name}:{destination-node-name}
- type => resource-type
Specifies the type of the managed resource being looked up. Not all resource types support lookup by name. See the documentation of qualified-name for a list of supported resource types and their name formats.
Outputs
Add an aggregate to a resource pool. An aggregate may only belong to a single resource pool.Inputs
Outputs
Remove an aggregate from a resource pool.Inputs
- aggregate => resource-key
The resource key of the aggregate to be removed.
- resource-pool => resource-key
The resource key of the resource pool to which the aggregate belongs.
Outputs
Create a new resource pool.Inputs
Outputs
- resource-key => resource-key
The resource key of the newly created resource pool.
Destroy an existing resource pool.Inputs
- resource-pool => resource-key
The resource key of the resource pool to be destroyed.
Outputs
Iterate over resource pools.Inputs
- max-records => integer, optional
The maximum number of records per return batch the caller wants to receive. The server may return smaller batch sizes based on performance constraints. If this field is not provided, then the server will return default number of records based on server performance.
- resource-filter => resource-key, optional
Resource by which to filter the result set. Any resource-filters specified in the first call must be included in subsequent calls. The allowed object types for this argument are: If resource-filter identifies a resource pool, that single resource pool will be returned. If resource-filter resolves to more than one resource pool, all of them will be returned. If no resource-filter is provided, all resource pools will be listed.
- tag => string, optional
Specify the tag from the last call. It is not specified for the first call. For subsequent calls, copy values from the 'next-tag' obtained from the previous call. Any resource-filters specified in the first call must be included in subsequent calls.
Outputs
- next-tag => string, optional
Tag for the next call. Not present when there are no more objects to return.
- num-records => integer
The number of records returned in this call.
Modify an existing resource pool.Inputs
- description => string, optional
Modified description of the resource pool. Specifying this input with a blank value will remove the existing description from the resource pool.
- resource-pool => resource-key
The resource key of the resource pool to be modified.
Outputs
Deletes an existing volume snapshot. If the snapshot is currently active (e.g. involved in SnapMirror transfer, baseline snapshot of SnapVault etc.), then the snapshot will be marked as expired. Such expired snapshots will be deleted subsequently when no longer needed.Inputs
Outputs
Gets location of the replicas of the requested Snapshot copies.Inputs
- snapshot-identifiers => snapshot-identifier[]
Information about the snapshot copies whose replica locations are being requested. Specified snapshot-identifier is first resolved to a version-uuid and then the snapshot copies for all the volumes currently in the input storage service and connected to the input volume, with the matching version-uuid are returned. You can specify the following combination of attributes in each snapshot-identifier: - version-uuid and volume-resource-key, or
- snapshot-resource-key only.
Any other combination of these attributes specified in the snapshot-identifier is invalid and EINVALIDINPUT error is returned. If an invalid version-uuid is specified in input snapshot-identifier, empty results will be returned for that identifier.
- storage-service-resource-key => resource-key
Resource key of the storage service. Location of snapshots are returned for only those volumes which are currently in this storage service. Matching snapshot locations on the relationships that are relinquished, or on the relationships in a different storage service, are not returned.
Outputs
Returns metadata associated with a snapshot.Inputs
- snapshot-resource-key => resource-key
Resource key of the volume snapshot associated with the metadata.
Outputs
Checks if the specified volume snapshot has expired.Inputs
- snapshot-resource-key => resource-key
Resource key of the volume snapshot whose expiration status is being determined. If the snapshot specified is not found on the storage system, ESNAPSHOTNOTFOUND is returned.
Outputs
Sets metadata for an existing volume snapshot. The metadata is automatically deleted when associated snapshot is removed.Inputs
- metadata => key-value-pair[]
Opaque metadata for this snapshot. Metadata is usually set and interpreted by an external application. OnCommand Unified Manager does not look into the contents of metadata. Existing metadata will be removed if not included in the input. A maximum of 16 key value pairs are allowed per snapshot. If number of entries exceed this number, E_MAX_ENTRY_COUNT_EXCEEDED is returned.
Keys in each pair can be 1 to 255 characters in length and are case-sensitive. Duplicate keys are not allowed. Values are opaque to the server and must not exceed 16384 (16k) characters in length. If any of these rules are violated, EINVALIDINPUT error will be returned.
- snapshot-resource-key => resource-key
Resource key of the volume snapshot to be associated with the metadata.
Outputs
Generates the self-signed certificate to be used by the HTTPS port. The newly generated certificate will become active after a reboot.
The certificate will be generated with the following parameters:
- Public Key Algorithm: RSA
- Key Length: 2048
- Signature Algorithm: SHA-256 with RSA Encryption
- Validity: 5 years
Inputs
Outputs
Retrieves the certificate chain used by the HTTPS port. The certificate chain can be retrieved by anybody.Inputs
Outputs
Creates a PKCS#10 Certification Request from the HTTPS port's certificate that can be submitted to a Certificate Authority for signing. The signed certificate received from a CA can then be imported via ssl-server-cert-set.Inputs
Outputs
Sets the certificate to be used by the HTTPS port. The certificate must be a CA-signed certificate generated from the Certification Request created via ssl-server-cert-request. The newly set certificate will become active after a reboot.
Inputs
- certificate-chain => certificate-chain
The certificate chain in Privacy Enhanced Mail (PEM) format. Each certificate in the chain from the new certificate to the Certificate Authority must be included.
Outputs
Users can invoke this API when they feel no more need to maintain the member artifacts for any kind of restore purposes. Specified members must not have any active subscriptions. For every specified member, all the relevant data protection relationships and relevant provisioned storage objects are removed from the storage service. Users may also opt to destroy these artifacts from the storage system.Inputs
- keep-storage-artifacts => boolean, optional
If true, protection artifacts are removed only from storage service but not destroyed from storage system. If false, protection artifacts are removed from the storage service and destroyed from storage system as well. Default is true.
- members => resource-key[], optional
Resource keys of the members to clean up. Members must belong to the root node of the storage service, otherwise E_MEMBER_NOT_IN_REQUIRED_NODE error is returned. If specified and 'storage-service-nodes' input is not provided, members should not have any active subscriptions with the storage service, otherwise an E_OBJECT_CURRENTLY_SUBSCRIBED error is returned. If an empty list is provided or this input is not provided, and 'storage-service-nodes' input is absent, then all the unsubscribed members will be cleaned up from the storage service.
- storage-service-nodes => resource-key[], optional
Resource keys of the nodes of the storage service, from which the protection artifacts should be removed. If this input is provided, protection artifacts are cleaned up regardless of whether the member has subscription or not. Each node in this list must be a non-root node of the storage service, otherwise an EINVALIDINPUT error will be returned. If provided and 'members' input is not provided, protection artifacts of all the members are removed only from the specified nodes and all their downstream nodes of the storage service. If provided, and 'members' input is also provided, protection artifacts of the input 'members' are removed only from the specified nodes and all their downstream nodes of the storage service.
- storage-service-resource-key => resource-key
Resource key of the storage service.
Outputs
- job-id => job-id
Object-id of the job created by this API call. The job's task list is a manifest that expresses the set of different tasks and the sequence in which they will be executed in order to accomplish a high level workflow.
Checks configuration on members of a storage service. This API runs an on-demand check on one or more members of the storage service to bring the storage system configuration into conformance with the strategy defined by the storage service. A configuration check determines the volumes' current conformance status and the set of "actions" needed to make them conformant. Then this API starts the actions to bring the storage system configuration into conformance. Successful completion of this API indicates that "corrective" conformance actions are started though not necessarily completed.Inputs
- members => resource-key[], optional
Resource keys of the member-objects on which to check conformance. Members must belong to the root node of the storage service. Members should have at least one active subscription with the storage service, otherwise E_OBJECT_NOT_SUBSCRIBED error is returned. If an empty list is provided or this input is not provided, conformance check will run on all the subscribed members of the storage service. If a subscription-context is specified as input then 'members' input must not be provided or must be empty.
- storage-service-resource-key => resource-key
Resource key of the storage service.
- subscription-context => string, optional
An optional client-defined string used to tag client-associated members when subscribing them to a storage service. Members that are subscribed to a storage service via subscription-context can be specified with the subscription-context element or individually by their members element when APIs are called that require identification of the storage service members they affect. An API call cannot have both the subscription-context element and the members element as inputs. If subscription-context is specified for a storage-service-conform API call, only the members subscribed via that specific context are checked. This value can be a maximum of 255 characters.
Outputs
- job-id => job-id
Object-id of the job created by this API call. The job's task list is a manifest that expresses the set of different tasks and the sequence in which they are executed in order to accomplish a high level workflow.
Creates a new storage service by specifying protection and provisioning strategy.Inputs
Outputs
- storage-service-resource-key => resource-key
Resource key of the new storage service.
Destroys a storage service. This API also destroys all protection artifacts, such as volumes and relationships, that are managed by this storage service. Managed protection artifacts include those that are either created by or imported into the storage service.Inputs
- storage-service-resource-key => resource-key
Resource key of the storage service to destroy.
Outputs
- job-id => job-id
Object-id of the job created by this API call. The job's task list is a manifest that expresses the set of different tasks and the sequence in which they are executed in order to accomplish a high level workflow.
Imports non-managed storage objects into an existing storage service. When you use the storage-service-import API, you must adhere to the following rules. If a rule is violated, the error code EINVALIDINPUT is returned, unless otherwise specified. - Each relationship must satisfy one of the following three conditions:
- The source volume is being imported into the root node.
- The source volume already exists in the connection's source node.
- The preceding relationship is also being imported.
- A relationship can only be imported into one storage service. If the same relationship exists in this or any storage service, the error code E_RELATIONSHIP_ALREADY_MANAGED is returned.
- If the subscription for the specified subscription context does not exist, a new subscription is created by the API.
- Source and destination volumes of the relationship can be associated with only a single node of the same storage service.
- Source or destination volume being imported into a non-root node of the storage service cannot be in the non-root node of any other storage service.
- If multiple relationships have the same source volume, each of these relationships must be imported into a different connection.
- Clients will need to call storage-service-conform to provision destination volumes and create relationships according to the topology of the storage service for the relationships imported in here.
Inputs
- storage-service-resource-key => resource-key
Resource key of the storage service.
- subscription-context => string, optional
The subscription context to use when importing root node member(s). The same rules and validations apply as described in the storage-service-subscribe API. When importing a relationship that contains a primary volume, the subscription context must be specified; if it is not, the E_CONTEXT_MISSING error code is returned. When importing a relationship that contains only non-primary volumes, the subscription context is ignored. This value can be a maximum of 255 characters.
There are number of use cases for storage service import:
- use case 1 - the primary volume of the relationship is currently not a member of the root node (i.e. import a relationship to one of the primary hops). The subscription context must be specified.
- use case 2 - the primary volume of the relationship is already a member of the root node (i.e. import a relationship to the second leg of a fanout storage service). The subscription context is optional.
- use case 3 - import a relationship from a secondary to a tertiary to a cascading storage service. The subscription context input will be ignored for that particular imported member.
Outputs
- job-id => job-id
ID of the job created by this API call. The job's task list is a manifest that expresses the set of different tasks and the sequence in which they are executed in order to accomplish a high level workflow.
Starts iteration to list storage services.Inputs
- max-records => integer, optional
The maximum number of records per return batch the caller wants to receive. The server may return smaller batch sizes based on performance constraints. If this field is not provided, then the server will return default number of records based on server performance.
- storage-service-client-tag => string, optional
Arbitrary client provided description of the program utilizing the storage service. If storage-service-client-tag is specified as input, then storage-service-resource-key input must not be provided.
- storage-service-resource-key => resource-key, optional
Resource key of a storage service. If specified, only the specified storage service is returned. If storage-service-resource-key is specified as input, then storage-service-client-tag input must not be provided.
- tag => string, optional
Specify the tag from the last call. It is not specified for the first call. For subsequent calls, copy values from the 'next-tag' obtained from the previous call. Any resource-filters specified in the first call must be included in subsequent calls.
Outputs
- next-tag => string, optional
Tag for the next call. Not present when there are no more objects to return.
- num-records => integer
The number of records returned in this call.
Starts iteration to list members of the storage service.Inputs
- max-records => integer, optional
The maximum number of records per return batch the caller wants to receive. The server may return smaller batch sizes based on performance constraints. If this field is not provided, then the server will return default number of records based on server performance.
- storage-service-resource-key => resource-key
Resource key of the storage service for which members are listed.
- subscription-context => string, optional
An optional client-defined string used to tag client-associated members when subscribing them to a storage service. The maximum length of a subscription-context is 255 characters.
- tag => string, optional
Specify the tag from the last call. It is not specified for the first call. For subsequent calls, copy values from the 'next-tag' obtained from the previous call. Any resource-filters specified in the first call must be included in subsequent calls.
Outputs
- next-tag => string, optional
Tag for the next call. Not present when there are no more objects to return.
- num-records => integer
The number of records returned in this call.
Modify the attributes of an existing storage service. Clients will need to call storage-service-conform to provision destination volumes and create relationships to align the topology of the storage service and the modifications made in this API.Inputs
- storage-service-client-tag => string, optional
Arbitrary string describing the name of the client program that is creating the storage service. This value can be a maximum of 32 characters.
- storage-service-contact-list => email-address[], optional
List of contact email addresses, each of which can be no longer than 255 characters.
- storage-service-description => string, optional
Description of the storage service, up to 255 characters long.
- storage-service-owner => string, optional
Name of the owner of the storage service, up to 255 characters long.
- storage-service-resource-key => resource-key
Resource key of a storage service object.
- storage-service-topology-info => storage-service-topology-info, optional
Topology to be modified. If any of the changes to the topology will cause the storage service to become non-conformant this will be mentioned in the job results. To change an existing element of a topology, you should specify all elements of the storage-service-topology-info. Any optional elements that are not specified will be set to their default value. For example, to modify the max-transfer-rate element of storage-service- topology-connection-info from 1024 KB/sec to 2048 KB/sec you should specify values for other storage-service-topology-connection-info elements such as lag-error-threshold and lag-warning-threshold otherwise default values for these elements are used. Similarly, omitting a node or connection from storage-service-topology-info will cause it to be removed from the storage service. A node omitted from storage-service-topology-info must not contain any protection artifacts, else an EINVALIDINPUT error will be returned. 'storage-service-cleanup' API should be used to remove the protection artifacts from the node, before deleting it. A storage service can only have maximum of one mirror relationship upstream from vault relationship in a mirror-vault cascade topology.
Outputs
- job-id => job-id
Refers to the job created for this call to storage-service-modify.
Updates data protection relationships for one or more members of the storage service. Storage service has a built-in topology relationship defined between the nodes. When the storage-service-conform API is called, protection relationships are created but not initialized. The first call to the storage-service-protection-update-start API triggers initialization (baseline data transfer). Subsequent calls trigger protection relationship updates.Inputs
- destination-node-resource-key => resource-key, optional
Resource key of destination node of the storage service. When destination-node-resource-key specified, members will be updated until the destination node; if not specified, members will be updated to the edge node(s) of the storage service topology. If provided destination node doesn't belong to this storage service, EINVALIDINPUT is returned. If source and destination nodes are specified, there must be a continuous downstream path between the two nodes, otherwise, EINVALIDINPUT is returned.
- member-snapshots => resource-key[], optional
Resource keys of snapshot copies of the member whose relationships are to be updated. Snapshot copy existence on destination is verified after transfer completion. Snapshot copies must be of a member storage object which belongs to the root node or source node of the storage service if source node is specified. That member must have at least one active subscription. Otherwise, E_OBJECT_NOT_SUBSCRIBED error is returned. If an empty list is provided or this input is not provided, relationships for all the subscribed members are updated and snapshot copy existence is not verified. If specified, 'members' and 'subscription-context' input must not be provided, otherwise, EINVALIDINPUT is returned.
- members => resource-key[], optional
Resource keys of the storage objects whose relationships are to be updated. Members must belong to the root node of the storage service. Members should have at least one active subscription with the storage service, otherwise E_OBJECT_NOT_SUBSCRIBED error is returned. Only relationships for storage objects specified in the 'members' list are updated. If specified, 'member-snapshots' and 'subscription-context' must not be provided, otherwise, EINVALIDINPUT will be returned. If an empty list is provided or this input is not provided, relationships for all the subscribed members are updated. When this input is used, Data ONTAP snapmirror-update will be invoked and will not verify snapshot existence. If storage service contains vault relationships, snapshot snapmirror-label attribute must be set to be used by the vaulting system to identify a vaulting scheme.
- source-node-resource-key => resource-key, optional
Resource key of source node of storage service. When source-node-resource-key specified, members will be updated starting at the source node; if not specified, members will be updated starting at root node of the storage service. If provided source node doesn't belong to this storage service, EINVALIDINPUT is returned.
- storage-service-resource-key => resource-key
Resource key of the storage service.
- subscription-context => string, optional
An optional client-defined string used to tag client-associated members when subscribing them to a storage service. Members that are subscribed to a storage service via subscription-context can be specified with the subscription-context element or individually by their members element when APIs are called that require identification of the storage service members they affect. An API call cannot have both the subscription-context element and the members element as inputs. If specified, only the relationships for members subscribed via this context are updated. If omitted, then relationships for all the members of the root node are updated. If either 'members' or 'member-snapshots' input are specified, 'subscription-context' input must not be provided or must be empty, otherwise, EINVALIDINPUT is returned. This value can be a maximum of 255 characters. When this input is used, Data ONTAP snap-mirror-update will be invoked for members of this context and will not verify snapshot existence. If storage service contains vault relationships, snapshot snapmirror-label attribute must be set to be used by the vaulting system to identify a vaulting scheme.
Outputs
- job-id => job-id
Object-id of the job created by this API call. The job's task list is a manifest that expresses the set of different tasks and the sequence in which they are executed in order to accomplish a high level workflow.
Subscribes objects to a storage service. Currently, volumes are subscribable objects. Clients will need to call storage-service-conform to provision destination volumes and create relationships for the objects subscribed in here.Inputs
- storage-service-resource-key => resource-key
Resource key of the storage service.
- subscription-context => string
An optional client-defined string used to tag client-associated members when subscribing them to a storage service. Members that are subscribed to a storage service via subscription-context can be specified with the subscription-context element or individually by their members element when APIs are called that require identification of the storage service members they affect. An API call cannot have both the subscription-context element and the members element as inputs. The subscription context is provided as a convenience to the caller. The context may be used as a handle referring to all objects subscribed under the same context. The same object can be subscribed multiple times under different contexts. An object is fully unsubscribed from the storage service only after it is unsubscribed via all the subscription contexts.
This string must be unique within the storage service so that no two clients confuse their subscriptions.
The API creates a subscription for each new context, then adds storage objects to that subscription as subscription members. If all subscription members are removed, the subscription object becomes unnecessary, and the subscription is deleted at that point.
The maximum length is 255 characters.
- subscription-members => resource-key[], optional
Resource keys of the object(s) subscribing to the storage service. If an empty list is provided or this input is not provided, then an empty subscription object is created.
Subscription members are always added to that storage service's primary node.
Only a read-writable volume can be subscribed to a storage service with mirror-vault cascade topology.
A volume can be subscribed to only one storage service with mirror-vault cascade topology.
If an object is already subscribed with the context provided in subscription-context, an E_OBJECT_ALREADY_SUBSCRIBED is returned.
Outputs
- job-id => job-id
Object-id of the job created by this API call. The job's task list is a manifest that expresses the set of different tasks and the sequence in which they are executed in order to accomplish a high level workflow.
Returns metadata of a subscription context set by storage-service-subscription-context-set-metadata API.Inputs
- storage-service-resource-key => resource-key
Resource key of the storage service associated with the specified context.
- subscription-context => string
The client-defined context string used to tag client-associated members when subscribing them to a storage service. If the specified subscription-context does not exist, E_CONTEXT_NOT_FOUND is returned. This value can be a maximum of 255 characters
Outputs
Sets metadata for an existing subscription context for a given storage service. The metadata is automatically deleted if the subscription context is removed for the storage service.Inputs
- metadata => keyvalue[]
Opaque metadata for this context. Metadata is usually set and interpreted by an external application. A maximum of 16 key value pairs are allowed per subscription context. If number of entries exceed this number with this request, E_MAX_ENTRY_COUNT_EXCEEDED is returned.
- storage-service-resource-key => resource-key
Resource key of the storage service associated with the specified context. If the storage service is being deleted, E_STORAGE_SERVICE_MARKED_FOR_DELETION is returned.
- subscription-context => string
The client-defined context string used to tag client-associated members when subscribing them to a storage service. If the specified subscription-context does not exist, E_CONTEXT_NOT_FOUND is returned. This value can be a maximum of 255 characters.
Outputs
Iterate over subscriptions of a storage service. The user must specify as input: the storage-service-resource-key element alone, the subscription-resource-key element alone, or a combination of (storage-service-resource-key, subscription-context) elements. The user cannot leave all three inputs unspecified.Inputs
- max-records => integer, optional
The maximum number of records per return batch the caller wants to receive. The server may return smaller batch sizes based on performance constraints. If this field is not provided, then the server will return default number of records based on server performance.
- storage-service-resource-key => resource-key, optional
Resource key of the storage service whose subscriptions are listed.
- subscription-context => string, optional
An optional client-defined string used to tag client-associated members when subscribing them to a storage service. The maximum length of a subscription-context is 255 characters.
- subscription-resource-key => resource-key, optional
Resource key of the subscription returned. Subscription resource keys are unique, so the storage-service-resource-key input does not need to be specified. If specified, only subscription information for this specific subscription-resource-key is returned. If subscription-resource-key and (storage-service-resource-key, subscription-context) are specified, an error is returned.
- tag => string, optional
Specify the tag from the last call. It is not specified for the first call. For subsequent calls, copy values from the 'next-tag' obtained from the previous call. Any resource-filters specified in the first call must be included in subsequent calls.
Outputs
- next-tag => string, optional
Tag for the next call. Not present when there are no more objects to return.
- num-records => integer
The number of records returned in this call.
Unsubscribes members from an existing storage service. If member is unsubscribed, it remains in the storage service but is marked disabled. When a member is marked disabled, all of its protection artifacts, such as relationships and storage objects, are preserved; however, it does not actively participate in future replication updates or conformance checks. NOTE: To relinquish a member, or relinquish or destroy its related protection artifact members you can use the storage-service-cleanup API.
Inputs
- storage-service-resource-key => resource-key
Resource key of the storage service.
- subscription-context => string
A client-defined string used to tag client-associated members when subscribing them to a storage service. Members that are subscribed to a storage service via subscription-context can be specified with the subscription-context element or individually by their members element when APIs are called that require identification of the storage service members they affect. The given 'subscription-members' subscribed to the storage service with this context are unsubscribed. If 'subscription-members' input is not specified, all objects subscribed to the storage service with this context are unsubscribed.
If all subscription members are removed for a given context, the subscription-context is automatically deleted. This value can be a maximum of 255 characters.
- subscription-members => resource-key[], optional
Resource keys of the objects to unsubscribe from the storage service. Members must belong to the root node of the storage service. Members should be subscribed to the storage service via input 'subscription-context' tag, otherwise E_OBJECT_NOT_SUBSCRIBED error is returned. If an empty list is provided or this input is not provided, all the subscribed members under the specified context tag are unsubscribed.
Outputs
- job-id => job-id
Identifier of the job created by this API call. The job's task list is a manifest that expresses the set of different tasks and the sequence in which they are executed in order to accomplish a high level workflow.
Lists all the available workflows that storage service supports. The workflows returned in output are uniquely identifiable across workflow listings in OnCommand product suite.Inputs
Outputs
Retrieve system information.Inputs
Outputs
- system-id => string
The system id for this installed instance of the application. This identifier is used to identify this application instance within MyAutosupport.
- version => string
A string that adheres to the following regular expression: [1-9][0-9]+\.[1-9][0-9]+.* The first number is the major version. The second number is the minor version. Example: 3.5.0.4726
Iterate over volumes contained entirely within a single aggregate. Currently returns flexible volumes and infinite volume constituents.Inputs
- max-records => integer, optional
The maximum number of records per return batch the caller wants to receive. The server may return smaller batch sizes based on performance constraints. If this field is not provided, then the server will return default number of records based on server performance.
- resource-filter => resource-key, optional
Resource by which to filter the result set. Any resource-filters specified in the first call must be included in subsequent calls. The allowed object types for this argument are: - cluster
- cluster-node
- aggregate
- volume
If resource-filter identifies a volume, that single volume will be returned. If resource-filter resolves to more than one volume, all of them will be returned. If no resource-filter is provided, all volumes will be listed.
- tag => string, optional
Specify the tag from the last call. It is not specified for the first call. For subsequent calls, copy values from the 'next-tag' obtained from the previous call. Any resource-filters specified in the first call must be included in subsequent calls.
Outputs
- next-tag => string, optional
Tag for the next call. Not present when there are no more objects to return.
- num-records => integer
The number of records returned in this call.
Iterate over volumes.Inputs
- max-records => integer, optional
The maximum number of records per return batch the caller wants to receive. The server may return smaller batch sizes based on performance constraints. If this field is not provided, then the server will return default number of records based on server performance.
- resource-filter => resource-key, optional
Resource by which to filter the result set. Any resource-filters specified in the first call must be included in subsequent calls. The allowed object types for this argument are: If resource-filter identifies a volume, that single volume will be returned. If resource-filter resolves to more than one volume, all of them will be returned. If no resource-filter is provided, all volumes will be listed.
- tag => string, optional
Specify the tag from the last call. It is not specified for the first call. For subsequent calls, copy values from the 'next-tag' obtained from the previous call. Any resource-filters specified in the first call must be included in subsequent calls.
Outputs
- next-tag => string, optional
Tag for the next call. Not present when there are no more objects to return.
- num-records => integer
The number of records returned in this call.
Ends the iteration to list the history of volume moves.Inputs
- tag => string
Tag from a previous volume-move-history-list-info-iter-start.
Outputs
Get next few records in the iteration started by volume-move-history-list-info-iter-start.Inputs
- maximum => integer
The maximum number of entries to retrieve.
- tag => string
Tag from a previous volume-move-history-list-info-iter-start.
Outputs
- records => integer
The number of records actually returned.
Starts the iteration to list the history of volume moves.Inputs
Outputs
- records => integer
Number which tells you how many items have been saved for future retrieval with volume-move-history-list-info-iter-next.
- tag => string
An opaque handle used to identify a temporary store. Used in subsequent calls to volume-move-history-list-info-iter-next or volume-move-history-list-info-iter-end.
Iterates through list of VserversInputs
- max-records => integer, optional
The maximum number of records per return batch the caller wants to receive. The server may return smaller batch sizes based on performance constraints. If this field is not provided, then the server will return default number of records based on server performance.
- resource-filter => resource-key, optional
Resource by which to filter the result set. Any resource-filters specified in the first call must be included in subsequent calls. The allowed object types for this argument are: If resource-filter identifies a vserver, that single vserver will be returned. If resource-filter resolves to more than one vserver, all of them will be returned. If no resource-filter is provided, all vservers will be listed.
- tag => string, optional
Specify the tag from the last call. It is not specified for the first call. For subsequent calls, copy values from the 'next-tag' obtained from the previous call. Any resource-filters specified in the first call must be included in subsequent calls.
Outputs
- next-tag => string, optional
Tag for the next call. Not present when there are no more objects to return.
- num-records => integer
The number of records returned in this call.
Provides information about volumes moving into or out of aggregates.Fields
- volume-in-count => integer
Total number of volumes currently being moved into this aggregate whose volume move state is in-progress or pause.
- volume-in-total-size => integer
Sum of the sizes, in bytes, of all the volumes currently being moved into this aggregate whose volume move state is in-progress or pause.
- volume-out-count => integer
Total number of volumes currently being moved out of this aggregate whose volume move state is in-progress or pause.
- volume-out-total-size => integer
Sum of the sizes, in bytes, of all the volumes currently being moved out of this aggregate whose volume move state is in-progress or pause.
Information about a aggregate.Fields
- aggregate-name => string
Full hierarchical name of the aggregate present in the output. The name is of the form, cluster-node:myaggr.
- aggregate-space-status => object-space-status
Space status of the aggregate. This indicates the fullness of the aggregate in terms of whether the percentage of used space with respect to total size of the aggregate has reached or crossed the fullness thresholds given in aggregate-nearly-full-threshold and aggregate-full-threshold.
- aggregate-state => string
State of aggregate. Following are the possible values: - offline
- online
- restricted
- iron_restricted
- creating
- failed
- partial
- destroying
- frozen
- inconsistent
- mounting
- quiesced
- quiescing
- reverted
- unmounted
- unmounting
- unknown
- block-type => file-system-block-type
File system block type of the aggregate. The volumes on both the source and destination sides of a SnapMirror relationship must be of the same block type.
- hybrid-cache-size-total => integer
Total cache size (in bytes) in a hybrid aggregate. If the referenced aggregate is restricted or offline, or if it is not a hybrid aggregate, a value of 0 is returned.
- time-to-full => integer, optional
Estimated amount of time left in seconds for the aggregate to become full. This is returned as empty when the estimated amount of time is more than a year. This can happen due to a very low or negative rate of consumption of space in the aggregate. Also, this field will not be returned if sufficient history data about a given aggregate is unavailable.
Sizes of various parameters of an aggregate.Fields
- size-used-per-day => integer, optional
The capacity (in bytes) used per day. This can be either positive or negative depending on the growth of used space in the aggregate. The information is based on the regression slope of the aggregate usage history data.
Cluster's information.Fields
- cluster-name => string
This is the name of the cluster. Length: [1..255]
- resource-key => resource-key
The resource key for this cluster.
Information about the size of the aggregates in a node.Fields
Collected information about disks on a node. Optional items will not be returned if the value is not known.Fields
Information for a given node.Fields
- cluster-node-resource-key => resource-key
The resource key of the node.
- cluster-node-uuid => string
The univerally unique identifier for the node. It is a 36-character string composed of 32 hexadecimal characters. For example, '542366ea-a024-11dd-9caa-7302e474c5ae'.
- cluster-resource-key => resource-key
Resource-key of the cluster where the node is present.
- env-over-temperature-status => string, optional
An indication of whether the hardware is currently operating outside of its recommended temperature range. The hardware will shutdown if the temperature exceeds critical thresholds. Possible values are: "normal", "hot"
- nvram-battery-status => string, optional
Status of the NVRAM battery. Possible values include: - battery_ok
- battery_partially_discharged
- battery_fully_discharged
- battery_not_present
- battery_near_end_of_life
- battery_at_end_of_life
- battery_unknown
- battery_over_charged
- battery_fully_charged
- serial-number => string
Serial number of the node.
Collected information about a failover interconnect between two nodes.Fields
- interconnect-links => string, optional
States of the individual interconnect links e.g. VIA Interconnect is down (link 0 down, link 1 down) VIA Interconnect is up (link 0 down, link 1 up) VIA Interconnect is up (link 0 up, link 1 down)
Collected information about a flash card on a node. Optional items will not be returned if the value is not known.Fields
- serial-number => string
unique 10 digit serial number of the flash device.
- status => string
The current status of the device. Possible values are "online", "offline_failed" and "offline_threshold".
License information of the Data ONTAP service.Fields
- package-name => string
Name of the licensed Data ONTAP service.
Possible values: - base
- nfs
- cifs
- iscsi
- fcp
- cdmi
- snaprestore
- snapmirror
- flexclone
- snapvault
- snaplock
- snapmanagersuite
- snapprotectapps
- v_storageattach
- snaplock_enterprise
- insight_balance
- serial-number => string
The serial number of the owner (cluster, or cluster-node). Length: [1..64]
Information about the storage failover configuration of this node.Fields
- giveback-state => string, optional
Giveback state of the node. Possible values are: - nothing_to_gb - No partner aggregates owned by local node.
- not_attempted_yet - Local node owns partner's aggregates and a giveback has not been attempted yet.
- giveback_in_progress - Giveback is in progress. Refer to current-giveback-module field to get the current module, the giveback process is in.
- giveback_failed_autogiveback_disabled- Previous giveback failed and auto giveback is disabled. Refer to current-giveback-module to get the module in which giveback process failed.
- giveback_failed_autogiveback_scheduled- Previous giveback failed and an auto giveback is scheduled. Refer to current-giveback-module to get the module in which giveback process failed. Refer time-until-autogiveback field to check time remaining before an auto giveback is initiated.
- previous_giveback_failed - Previous giveback failed. Refer to current-giveback-module to get the module in which giveback process failed.
- giveback_vetoed_no_di - Normal giveback not possible as disk inventory from partner has not yet been received.
- giveback_vetoed_missing_disks - Normal giveback not possible as the partner is missing some of its files system disks.
- autogiveback_scheduled - An auto giveback is scheduled Refer time-until-autogiveback field to check time remaining before an auto giveback is initiated.
- autogiveback_deferred - Auto giveback is deferred because the partner node was not ready to receive aggregates when the auto giveback timer expired. An auto giveback will be initiated as soon as the partner node is up and ready to receive aggregates.
- node_upgrade_in_progress - Local node owns partner's aggregates as part of node upgrade process.
- sfo_aggr_giveback_failed - Giveback of SFO aggregates failed. Call cf-aggregate-giveback-status API for more information regarding giveback failure.
- sfo_aggr_giveback_in_progress - Giveback of SFO aggregates is in progress. Call cf-aggregate-giveback-status API for more information regarding giveback status.
- partial_giveback - Local node owns partner's SFO aggregates.
- partner_spare_disks_giveback_pending- Local node owns partner's spare disks.
- partner-name => obj-name
The fully qualified domain name of the partner controller if this node is configured as part of an HA pair. Length: [1..255]
- sfo-state => string
Storage failover configuration state. Possible values: "connected", "takeover_scheduled", "takeover_started", "takeover", "taken over", "takeover_failed", "giving_back", "giveback_partial_waiting", "giveback_partial_connected", "waiting_for_root_aggr", "waiting", "in_maintenance_mode", "pending_shutdown", "error".
- sfo-status => string
Status of the SFO of the node. Possible values: "not_configured", "enabled", "disabled".
Information about relationship.Fields
- is-healthy => boolean
True if the most recent update succeeded and if it was a scheduled update occurred as scheduled. Otherwise false.
- max-transfer-rate => integer
Specifies the upper bound at which data is transferred between clusters, in kilobytes per second. 0 is unlimited which permits the relationship to fully utilize the available network bandwidth. The max-transfer-rate option does not affect relationships confined to a single cluster.
- relationship-progress => integer, optional
The total number of bytes that have been processed so far for the current activity of the relationship as returned in the relationship-status. This is set only when the relationship-status indicates activity is in progress.
- relationship-resource-key => resource-key
Resource key of the relationship.
- storage-service-connection-resource-key => resource-key, optional
Resource key of the storage service connection.
- storage-service-name => obj-name, optional
Name of the storage-service owning this relationship. Not present if this relationship is not owned by any storage service.
- storage-service-resource-key => resource-key, optional
Resource key of the storage-service owning this relationship. Not present if this relationship is not owned by any storage-service.
Restore request information pertaining to a single restore request.Fields
- destination-path => string, optional
Path to the destination directory where the data is restored. Path is relative to the root of the destination volume and should not contain name of the file. If omitted, data is restored to the root of the volume. For in-place volume restore, a destination-path must not be specified. If both destination-path and use-snapshot-restore-volume inputs are specified and use-snapshot-restore-volume is set to true, then EINVALIDINPUT is returned. Leading '/' is optional in the destination-path. Examples of the destination-path are "dir1/dir2", "/dir1/dir2" or "/". If the destination-path is "/dir1/dir2", it is interpreted as "<destination-volume>/dir1/dir2". '/' must be used in place of '\' when restoring to or from a Windows path.
- preserve-directory-hierarchy => boolean, optional
Flag to preserve the directory hierarchy in the restore path. When true the directory hierarchy is recreated during restore. For example, if the path of the storage object 'c' to be restored is originally located on /a/b/c within the given Snapshot copy and the destination path to where it needs to be stored is /dest, then after restore, 'c' is stored at /dest/a/b/c. When false, 'c' is stored at /dest/c. Default is false.
- source-path => string, optional
Path within the Snapshot copy of the storage object that is being restored. If use-snapshot-restore-volume flag is specified, then the source-path element must not be specified. Source path is relative to the Snapshot copy location and it can be a directory or a file. If a directory is specified, the files and subdirectories of that directory are restored. Leading '/' is optional in the source-path. Examples of the source-path are "dir1/dir2" or "/dir1/dir2" or "/dir1/dir2/file1". If the source-path is "/dir1/dir2", it is interpreted as "<source-volume>/.snapshot/<snapshot>/dir1/dir2". '/' must be used in place of '\' when restoring to or from a Windows path.
- use-snapshot-restore-volume => boolean, optional
The flag to use the snapshot-restore-volume API. This flag is applicable only for in-place restoration of a volume from a local Snapshot copy. When true, this flag indicates that Data ONTAP's snapshot-restore-volume API is used for volume restoration. As a side-effect, any Snapshot copies created after this Snapshot copy creation no longer remain on the source volume after the restore. In effect, after the reversion, the volume is in the same state as it was when the Snapshot copy was created. If the volume is in a SnapMirror relationship, then only Snapshot copies that were created after the last SnapMirror update could be used. Otherwise, the job will fail indicating that the volume has a locked Snapshot copy. If this flag is set true, then both source-path and destination-path must not be specified. Otherwise, EINVALIDINPUT is returned.
WARNING: The storage system will reboot after the restore if the specified snapshot-identifier belongs to the root volume of a node Vserver. See Data ONTAP's guide for the "snapshot-restore-volume" API for more information.
When this flag is not specified or false, the snapshot-restore-volume API is not used. Default is false.
State of the relationship. Possible values are: - uninitialized
- snapmirrored
- broken-off
Fields
Status of the relationship. Possible values are: - idle
- transferring
- checking
- quiescing
- quiesced
- queued (Data ONTAP 8.2 and higher)
- preparing (Data ONTAP 8.2 and higher)
- waiting (Data ONTAP 8.2 and higher)
- finalizing (Data ONTAP 8.2 and higher)
- aborting (Data ONTAP 8.2 and higher)
Fields
Type of a relationship. Possible values are: - data_protection (aka "mirror")
- load_sharing
- vault (Data ONTAP 8.2 and higher)
- restore (Data ONTAP 8.2 and higher)
- transition_data_protection (Data ONTAP 8.2 and higher)
Fields
Information used to identify a Snapshot copy within the storage system. In some cases the snapshot-identifier element might match multiple Snapshot copies. A unique match in the result is guaranteed, if 'snapshot-resource-key' is provided in the input of snapshot-identifier.Fields
- snapshot-version-uuid => uuid, optional
A unique identifier of this Snapshot copy and its logical data layout. If any two Snapshot copies exist that have the same version UUID, their contents must be logically equivalent. Snapshot copies within the same volume might have the same snapshot-version-uuid.
- volume-resource-key => resource-key, optional
Resource key of the original source volume where the Snapshot copy resides.
Type of overlying disk container. Possible values: - "aggregate" - Container is an aggregate.
- "broken" - Container is broken pool.
- "labelmaint" - Container is online label maintenance list.
- "maintenance" - Container is disk maintenance center.
- "spare" - Container is spare pool.
- "unassigned" - Disk ownership has not been assigned.
- "unknown" - Container is currently unknown.
- "volume" - Container is a traditional volume.
Fields
Information about a disk.Fields
- aggregate-name => obj-full-name, optional
Name of the aggregate to which the disk belongs. When the aggregate the disk belongs to is not known or disk is a spare disk, aggregate-name will not be returned. The name is any simple name such as myaggr.
- cluster-resource-key => resource-key
Resource key of the cluster to which the disk belongs.
- disk-name => string
Name of the disk. Always present in the output. The name will look like "data disk 0b.18", "parity disk 0b.17", "dparity disk 0b.16" etc. Maximum length of 64 characters.
- disk-uid => string, optional
Identifier of the disk. This will be the Unique Identifier (UID) of the disk. When UID of a disk is not known, this field will not be returned. Maximum length of 90 characters. Format of disk UUID will look like: 2000000C:50A9022F:00000000:00000000:00000000:00000000: 00000000:00000000:00000000:00000000
- effective-disk-type => string
Effective type of the disk. Disks can report different disk-type, but the same effective-disk-type. Disks with the same effective-disk-type are compatible for use within the same aggregate.
- node-name => obj-name
Name of host to which the disk belongs. Always present in the output. The name is any simple name such as myhost.
- plex-name => string, optional
Name of the plex to which the disk belongs. The name is any simple name such as plex0. When the plex the disk belongs to is not known or disk is a spare disk, plex-name will not be returned. Maximum length of 64 characters.
- raidgroup-name => string, optional
Name of the raidgroup to which the disk belongs. The name is any simple name such as rg0. When the raidgroup the disk belongs to is not known or disk is a spare disk, raidgroup-name will not be returned. Maximum length of 64 characters.
Contains per path statistics, errors and other related data.Fields
- disk-port-name => string, optional
Disk port name associated with this path. This has the form :, where is either "FC" for FibreChannel, or "SA" for SAS, and is either "A" or "B". Omitted for non-disk target. Possible values:
- "FC:A"
- "FC:B"
- "SA:A"
- "SA:B"
- node-name => obj-name
Name of the controller with the initiator port for this path. Always present in the output. The name is any simple name such as myhost.
- node-resource-key => resource-key
Resource key of the controller with the initiator port for this path.
Summary Disk Information.Fields
- total-space => integer
Total disk space in bytes. This is the sum of the raw space, parity space, and spare space.
Summary LUN Information.Fields
- raw-space => integer
Total data LUN space in bytes.
- spare-space => integer, optional
Total spare LUN space in bytes. This is not returned if the specified object is an aggregate.
- total-space => integer
Total LUN space in bytes. This is the sum of the raw space and spare space.
Result of action taken on event. Timestamp returned on success, and error code on failure.Fields
- timestamp => integer, optional
Timestamp when the event was acknowledged/resolved/assigned. Timestamps absent for IDs that can not be found, or have already been acknowledged/resolved.
Event identifier.Fields
Event information structureFields
- event-arguments => key-value-pair[], optional
Argument list for this particular event. Present only if include-event-arguments was set to true in the event-list-iter-start call. If the event has no arguments, this element will be empty. The arguments returned are dependent on the event type and status.
- event-id => integer
Id of the event.
- event-name => string
Name of the event. The list of all event names can be obtained using eventclass-list APIs. The element eventclass-info -> event-names[] -> event-name-pretty gives the name of an event.
- event-type => string
Type or class to which the event belongs to. A list of event types can be obtained by using eventclass-list-iter APIs. The element eventclass-info -> event-class-name in eventclass-info gives the name of an event type.
Event note.Fields
State of the event. Possible values are: 'new', 'acknowledged', 'resolved', 'obsolete'.
- new: The state of an event when it is first triggered.
- acknowledged: The state of an event which has been acknowledged by a user (and is being worked on). Both new and acknowledged events identify events which are open and need user attention.
- resolved: The state of an event after a user explicitly resolves it.
- obsolete: The state of an event which is no longer deemed valid by the system. Both resolved and obsolete events together identify events that no longer need user attention.
Fields
range of event timestampsFields
Array of event filters.Fields
Severity of the event. Possible values are:
- aggregate_availability
- aggregate_capacity
- controller_availability
- disk_failure
- disk_shelf_availability
- lun_availability
- lun_capacity
- node_availability
- node_hardware_failure
- port_failure
- qtree_capacity
- volume_availability
- volume_capacity
- vserver_data_availability
Fields
Impact area of the event. Possible values are: 'configuration', 'capacity', 'availability', 'protection'
Fields
Impact level of the event. Possible values are:
- incident: An error or critical event.
- risk: A warning event which could lead to an incident.
- event: A simple event from Data ONTAP.
Fields
Severity of the event. Possible values are: 'normal', 'information', 'warning', 'error', 'critical'
Fields
Information about one igroup.Fields
- igroup-type => string
Specifies the type (protocol) of the igroup. Possible values are: 'fcp', 'iscsi', and 'mixed'
- os-type => string
Specifies the operating system of the igroup. Possible values are: 'windows', 'linux', 'aix', 'hpux', 'solaris', 'hyper_v', 'vmware', 'xen', 'netware', 'openvms' and 'default'.
- portset-name => obj-name, optional
Name of the portset to which the igroup is bound to. This element will be present only if the igroup is bound to a portset. Portset contains a set of iSCSI Target Portal Groups and/or FCP logical interfaces. The initiators in the igroup can access the mapped LUNs only through the ports added to the portset.
- resource-key => resource-key
Resource key of this igroup.
Name of the initiator.Fields
Detail information specific to the task base on task type.Fields
Opaque identifier for a job.Fields
Information about a job. A job may be triggered by an explicit user action or through scheduled operations. Each info includes current state of execution and status of the operation.Fields
- estimated-percent-complete => integer, optional
Estimated percent of the work completed for a job. Hold the aggregate estimated percent of work completed based on the completion of all job tasks. This information is an estimate and may not always be available.
- estimated-time-to-complete => integer, optional
Estimated time (measured in seconds) for job completion. This will hold the aggregate estimated time to completion based on time to completion of all job tasks and in accordance to their execution dependency order. This information is an estimate and may not always be available.
- job-id => job-id
Identifier of this job.
- status => job-status
Status of the job indicating the overall success or failure. Overall status is computed based on status of the actions performed as part of the job.
The state of the job. The possible values are: - queued
- running
- completed
- aborting
- aborted
Fields
The status of the job. Rolled up status of the whole job based on all tasks. The possible values are: - normal
- warning
- partial_failures
- error
Fields
Opaque identifier for a job task.Fields
Information about the action for executing one task.Fields
- end-time => timestamp, optional
Time at which the task completed.
- estimated-percent-complete => integer, optional
Estimated percent of the work completed for a task. Some task allow tracking of progress, such as in the case of data transfer. For this type of tasks, this element will hold the estimated percent completed.
- estimated-time-to-complete => integer, optional
Estimated time for task completion (measured in seconds).
- failure-reason => string, optional
Reason causing task failure.
- job-id => job-id
Identifier of the parent job.
- start-time => timestamp, optional
Time at which the task started.
- type => task-type
Type of the task. Each task type will have additional type specific data.
Job types. The possible values are: - protect_storage_service_subscribe
- protect_storage_service_unsubscribe
- protect_storage_service_update
- protect_storage_service_conform
- protect_storage_service_import
- protect_storage_service_cleanup
- protect_storage_service_modify
- protect_storage_service_destroy
- protect_restore
- monitor
- active_management
- compensation
Fields
Details specific to the SnapMirror relationship operations.Fields
- destination-node-resource-key => resource-key, optional
Resource key of the destination node in topology graph of this storage service.
- relationship-resource-key => resource-key, optional
Resource key of the relationship between source-member and destination-member. Returned only when the task-type is: - protect_relationship_initialize
- protect_relationship_update
- protect_relationship_transfer_progress
- protect_relationship_destroy
- protect_relationship_abort
- protect_relationship_quiesce
- source-node-resource-key => resource-key, optional
Resource key of the source node in topology graph of this storage service.
Information specific to execution state audit events.Fields
- submitted
- started
- canceled
- aborted
- completed
- timestamp => timestamp
Time at which the state changed.
Detail information specific to the task base on task type.Fields
- storage-service-name => obj-name
Name of storage service used in operation.
- subscription-context => string, optional
Subscription context used in the request which generated the job. Only present for a jobs generated with a request containing specific subscription context.
Detailed information specific to the task based on task type.Fields
An object that a task interacted with.Fields
Task message information.Fields
Task message types. The possible values are: Fields
The state of the task. The possible values are: - waiting
- queued
- running
- completed
Fields
The status of the task. Valid values are: Fields
Task types. Valid values are: - protect_secondary_provision
- protect_secondary_destroy
- protect_secondary_offline
- protect_relationship_create
- protect_relationship_initialize
- protect_relationship_modify
- protect_relationship_update
- protect_relationship_transfer_progress
- protect_relationship_destroy
- protect_relationship_abort
- protect_relationship_quiesce
- protect_restore
- protect_restore_ndmp_utility
- protect_storage_service_utility
- protect_vserver_peering
- monitor_discover
- active_quota_management
- empty
- administrative
- compensation
Fields
Data transfer progress update details.Fields
- relationship-progress => integer, optional
The total number of bytes that have been processed so far for the current transfer activity of the relationship.
Name and Id of an igroup.Fields
- igroup-name => obj-name
Name of the igroup.
Information about a lun.Fields
- alignment => string
Alignment of the LUN. Possible values: - aligned
- misaligned
- partial_writes
- indeterminite
- comment => string
User-specified comment for the LUN. This field is unavailable when the LUN is in a snapshot or while the LUN fenced for a restore operation.
- is-space-alloc-enabled => boolean
Whether or not the LUN has space allocation enabled. This field is unavailable when the LUN is in a snapshot or while fenced for a restore operation.
- lun-class => string
The class of the LUN. Possible values: - regular - The LUN is intended for normal blocks access
- protocol_endpoint - The LUN is a VMware vvol protocol endpoint
- vvol - The LUN is a VMware vvol data LUN
- lun-path => obj-name
Path name of the lun including the volume or qtree where the lun exists. The name will be similar to myvol/mylun or myvol/myqtree/mylun.
- mapped => boolean
Whether or not the LUN is mapped to any initiators. "true" if mapped, "false" otherwise. This field is not applicable to LUNs where the lun-class attribute is set to 'vvol'.
- multiprotocol-type => string
The image type of the lun. This value determines the proper alignment settings for the desired host filesystem layout. Possible values: - aix - The LUN will be used to store an AIX filesystem.
- hpux - The LUN will be used to store an HP-UX filesystem.
- hyper_v - The LUN will be used to store Hyper-V VHDs (Virtual Hard Disks).
- image - The default type indicating no assumptions will be made about the data stored in the LUN.
- linux - The LUN will be used to store a Linux filesystem with no partition table.
- netware - The LUN will be used to store a Netware filesystem.
- openvms - The LUN will be used to store an OpenVMS filesystem.
- solaris - The LUN will be used to store a Solaris filesystem, in a single slice partition.
- solaris_efi - The LUN will be used to store a Solaris filesystem with an EFI partition table.
- vmware - The LUN will be used to store a VMware Virtual Machine File System (VMFS) containing Virtual Machine Disk Files (VMDKs).
- windows - The LUN will be used to store a Windows filesystem with a Master Boot Record (MBR) partition table.
- windows_2008 - The LUN will be used to store a Windows filesystem with a Master Boot Record(MBR) partition table on Windows 2008 or later.
- windows_gpt - The LUN will be used to store a Windows filesystem with a GUID Partition Table (GPT).
- qtree-name => obj-name, optional
Name of qtree on which the lun resides. Present in the output only if the lun resides on a qtree. The name is any simple name such as myqtree.
- resource-key => resource-key
Resource key of this lun.
- serial-number => string
Serial number of the LUN. The serial number is a 12-character string formed of upper and lower-case letters, numbers, slashes (/), and hyphen (-) characters.
- volume-name => obj-name, optional
Name of volume on which the lun resides. The name is any simple name such as myvol. volume-name is not returned if the lun belongs to a qtree and the authenticated admin does not have the required capability.
- vserver-name => obj-name
Name of the vserver on which the lun resides. Always present in the output. The name is any simple name such as myvserver.
- vserver-resource-key => resource-key
Resource key of the Vserver to which the lun belongs.
Data protocol configured on an interface. Possible values: - "nfs" - Used for NFS connections,
- "cifs" - Used for CIFS connections,
- "iscsi" - Used for iSCSI connections,
- "fcp" - Used for Fibre Channel connections,
- "fcache" - Used for FlexCache connections,
- "none" - Used for management. Does not serve any file protocols.
Fields
Information of about one interface.Fields
- administrative-status => string, optional
The administrative status of the interface. The administrative status can differ from the operational status; for instance, if you specify the status as up but a network problem prevents the interface from functioning, the operational status remains as down. Possible values:
- cluster-name => string
Name of the cluster that the interface resides on.
- owner-resource-key => resource-key
The resource key for the owner of the interface. The owner is determined from the network interface's role. If the role is "data" then the owner will be a vserver. If the role is "node_mgmt" then the owner will be a cluster node. Otherwise the owner will be a cluster.
- resource-key => resource-key
The resource key for the interface.
List of initiator group bound to the portset.Fields
- igroup-resource-key => resource-key
Identifier of initiator group.
Information about a portset.Fields
- resource-key => resource-key
Resource Key for this portset.
- vserver-name => obj-name
Name of vserver on which the portset resides. Always present in the output. The name is any simple name such as 'myhost'.
- vserver-resource-key => resource-key
Identifier of vserver on which the portset resides. Always present in the output.
Name of the portset member (tpgroups or FCP data LIF).Fields
A self-describing string identifier for a managed resource.Fields
A canonical type name for a managed resource. Includes both Data ONTAP and OnCommand resource types. Valid Data ONTAP resource types: - aggregate
- cluster
- cluster_node
- disk
- export_policy
- export_rule
- fcp_lif
- fcp_port
- flash_device
- igroup
- iscsi_portal_group
- lun
- lun_mapping
- network_lif
- network_port
- ontap_job_schedule
- plex
- portset
- qtree
- raid_group
- routing_group
- service_processor
- sis_policy
- snap_mirror
- snapshot
- snapshot_policy
- snapshot_policy_schedule
- storage_class
- storage_shelf
- volume
- volume_move
- vserver
Valid OnCommand resource types: - management_station
- resource_pool
- service_workflow
- storage_service
- storage_service_connection
- storage_service_node
Fields
Information about a resource pool.Fields
- description => string
The description of the resource pool.
- name => string
The name of the resource pool.
- resource-key => resource-key
The resource key for the resource pool.
Information about where a replica of the specified snapshot copy is located.Fields
- node-resource-key => resource-key, optional
Resource key of the storage service node that the volume is a member of.
- snapshot-instance-uuid => uuid
This ID uniquely identifies a snapshot copy and its physical data layout. If any two snapshot copies in the world have the same instance UUID, they must be different instances of the exact same snapshot copy. Snapshot copies within the same volume must have different snapshot-instance-uuids.
- snapshot-resource-key => resource-key
Resource key of the snapshot copy that was found.
- snapshot-version-uuid => uuid
This ID identifies a snapshot copy and its logical data layout. If any two snapshot copies in the world have the same version UUID, their contents must be logically equivalent. Snapshot copies within the same volume may have the same snapshot-version-uuid.
- storage-service-name => obj-name
Name of the storage service that the volume is a member of.
- storage-service-resource-key => resource-key
Resource key of the storage service that the volume is a member of.
- volume-resource-key => resource-key
The resource key for the volume which holds the snapshot copy that was found.
Results for the replica locations of the specified snapshot copy.Fields
An X.509 certificate in Privacy Enhanced Mail (PEM) format.Fields
A chain of X.509 certificates in Privacy Enhanced Mail (PEM) format.Fields
Name-value field pair in the metadata.Fields
- field-name => string
Name of the metadata field. Field names can be 1 to 255 characters in length and are case-insensitive.
- field-value => string
Arbitrary, user-defined data expressed as a string. The string is opaque to the server and must not exceed 16384 (16k) characters in length.
Information about members to be imported into the storage service. Members are implied through the relationship source and destination objects.Fields
- destination-volume-resource-key => resource-key, optional
Resource key of the relationship's destination volume to be imported. The source and destination volumes of the relationship will be imported into their respective storage service nodes. If specified, relationship-resource-key should not be specified.
- relationship-resource-key => resource-key, optional
Resource key of the relationship to be imported. The source and destination volumes of the relationship will be imported into their respective storage service nodes. If specified, destination-volume-resource-key should not be specified.
nullFields
- is-storage-service-marked-for-deletion => boolean
Whether the storage service is marked for deletion. This flag is set for storage services for which attempted removal was not completely succesful. Periodic configuration check or storage-service-destroy may complete the removal later.
- storage-service-client-tag => string
Arbitrary client provided description of the program utilizing the storage service. This value can be a maximum of 32 characters.
- storage-service-contact-list => email-address[], optional
List of contact email addresses, each of which can be no longer than 255 characters.
- storage-service-description => string, optional
Description of the storage service.
- storage-service-name => obj-name
Name of the storage service. This value can be a maximum of 255 characters.
- storage-service-owner => string, optional
Name of the owner of the storage service. This value can be a maximum of 64 characters.
- storage-service-resource-key => resource-key
Resource key of the storage service.
- storage-service-topology-info => storage-service-topology-info
Composite entity representing the nodes and connections of a protection and provisioning strategy.
Information about one member of a storage service.Fields
- is-enabled => boolean
Whether this member is enabled. If the member is disabled, it does not actively participate in the replication updates and conformance checks. All storage objects and relationships are preserved. However, relationships are not updated and no new relationships are created. Member is marked as disabled only if all its subscriptions have been removed.
- is-member-missing => boolean, optional
If the value is true, it indicates that the storage service member volume no longer exists on the storage system or the member volume may exist but not associated with this node member.
- node-name => string
Name of the node to which the member belongs. This value can be a maximum of 255 characters.
- node-resource-key => resource-key
Resource key of the node to which the member belongs.
- source-member-resource-key => resource-key, optional
Resrouce key of the source member. For example, if this member is the destination volume for a mirror relationship, then source member is the corresponding source volume. Returned only for non-root members.
- source-node-resource-key => resource-key, optional
Resource key of the node to which the source member belongs. Returned only for non-root members.
- subscriptions => resource-key[], optional
Subscription resource keys of the context that was used when subscribing. Present only for the members of the root node. When member is fully unsubscribed via all contexts, this list is empty. In such case, no actions such as updating the SnapMirror relationship or provisioning secondary storage are taken for that member. However, existing storage and relationships are left intact. These leftover artifacts can be relinquished or destroyed using storage-service-cleanup.
Subscription information can be obtained by calling storage-service-subscription-iter API.
Information about one storage service subscription.Fields
- storage-service-name => obj-name
Name of the storage service.
- storage-service-resource-key => resource-key
Resource key of the storage service.
- subscription-context => string
Subscription context used to subscribe the members. This value can be a maximum of 255 characters.
- subscription-resource-key => resource-key
Resource key of the subscription object.
Information about one member of a storage service subscription.Fields
- member-name => obj-full-name
Name of the member. This value can be a maximum of 255 characters.
- member-resource-key => resource-key
Resource key of the member.
- member-type => string
Type of the member. Possible values are: 'volume'.
Contains the configurable properties of the relationship between two nodes.Fields
- connection-resource-key => resource-key, optional
Resource key of the Connection. Always present in the output. Auto-assigned for the new connections. Must be included when referring to existing connections, for example while modifying existing connection attributes.
- destination-node-name => string
Destination node name. The name of the connection's destination node end point. Must be present for newly created nodes. For modification, if node name changes, the new node name must be used. This value can be a maximum of 255 characters.
- destination-node-resource-key => resource-key, optional
Resource key of the destination node. Must not be provided if the node is new. For modification of existing topologies, this value must be provided.
- is-lag-error-enabled => boolean, optional
Indicates whether the system should generate an error event when the last update of relationship is older than lag-error-threshold value. The default value is true.
- is-lag-warning-enabled => boolean, optional
Indicates whether the system should generate a warning event when the last update of relationship is older than the lag-warning-threshold value. The default value is true.
- lag-error-threshold => integer, optional
Lag, in seconds. If the last update of relationship is older than this value, and if the element is-lag-error-enabled is set, the system generates an error event for that relationship. The default value is 172800 seconds (which is 2 days).
- lag-warning-threshold => integer, optional
Lag, in seconds. If the last update of relationship is older than this value, and if the element is-lag-warning-enabled is set, the system generates a warning event for that relationship. The default value is 129600 seconds (which is 1.5 days).
- max-transfer-rate => integer, optional
Specifies the upper bound for each relationship, in kilobytes per second, at which data is transferred between Data ONTAP clusters. The default is unlimited (0) which permits the relationship to fully utilize the available network bandwidth. The max-transfer-rate option does not affect relationships confined to a single cluster.
- source-node-name => string
Source node name. The name of the connection's source node end point. Must be present for newly created nodes. For modification, if node name changes, the new node name must be used. This value can be a maximum of 255 characters.
- source-node-resource-key => resource-key, optional
Resource key of the source node. Must not be provided if node is new. For modification of existing topologies, this value must be provided.
Information about the topology of a storage service which composite entity representing the nodes and connections of a protection and provisioning strategy.Fields
storage-service-topology-node-info contains the information about a node.Fields
- node-name => string
Name of the node. This value can be a maximum of 255 characters. Node name must be unique within the topology. When renaming an existing node during modify, the new node name must be specified in all the storage-service-topology-connection-info, that have this node as either the source or the destination.
- node-resource-key => resource-key, optional
Resource key of the node. Always present in the output. Auto-assigned for the new nodes. Must be included when referring to existing nodes, for example when modifying existing node attributes.
- service-workflow-resource-key => resource-key, optional
Provisioning workflow that is used to provision secondary storage. Should not be specified for the root node, and optional for non-root nodes. The name of storage-service-workflow is obtainable from storage-service-workflow-list-info API.
nullFields
A single email address. It cannot contain spaces, semi-colons or unprintable characters.Fields
Block Type of the file system. The volumes on both the source and destination sides of a SnapMirror relationship must be of the same block type. Volumes contained in a larger parent agregate may have a block-type of 64_bit. For upgraded systems it is possible that this value may be unknown until the system can determine the block-type. Possible values are: Fields
The key/value for a generic object attribute.Fields
Full name of an object. This typedef is an alias for the builtin ZAPI type string. An object full name conforms to all the rules of an obj-name, except that the full name may be up to 255 characters long. Full names are created by concatenating an object name with any parent object names, so as to create a unique name for an object. The format of full names is as follows:
- cluster full names are the either the fully-qualified domain name or the IP address of the cluster.
- cluster-node full names are the either the fully-qualified domain name or the IP address of the cluster.
- aggregate full names are the cluster-node name and the aggregate name, separated by a colon, e.g. cluster-node:aggr0.
- volume full names are the vserver name and the volume name, separated by ":/", e.g. vserver:/volume. Note this does not include the "/vol" prefix. Volume and aggregate full names are distinguished by the presence of a forward slash after the colon.
- qtree full names are the containing volume full name and the qtree name, separated by a slash, e.g. vserver:/volume/qtree. The data not contained by any qtree may be represented by "-", e.g. vserver:/volume/-.
- lun full names are either a volume or qtree full name and the LUN path, separated by a slash, e.g. vserver:/volume/LUN or vserver:/volume/qtree/LUN.
- initiator-group full names are vserver name and the initiator group name, separated by a colon, e.g. vserver:igroup.
- export-policy full names are vserver name and the policy name, separated by a colon, e.g. vserver:policy-name.
- lif full names are a cluster, cluster-node, or vserver name and the interface name, separated by a colon, e.g. cluster-name|cluster-node-name|vserver-name:lif.
- port-set full names are the vserver name and the portset name, separated by a colon, e.g. vserver:portset.
- fcp-target full names are the cluster-node name and the target name, separated by a colon, e.g. cluster-node:target.
For any object not listed above, the obj-name and obj-full-name are identical.Fields
Identification number (ID) for an object. This typedef is an alias for the builtin ZAPI type integer. Object IDs are unsigned integers in the range [1..2^31 - 1]. In some contexts, an object ID is also allowed to be 0, which is interpreted as a null value, e.g., a reference to no object at all. The ID for an object is always assigned by the system; the user is never allowed to assign an ID to an object. Therefore, an input element of type obj-id is always used to refer to an existing object by its ID. The ZAPI must specify the object's object type (e.g. cluster, volume, aggregate, etc.). Some ZAPIs allow the object to be one of several different types.
If the value of an obj-id input element does not match the ID of any existing object of the specified type or types, then typically the ZAPI fails with error code EOBJECTNOTFOUND. A ZAPI may deviate from this general rule, for example, it may return a more specific error code. In either case, the ZAPI specification must document its behavior.
Fields
Name of an object. This typedef is an alias for the built in ZAPI type string. An object name must conform to the following format: - It must contain between 1 and 64 characters.
- It may start with any character and may contain any combination of characters, except that it may not consist solely of decimal digits ('0' through '9').
- In some contexts, a name may be the empty string (""), which is interpreted as a null value, e.g., a reference to no object at all.
The behavior of a ZAPI when it encounters an error involving an obj-name input element depends on how the ZAPI uses the input element. Here are the general rules: - If the input name element is used to create a new object with the given name, or rename an existing object to that name, and the name does not conform to the above format, then the ZAPI fails with error code EINVALIDINPUT. Note that because EINVALIDINPUT is such a common error code, ZAPI specifications are not required to document cases when they may return it.
- If the input name element is used to refer to an existing object with that name, and there is no object with that name, then the ZAPI fails with error code EOBJECTNOTFOUND. Generally the ZAPI specification documents cases when it may return this error code.
A ZAPI may deviate from these general rules, for example, it may return more specific error codes. In such cases, the ZAPI specification must document its behavior. If an input name element is used to refer to an existing object, then the ZAPI specification must specify which object type (e.g. cluster, vserver, volume etc.) is allowed. Some ZAPIs allow the object to be one of several different types. See the description of obj-full-name for examples of valid input formats.
Note that there is no requirement that all object names must be unique. However, the names for some specific types of objects are constrained such that no two objects of that type may have the same name.
Fields
A status value which can be associated with an object. This typedef is an alias for the builtin ZAPI type string. The severity associated with an event has this type. Possible values are: 'normal', 'warning', 'error', 'critical'.
- normal: An object has normal status when it is working within the thresholds specified.
- warning: An object has the warning status when an event related to the object occurred that an administrator should know about. The event will not cause service disruption.
- error: An object has error status when it does not cause any service disruption, but it may affect performance.
- critical: An object has critical status when it is still performing, but service disruption may occur if corrective action is not taken immediately.
In some contexts, it is important that severities are ordered (as above). For example, an alert might be triggered if an event with a given severity "or worse" occurs. In this example, worse means "after" in the list above.Fields
Type of a managed object. Possible values: - "cluster"
- "cluster-node"
- "vserver"
- "resource-group"
- "volume"
- "qtree"
- "disk"
- "network-interface"
- "management-station"
- "quota-user"
- "initiator-group"
- "lun"
- "fcp-target"
- "aggregate"
- "port"
- "port-set"
- "lif"
- "ifgrp"
- "export-policy"
- "role"
- "storage-service"
- "service-workflow"
Fields
Seconds since 1/1/1970 in UTC.Fields
The 128-bit universally-unique identifier (UUID). UUIDs are formatted as 36-character strings. These strings are composed of 32 hexadecimal characters broken up into 5 groupings separated by '-'s. The first grouping consists of 8 hex characters, the second through fourth groupings consist of 4 hex characters each, and the fifth and final grouping consists of 12 hex characters. Note that a leading '0x' is not used. An example of an actual UUID is: 73a010ec-3d28-11df-84e8-123478563412.Fields
Attributes applicable only for constituent volumes.Fields
Attributes applicable only for flexible volumes.Fields
- aggregate-name => string
Name of aggregate on which the volume resides.
- aggregate-resource-key => resource-key
The resource key for the aggregate on which the volume resides.
- maximum-size => integer, optional
Maximum size in bytes that this volume will be grown up to automatically by Data ONTAP. This is returned only if is-autosize-enabled is true.
Attributes applicable only for infinite volumes.Fields
Space status of the object. This indicates the fullness of the object in terms of whether the percentage of used space with respect to total size of the object has reached the fullness thresholds. Possible values: - ok - when the percentage of used space of the object is within the nearly full and full threshold of the object.
- nearly_full - when the percentage of used space of the object is within the full threshold of the object but has reached or crossed the nearly full threshold.
- full - when the percentage of used space of the object has reached or crossed the full threshold of the object.
Fields
Information about an aggregate-based volume.Fields
- actual-volume-size => integer, optional
Actual size in bytes of the volume. For volumes which are destinations of a Volume SnapMirror relationship, the actual size of the volume may differ from the logical size (reported by the df command). The logical size for such volumes is equal to size of the source volume. For all other volume actual-volume-size will be same as total size.
- afs-avail => integer, optional
Number of bytes available in active file system. This will be (afs-total - afs-used) or the available space in the aggregate, whichever is lower.
- afs-used => integer, optional
Number of bytes used to hold active file system data. This is what "df" reports as used for the volume. It includes data, hole reserves, overwrite reserves and snapshot overflow.
- aggregate-name => string
Name of aggregate on which the volume resides.
- aggregate-resource-key => resource-key
The resource key for the aggregate on which the volume resides.
- block-type => file-system-block-type
File system block type of the volume.
- snapshot-reserve-avail => integer, optional
Number of available bytes in snapshot reserve for this volume. If snapshot-reserve-used is greater than snapshot-reserve-total, this value will be zero.
- snapshot-reserve-total => integer, optional
Total number of bytes of snapshot reserve.
- snapshot-reserve-used => integer, optional
Total number of bytes used to hold snapshot data. This can be greater than the snapshot reserve size but will not include any space used out of the overwrite reserve.
- space-guarantee => string, optional
The space reservation style associated with the volume. Possible values: - volume - Indicates that the entire size of the volume is pre-allocated.
- file - Indicates that the space will be pre-allocated for all the space-reserved files and LUNs within the volume. Storage is not pre-allocated for files and LUNs that are not space-reserved. Writes to these can fail if the underlying aggregate has no space available to store the written data.
- partial - Indicates that a FlexCache volume to reserve some amount of space that is less than its total size
- none - Indicates that no space will be pre-allocated.
This field does not appear if volume-state is restricted or offline.
- volume-resource-key => resource-key
The resource key for this volume.
- volume-type => string
Type of volume. Possible values are: - rw - read-write
- ls - load-sharing
- dp - data-protection
- dc - data-cache (FlexCache)
- tmp temporary
- vserver-resource-key => resource-key
The resource key for the vserver on which the volume resides.
Volume FlexClone information. Based on the volume type the following fields are displayed: For a FlexClone volume, the fields displayed are "clone-space-savings", "clone-space-savings-percentage", "is-clone-present", "is-clone", "parent-volume-resource-key" and "parent-volume-name".
For a parent volume containing FlexClone volumes, the fields displayed are "is-clone-present", "is-clone", and "clone-child-count".
For a volume that is both a FlexClone and parent volume, the fields displayed are "clone-space-savings", "clone-space-savings-percentage", "is-clone-present", "is-clone", "parent-volume-resource-key", "parent-volume-name", and "clone-child-count".
If the volume is neither a FlexClone volume nor a parent volume, then the "is-clone-present" and "is-clone" fields are displayed.
Fields
- clone-space-savings => integer, optional
For a FlexClone volume this contains space savings as a result of sharing space with its FlexClone parent. For a Parent volume, the space savings is the sum of space savings realised by all its FlexClone volumes.
Volume efficiency information. Optional fields will not be returned if deduplication or compression have never run on the volume.Fields
- dedupe-progress => string, optional
The progress of the current deduplication operation on the volume with information as to which stage of de-duplication is currently in progress and how much data is processed for that stage. For eg: "25 MB Scanned, 20MB Searched, 40MB (20%) Done , 30MB Verified".
Information about a volume.Fields
- block-type => file-system-block-type
File system block type of the volume.
- space-guarantee => string, optional
The space reservation style associated with the flexible volume. Possible values: - volume - Indicates that the entire size of the volume is pre-allocated.
- file - Indicates that the space will be pre-allocated for all the space-reserved files and LUNs within the volume. Storage is not pre-allocated for files and LUNs that are not space-reserved. Writes to these can fail if the underlying aggregate has no space available to store the written data.
- partial - Indicates that a FlexCache volume to reserve some amount of space that is less than its total size
- none - Indicates that no space will be pre-allocated.
This field does not appear if volume-state is restricted or offline.
- volume-efficiency-info => volume-efficiency-info, optional
Volume efficiency information. This is returned only if deduplication or compression have ever been run on the volume.
- volume-name => string
Name of the volume.
- volume-resource-key => resource-key
The resource key for this volume.
- volume-state => string
State of volume. Possible values are: - offline
- online
- restricted
- unknown
- volume-type => string
Type of volume. Possible values are: - rw - read-write
- ls - load-sharing
- dp - data-protection
- dc - data-cache (FlexCache)
- tmp temporary
- vserver-name => string
Name of vserver on which the volume resides.
- vserver-resource-key => resource-key
The resource key for the vserver on which the volume resides.
Information about a volume move.Fields
- volume-move-estimated-completion-time => timestamp, optional
Timestamp, indicating the estimated completion time of the volume move operation. Note that this time may keep increasing when the move goes into 'cutover', 'cutover hard deferred', 'cutover soft deferred' phase. In those cases where the input for cutover-action is wait, during data copy phase, estimated time of completion will approximate the time to reach cutover point and wait for user intervention. When the move is in queued phase this element is not returned.
- volume-move-phase => string
Phase of the volume move operation. The possible phases are 'queued', 'initializing', 'replicating', 'cutover', 'cutover hard deferred', 'cutover soft deferred', 'completed', 'cleaning up', 'failed', and 'restarting'.
- volume-move-state => string
State of the volume move operation. The possible states are 'in-progress', 'completed', 'failed', and 'paused'. The state 'paused' indicates that the volume move operation is moving into a cutover-deferred phase and is waiting for user intervention in the case of errors.
- volume-resource-key => resource-key
Resource key of the volume.
- vserver-name => obj-name
Name of vserver on which the volume resides.
- vserver-resource-key => resource-key
Resource key of the vserver on which the volume resides.
Unix oriented security settings associated with this volume.Fields
- permissions => string, optional
Unix permission bits in octal string format. It is similar to unix style permission bits.
In Data ONTAP 7-mode, the default setting of '0755' gives read/write/execute permissions to owner and read/execute to group and other users.
In Clustered Data ONTAP, for security stype 'mixed' or 'unix', the default setting of '0755' gives read/write/execute permissions to owner and read/execute permissions to group and other users. For security style 'ntfs', the default setting of '0000' gives no permissions to owner, group and other users.
It consists of 4 octal digits derived by adding up bits 4, 2 and 1. Omitted digits are assumed to be zeros. First digit selects the set user ID(4), set group ID (2) and sticky (1) attributes. The second digit selects permission for the owner of the file: read (4), write (2) and execute (1); The third selects permissions for other users in the same group; The fourth for other users not in the group.
Collected size information about a volume.Fields
- actual-volume-size => integer, optional
Actual size in bytes of the volume. For volumes which are destinations of a Volume SnapMirror relationship, the actual size of the volume may differ from the logical size (reported by the df command). The logical size for such volumes is equal to size of the source volume. For all other volume actual-volume-size will be same as total size.
- afs-avail => integer, optional
Number of bytes available in active file system. This will be (afs-total - afs-used) or the available space in the aggregate, whichever is lower.
- afs-total => integer, optional
Total number of bytes in active file system (total volume less snapshot reserve).
- afs-used => integer, optional
Number of bytes used to hold active file system data. This is what "df" reports as used for the volume. It includes data, hole reserves, overwrite reserves and snapshot overflow.
- afs-used-per-day => integer
Number of bytes used per day in the active file system of the volume. This can be either positive or negative depending on the growth of used space in the volume.
- is-snapshot-enabled => boolean
Specifies whether the Snapshot copies are enabled for the volume.
- overwrite-reserve-total => integer, optional
Total number of bytes reserved for data overwrites. This is the space reserved for overwriting LUNs and other space-reserved files when the volume has snapshots and afs-avail is zero.
- snapshot-reserve-avail => integer, optional
Number of available bytes in snapshot reserve for this volume. If snapshot-reserve-used is greater than snapshot-reserve-total, this value will be zero.
- snapshot-reserve-total => integer, optional
Total number of bytes of snapshot reserve.
- snapshot-reserve-used => integer, optional
Total number of bytes used to hold snapshot data. This can be greater than the snapshot reserve size but will not include any space used out of the overwrite reserve.
- snapshot-reserve-used-per-day => integer, optional
Number of bytes used per day in the volume snapshot reserve. This can be either positive or negative depending on the growth of used space in the volume snapshot reserve. The information is based on the regression slope of the volume snapshot reserve usage history data. This is returned only if volume snapshot reserve is defined.
- total => integer, optional
Total number of bytes in volume. This includes the snapshot reserve.
Details of the cifs domain.Fields
DNS domain name for the Vserver.Fields
Name server switch configuration details for the VserverFields
Vserver's information.Fields
- aggr-list => resource-key[]
The list of aggregates assigned for volume operations. These aggregates could be shared for use with other Vservers.
- cluster-name => string
Name of the cluster where the Vserver is present.
- cluster-resource-key => resource-key
Resource key of the cluster where the Vserver is present.
- vserver-name => string
Name of the Vserver. Length: [1..255]
- vserver-resource-key => resource-key
Resource key of the Vserver.
- vserver-state => string
Current state of the Vserver. Possible values: "running", "stopped", "starting" or "stopping".
Status indicating whether a service is up or down.Fields
Copyright (c) 1994-2013 NetApp, Inc. All rights reserved.
The product described in this manual may be protected by one or more U.S.A. patents, foreign patents, or pending applications.
RESTRICTED RIGHTS LEGEND: Use, duplication, or disclosure by the government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.277-7103 (October 1988) and FAR 52-227-19 (June 1987).