APIs in Category: perf | API version 3.8

perf-assoc-view-list-iter-end perf-assoc-view-list-iter-next perf-assoc-view-list-iter-start perf-counter-group-create perf-counter-group-destroy perf-counter-group-get-data perf-counter-group-get-dynamic-data-sources perf-counter-group-list-info perf-counter-group-list-iter-end perf-counter-group-list-iter-next perf-counter-group-list-iter-start perf-counter-group-modify perf-counter-group-start perf-counter-group-stop perf-disable-data-collection perf-disable-object-update perf-enable-data-collection perf-enable-object-update perf-get-counter-data perf-get-counter-list-not-in-view perf-get-default-view perf-get-server-status perf-object-counter-list-info perf-object-instance-list-iter-end perf-object-instance-list-iter-next perf-object-instance-list-iter-start perf-object-list-info perf-set-default-view perf-status-get perf-threshold-create perf-threshold-create2 perf-threshold-delete perf-threshold-list-info-iter-end perf-threshold-list-info-iter-next perf-threshold-list-info-iter-start perf-threshold-list-info2-iter-end perf-threshold-list-info2-iter-next perf-threshold-list-info2-iter-start perf-threshold-modify perf-threshold-modify2 perf-threshold-template-attach-objects perf-threshold-template-create perf-threshold-template-delete perf-threshold-template-detach-objects perf-threshold-template-list-info-iter-end perf-threshold-template-list-info-iter-next perf-threshold-template-list-info-iter-start perf-threshold-template-modify perf-view-associated-objects-list perf-view-create perf-view-destroy perf-view-get-data perf-view-list-iter-end perf-view-list-iter-next perf-view-list-iter-start perf-view-modify perf-view-object-association-add perf-view-object-association-delete

NetApp Manage ONTAP

perf-assoc-view-list-iter-end | [top]

> Terminate a view list iteration and clean up any saved info by a previous call to perf-assoc-view-list-iter-start

> Input Name | Range | Type | Description
> tag |  | string | Tag from a previous perf-assoc-view-list-iter-start.

> Errno | Description
> EINVALIDTAG |  |

perf-assoc-view-list-iter-next | [top]

> Returns objects from a previous call to perf-assoc-view-list-iter-start

> Input Name | Range | Type | Description
> maximum |  | integer | The maximum number of entries to retrieve. Range: [1..2^31-1]
> tag |  | string | Tag from a previous perf-view-list-info-iter-start.
> Output Name | Range | Type | Description
> records |  | integer | The number of records actually returned. Range: [1..2^31-1]
> views |  | perf-view[] | A list of views

> Errno | Description
> EINVALIDTAG |  |
> EINVALIDINPUTERROR |  |

perf-assoc-view-list-iter-start | [top]

> Initiates a query for a list of performance views.

> Input Name | Range | Type | Description
> assoc-obj-type |  | perf-assoc-obj-type optional | If specified, only views with a matching associated object type will be returned. This is ignored if object-name-or-id is specified. Otherwise, all performance views will be returned (subject to the other optional parameters).
> object-name-or-id |  | obj-name-or-id optional | Name or identifier of an object to list views for. If not specified, all views will be returned (subject to the other optional parameters). The allowed object types for this argument are Resource Group Dataset Resource Pool Host vFiler Aggregate Volume Qtree Lun
> verbose |  | boolean optional | If this is set to false, only a few fields for each view is returned instead of the entire metadata Default is true The following fields will be returned for each view view-name view-type
> view-type |  | string optional | Indicates the type of views to be returned. If not specified, all types of views will be returned (subject to the other optional parameters). Possible values are "custom_view" "canned_view" "summary_view"
> Output Name | Range | Type | Description
> records |  | integer | Number indicating how many items are available for future retrieval via calls to perf-view-list-iter-next
> tag |  | string | Tag to be used in subsequent calls to perf-view-list-iter-next or perf-view-list-iter-end

> Errno | Description
> EOBJECTNOTFOUNDERROR |  |
> EINTERNALERROR |  |
> EAPIERROR |  |
> EACCESSDENIED |  |
> EDATABASEERROR |  |
> EOBJECTAMBIGUOUS |  |
> EINVALIDINPUTERROR |  |

perf-counter-group-create | [top]

> Creates a counter group. Global DFM.PerfView.Write is required to create historical counter group. To create a real-time counter group Global DFM.PerfView.RealTimeRead is required.

> Input Name | Range | Type | Description
> counter-group |  | perf-counter-group | The counter group to create.

> Errno | Description
> EAPIPRIVILEDGE |  |
> EAPINOTLICENSED |  |

perf-counter-group-destroy | [top]

> Destroys a counter group. Privilege to destroy a historical counter group is Global DFM.PerfView.Delete. And to destroy a real-time counter group, Global DFM.PerfView.RealTimeRead is required.

> Input Name | Range | Type | Description
> appliance-name-or-id |  | string optional | The name (or unique ID) of the source appliance. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in the appliance-info structure from the appliance-list-iter-next. The API will accept a vfiler name or id from DFM 3.3 onwards.
> counter-group-name |  | string | Name of counter group to destroy. All the views that are using the counter group are automatically destroyed.
> group-name-or-id |  | string optional | The name (or unique ID) of the source group. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in group-list-iter-next APIs. This field is ignored if appliance-name-or-id is specified. This field defaults to global group if appliance-name-or-id is not specified.

> Errno | Description
> EAPIPRIVILEDGE |  |
> EAPINOTLICENSED |  |

perf-counter-group-get-data | [top]

> Retrieve a set of data for a set of data sources from a specific counter group. The data is extracted for the given time interval bounded by start-time and end-time. This API is suitable for extracting the data for a single line in a chart (graph). Privilege required is DFM.Database.Read. For viewing real-time data Global DFM.PerfView.RealTimeRead is also required.

> Input Name | Range | Type | Description
> appliance-name-or-id |  | string optional | The name (or unique ID) of the source appliance. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in the appliance-info structure from the appliance-list-iter-next. The API will accept a vfiler name or id from DFM 3.3 onwards.
> counter-group-name |  | string | Counter group name from which we want to fetch data.
> data-group |  | perf-data-group | A definition of the data source(s) requested, plus an optional consolidation method.
> end-time |  | integer optional | Time stamp marking the end of requested data. The timestamp value is the time in seconds since 00:00:00 Jan 1, 1970, UTC. If unspecified, server should end with the latest available data.
> group-name-or-id |  | string optional | The name (or unique ID) of the source group. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in group-list-iter-next APIs. This field is ignored if appliance-name-or-id is specified. This field defaults to global group if appliance-name-or-id is not specified.
> sample-rate |  | integer optional | The desired interval between samples, in seconds. If the available samples have higher resolution than the one specified, multiple samples are consolidated into one sample to achieve the desired resolution, using the specified time-consolidation-method. If unspecified, the data returned will be at the sample-rate specified upon creation of the counter group.
> start-time |  | integer optional | Time stamp marking the beginning of requested data. The timestamp value is the time in seconds since 00:00:00 Jan 1, 1970, UTC. If unspecified, server should begin with the earliest available data.
> time-consolidation-method |  | string optional | A function to apply across the data to achieve the desired time resolution, if the requested sample-rate is different from the actual sample-rate of the data. The values can be average, min, max, or last. The default is last.
> Output Name | Range | Type | Description
> counter-data |  | string | The retrieved data - possibly consolidated, but just a single array. The format is a series of comma-separated timestamp:value pairs. The timestamp value is the time in seconds since 00:00:00 Jan 1, 1970, UTC. The values may have optional decimal extensions, for example 1064439599:127,1064439600:98.6,1064439601:12
> unit |  | string optional | Unit of counter-data. This element will not be present if the unit is not known. Some possible values are per_sec, percent, b_per_sec, kb_per_sec, msecs, usecs. Maximum Length: 32 characters.

> Errno | Description
> EAPIPRIVILEDGE |  |
> EAPINOTLICENSED |  |

perf-counter-group-get-dynamic-data-sources | [top]

> Retrieve a list of top-n data sources for a counter. Privilege required is read.

> Input Name | Range | Type | Description
> appliance-name-or-id |  | string optional | The name (or unique ID) of the source appliance. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in the appliance-info structure from the appliance-list-iter-next. The API will accept a vfiler name or id from DFM 3.3 onwards.
> counter-group-name |  | string | Counter group name from which we want to fetch data.
> dynamic-data-sources |  | perf-dynamic-data-sources | Criteria for choosing top-n instances for a counter.
> group-name-or-id |  | string optional | The name (or unique ID) of the source group. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in group-list-iter-next APIs. This field is ignored if appliance-name-or-id is specified. This field defaults to global group if appliance-name-or-id is not specified.
> Output Name | Range | Type | Description
> data-sources |  | perf-data-source[] | Identifiers for the data sources correspoing to dynamic instances. Each perf-data-source represents one instance.

> Errno | Description
> EAPIPRIVILEDGE |  |
> EGROUPDOESNOTEXIST |  |
> EAPINOTLICENSED |  |

perf-counter-group-list-info | [top]

> Retrieve one or more counter groups. Privilege required is read.

> Input Name | Range | Type | Description
> appliance-name-or-id |  | string optional | The name (or unique ID) of the source appliance. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in the appliance-info structure from the appliance-list-iter-next. The API will accept a vfiler name or id from DFM 3.3 onwards.
> consolidate-hosts |  | boolean optional | If TRUE, then information for all the hosts is consolidated and returned instead of information for individual hosts Default is TRUE.
> counter-group-name |  | string optional | Counter group name to retrieve. If unspecified, all counter groups will be retrieved.
> custom-only |  | boolean optional | If TRUE, returns only custom counter groups, by default FALSE.
> group-name-or-id |  | string optional | The name (or unique ID) of the source group. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in group-list-iter-next APIs. This field is ignored if appliance-name-or-id is specified. This field defaults to global group if appliance-name-or-id is not specified.
> meta-data-only |  | boolean optional | If TRUE, do not return any perf-data-sources with the perf-counter-group. By default FALSE.
> Output Name | Range | Type | Description
> counter-groups |  | perf-counter-group[] | Counter group(s) retrieved.

> Errno | Description
> EAPIPRIVILEDGE |  |
> EAPINOTLICENSED |  |

perf-counter-group-list-iter-end | [top]

> Terminate a counter group list iteration and clean up any saved info. Privilege required is read.

> Input Name | Range | Type | Description
> tag |  | string | The tag from a previous perf-counter-group-list-iter- call.

> Errno | Description
> EAPIPRIVILEDGE |  |

perf-counter-group-list-iter-next | [top]

> Returns items from a previous call to perf-counter-group-list-iter-start. Privilege required is read.

> Input Name | Range | Type | Description
> maximum |  | integer | The maximum number of entries to retrieve.
> tag |  | string | The tag from a previous perf-counter-group-list-iter- call.
> Output Name | Range | Type | Description
> counter-groups |  | perf-counter-group[] | Counter group(s) retrieved.

> Errno | Description
> EAPIPRIVILEDGE |  |

perf-counter-group-list-iter-start | [top]

> Initiates a query for a list of performance counter group names. Privilege required is read.

> Input Name | Range | Type | Description
> appliance-name-or-id |  | string optional | The name (or unique ID) of the source appliance. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in the appliance-info structure from the appliance-list-iter-next. The API will accept a vfiler name or id from DFM 3.3 onwards.
> counter-group-name |  | string optional | Counter group name to retrieve. If unspecified, all counter groups will be retrieved.
> custom-only |  | boolean optional | if TRUE, only custom groups will be retrieved, by default false
> group-name-or-id |  | string optional | The name (or unique ID) of the source group. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in group-list-iter-next APIs. This field is ignored if appliance-name-or-id is specified. This field defaults to global group if appliance-name-or-id is not specified.
> meta-data-only |  | boolean optional | If TRUE, do not include any perf-data-sources with each perf-counter-groups.

> Errno | Description
> EAPIPRIVILEDGE |  |

perf-counter-group-modify | [top]

> Modify an existing counter group. For default counter groups the only modifiable parameter is sample-buffer. All other inputs are ignored and hence remain unchanged. Privilege required is read/write.

> Input Name | Range | Type | Description
> appliance-name-or-id |  | string optional | The name (or unique ID) of the source appliance. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in the appliance-info structure from the appliance-list-iter-next. The API will accept a vfiler name or id from DFM 3.3 onwards.
> counter-group |  | perf-counter-group | The new counter group information. Note that the new counter group name may be different from the old counter group name. If different, the new counter group name must not already exist.
> counter-group-name |  | string | The name of the counter group to modify.
> group-name-or-id |  | string optional | The name (or unique ID) of the source group. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in group-list-iter-next APIs. This field is ignored if appliance-name-or-id is specified. This field defaults to global group if appliance-name-or-id is not specified.

> Errno | Description
> EAPIPRIVILEDGE |  |
> EAPINOTLICENSED |  |

perf-counter-group-start | [top]

> Start data collection for one counter group. Privilege required is Global DFM.PerfView.Write for normal views and Global DFM.PerfView.RealTimeRead for real-time views.

> Input Name | Range | Type | Description
> appliance-name-or-id |  | string optional | The name (or unique ID) of the source appliance. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in the appliance-info structure from the appliance-list-iter-next. The API will accept a vfiler name or id from DFM 3.3 onwards.
> counter-group-name |  | string | Counter group name to start data collection for. This must not be a default counter group.
> group-name-or-id |  | string optional | The name (or unique ID) of the source group. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in group-list-iter-next APIs. This field is ignored if appliance-name-or-id is specified. This field defaults to global group if appliance-name-or-id is not specified.

> Errno | Description
> EAPIPRIVILEDGE |  |
> EAPINOTLICENSED |  |

perf-counter-group-stop | [top]

> Stop data collection for one counter group. Privilege required is Global DFM.PerfView.Write for normal views and Global DFM.PerfView.RealTimeRead for real-time views.

> Input Name | Range | Type | Description
> appliance-name-or-id |  | string optional | The name (or unique ID) of the source appliance. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in the appliance-info structure from the appliance-list-iter-next. The API will accept a vfiler name or id from DFM 3.3 onwards.
> counter-group-name |  | string | Counter group name to stop data collection for. This must not be a default counter group.
> group-name-or-id |  | string optional | The name (or unique ID) of the source group. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in group-list-iter-next APIs. This field is ignored if appliance-name-or-id is specified. This field defaults to global group if appliance-name-or-id is not specified.

> Errno | Description
> EAPIPRIVILEDGE |  |
> EAPINOTLICENSED |  |

perf-disable-data-collection | [top]

> Disables DFM performance advisor data collection.

> Input Name | Range | Type | Description
> is-async |  | boolean optional | Returns immediately without waiting for DFM performance advisor to disable the data collection completely (when set to true). By default this API is synchronous.

> Errno | Description
> EINTERNALERROR |  |
> EAPIERROR |  |
> EACCESSDENIED |  |
> EDATABASEERROR |  |

perf-disable-object-update | [top]

> Disables any modification to DFM performance advisor views, counter groups and object instances.

> Errno | Description
> EINTERNALERROR |  |
> EAPIERROR |  |
> EACCESSDENIED |  |
> EDATABASEERROR |  |

perf-enable-data-collection | [top]

> Enables DFM performance advisor data collection.

> Errno | Description
> EINTERNALERROR |  |
> EAPIERROR |  |
> EACCESSDENIED |  |
> EDATABASEERROR |  |

perf-enable-object-update | [top]

> Enables modifications to DFM performance advisor views, counter groups and object instances.

> Errno | Description
> EINTERNALERROR |  |
> EAPIERROR |  |
> EACCESSDENIED |  |
> EDATABASEERROR |  |

perf-get-counter-data | [top]

> Retrieve data for all the related objects for the given object and the specified performance counters.

> Input Name | Range | Type | Description
> direction |  | string optional | This field is used only when duration is specified. It is used to derive the time period for which data is to be retrieved. Possible values are 'forward' and 'backward'. If the value is set to 'forward', then data for the oldest duration is returned. If the value is set to 'backward', then most recent data is returned. Default value is 'backward'
> duration |  | integer optional | The duration for which the data is to be returned. The time period is calculated based on the direction flag. Range: [0..(2^32)-1]
> end-time |  | integer optional | Time stamp marking the end of requested data. The timestamp value is the time in seconds since 00:00:00 Jan 1, 1970, UTC. If unspecified, server should end with the latest available data. Range: [0..(2^32)-1]
> instance-counter-info |  | instance-counter-info | This defines what counter data to be returned for the specified instances.
> number-samples |  | integer optional | The total number of samples to be returned. The sample-rate will be calculated based on the start-time and end-time. If the available samples have higher resolution than the one specified, multiple samples are consolidated into one sample to achieve the desired resolution, using the specified time-consolidation-method. If unspecified, the number of samples returned will be based on the sample-rate specified upon creation of the view. Either sample-rate or number-samples should be specified, but not both. Range: [1..(2^32)-1]
> sample-rate |  | integer optional | The desired interval between samples, in seconds. If the available samples have higher resolution than the one specified, multiple samples are consolidated into one sample to achieve the desired resolution, using the specified time-consolidation-method. If unspecified, the data returned will be at the sample-rate specified in the counter group that the counter is present. Range: [1..(2^32)-1].
> start-time |  | integer optional | Time stamp marking the beginning of requested data. The timestamp value is the time in seconds since 00:00:00 Jan 1, 1970, UTC. If unspecified, server should begin with the earliest available data. Range: [0..(2^32)-1]
> time-consolidation-method |  | string optional | A function to apply across the data to achieve the desired time resolution, if the requested sample-rate is different from the actual sample-rate of the data. Possible values : 'average' 'min' 'max' 'last' Default is 'last'
> Output Name | Range | Type | Description
> perf-instances |  | perf-instance-counter-data[] optional | List of instances. Each element of this list contains the counter data for an instance.

> Errno | Description
> EOBJECTNOTFOUNDERROR |  |
> EINTERNALERROR |  |
> EAPIERROR |  |
> EACCESSDENIED |  |
> EDATABASEERROR |  |
> EINVALIDINPUTERROR |  |

perf-get-counter-list-not-in-view | [top]

> Given an array of performance objects and counters, the API will return a list of all counters that are not part of any view.

> Input Name | Range | Type | Description
> object-counter-list |  | perf-object-counter-info[] | Array of perf-object-counter-info elements for which information is needed, to know whether they belong to any view or not.
> Output Name | Range | Type | Description
> orphan-object-counter-list |  | perf-object-counter-info[] | Array of perf-object-counter-info elements that are not part of any view.

> Errno | Description
> EINTERNALERROR |  |
> EAPIPRIVILEDGE |  |
> ECOUNTERDOESNOTEXIST |  |
> EOBJECTDOESNOTEXIST |  |
> EACCESSDENIED |  |
> EINVALIDINPUTERROR |  |

perf-get-default-view | [top]

> Gets the default view for an object.

> Input Name | Range | Type | Description
> object-name-or-id |  | obj-name-or-id optional | Specifies the object for which the view is to be retrieved. If not present, then Global Group is assumed.
> Output Name | Range | Type | Description
> view-name |  | string | The view-name which is to be displayed by default for the object. Maximum length is 255 characters

> Errno | Description
> EINTERNALERROR |  |
> EAPIERROR |  |
> EACCESSDENIED |  |
> EDATABASEERROR |  |

perf-get-server-status | [top]

> Returns the status of DFM Performance Advisor.

> Output Name | Range | Type | Description
> status |  | perf-server-status | Specifies the status of Performance Advisor.

> Errno | Description
> EINTERNALERROR |  |
> EAPIERROR |  |
> EACCESSDENIED |  |
> EDATABASEERROR |  |

perf-object-counter-list-info | [top]

> Retrieve information about a performance object's counters. (No iterator-based equivalent exists for this API because the number of object counters is fewer than two hundred in number.) Privilege required is read.

> Input Name | Range | Type | Description
> appliance-name-or-id |  | string optional | The name or unique ID for the appliance. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in the appliance-info structure from the appliance-list-iter-next API. The API will accept a vfiler name or id from DFM 3.3 onwards.
> object-name |  | string | Name of the performance object to retrieve counters for. Object names are broad classes of system components and protocols, like NFS, VOLUME, DISK, ...
> Output Name | Range | Type | Description
> counters |  | perf-counter[] | Counters retrieved.

> Errno | Description
> EAPIPRIVILEDGE |  |

perf-object-instance-list-iter-end | [top]

> Terminate an instance list iteration and clean up any saved info. Privilege required is read.

> Input Name | Range | Type | Description
> tag |  | string | The tag from a previous perf-object-instance-list-iter- call.

> Errno | Description
> EAPIPRIVILEDGE |  |

perf-object-instance-list-iter-next | [top]

> Returns items from a previous call to perf-object-instance-list-iter-start Privilege required is read.

> Input Name | Range | Type | Description
> maximum |  | integer | The maximum number of entries to retrieve.
> tag |  | string | The tag from a previous perf-object-instance-list-iter- call.
> Output Name | Range | Type | Description
> instances |  | perf-instance[] | A list of instances.

> Errno | Description
> EAPIPRIVILEDGE |  |

perf-object-instance-list-iter-start | [top]

> Initiates a query for a list of performance object instance names. Privilege required is read.

> Input Name | Range | Type | Description
> appliance-name-or-id |  | string | Name (or unique ID) of the appliance. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in the appliance-info structure from the appliance-list-iter-next API. The API will accept a vfiler name or id from DFM 3.3 onwards.
> object-name |  | string | Name of the performance object to retrieve instances for. Object names are broad classes of system components and protocols, like NFS, VOLUME, DISK, ...
> Output Name | Range | Type | Description
> records |  | integer | Number indicating how many items are avialble for future retrieval with perf-object-instance-list-iter-next.
> tag |  | string | Tag to be used in subsequent calls to perf-object-instance-list-iter-next or perf-object-instance-list-iter-end.

> Errno | Description
> EAPIPRIVILEDGE |  |

perf-object-list-info | [top]

> Get a list of performance objects. (No iterator-based equivalent exists for this API because the number of performance objects is fewer than twenty in number.) Privilege required is read.

> Input Name | Range | Type | Description
> appliance-name-or-id |  | string optional | Name (or unique ID) of the appliance. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in the appliance-info structure from the appliance-list-iter-next API. The API will accept a vfiler name or id from DFM 3.3 onwards.
> Output Name | Range | Type | Description
> objects |  | perf-object[] | A list of performance objects.

> Errno | Description
> EAPIPRIVILEDGE |  |

perf-set-default-view | [top]

> Sets the default view for an object.

> Input Name | Range | Type | Description
> object-name-or-id |  | obj-name-or-id optional | Specifies the object for which the view is to be set. If not specfied, then the Global Group is assumed.
> view-name |  | string | The view-name which is to be displayed by default for the object. Maximum length is 255.

> Errno | Description
> EINTERNALERROR |  |
> EAPIERROR |  |
> EACCESSDENIED |  |
> EDATABASEERROR |  |

perf-status-get | [top]

> Returns the DFM performance advisor status

> Input Name | Range | Type | Description
> host-name-or-id |  | string | DFM name or id of the host
> Output Name | Range | Type | Description
> data-unavailable-reason |  | perf-status-error[] optional | This element is included only if is-data-available is set to false and indicates the reason(s) for failure.
> is-data-available |  | boolean | Returns if the performance data can be collected for this host

> Errno | Description
> EAPIPRIVILEDGE |  |
> EAPIERROR |  |

perf-threshold-create | [top]

> Sets threshold values on one or more objects based on a performance counter. Privilege required is DFM.Database.Write. Threshold will be set only if the User has DFM.Database.Write permission over the object specified.

> Input Name | Range | Type | Description
> threshold-info |  | threshold-info | Information about a threshold that needs to be set.
> Output Name | Range | Type | Description
> threshold-id |  | threshold-id | If the threshold does not exist and is being created for the first time, then this parameter is present in the output. If a threshold already exists, then an error is returned instead of this parameter.

> Errno | Description
> EAPINOTLICENSED |  |
> EAPIPRIVILEDGE |  |
> ECOUNTERDOESNOTEXIST |  |
> EINTERNALERROR |  |
> EINVALIDINPUTERROR |  |
> EOBJECTDOESNOTEXIST |  |
> ETHRESHOLDEXIST |  |
> EACCESSDENIED |  |
> EOBJECTNOTFOUND |  |

perf-threshold-create2 | [top]

> Creates one threshold composed of one or more counters, and optionally applies it to an object. The user must have the capability to perform the DFM.Database.Write operation on the object on which the threshold is applied.

> Input Name | Range | Type | Description
> object-name-or-id |  | obj-name-or-id | Specifies the object on which the threshold is to be applied. When applying a threshold to an object, in case of container objects (like groups) or parent objects (like storage systems), if a counter is specified on a child object, the threshold applies to all such children. For example, if aggr:cp_reads is specified as one of the counters in the threshold and there is no counter of an object which is a child of an aggregate (viz. volume or qtree), and the object-name-or-id is that of a storage system, the threshold applies to all present and future aggregates on the storage system.
> threshold-info2 |  | threshold-info2 | Specifies the attributes of the threshold to be created.
> Output Name | Range | Type | Description
> threshold-id |  | threshold-id | Specifies the id of the threshold that is created.

> Errno | Description
> EACCESSDENIED |  |
> EDATABASEERROR |  |
> EAPIERROR |  |
> EINTERNALERROR |  |
> EINVALIDINPUTERROR |  |
> ECOUNTERDOESNOTEXIST |  |
> EINCOMPATIBLECOUNTERS |  |
> EPROPCOUNTERMISMATCH |  |

perf-threshold-delete | [top]

> Removes threshold set on a counter. The user must have the capability to perform the DFM.Database.Delete operation on the object on which the threshold is directly applied. This ZAPI cannot be used to delete template thresholds, and perf-threshold-template-modify should be used for that purpose.

> Input Name | Range | Type | Description
> threshold-id |  | threshold-id | The unique identifier of a threshold that needs to be deleted.

> Errno | Description
> EAPINOTLICENSED |  |
> EAPIPRIVILEDGE |  |
> EINTERNALERROR |  |
> EINVALIDINPUTERROR |  |
> EACCESSDENIED |  |
> EDATABASEERROR |  |

perf-threshold-list-info-iter-end | [top]

> Terminate a counter-thresholds-list iteration and clean up any saved info. Privilege required is DFM.Database.Read. Only thresholds on objects over which the user has DFM.Database.Read permissions will be returned.

> Input Name | Range | Type | Description
> tag |  | string | The tag from a previous perf-threshold-list-iter call.

> Errno | Description
> EAPIPRIVILEDGE |  |
> EINVALIDTAG |  |

perf-threshold-list-info-iter-next | [top]

> The perf-threshold-list-info-iter-* list of APIs are used to retrieve the list of all counters on which thresholds have been set. It loads the list of counters on which thresholds have been set into a temporary store. The API returns a tag that identifies that temporary store so that subsequent APIs can be used to iterate over the threshold related counters in the temporary store. Privilege required is DFM.Database.Read. Only thresholds on objects over which the user has DFM.Database.Read permissions will be returned.

> Input Name | Range | Type | Description
> maximum |  | integer | The maximum number of entries to retrieve. Range: [1..2^31-1]
> tag |  | string | The tag from a previous perf-threshold-list-iter call.
> Output Name | Range | Type | Description
> attributes-list |  | threshold-info[] | List of performance thresholds.

> Errno | Description
> EAPIPRIVILEDGE |  |
> EINVALIDTAG |  |

perf-threshold-list-info-iter-start | [top]

> The perf-threshold-list-info-iter-* list of APIs are used to retrieve the list of all counters on which thresholds have been set. It loads the list of counters on which thresholds have been set into a temporary store. The API returns a tag that identifies a temporary store so that subsequent APIs can be used to iterate over the threshold related counters in the temporary store. Privilege required is DFM.Database.Read. Only thresholds on objects over which the User has DFM.Database.Read permissions will be returned.

> Input Name | Range | Type | Description
> query |  | threshold-info optional | Attributes of the thresholds that need to be listed. If none of the parameters are specified, then all the thresholds will be listed. If a single threshold-id is specified, then only information relevant to that threshold will be returned and the rest of the parameters will be ignored. If only an object-name-or-id is specified, then only thresholds set on that object will be returned. Ex. if object-name-or-id identifies a volume, thresholds set on that volume only will be returned. If object-name-or-id resolves to more than one volume, thresholds set on all of them will be returned. If no object-name-or-id is provided, all thresholds will be listed. Likewise, if only perf-object-counter is specified, only thresholds that belong to this counter-name and object type will be returned. If no counter-name is specified, thresholds set on any counter is returned. If both object-name-or-id and perf-object-counter is specified, then only thresholds set on a combination of all these parameters will be listed. The rest of the parameters in threshold-info are ignored.
> Output Name | Range | Type | Description
> records |  | integer | Number indicating how many items are available for future retrieval via calls to perf-threshold-list-info-iter-next
> tag |  | string | Tag to be used in subsequent calls to perf-threshold-list-info-iter-next. It is an opaque handle used by the DFM station to identify a temporary store.

> Errno | Description
> EACCESSDENIED |  |
> EAPIERROR |  |
> EAPINOTLICENSED |  |
> EAPIPRIVILEDGE |  |
> ECOUNTERDOESNOTEXIST |  |
> EINTERNALERROR |  |
> EINVALIDINPUTERROR |  |
> EOBJECTDOESNOTEXIST |  |

perf-threshold-list-info2-iter-end | [top]

> Terminate a perf-thresholds-list-info2 iteration and clean up any saved info.

> Input Name | Range | Type | Description
> tag |  | string | The tag from a previous perf-threshold-list-info2-iter-start call.

> Errno | Description
> EAPIPRIVILEDGE |  |
> EINVALIDTAG |  |

perf-threshold-list-info2-iter-next | [top]

> The perf-threshold-list-info2-iter-* list of APIs are used to retrieve the list of all objects on which thresholds have been set.

> Input Name | Range | Type | Description
> maximum |  | integer | The maximum number of entries to retrieve. Range: [1..2^31-1]
> tag |  | string | The tag from a previous perf-threshold-list-info2-iter-start call.
> Output Name | Range | Type | Description
> attributes-list |  | threshold-info2[] | List of performance thresholds.

> Errno | Description
> EAPIPRIVILEDGE |  |
> EINVALIDTAG |  |

perf-threshold-list-info2-iter-start | [top]

> The perf-threshold-list-info2-iter-* list of APIs are used to retrieve the list of objects on which thresholds have been set. It loads the list of thresholds into a temporary store. The API returns a tag that identifies the temporary store so that subsequent APIs can be used to iterate over the thresholds in it. The user must have the capability to perform the DFM.Database.Read operation on the object on which the threshold is applied, and only thresholds which are applied on such objects will be returned.

> Input Name | Range | Type | Description
> object-name-or-id |  | obj-name-or-id optional | If specified, only thresholds set on this object will be returned. This includes thresholds that apply to this object via inheritance. For example, if there is a threshold on an aggregate counter applied to a filer, and obj-name-or-id identifies an aggregate in that filer, the threshold will be returned.
> threshold-id |  | threshold-id optional | If specified, only information relevant to the threshold with this id will be returned. This parameter takes precedence over all others, and it may not be specified in combination with any of the other arguments.
> Output Name | Range | Type | Description
> records |  | integer | Number indicating how many items are available for future retrieval via calls to perf-threshold-list-info2-iter-next
> tag |  | string | Tag to be used in subsequent calls to perf-threshold-list-info2-iter-next. It is an opaque handle used by the DFM station to identify a temporary store.

> Errno | Description
> EACCESSDENIED |  |
> EAPIERROR |  |
> EAPINOTLICENSED |  |
> EAPIPRIVILEDGE |  |
> ECOUNTERDOESNOTEXIST |  |
> EINTERNALERROR |  |
> EINVALIDINPUTERROR |  |
> EOBJECTDOESNOTEXIST |  |

perf-threshold-modify | [top]

> Allows modification of threshold value and threshold interval that have been set before. Privilege required is DFM.Database.Write.

> Input Name | Range | Type | Description
> attributes |  | threshold-info | Attributes of a threshold that needs to be modified. If the threshold-id is specified, then object-name-or-id and perf-object-counter are ignored. If the threshold-id is not specified, then object-name-or-id and perf-object-counter are mandatory. The rest of the parameters are optional. If the threshold-value specified is in a different metric, then the threshold-unit needs to be specified for appropriate conversion.

> Errno | Description
> EAPINOTLICENSED |  |
> EAPIPRIVILEDGE |  |
> ECOUNTERDOESNOTEXIST |  |
> EINTERNALERROR |  |
> EINVALIDINPUTERROR |  |
> EOBJECTDOESNOTEXIST |  |
> EACCESSDENIED |  |
> EDATABASEERROR |  |

perf-threshold-modify2 | [top]

> Modify an existing threshold. This ZAPI should be used only for changing the parameters of a threshold, not for changing the objects it is not applied on. The objects-info structure is ignored in this ZAPI. This ZAPI cannot be used to modify template thresholds, and perf-threshold-template-modify should be used for that purpose. The user must have the capability to perform the DFM.Database.Write operation on the object on which the threshold is applied.

> Input Name | Range | Type | Description
> threshold-info2 |  | threshold-info2 | Information on the threshold to modify. The threshold-id parameter must be specified to modify a threshold.

> Errno | Description
> EACCESSDENIED |  |
> EDATABASEERROR |  |
> EAPIERROR |  |
> EINTERNALERROR |  |
> EINVALIDINPUTERROR |  |
> ECOUNTERDOESNOTEXIST |  |
> ETHRESHOLDDOESNOTEXIST |  |
> EINCOMPATIBLECOUNTERS |  |

perf-threshold-template-attach-objects | [top]

> Attach one or more objects to a performance template. Either all input objects get attached or none of them get attached. The specified objects will get associated to the applicable thresholds in the template. Objects cannot be attached if the template has no thresholds. Objects already attached to the template are left unchanged. The user must have the capability to perform the DFM.Database.Write operation on the object to which the template is to be attached.

> Input Name | Range | Type | Description
> new-objects |  | object-info[] optional | The list of objects to be attached to the template. At least one object should be specified.
> template-name-or-id |  | string | Name or id of a performance template

> Errno | Description
> EAPINOTLICENSED |  |
> EAPIPRIVILEDGE |  |
> EINTERNALERROR |  |
> EINVALIDINPUTERROR |  |
> EACCESSDENIED |  |
> EDATABASEERROR |  |
> EOBJECTNOTFOUND |  |

perf-threshold-template-create | [top]

> Creates a template for perf thresholds.

> Input Name | Range | Type | Description
> member-thresholds |  | threshold-info2[] optional | Specifies the thresholds that are to be part of this template.
> template-description |  | string optional | Description of the template.
> template-name |  | string | Name of the template.
> Output Name | Range | Type | Description
> template-id |  | integer | This returns the id of the template that is created Range: [1..2^32-1]

> Errno | Description
> EACCESSDENIED |  |
> EDATABASEERROR |  |
> EAPIERROR |  |
> EINTERNALERROR |  |
> EINVALIDINPUTERROR |  |
> ECOUNTERDOESNOTEXIST |  |
> EPERFTEMPLATEEXISTS |  |

perf-threshold-template-delete | [top]

> Deletes a template.

> Input Name | Range | Type | Description
> template-name-or-id |  | string | The name or id of the template that is to be deleted.
> Output Name | Range | Type | Description
> template-id |  | integer | The id of the deleted template. Range: [1..2^32-1]
> template-name |  | string | The name of the deleted template.

> Errno | Description
> EAPINOTLICENSED |  |
> EAPIPRIVILEDGE |  |
> EINTERNALERROR |  |
> EINVALIDINPUTERROR |  |
> EACCESSDENIED |  |
> EDATABASEERROR |  |

perf-threshold-template-detach-objects | [top]

> Detaches one or more objects from a performance template. Either all or none of the input objects get detached. The user must have the capability to perform the DFM.Database.Write operation on the object which is to be detached from the template.

> Input Name | Range | Type | Description
> objects |  | object-info[] optional | The list of objects to be detached from the template. At least one object should be specified.
> template-name-or-id |  | string | Name or id of a performance template

> Errno | Description
> EAPINOTLICENSED |  |
> EAPIPRIVILEDGE |  |
> EINTERNALERROR |  |
> EINVALIDINPUTERROR |  |
> EACCESSDENIED |  |
> EDATABASEERROR |  |
> EOBJECTNOTFOUND |  |

perf-threshold-template-list-info-iter-end | [top]

> Terminate a perf-threshold-template-list iteration and clean up any saved information.

> Input Name | Range | Type | Description
> tag |  | string | The tag from a previous perf-threshold-template-list-iter-start call.

> Errno | Description
> EAPIPRIVILEDGE |  |
> EINVALIDTAG |  |

perf-threshold-template-list-info-iter-next | [top]

> The perf-threshold-template-list-info-iter-* list of APIs are used to retrieve the list of all objects on which thresholds have been set.

> Input Name | Range | Type | Description
> maximum |  | integer | The maximum number of entries to retrieve. Range: [1..2^31-1]
> tag |  | string | The tag from a previous perf-threshold-template-list-info-iter-start call.
> Output Name | Range | Type | Description
> threshold-templates |  | threshold-template-info[] | List of performance thresholds.

> Errno | Description
> EAPIPRIVILEDGE |  |
> EINVALIDTAG |  |

perf-threshold-template-list-info-iter-start | [top]

> The perf-threshold-template-list-info-iter-* list of APIs are used to retrieve the list of all threshold templates that have been created. It loads the templates into a temporary store. The API returns a tag that identifies a temporary store so that subsequent APIs can be used to iterate over the threshold related counters in the temporary store.

> Input Name | Range | Type | Description
> include-objects |  | boolean optional | If true, the output will include objects on which the template(s) apply. Only the direct objects will be returned. Only objects on which the user has the capability to perform the DFM.Database.Read operation will be returned. Default value is false.
> include-thresholds |  | boolean optional | If true, the output will include the thresholds that are part of the template. Default value is false.
> template-name-or-id |  | string optional | Return information of a specific template
> Output Name | Range | Type | Description
> records |  | integer | Number indicating how many items are available for future retrieval via calls to perf-threshold-template-list-info-iter-next.
> tag |  | string | Tag to be used in subsequent calls to perf-threshold-template-list-info-iter-next. It is an opaque handle used by the DFM station to identify a temporary store.

> Errno | Description
> EACCESSDENIED |  |
> EAPIERROR |  |
> EAPINOTLICENSED |  |
> ECOUNTERDOESNOTEXIST |  |
> EINTERNALERROR |  |
> EINVALIDINPUTERROR |  |
> EOBJECTDOESNOTEXIST |  |

perf-threshold-template-modify | [top]

> The perf-threshold-template-modify zapi is used to modify an existing threshold template. It can be used to add, remove or modify thresholds in the template or modify attributes of the template

> Input Name | Range | Type | Description
> is-enabled |  | boolean optional | This specifies if the template is enabled or not. If not specified, the enabled/disabled state of the template is not modified.
> member-thresholds |  | threshold-info2[] optional | Specifies the thresholds that are to be part of this template.
> template-description |  | string optional | A new description for the template, if the description is to be modified.
> template-id |  | integer | Specifies the id of the template that is to be modified. Range: [1..2^32-1]
> template-name |  | string optional | The new name for the template, if the name is to be modified.

> Errno | Description
> EAPINOTLICENSED |  |
> EINTERNALERROR |  |
> EINVALIDINPUTERROR |  |
> EACCESSDENIED |  |
> EDATABASEERROR |  |

perf-view-associated-objects-list | [top]

> List all the objects associated with the view.

> Input Name | Range | Type | Description
> view-name |  | string | The view for which to list associated objects
> Output Name | Range | Type | Description
> objects |  | object-info[] | The objects that are associated with the view

> Errno | Description
> EOBJECTNOTFOUND |  |
> EINTERNALERROR |  |
> EAPIERROR |  |
> EDATABASEERROR |  |
> EINVALIDINPUTERROR |  |

perf-view-create | [top]

> Create a performance view. A performance view consists of one or more charts, but each view refers to only a single counter group. Global DFM.PerfView.Write RBAC capability is required to create normal views while Global DFM.PerfView.RealTimeRead is required to create real-time view.

> Input Name | Range | Type | Description
> data-sources |  | perf-data-source[] optional | Identifiers for the data sources to be retrieved in later queries. The data-sources can not contain 'group' data source. i.e. instance-name must be specified for each perf-data-source. The data-sources should not contain a data source that specifies label-names field. This is because counter group always collects data for the whole counter i.e. for all labels. perf-data-source is not required for default counter groups. The perf-counter-group-modify API ignores this element for default counter groups.
> real-time |  | boolean optional | Designates whether the counter group is real-time, in other words, if no user is getting data from the group, then the counter group will no longer get data. By default FALSE.
> view |  | perf-view | A performance view to create.

> Errno | Description
> EAPIPRIVILEDGE |  |
> EAPINOTLICENSED |  |
> EPERFUPDATEDISABLED |  |

perf-view-destroy | [top]

> Destroy a performance view. Global DFM.PerfView.Delete is required for destroying normal views while Global DFM.PerfView.RealTimeRead is required for destroying real-time views.

> Input Name | Range | Type | Description
> appliance-name-or-id |  | string optional | Name (or unique ID) of the appliance. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in the appliance-info structure from the appliance-list-iter-next API. The API will accept a vfiler name or id from DFM 3.3 onwards.
> group-name-or-id |  | string optional | The group that this view is associated with. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in group-list-iter-next APIs.
> is-counter-group-also-deleted |  | boolean optional | Also destroy the associated counter group. Default is false. This option is ignored if the counter group is default.
> view-name |  | string | Name of the view to be destroyed.

> Errno | Description
> EAPIPRIVILEDGE |  |
> EAPINOTLICENSED |  |

perf-view-get-data | [top]

> Retrieve data for a single data-source from a specific performance view. The data is extracted for the given time interval bounded by start-time and end-time.

> Input Name | Range | Type | Description
> direction |  | string optional | This field is used only when duration is specified It is used to derive the time period for which data is to be retrieved. Possible values are 'forward' and 'backward' If the value is set to 'forward', then data for the oldest duration is returned If the value is set to 'backward', then most recent data is returned Default value is 'backward'
> duration |  | integer optional | The duration for which the data is to be returned. The time period is calculated based on the offset flag. Range: [0..(2^32)-1]
> dynamic-object-info |  | perf-dynamic-data-sources optional | This defines what objects are to be displayed for dynamic charts like top-N objects
> end-time |  | integer optional | Time stamp marking the end of requested data. The timestamp value is the time in seconds since 00:00:00 Jan 1, 1970, UTC. If unspecified, server should end with the latest available data Range: [0..(2^32)-1]
> instance |  | perf-counter-instance optional | The object instance for which data is to be retrieved
> is-dynamic |  | boolean optional | Indicates if top n data sources should be returned Default is false
> number-samples |  | integer optional | The total number of samples to be returned. The sample-rate will be calculated based on the start-time and end-time If the available samples have higher resolution than the one specified, multiple samples are consolidated into one sample to achieve the desired resolution, using the specified time-consolidation-method. If unspecified, the number of samples returned will be based on the sample-rate specified upon creation of the view. Either sample-rate or number-samples should be specified, but not both Range: [1..(2^32)-1]
> sample-rate |  | integer optional | The desired interval between samples, in seconds. If the available samples have higher resolution than the one specified, multiple samples are consolidated into one sample to achieve the desired resolution, using the specified time-consolidation-method. If unspecified, the data returned will be at the sample-rate specified upon creation of the view Range: [1..(2^32)-1]
> start-time |  | integer optional | Time stamp marking the beginning of requested data. The timestamp value is the time in seconds since 00:00:00 Jan 1, 1970, UTC. If unspecified, server should begin with the earliest available data. Range: [0..(2^32)-1]
> time-consolidation-method |  | string optional | A function to apply across the data to achieve the desired time resolution, if the requested sample-rate is different from the actual sample-rate of the data. Possible values : 'average' 'min' 'max' 'last' Default is 'last'
> view-name |  | string | The view from which data is to be retrieved Maximum length is 255
> Output Name | Range | Type | Description
> counter-data |  | string optional | A single array of the retrieved data. The format is a series of comma-separated timestamp:value pairs. The timestamp value is the time in seconds since 00:00:00 Jan 1, 1970, UTC. The values may have optional decimal extensions, for example 1064439599:127,1064439600:98.6,1064439601:12
> dynamic-data |  | dynamic-data[] optional | Contains data for top-N objects
> unit |  | string optional | Unit of counter-data. This element will not be present if the unit is not known. Some possible values are per_sec, percent, b_per_sec, kb_per_sec, msecs, usecs. Maximum Length: 32 characters.

> Errno | Description
> EOBJECTNOTFOUNDERROR |  |
> EINTERNALERROR |  |
> EAPIERROR |  |
> EACCESSDENIED |  |
> EDATABASEERROR |  |
> EINVALIDINPUTERROR |  |

perf-view-list-iter-end | [top]

> Terminate a view list iteration and clean up any saved info. Privilege required is read.

> Input Name | Range | Type | Description
> tag |  | string | Tag from a previous perf-view-list-iter-start

> Errno | Description
> EAPIPRIVILEDGE |  |
> EAPINOTLICENSED |  |

perf-view-list-iter-next | [top]

> Retrieve items from a previous call to perf-view-list-iter-start Privilege required is read.

> Input Name | Range | Type | Description
> maximum |  | integer | The maximum number of entries to retrieve.
> tag |  | string | The tag from a previous perf-view-list-iter- call.
> Output Name | Range | Type | Description
> views |  | perf-view[] | A list of views.

> Errno | Description
> EAPIPRIVILEDGE |  |
> EAPINOTLICENSED |  |

perf-view-list-iter-start | [top]

> Initiates a query for a list of performance views. Privilege required is read.

> Input Name | Range | Type | Description
> appliance-name-or-id |  | string optional | The name (or unique ID) of the source appliance. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in the appliance-info structure from the appliance-list-iter-next. The API will accept a vfiler name or id from DFM 3.3 onwards. Only the views for matching appliance are returned.
> custom-only |  | boolean optional | If TRUE, returns only custom views, by default FALSE.
> group-name-or-id |  | string optional | The name (or unique ID) of the source group. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in the group-list-iter-next APIs. This is ignored if appliance-name-or-id has been specified. Only the views for matching group are returned.
> instance-name |  | string optional | If specified, only views with a matching instance will be returned. Otherwise, all performance views will be returned (subject to the other optional parameters). You must specify appliance-name-or-id and object-name when specifying instance-name.
> object-name |  | string optional | If specified, only views with a matching object will be returned. Otherwise, all performance views will be returned (subject to the other optional parameters).
> view-name |  | string optional | If view-name is specified, only the indicated view will be retrieved. Otherwise, all performance views will be returned (subject to the other optional parameters).
> Output Name | Range | Type | Description
> records |  | integer | Number indicating how many items are available for future retrieval via calls to perf-view-list-iter-next
> tag |  | string | Tag to be used in subsequent calls to perf-view-list-iter-next or perf-view-list-iter-end

> Errno | Description
> EAPIPRIVILEDGE |  |
> EAPINOTLICENSED |  |

perf-view-modify | [top]

> Modify an existing performance view. Global DFM.PerfView.Write RBAC capability is required to modify performance views.

> Input Name | Range | Type | Description
> appliance-name-or-id |  | string optional | Name (or unique ID) of the appliance. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in the appliance-info structure from the appliance-list-iter-next API. The API will accept a vfiler name or id from DFM 3.3 onwards.
> group-name-or-id |  | string optional | The group that this view is associated with. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in group-list-iter-next APIs.
> view |  | perf-view | The new performance view information. Note that the new performance view name may be different from the old performance view name. If the new name is different, the new name must not already exist.
> view-name |  | string | Name of the performance view to modify.

> Errno | Description
> EAPIPRIVILEDGE |  |
> EAPINOTLICENSED |  |

perf-view-object-association-add | [top]

> Associates an object with a view

> Input Name | Range | Type | Description
> object-name-or-id |  | obj-name-or-id | The object to be associated with the view
> view-name |  | string | The view for which the association is to be set

> Errno | Description
> EOBJECTNOTFOUNDERROR |  |
> EINTERNALERROR |  |
> EAPIERROR |  |
> EACCESSDENIED |  |
> EOBJECTNOTFOUNDERROR |  |
> EOBJECTAMBIGUOUS |  |
> EDATABASEERROR |  |
> EINVALIDINPUTERROR |  |

perf-view-object-association-delete | [top]

> Removes the association of an object with a view

> Input Name | Range | Type | Description
> object-name-or-id |  | obj-name-or-id | The object to be dis-associated with the view
> view-name |  | string | The view for which the association is to be deleted

> Errno | Description
> EOBJECTNOTFOUNDERROR |  |
> EINTERNALERROR |  |
> EAPIERROR |  |
> EACCESSDENIED |  |
> EDATABASEERROR |  |
> EOBJECTAMBIGUOUS |  |
> EINVALIDINPUTERROR |  |

Element definition: dynamic-data | [top]

> Contains data for top-N objects

> Name | Range | Type | Description
> hostname |  | obj-name optional | Name of the host. Will not be set when the objects are selected within a host
> instance-name |  | perf-instance optional | Name of the perf instance. Will not be set for single instance objects like system, nfsv3
> obj-id |  | obj-id optional | Identifier of the object. Will not be set for unmanaged objects
> value |  | string | Value for the object Max Length is 32

Element definition: instance-counter-info | [top]

> A specification for returning data for the given instances and counters.

> Name | Range | Type | Description
> counter-info |  | perf-object-counter[] optional. | List of performance counters whose values will be retrieved.
> object-name-or-id |  | obj-name-or-id optional | If specified, all related instances of the object-type mentioned in the perf-object-counter under this object are returned. For example, if obj-name-or-id is a host and object-type in the perf-object-counter is qtree, this would mean all qtree under the host. If the obj-name-or-id is aggregate, all qtrees under the aggregate.

Element definition: obj-name-or-id | [top]

> Name or internal ID of a DFM object. This typedef is an alias for the builtin ZAPI type string. An obj-name-or-id must contain between 1 and 64 characters, and must conform to one of the following formats: It must have the format of an obj-name, or It must be the decimal numeric string form of a positive integer whose value is in the range [1..2^31 - 1]. Elements of type obj-name-or-id are used only as inputs to ZAPIs. The value must match either the name or internal ID of an existing DFM object. The ZAPI must specify the object's DFM object type (e.g. dataset, host, DP policy, etc.). Some ZAPIs allow the object to be one of several different types. If the format of an obj-name-or-id input element does not conform, or the value does not match the name or ID of an existing object, then generally the ZAPI documents that it fails with error code EOBJECTNOTFOUND. A ZAPI may return more specific error codes. In such cases, the ZAPI specification must document its behavior. If a ZAPI can accept a null value (e.g. reference to no object at all) for such an element, then the element is declared optional, and the absence of the input element represents a null value.

> [none]

Element definition: object-info | [top]

> Associated object's information

> Name | Range | Type | Description
> object-full-name |  | obj-full-name optional | The full name of the object that is associated with the view
> object-id |  | obj-id | The object that is associated with the view
> object-name |  | obj-name optional | object-name is the name of the DFM object
> object-type |  | string optional | Type of the DFM object. The possible values are "resource_group" "data_set" "resource_pool" "filer" "vfiler" "volume" "qtree" "lun" "aggregate" "interface"

Element definition: perf-assoc-obj-type | [top]

> Name of the object type. The possible values are "resource_group" "data_set" "resource_pool" "filer" "vfiler" "volume" "qtree" "lun" "aggregate" "disk" "interface" "processor" "target"

> [none]

Element definition: perf-counter | [top]

> Describes a performance counter (a measurable quantity on a performance object). This might be, for example, the number of writes per second on a specific volume.

> Name | Range | Type | Description
> base-counter |  | string optional | Name of the counter used as the denominator to calculate values of counters involving percentages. For additional details, please refer to the ONTAP API perf-object-counter-list-info
> desc |  | string | Description of the counter
> is-display |  | boolean optional | If TRUE, this counter can be displayed to the user. If FALSE, this counter is a base counter used as the denominator to calculate values of counters involving percentages. The base counters should not be displayed to the user. Default value is TRUE.
> labels |  | perf-label[] optional | A list of labels for this counter. For additional details, please refer to the ONTAP API perf-object-counter-list-info
> name |  | string | Name of the counter
> privilege-level |  | string optional | The counter privilege level, can be "basic", "advanced" or "diag". Any counter with a privilege level of "diag" is not guaranteed to work, to exist in future releases, or to remain unchanged.
> properties |  | string optional | Properties of the counter. For additional details, please refer to the ONTAP API perf-object-counter-list-info
> type |  | string optional | Type of the counter. For additional details, please refer to the ONTAP API perf-object-counter-list-info
> unit |  | string optional | Unit of the counter. For additional details, please refer to the ONTAP API perf-object-counter-list-info

Element definition: perf-counter-group | [top]

> A counter group. A counter group is a collection of measurable data sources coupled with an associated sampling rate and sample history.

> Name | Range | Type | Description
> appliance-name-or-id |  | string optional | The name (or unique ID) of the source appliance. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in the appliance-info structure from the appliance-list-iter-next. The API will accept a vfiler name or id from DFM 3.3 onwards.
> counter-group-name |  | string | Name of the counter group.
> data-sources |  | perf-data-source[] optional | Identifiers for the data sources to be retrieved in later queries. The data-sources can not contain 'group' data source. i.e. instance-name must be specified for each perf-data-source. The data-sources should not contain a data source that specifies label-names field. This is because counter group always collects data for the whole counter i.e. for all labels. perf-data-source is not required for default counter groups. The perf-counter-group-modify API ignores this element for default counter groups.
> end-time |  | integer optional | Present in output only. Indicates the timestamp of the last available data sample. The timestamp value is the time in seconds since 00:00:00 Jan 1, 1970, UTC.
> group-name-or-id |  | string optional | The name (or unique ID) of the source group. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in group-list-iter-next APIs. This field is ignored if appliance-name-or-id is specified. This field defaults to global group if appliance-name-or-id is not specified.
> is-default |  | boolean optional | Indicates whether the counter group is a "default" counter group. Defaults to false.
> is-stopped |  | boolean optional | Present in output only. Indicates whether data collection has been stopped for the counter group using perf-counter-group-stop API. When this field is false, it indicates server's intention to collect data for the counter group. But many other factors can affect whether data is actually collected or not.
> number-records |  | integer optional | Present in output only. Indicates the number of records currently collected for the counter group and appliance. This information is sent in the output only if the host information is not consolidated
> perf-file-name |  | string optional | Present in output only. This indicates the name of the file that contains the performance information for the counter group and appliance. This information is sent in the output only if the host information is not consolidated
> real-time |  | boolean optional | Designates whether the counter group is real-time, in other words, if no user is getting data from the group, then the counter group will no longer get data. By default FALSE.
> sample-buffer |  | integer optional | Length of sample buffer to retain, in seconds. If unspecified on input, the value will be chosen by the server.
> sample-rate |  | integer optional | Length of interval between samples, in seconds. Defaults to one minute.
> space-consumed |  | integer optional | Present in output only. Indicates the amount of server storage currently consumed by the counter group data, in bytes.
> start-time |  | integer optional | Present in output only. Indicates the timestamp of the first available data sample. The timestamp value is the time in seconds since 00:00:00 Jan 1, 1970, UTC.

Element definition: perf-counter-instance | [top]

> Defines a perf counter for a specific instance.

> Name | Range | Type | Description
> counter-info |  | perf-object-counter | The counter for which data is to be retrieved
> instance-name |  | string optional | For unmanaged object, this will be the name of the instance. In this case, object-name-or-id will be the id for the storage system Maximum length is 255
> object-name-or-id |  | obj-name-or-id | The object for which data is to be retrieved or the id of the parent storage system, if instance-name is specified

Element definition: perf-data-group | [top]

> Definition of a set of data sources and a consolidation method.

> Name | Range | Type | Description
> data-group-method |  | string optional | A function to apply across the data sources. Valid values are average (average of all sources), total (sum of all sources). The default is total (which for one data source is just the value of the single data source).
> data-sources |  | perf-data-source[] | Identifiers for the data sources to be retrieved in later queries. The data-sources should be either one 'group' data source, or many (one or more) of 'instance' data sources. If data-sources contains a data source that has an array counter, specify label-names field of perf-data-source to select a single element of the array.

Element definition: perf-data-source | [top]

> An unique identifier for a source of data. When optional instance-name field is not specified, perf-data-source represents all relevant instances in an appliance or in a group.

> Name | Range | Type | Description
> appliance-name-or-id |  | string optional | The name (or unique ID) of the source appliance. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in the appliance-info structure from the appliance-list-iter-next. The API will accept a vfiler name or id from DFM 3.3 onwards.
> counter-name |  | string | The name of the counter measured. Counters are specifc measurable quantities on an instance of a performance object, for example the number of write operations on a volume.
> group-name-or-id |  | string optional | The name (or unique ID) of the source group. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in group-list-iter-next APIs. This field is ignored if appliance-name-or-id is specified. This field defaults to global group if appliance-name-or-id is not specified.
> instance-name |  | string optional | The name of the specific object referenced (vol2, disk2, ...). If this field is specified, appliance-name-or-id must also be specified. If this field is not specified, it is considered as a wildcard that implies combining data for all instances of an appliance or a group.
> label-names |  | string optional | An optional list of comma-separated label names. These represent an index into the array of values when a counter has more than one value (as implicitly indicated by the number of labels). The values should be the name of the label (for example 'getattr' for the 'nfs_v3_ops' counter). In some cases, the array of labels is multi-dimensional, in which case there should be one label name from each row in the array of labels. Each entry should be comma-separated. If unspecified, the default value is blank. In that case, its interpretation depends on the context.
> object-full-name |  | obj-full-name optional | The object id for the specific object referenced
> object-name |  | string | The name of the referenced object. Object names are broad classes of system components and protocols, like NFS, VOLUME, DISK, ...
> object-name-or-id |  | obj-name-or-id optional | The object id for the specific object referenced. For dynamic data sources, this will specify the container from which objects will be selected
> object-type |  | string optional | Type of the DFM object. The possible values are "filer" "vfiler" "volume" "qtree" "lun" "aggregate"

Element definition: perf-dynamic-data-sources | [top]

> A specification for selecting top-n instances for a single counter. Data for each instance is drawn on the chart as one line. e.g. top 5 busy storage systems in a group.

> Name | Range | Type | Description
> color |  | string optional | Color of the line. The values and their interpretation are determined by the client. Recommended usage includes common names like "black" or "blue", as well RGB hex specification like "AAFF00".
> data-source |  | perf-data-source | Describes the properties of instances that should be considered for top-n query. The data-source must be 'group' data source i.e. instance-name field must be empty. If data-source has an array counter, specify label-names field to select a single element of the array.
> maximum-instances |  | integer optional | Maximum number of instances to pick. Default is 5.
> sort-order |  | string optional | The sort order when comparing data from different instances. After sorting data in this order, top maximum-instances are picked. Valid values are "ascending" and "descending". Default is "descending".
> time-interval |  | integer optional | When considering the historical data samples, how far back in time (in seconds) we should go. Default is 300.

Element definition: perf-instance | [top]

> Describes an instance. An instance is a manifestation of a performance object. For example, the performance object might be "VOLUME" whereas the instance might be "vol0".

> Name | Range | Type | Description
> instance-name |  | string | Name of the instance.

Element definition: perf-instance-counter-data | [top]

> Array of counter values of an instance.

> Name | Range | Type | Description
> counters |  | perf-counter-data[] | List of counter values for this instance.
> instance-name |  | string optional | Name of the instance to get counter values for.
> object-id |  | obj-id | Identifier of the object

Element definition: perf-object | [top]

> A performance object. A performance object is a (somewhat abstract) representation of a class of measurable items. These are roughly akin to system subcomponents or protocols, for example "VOLUME", "DISK" or "NFS". These are broad classes and do not represent specific instances.

> Name | Range | Type | Description
> object-name |  | string | Name of the performance object.

Element definition: perf-object-counter-info | [top]

> Performance Counters can be a combination of an object and a counter.

> Name | Range | Type | Description
> object-name-or-id |  | obj-name-or-id | object-name or object-id for which counter information is being collected.
> perf-object-counter |  | perf-object-counter | Attributes of the counter being collected.

Element definition: perf-server-status | [top]

> Describes the status of perf server.

> Name | Range | Type | Description
> data-collection-status |  | string | Specifies the status of data collection. Possible values are "enabled","disabled" and "disabling"
> object-update-status |  | string | Specifies the status of object updates. Possible values are "enabled" and "disabled"
> server-status |  | string | Specifies the status of Performance Advisor. Possible values are "enabled" and "disabled". Status will be "enabled" only when both data-collection-status and object-update-status are enabled.

Element definition: perf-status-error | [top]

> Possible resons for data unavailability.

> Name | Range | Type | Description
> error |  | string | The following are the possible reasons: 1) "perf-advisor-not-enabled" This indicates that the performance advisor is not enabled on DFM. 2) "host-bad-credentials" This indicates that the authetication credentials for the host are incorrect. 3) "host-no-credentials" This indicated that the host login is empty. 4) "host-not-reachable" This indicates that the host is down and hence not reachable. 5) "host-transport-incorrect" This indicates that the host transport is in compatible with the performance advisor transport. 6) "filer-os-version-less-than-6.5" This indicates that the storage system is running OS with a release version less than 6.5. 7) "filer-data-unavailable" This indicates that DFM has not discovered instances of performance objects on the storage system yet.

Element definition: perf-view | [top]

> A performance view.

> Name | Range | Type | Description
> appliance-name-or-id |  | string optional | Name (or unique ID) of the appliance. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in the appliance-info structure from the appliance-list-iter-next API. The API will accept a vfiler name or id from DFM 3.3 onwards.
> are-events-shown |  | boolean optional | Indicates whether an event block should be shown as part of the view. Defaults to false.
> assoc-obj-type |  | perf-assoc-obj-type[] optional | Indicates all the object-type that the view provides information for. Could be more than one for custom views
> charts |  | perf-chart[] | The charts (graphs) appearing in this view.
> counter-group-name |  | string optional | Name of the referenced counter group.
> group-name-or-id |  | string optional | The group that this view is associated with. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in group-list-iter-next APIs.
> is-default |  | boolean optional | Indicates whether the view is a "default" performance view. Defaults to false.
> is-stopped |  | boolean optional | Indicates whether data collection is stopped for the view. Defaults to false.
> sample-buffer |  | integer optional | Length of sample buffer to retain, in seconds. If unspecified on input, the value will be chosen by the server.
> sample-rate |  | integer optional | Length of interval between samples, in seconds. Defaults to one minute.
> view-name |  | string | Name of the view.
> view-type |  | string optional | Indicates the type of view Possible values are "custom_view" "canned_view" "summary_view"

Element definition: threshold-id | [top]

> A unique numeric identifier used to specify a threshold. This parameter is mandatory when modifying a threshold. This typedef is an alias for the builtin ZAPI type integer. Range: [1..2^31-1]

> [none]

Element definition: threshold-info | [top]

> Defines all the attributes of a threshold.

> Name | Range | Type | Description
> is-enabled |  | boolean optional | Specifies if the Threshold is enabled. Default value is TRUE when setting or modifying a threshold.
> object-full-name |  | obj-full-name | Fully qualified name of the object. It is used as an output parameter while listing thresholds. This parameter is unused for all other APIs.
> object-name-or-id |  | obj-name-or-id optional | The name or id of the object on which the threshold is to be created. Note that the API allows you to set only a single threshold at a time. So, container objects like Resource Group, Dataset, Resource pool cannot be specified here. It is a mandatory parameter when setting a threshold. For the modify APIs, it is ignored if threshold-id is also specified. While listing thresholds, this parameter will always contain the object-id. The allowed object types for this argument are 'Host' 'Aggregate' 'Volume' 'Qtree' 'Lun'
> perf-object-counter |  | perf-object-counter optional | Specifies a combination of an object and a counter. When setting a threshold the first time, it is a mandatory parameter. For the modify APIs, it is ignored if threshold-id is also specified.
> threshold-id |  | threshold-id optional | ID of the threshold. Element is ignored while creating a threshold but is mandatory when modifying them.
> threshold-interval |  | integer optional | The amount of time in seconds for which an event generation is suppressed before deciding that a counter has crossed a specified threshold and an event needs to be generated. The same interval will also be used to generate a normal event. If a value of zero is specified, any temporary spikes in counter values above the threshold will generate an event, if the counter values are sampled at that point of time. This parameter is mandatory when setting a threshold. Range: [0..2^31-1]
> threshold-type |  | string optional | The type of threshold, can be upper or lower. In case of an Upper threshold type, the counter value must exceed the threshold value for at least the specified amount of time for an event to be generated. In case of a Lower threshold type, the counter value must fall below the threshold value for at least the specified amount of time for an event to be generated. Note that as the threshold types are mutually exclusive, so only one threshold type may be specified. Default value is 'upper' when setting or modifying a threshold. Possible values:'upper', 'lower'
> threshold-unit |  | string optional | Unit of the counter. This parameter is mandatory when setting or modifying a threshold. The Possible Values are: Possible values: per_sec, b_per_sec (bytes/s), kb_per_sec (Kbytes/s), mb_per_sec (Mbytes/s), percent, millisec, microsec, sec, or none. Note that the metric used for a counter may vary depending upon the Data ONTAP version.
> threshold-value |  | integer optional | The threshold value of a counter is used to generate an event if the observed counter value breaches this value. This parameter is mandatory when setting a threshold. Range: [1..2^31-1]

Element definition: threshold-info2 | [top]

> Defines a performance counter based threshold.

> Name | Range | Type | Description
> counter-thresholds |  | counter-threshold-info[] | List of thresholds on counters.
> is-enabled |  | boolean optional | If true, the threshold is enabled and events will be generated if it is breached. Default value is true.
> is-indirect |  | boolean optional | Specifies whether the threshold applies on the object directly or through inheritance. For example, if the threshold is applied on a storage system, but applies on qtree in it because of the constituent counters, is-indirect will be set to true. This value is relevant only when the threshold details are returned; and is ignored when creating or modifying a threshold. It is, therefore, ignored in input.
> objects-info |  | object-info[] optional | Contains the id, the full name and type of the object on which the threshold is applied directly.
> resource-property-conditions |  | resource-property-condition[] optional | Specifies conditions on properties of the objects to which this threshold applies.
> template-id |  | integer optional | This returns the id of the template to which this threshold belongs. Range: [1..2^32-1]
> template-name |  | string optional | Specifies the name of the template to which this threshold belongs.
> threshold-event-name |  | string | Specifies the name of the event that is raised when the threshold is breached. The default name is derived from the counter.
> threshold-id |  | threshold-id optional | The ID, in the DFM database, of the threshold. This element should not be specified when creating a threshold, but is always returned when querying.
> threshold-interval |  | integer | The amount of time in seconds for which an event generation is suppressed before deciding that a counter has crossed a specified threshold and an event needs to be generated. The same interval will also be used to generate a normal event. If a value of zero is specified, any temporary spikes in counter values above the threshold will generate an event, if the counter values are sampled at that point of time. This parameter is mandatory when setting a threshold. Range: [0..2^31-1]

Element definition: threshold-template-info | [top]

> Contains info on performance threshold templates

> Name | Range | Type | Description
> applied-objects |  | object-info[] optional |
> is-enabled |  | boolean optional | This specifies if the template is enabled or not.
> member-thresholds |  | threshold-info2[] optional | Specifies the thresholds that are to be part of this template.
> template-description |  | string optional | Description of the template.
> template-id |  | integer | This returns the id of the template that is created Range: [1..2^32-1]
> template-name |  | string optional | Name of the template.

Element definition: counter-threshold-info | [top]

> Specifies all the attributes of a threshold on a single counter.

> Name | Range | Type | Description
> perf-object-counter |  | perf-object-counter | Specifies a combination of an object and a counter, e.g. system:cpu_busy.
> threshold-type |  | string optional | Specifies whether an event is to be generated when the value of the counter is above ('upper') or below ('lower') the threshold-value. Possible values are 'upper' and 'lower'. Default is 'upper'
> threshold-unit |  | counter-unit | Unit of the counter. The metric used for a counter may vary depending on the ONTAP version.
> threshold-value |  | integer | The threshold value to trigger an event.

Element definition: obj-full-name | [top]

> Full name of a DFM 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. DFM creates full names 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: Host full names are the either the fully-qualified domain name or the IP address of the host. Aggregate full names are the host name and the aggregate name, separated by a colon, e.g. hostname:aggr0. Volume full names are the host name and the volume name, separated by ":/", e.g. hostname:/volume. Note this does not include "/vol". 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. hostname:/volume/qtree. The data not contained by any qtree may be represented by "-", e.g. hostname:/volume/-. Lun Path full names are either a volume or qtree full name and the LUN path, separated by a slash, e.g. hostname:/volume/LUN or hostname:/volume/qtree/LUN. Network full names are a network address block in CIDR format, e.g. 1.2.3.0/8. OSSV Directory full names are the OSSV host name and the OSSV path, separated by a colon, e.g. host-lnx:/usr/local or host-w2k:c:/temp Include any others here... Initiator Group full names are host name and the initiator group name, separated by a colon, e.g. hostname:igroup. For any DFM object not listed above, the obj-name and obj-full-name are identical.

> [none]

Element definition: obj-id | [top]

> Identification number (ID) for a DFM 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 a DFM 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 DFM object type (e.g. dataset, host, DP policy, 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 DFM 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.

> [none]

Element definition: obj-name | [top]

> Name of a DFM 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 EINVALIDINPUTERROR. Note that because EINVALIDINPUTERROR 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 DFM object type (e.g. data set, host, DP policy, 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. For example, this constraint applies to datasets, DP schedules, and DP policies. This means that no two datasets may have the same name, but a dataset may have the same name as a DP schedule or DP policy. In general, object names are compared in a case-insensitive manner. This means that, for example, "MyObject" and "MYOBJECT" are considered to be the same name for purposes of: creating new objects, renaming existing objects, or looking up an object by name. On the other hand, ZAPIs that return an obj-name generally do not change the capitalization at all. For example, if an object's name has been set to "MyObject", then list iteration ZAPIs that return the object's name return it as "MyObject" rather than "MYOBJECT" or "myobject". ZAPIs that operate on obj-name values and do not follow these general rules about case sensitivity must document the rules that they do follow. One important exception to these general rules is that volumes, qtrees, OSSV directories, SRM paths, interfaces, FCP targets and FC switch ports all have case-sensitive names. When looking up objects of these types by name, the case must match the object name.

> [none]

Element definition: obj-name-or-id | [top]

> Name or internal ID of a DFM object. This typedef is an alias for the builtin ZAPI type string. An obj-name-or-id must contain between 1 and 64 characters, and must conform to one of the following formats: It must have the format of an obj-name, or It must be the decimal numeric string form of a positive integer whose value is in the range [1..2^31 - 1]. Elements of type obj-name-or-id are used only as inputs to ZAPIs. The value must match either the name or internal ID of an existing DFM object. The ZAPI must specify the object's DFM object type (e.g. dataset, host, DP policy, etc.). Some ZAPIs allow the object to be one of several different types. If the format of an obj-name-or-id input element does not conform, or the value does not match the name or ID of an existing object, then generally the ZAPI documents that it fails with error code EOBJECTNOTFOUND. A ZAPI may return more specific error codes. In such cases, the ZAPI specification must document its behavior. If a ZAPI can accept a null value (e.g. reference to no object at all) for such an element, then the element is declared optional, and the absence of the input element represents a null value.

> [none]

Element definition: object-info | [top]

> Associated object's information

> Name | Range | Type | Description
> object-full-name |  | obj-full-name optional | The full name of the object that is associated with the view
> object-id |  | obj-id | The object that is associated with the view
> object-name |  | obj-name optional | object-name is the name of the DFM object
> object-type |  | string optional | Type of the DFM object. The possible values are "resource_group" "data_set" "resource_pool" "filer" "vfiler" "volume" "qtree" "lun" "aggregate" "interface"

Element definition: perf-assoc-obj-type | [top]

> Name of the object type. The possible values are "resource_group" "data_set" "resource_pool" "filer" "vfiler" "volume" "qtree" "lun" "aggregate" "disk" "interface" "processor" "target"

> [none]

Element definition: perf-chart | [top]

> Information about a chart. A chart is a display (graph) with one or more data sources (lines).

> Name | Range | Type | Description
> chart-name |  | string | Name of the chart. This is intended to be a user-visible label like "CPU Graph". It should be unique to the performance view.
> dynamic-data-sources |  | perf-dynamic-data-sources optional | Lines representing dynamic members. Data for each data source is drawn as one line in the chart.
> lines |  | perf-line[] optional | Line definitions.
> maximum-y |  | integer optional | An optional maximum value for the y axis. The units are arbitrary and determined by the client. This may be used to help guide the chart construction in the client.
> type |  | string optional | Type of the chart. Arbitrary string meaningful to the client only.

Element definition: perf-counter-data | [top]

> Value of the performance counter.

> Name | Range | Type | Description
> counter-data |  | string | A single Array of retrieved values counter data. The format is a series of comma-separated timestamp:value pairs. The timestamp value is the time in seconds since 00:00:00 Jan 1, 1970, UTC. The values may have optional decimal extensions.
> counter-name |  | string | Name of the counter.
> unit |  | string optional | Unit of counter-data. This element will not be present if the unit is not known. Some possible values are per_sec, percent, b_per_sec, kb_per_sec, msecs, usecs. Maximum Length: 32 characters.

Element definition: perf-data-source | [top]

> An unique identifier for a source of data. When optional instance-name field is not specified, perf-data-source represents all relevant instances in an appliance or in a group.

> Name | Range | Type | Description
> appliance-name-or-id |  | string optional | The name (or unique ID) of the source appliance. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in the appliance-info structure from the appliance-list-iter-next. The API will accept a vfiler name or id from DFM 3.3 onwards.
> counter-name |  | string | The name of the counter measured. Counters are specifc measurable quantities on an instance of a performance object, for example the number of write operations on a volume.
> group-name-or-id |  | string optional | The name (or unique ID) of the source group. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in group-list-iter-next APIs. This field is ignored if appliance-name-or-id is specified. This field defaults to global group if appliance-name-or-id is not specified.
> instance-name |  | string optional | The name of the specific object referenced (vol2, disk2, ...). If this field is specified, appliance-name-or-id must also be specified. If this field is not specified, it is considered as a wildcard that implies combining data for all instances of an appliance or a group.
> label-names |  | string optional | An optional list of comma-separated label names. These represent an index into the array of values when a counter has more than one value (as implicitly indicated by the number of labels). The values should be the name of the label (for example 'getattr' for the 'nfs_v3_ops' counter). In some cases, the array of labels is multi-dimensional, in which case there should be one label name from each row in the array of labels. Each entry should be comma-separated. If unspecified, the default value is blank. In that case, its interpretation depends on the context.
> object-full-name |  | obj-full-name optional | The object id for the specific object referenced
> object-name |  | string | The name of the referenced object. Object names are broad classes of system components and protocols, like NFS, VOLUME, DISK, ...
> object-name-or-id |  | obj-name-or-id optional | The object id for the specific object referenced. For dynamic data sources, this will specify the container from which objects will be selected
> object-type |  | string optional | Type of the DFM object. The possible values are "filer" "vfiler" "volume" "qtree" "lun" "aggregate"

Element definition: perf-dynamic-data-sources | [top]

> A specification for selecting top-n instances for a single counter. Data for each instance is drawn on the chart as one line. e.g. top 5 busy storage systems in a group.

> Name | Range | Type | Description
> color |  | string optional | Color of the line. The values and their interpretation are determined by the client. Recommended usage includes common names like "black" or "blue", as well RGB hex specification like "AAFF00".
> data-source |  | perf-data-source | Describes the properties of instances that should be considered for top-n query. The data-source must be 'group' data source i.e. instance-name field must be empty. If data-source has an array counter, specify label-names field to select a single element of the array.
> maximum-instances |  | integer optional | Maximum number of instances to pick. Default is 5.
> sort-order |  | string optional | The sort order when comparing data from different instances. After sorting data in this order, top maximum-instances are picked. Valid values are "ascending" and "descending". Default is "descending".
> time-interval |  | integer optional | When considering the historical data samples, how far back in time (in seconds) we should go. Default is 300.

Element definition: perf-label | [top]

> When a counter has more than one value (an array), the labels describe the indvidual array entries, and define an implicit indexing scheme into the array. The array may be multi-dimensional, in which case each occurrence of a perf-label represents a dimension in the array of labels.

> Name | Range | Type | Description
> label-names |  | string | A comma-separated list of labels, representing a row in the array of labels.

Element definition: perf-object-counter | [top]

> Performance Counters can be a combination of an object and a counter.

> Name | Range | Type | Description
> counter-description |  | string optional | Description of the counter on which the threshold has been set.
> counter-name |  | string | The name of the counter measured. Counters are specifc measurable quantities on an instance of a performance object like avg_latency, nfs_ops. Maximum length of 255 characters.
> label-names |  | string optional | An optional list of comma-separated label names. These represent an index into the array of values when a counter has more than one value (as implicitly indicated by the number of labels). The values should be the name of the label (for example 'getattr' for the 'nfs_v3_ops' counter). In some cases, the array of labels is multi-dimensional, in which case there should be one label name from each row in the array of labels. Each entry should be comma-separated. If unspecified, the default value is blank. In that case, its interpretation depends on the context. Maximum length of 255 characters
> object-type |  | string | object-type is the name of the object classification as defined by ONTAP counter manager. Maximum length of 255 characters.
> time-consolidation-method |  | string optional | This element will be used by perf-get-counter-data ZAPI only. A function to apply across the data for this counter to achieve the desired time resolution, if the requested sample-rate is different from the actual sample-rate of the data. Possible values : 'average' 'min' 'max' 'last' Default is 'last'

Element definition: resource-property-condition | [top]

> Specifies conditions on resource properties. In case of values for the same property, the conditions are assumed to be either-or conditions. For example, if the conditions "Disk RPM=7200" and "Disk RPM=10000" are specified, the threshold applies to all disks with speed 7200 RPM or 10000 RPM. In case of conditions on different properties, the conditions are assumed to be "and" conditions. For example, if the conditions name = "Disk RPM", value = "10000" and name="Filer Model", value="FAS270" are specified, the threshold applies to all disks with speed 10000 RPM on FAS270 storage systems. During template modification, if no resource properties are specified, existing resource properties, if any, will be cleared.

> Name | Range | Type | Description
> name |  | string | The name of the resource property.
> value |  | string | The value that this resource property should have.

Element definition: threshold-id | [top]

> A unique numeric identifier used to specify a threshold. This parameter is mandatory when modifying a threshold. This typedef is an alias for the builtin ZAPI type integer. Range: [1..2^31-1]

> [none]

Element definition: threshold-info2 | [top]

> Defines a performance counter based threshold.

> Name | Range | Type | Description
> counter-thresholds |  | counter-threshold-info[] | List of thresholds on counters.
> is-enabled |  | boolean optional | If true, the threshold is enabled and events will be generated if it is breached. Default value is true.
> is-indirect |  | boolean optional | Specifies whether the threshold applies on the object directly or through inheritance. For example, if the threshold is applied on a storage system, but applies on qtree in it because of the constituent counters, is-indirect will be set to true. This value is relevant only when the threshold details are returned; and is ignored when creating or modifying a threshold. It is, therefore, ignored in input.
> objects-info |  | object-info[] optional | Contains the id, the full name and type of the object on which the threshold is applied directly.
> resource-property-conditions |  | resource-property-condition[] optional | Specifies conditions on properties of the objects to which this threshold applies.
> template-id |  | integer optional | This returns the id of the template to which this threshold belongs. Range: [1..2^32-1]
> template-name |  | string optional | Specifies the name of the template to which this threshold belongs.
> threshold-event-name |  | string | Specifies the name of the event that is raised when the threshold is breached. The default name is derived from the counter.
> threshold-id |  | threshold-id optional | The ID, in the DFM database, of the threshold. This element should not be specified when creating a threshold, but is always returned when querying.
> threshold-interval |  | integer | The amount of time in seconds for which an event generation is suppressed before deciding that a counter has crossed a specified threshold and an event needs to be generated. The same interval will also be used to generate a normal event. If a value of zero is specified, any temporary spikes in counter values above the threshold will generate an event, if the counter values are sampled at that point of time. This parameter is mandatory when setting a threshold. Range: [0..2^31-1]

Element definition: counter-threshold-info | [top]

> Specifies all the attributes of a threshold on a single counter.

> Name | Range | Type | Description
> perf-object-counter |  | perf-object-counter | Specifies a combination of an object and a counter, e.g. system:cpu_busy.
> threshold-type |  | string optional | Specifies whether an event is to be generated when the value of the counter is above ('upper') or below ('lower') the threshold-value. Possible values are 'upper' and 'lower'. Default is 'upper'
> threshold-unit |  | counter-unit | Unit of the counter. The metric used for a counter may vary depending on the ONTAP version.
> threshold-value |  | integer | The threshold value to trigger an event.

Element definition: counter-unit | [top]

> A unit in which a counter is measured. Possible values are per_sec, b_per_sec (bytes/s), kb_per_sec (kb/s), mb_per_sec (mb/s), percent, millisec (milliseconds), microsec (microseconds), sec (seconds) and none.

> [none]

Element definition: obj-full-name | [top]

> Full name of a DFM 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. DFM creates full names 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: Host full names are the either the fully-qualified domain name or the IP address of the host. Aggregate full names are the host name and the aggregate name, separated by a colon, e.g. hostname:aggr0. Volume full names are the host name and the volume name, separated by ":/", e.g. hostname:/volume. Note this does not include "/vol". 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. hostname:/volume/qtree. The data not contained by any qtree may be represented by "-", e.g. hostname:/volume/-. Lun Path full names are either a volume or qtree full name and the LUN path, separated by a slash, e.g. hostname:/volume/LUN or hostname:/volume/qtree/LUN. Network full names are a network address block in CIDR format, e.g. 1.2.3.0/8. OSSV Directory full names are the OSSV host name and the OSSV path, separated by a colon, e.g. host-lnx:/usr/local or host-w2k:c:/temp Include any others here... Initiator Group full names are host name and the initiator group name, separated by a colon, e.g. hostname:igroup. For any DFM object not listed above, the obj-name and obj-full-name are identical.

> [none]

Element definition: obj-id | [top]

> Identification number (ID) for a DFM 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 a DFM 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 DFM object type (e.g. dataset, host, DP policy, 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 DFM 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.

> [none]

Element definition: obj-name | [top]

> Name of a DFM 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 EINVALIDINPUTERROR. Note that because EINVALIDINPUTERROR 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 DFM object type (e.g. data set, host, DP policy, 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. For example, this constraint applies to datasets, DP schedules, and DP policies. This means that no two datasets may have the same name, but a dataset may have the same name as a DP schedule or DP policy. In general, object names are compared in a case-insensitive manner. This means that, for example, "MyObject" and "MYOBJECT" are considered to be the same name for purposes of: creating new objects, renaming existing objects, or looking up an object by name. On the other hand, ZAPIs that return an obj-name generally do not change the capitalization at all. For example, if an object's name has been set to "MyObject", then list iteration ZAPIs that return the object's name return it as "MyObject" rather than "MYOBJECT" or "myobject". ZAPIs that operate on obj-name values and do not follow these general rules about case sensitivity must document the rules that they do follow. One important exception to these general rules is that volumes, qtrees, OSSV directories, SRM paths, interfaces, FCP targets and FC switch ports all have case-sensitive names. When looking up objects of these types by name, the case must match the object name.

> [none]

Element definition: obj-name-or-id | [top]

> Name or internal ID of a DFM object. This typedef is an alias for the builtin ZAPI type string. An obj-name-or-id must contain between 1 and 64 characters, and must conform to one of the following formats: It must have the format of an obj-name, or It must be the decimal numeric string form of a positive integer whose value is in the range [1..2^31 - 1]. Elements of type obj-name-or-id are used only as inputs to ZAPIs. The value must match either the name or internal ID of an existing DFM object. The ZAPI must specify the object's DFM object type (e.g. dataset, host, DP policy, etc.). Some ZAPIs allow the object to be one of several different types. If the format of an obj-name-or-id input element does not conform, or the value does not match the name or ID of an existing object, then generally the ZAPI documents that it fails with error code EOBJECTNOTFOUND. A ZAPI may return more specific error codes. In such cases, the ZAPI specification must document its behavior. If a ZAPI can accept a null value (e.g. reference to no object at all) for such an element, then the element is declared optional, and the absence of the input element represents a null value.

> [none]

Element definition: object-info | [top]

> Associated object's information

> Name | Range | Type | Description
> object-full-name |  | obj-full-name optional | The full name of the object that is associated with the view
> object-id |  | obj-id | The object that is associated with the view
> object-name |  | obj-name optional | object-name is the name of the DFM object
> object-type |  | string optional | Type of the DFM object. The possible values are "resource_group" "data_set" "resource_pool" "filer" "vfiler" "volume" "qtree" "lun" "aggregate" "interface"

Element definition: perf-data-source | [top]

> An unique identifier for a source of data. When optional instance-name field is not specified, perf-data-source represents all relevant instances in an appliance or in a group.

> Name | Range | Type | Description
> appliance-name-or-id |  | string optional | The name (or unique ID) of the source appliance. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in the appliance-info structure from the appliance-list-iter-next. The API will accept a vfiler name or id from DFM 3.3 onwards.
> counter-name |  | string | The name of the counter measured. Counters are specifc measurable quantities on an instance of a performance object, for example the number of write operations on a volume.
> group-name-or-id |  | string optional | The name (or unique ID) of the source group. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in group-list-iter-next APIs. This field is ignored if appliance-name-or-id is specified. This field defaults to global group if appliance-name-or-id is not specified.
> instance-name |  | string optional | The name of the specific object referenced (vol2, disk2, ...). If this field is specified, appliance-name-or-id must also be specified. If this field is not specified, it is considered as a wildcard that implies combining data for all instances of an appliance or a group.
> label-names |  | string optional | An optional list of comma-separated label names. These represent an index into the array of values when a counter has more than one value (as implicitly indicated by the number of labels). The values should be the name of the label (for example 'getattr' for the 'nfs_v3_ops' counter). In some cases, the array of labels is multi-dimensional, in which case there should be one label name from each row in the array of labels. Each entry should be comma-separated. If unspecified, the default value is blank. In that case, its interpretation depends on the context.
> object-full-name |  | obj-full-name optional | The object id for the specific object referenced
> object-name |  | string | The name of the referenced object. Object names are broad classes of system components and protocols, like NFS, VOLUME, DISK, ...
> object-name-or-id |  | obj-name-or-id optional | The object id for the specific object referenced. For dynamic data sources, this will specify the container from which objects will be selected
> object-type |  | string optional | Type of the DFM object. The possible values are "filer" "vfiler" "volume" "qtree" "lun" "aggregate"

Element definition: perf-line | [top]

> A line of data on the chart. Often a line will have a single data source (e.g. CPU percent busy), but we allow for the capability for many sources to be combined (e.g. average CPU busy over 10 storage systems).

> Name | Range | Type | Description
> color |  | string optional | Color of the line. The values and their interpretation are determined by the client. Recommended usage includes common names like "black" or "blue", as well RGB hex specification like "AAFF00".
> data-group |  | perf-data-group | The data source(s) and consolidation method for the line. If data-sources contains a data source that has an array counter, specify label-names field of perf-data-source to select a single element of the array.
> line-name |  | string | Name of the line. This is intended to be a user-visible label.
> type |  | string | Type of display for the line. The values and their interpretation are determined by the client.

Element definition: perf-object-counter | [top]

> Performance Counters can be a combination of an object and a counter.

> Name | Range | Type | Description
> counter-description |  | string optional | Description of the counter on which the threshold has been set.
> counter-name |  | string | The name of the counter measured. Counters are specifc measurable quantities on an instance of a performance object like avg_latency, nfs_ops. Maximum length of 255 characters.
> label-names |  | string optional | An optional list of comma-separated label names. These represent an index into the array of values when a counter has more than one value (as implicitly indicated by the number of labels). The values should be the name of the label (for example 'getattr' for the 'nfs_v3_ops' counter). In some cases, the array of labels is multi-dimensional, in which case there should be one label name from each row in the array of labels. Each entry should be comma-separated. If unspecified, the default value is blank. In that case, its interpretation depends on the context. Maximum length of 255 characters
> object-type |  | string | object-type is the name of the object classification as defined by ONTAP counter manager. Maximum length of 255 characters.
> time-consolidation-method |  | string optional | This element will be used by perf-get-counter-data ZAPI only. A function to apply across the data for this counter to achieve the desired time resolution, if the requested sample-rate is different from the actual sample-rate of the data. Possible values : 'average' 'min' 'max' 'last' Default is 'last'

Element definition: resource-property-condition | [top]

> Specifies conditions on resource properties. In case of values for the same property, the conditions are assumed to be either-or conditions. For example, if the conditions "Disk RPM=7200" and "Disk RPM=10000" are specified, the threshold applies to all disks with speed 7200 RPM or 10000 RPM. In case of conditions on different properties, the conditions are assumed to be "and" conditions. For example, if the conditions name = "Disk RPM", value = "10000" and name="Filer Model", value="FAS270" are specified, the threshold applies to all disks with speed 10000 RPM on FAS270 storage systems. During template modification, if no resource properties are specified, existing resource properties, if any, will be cleared.

> Name | Range | Type | Description
> name |  | string | The name of the resource property.
> value |  | string | The value that this resource property should have.

Element definition: threshold-id | [top]

> A unique numeric identifier used to specify a threshold. This parameter is mandatory when modifying a threshold. This typedef is an alias for the builtin ZAPI type integer. Range: [1..2^31-1]

> [none]

Element definition: obj-full-name | [top]

> Full name of a DFM 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. DFM creates full names 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: Host full names are the either the fully-qualified domain name or the IP address of the host. Aggregate full names are the host name and the aggregate name, separated by a colon, e.g. hostname:aggr0. Volume full names are the host name and the volume name, separated by ":/", e.g. hostname:/volume. Note this does not include "/vol". 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. hostname:/volume/qtree. The data not contained by any qtree may be represented by "-", e.g. hostname:/volume/-. Lun Path full names are either a volume or qtree full name and the LUN path, separated by a slash, e.g. hostname:/volume/LUN or hostname:/volume/qtree/LUN. Network full names are a network address block in CIDR format, e.g. 1.2.3.0/8. OSSV Directory full names are the OSSV host name and the OSSV path, separated by a colon, e.g. host-lnx:/usr/local or host-w2k:c:/temp Include any others here... Initiator Group full names are host name and the initiator group name, separated by a colon, e.g. hostname:igroup. For any DFM object not listed above, the obj-name and obj-full-name are identical.

> [none]

Element definition: obj-id | [top]

> Identification number (ID) for a DFM 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 a DFM 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 DFM object type (e.g. dataset, host, DP policy, 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 DFM 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.

> [none]

Element definition: obj-name | [top]

> Name of a DFM 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 EINVALIDINPUTERROR. Note that because EINVALIDINPUTERROR 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 DFM object type (e.g. data set, host, DP policy, 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. For example, this constraint applies to datasets, DP schedules, and DP policies. This means that no two datasets may have the same name, but a dataset may have the same name as a DP schedule or DP policy. In general, object names are compared in a case-insensitive manner. This means that, for example, "MyObject" and "MYOBJECT" are considered to be the same name for purposes of: creating new objects, renaming existing objects, or looking up an object by name. On the other hand, ZAPIs that return an obj-name generally do not change the capitalization at all. For example, if an object's name has been set to "MyObject", then list iteration ZAPIs that return the object's name return it as "MyObject" rather than "MYOBJECT" or "myobject". ZAPIs that operate on obj-name values and do not follow these general rules about case sensitivity must document the rules that they do follow. One important exception to these general rules is that volumes, qtrees, OSSV directories, SRM paths, interfaces, FCP targets and FC switch ports all have case-sensitive names. When looking up objects of these types by name, the case must match the object name.

> [none]

Element definition: obj-name-or-id | [top]

> Name or internal ID of a DFM object. This typedef is an alias for the builtin ZAPI type string. An obj-name-or-id must contain between 1 and 64 characters, and must conform to one of the following formats: It must have the format of an obj-name, or It must be the decimal numeric string form of a positive integer whose value is in the range [1..2^31 - 1]. Elements of type obj-name-or-id are used only as inputs to ZAPIs. The value must match either the name or internal ID of an existing DFM object. The ZAPI must specify the object's DFM object type (e.g. dataset, host, DP policy, etc.). Some ZAPIs allow the object to be one of several different types. If the format of an obj-name-or-id input element does not conform, or the value does not match the name or ID of an existing object, then generally the ZAPI documents that it fails with error code EOBJECTNOTFOUND. A ZAPI may return more specific error codes. In such cases, the ZAPI specification must document its behavior. If a ZAPI can accept a null value (e.g. reference to no object at all) for such an element, then the element is declared optional, and the absence of the input element represents a null value.

> [none]

Element definition: perf-data-group | [top]

> Definition of a set of data sources and a consolidation method.

> Name | Range | Type | Description
> data-group-method |  | string optional | A function to apply across the data sources. Valid values are average (average of all sources), total (sum of all sources). The default is total (which for one data source is just the value of the single data source).
> data-sources |  | perf-data-source[] | Identifiers for the data sources to be retrieved in later queries. The data-sources should be either one 'group' data source, or many (one or more) of 'instance' data sources. If data-sources contains a data source that has an array counter, specify label-names field of perf-data-source to select a single element of the array.

Element definition: perf-data-source | [top]

> An unique identifier for a source of data. When optional instance-name field is not specified, perf-data-source represents all relevant instances in an appliance or in a group.

> Name | Range | Type | Description
> appliance-name-or-id |  | string optional | The name (or unique ID) of the source appliance. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in the appliance-info structure from the appliance-list-iter-next. The API will accept a vfiler name or id from DFM 3.3 onwards.
> counter-name |  | string | The name of the counter measured. Counters are specifc measurable quantities on an instance of a performance object, for example the number of write operations on a volume.
> group-name-or-id |  | string optional | The name (or unique ID) of the source group. If a unique ID is supplied, it should originate from an API such as the 'id' field returned in group-list-iter-next APIs. This field is ignored if appliance-name-or-id is specified. This field defaults to global group if appliance-name-or-id is not specified.
> instance-name |  | string optional | The name of the specific object referenced (vol2, disk2, ...). If this field is specified, appliance-name-or-id must also be specified. If this field is not specified, it is considered as a wildcard that implies combining data for all instances of an appliance or a group.
> label-names |  | string optional | An optional list of comma-separated label names. These represent an index into the array of values when a counter has more than one value (as implicitly indicated by the number of labels). The values should be the name of the label (for example 'getattr' for the 'nfs_v3_ops' counter). In some cases, the array of labels is multi-dimensional, in which case there should be one label name from each row in the array of labels. Each entry should be comma-separated. If unspecified, the default value is blank. In that case, its interpretation depends on the context.
> object-full-name |  | obj-full-name optional | The object id for the specific object referenced
> object-name |  | string | The name of the referenced object. Object names are broad classes of system components and protocols, like NFS, VOLUME, DISK, ...
> object-name-or-id |  | obj-name-or-id optional | The object id for the specific object referenced. For dynamic data sources, this will specify the container from which objects will be selected
> object-type |  | string optional | Type of the DFM object. The possible values are "filer" "vfiler" "volume" "qtree" "lun" "aggregate"

Element definition: obj-full-name | [top]

> Full name of a DFM 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. DFM creates full names 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: Host full names are the either the fully-qualified domain name or the IP address of the host. Aggregate full names are the host name and the aggregate name, separated by a colon, e.g. hostname:aggr0. Volume full names are the host name and the volume name, separated by ":/", e.g. hostname:/volume. Note this does not include "/vol". 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. hostname:/volume/qtree. The data not contained by any qtree may be represented by "-", e.g. hostname:/volume/-. Lun Path full names are either a volume or qtree full name and the LUN path, separated by a slash, e.g. hostname:/volume/LUN or hostname:/volume/qtree/LUN. Network full names are a network address block in CIDR format, e.g. 1.2.3.0/8. OSSV Directory full names are the OSSV host name and the OSSV path, separated by a colon, e.g. host-lnx:/usr/local or host-w2k:c:/temp Include any others here... Initiator Group full names are host name and the initiator group name, separated by a colon, e.g. hostname:igroup. For any DFM object not listed above, the obj-name and obj-full-name are identical.

> [none]

Element definition: obj-name-or-id | [top]

> Name or internal ID of a DFM object. This typedef is an alias for the builtin ZAPI type string. An obj-name-or-id must contain between 1 and 64 characters, and must conform to one of the following formats: It must have the format of an obj-name, or It must be the decimal numeric string form of a positive integer whose value is in the range [1..2^31 - 1]. Elements of type obj-name-or-id are used only as inputs to ZAPIs. The value must match either the name or internal ID of an existing DFM object. The ZAPI must specify the object's DFM object type (e.g. dataset, host, DP policy, etc.). Some ZAPIs allow the object to be one of several different types. If the format of an obj-name-or-id input element does not conform, or the value does not match the name or ID of an existing object, then generally the ZAPI documents that it fails with error code EOBJECTNOTFOUND. A ZAPI may return more specific error codes. In such cases, the ZAPI specification must document its behavior. If a ZAPI can accept a null value (e.g. reference to no object at all) for such an element, then the element is declared optional, and the absence of the input element represents a null value.

> [none]